xcodebindings

package
v0.0.0-...-3d7d32e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 19, 2026 License: MIT Imports: 9 Imported by: 0

Documentation

Rendered for darwin/amd64

Overview

Package xcodebindings probes the private Xcode GTShaderProfiler runtime surface without constructing profiler objects.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Class

type Class struct {
	Name      string     `json:"name"`
	Present   bool       `json:"present"`
	Selectors []Selector `json:"selectors"`
}

Class describes one Objective-C class and the selectors gputrace cares about.

type Gap

type Gap struct {
	Metric    string `json:"metric"`
	Binding   string `json:"binding"`
	Status    string `json:"status"`
	Next      string `json:"next"`
	Signature string `json:"signature_risk,omitempty"`
}

Gap maps a missing gputrace metric to the private Xcode surface that can supply it.

type KeyCount

type KeyCount struct {
	Key   string `json:"key"`
	Count int    `json:"count"`
}

KeyCount reports how often a dictionary key appears in an Objective-C array.

type ObjectSummary

type ObjectSummary struct {
	Index      uint64            `json:"index"`
	ClassName  string            `json:"class_name,omitempty"`
	Bytes      uint64            `json:"bytes,omitempty"`
	Count      uint64            `json:"count,omitempty"`
	Keys       []string          `json:"keys,omitempty"`
	Properties map[string]uint64 `json:"properties,omitempty"`
	Children   []ObjectSummary   `json:"children,omitempty"`
}

ObjectSummary describes a private Objective-C object without traversing its full graph.

type Report

type Report struct {
	FrameworkPath string         `json:"framework_path"`
	Framework     bool           `json:"framework"`
	Classes       []Class        `json:"classes"`
	Gaps          []Gap          `json:"gaps"`
	Notes         []string       `json:"notes,omitempty"`
	Summary       map[string]int `json:"summary"`
}

Report describes the GTShaderProfiler Objective-C surface gputrace needs for Xcode parity.

func Probe

func Probe() Report

Probe checks class and selector availability. It opens GTShaderProfiler with RTLD_GLOBAL so Objective-C classes become visible, but does not instantiate any GTShaderProfiler class.

type Selector

type Selector struct {
	Name    string `json:"name"`
	Kind    string `json:"kind"`
	Present bool   `json:"present"`
}

Selector describes one class or instance selector.

type StreamDataSummary

type StreamDataSummary struct {
	Path                   string          `json:"path"`
	ObjectID               string          `json:"object_id,omitempty"`
	GPUGeneration          uint32          `json:"gpu_generation,omitempty"`
	MetalDeviceName        string          `json:"metal_device_name,omitempty"`
	MetalPluginName        string          `json:"metal_plugin_name,omitempty"`
	EncoderInfoCount       uint64          `json:"encoder_info_count"`
	GPUCommandInfoCount    uint64          `json:"gpu_command_info_count"`
	PipelineStateInfoCount uint64          `json:"pipeline_state_info_count"`
	FunctionInfoCount      uint64          `json:"function_info_count"`
	EncoderInfoBytes       uint64          `json:"encoder_info_bytes,omitempty"`
	GPUCommandInfoBytes    uint64          `json:"gpu_command_info_bytes,omitempty"`
	PipelineStateInfoBytes uint64          `json:"pipeline_state_info_bytes,omitempty"`
	FunctionInfoBytes      uint64          `json:"function_info_bytes,omitempty"`
	APSTimelineCount       uint64          `json:"aps_timeline_count,omitempty"`
	APSCounterCount        uint64          `json:"aps_counter_count,omitempty"`
	ShaderProfilerCount    uint64          `json:"shader_profiler_count,omitempty"`
	APSTimelineSamples     []ObjectSummary `json:"aps_timeline_samples,omitempty"`
	APSCounterSamples      []ObjectSummary `json:"aps_counter_samples,omitempty"`
	APSTimelineKeys        []KeyCount      `json:"aps_timeline_keys,omitempty"`
	APSCounterKeys         []KeyCount      `json:"aps_counter_keys,omitempty"`
	APSTimelineTimeKeys    []KeyCount      `json:"aps_timeline_time_keys,omitempty"`
	SelectedValues         []ValueSummary  `json:"selected_values,omitempty"`
	ReplayerGPUTimeNs      uint64          `json:"replayer_gpu_time_ns,omitempty"`
}

StreamDataSummary is the safely readable GTShaderProfilerStreamData metadata for a profiler streamData archive.

func ProbeStreamData

func ProbeStreamData(path string) (StreamDataSummary, error)

ProbeStreamData loads a streamData archive through GTShaderProfilerStreamData and returns metadata that does not require walking private object graphs.

type ValueSummary

type ValueSummary struct {
	Array       string          `json:"array"`
	Index       uint64          `json:"index"`
	Key         string          `json:"key"`
	Class       string          `json:"class,omitempty"`
	Description string          `json:"description,omitempty"`
	Keys        []string        `json:"keys,omitempty"`
	Bytes       uint64          `json:"bytes,omitempty"`
	Count       uint64          `json:"count,omitempty"`
	Number      uint64          `json:"number,omitempty"`
	Children    []ObjectSummary `json:"children,omitempty"`
}

ValueSummary reports the class and shallow metadata for a selected dictionary value.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL