Performance Counters

Counters

class renderdoc.CounterDescription

Describes a GPU counter’s purpose and result value.

category

The counter category. Can be empty for uncategorized counters.

counter

The GPUCounter this counter represents.

Note

This is stored as an int not a GPUCounter to allow for values that may not correspond to any of the predefined values if it’s a hardware-specific counter value.

description

If available, a longer human-readable description of the value this counter measures.

name

A short human-readable name for the counter.

resultByteWidth

The number of bytes in the resulting value.

resultType

The type of value returned by this counter.

unit

The CounterUnit for the result value.

uuid

The unique identifier for this counter that will not change across drivers or replays.

Type

Uuid

class renderdoc.CounterUnit(value)

The unit that GPU counter data is returned in.

Absolute

The value is an absolute value and should be interpreted as unitless.

Seconds

The value is a duration in seconds.

Percentage

The value is a floating point percentage value between 0.0 and 1.0.

Ratio

The value describes a ratio between two separate GPU units or counters.

Bytes

The value is in bytes.

Cycles

The value is a duration in clock cycles.

Hertz

The value is a value in Hertz (cycles per second).

Volt

The value is a value in Volts.

Celsius

The value is a value in Celsius.

class renderdoc.Uuid

A 128-bit Uuid.

words

The Uuid bytes as a tuple of four 32-bit integers.

Type

Tuple[int,int,int,int]

Counter Types

class renderdoc.GPUCounter(value)

Pre-defined GPU counters that can be supported by a given implementation.

GPU counters actually available can be queried by ReplayController.EnumerateCounters(). If any in this list are supported they will be returned with these counter IDs. More counters may be enumerated with IDs in the appropriate ranges.

EventGPUDuration

Time taken for this event on the GPU, as measured by delta between two GPU timestamps.

InputVerticesRead

Number of vertices read by input assembler.

IAPrimitives

Number of primitives read by the input assembler.

GSPrimitives

Number of primitives output by a geometry shader.

RasterizerInvocations

Number of primitives that were sent to the rasterizer.

RasterizedPrimitives

Number of primitives that were rendered.

SamplesPassed

Number of samples that passed depth/stencil test.

VSInvocations

Number of times a vertex shader was invoked.

HSInvocations

Number of times a hull shader was invoked.

TCSInvocations

Number of times a tessellation control shader was invoked.

DSInvocations

Number of times a domain shader was invoked.

TESInvocations

Number of times a tessellation evaluation shader was invoked.

GSInvocations

Number of times a domain shader was invoked.

PSInvocations

Number of times a pixel shader was invoked.

FSInvocations

Number of times a fragment shader was invoked.

CSInvocations

Number of times a compute shader was invoked.

TSInvocations

Number of times a task shader was invoked.

ASInvocations

Number of times a amplification shader was invoked.

MSInvocations

Number of times a mesh shader was invoked.

FirstAMD

The AMD-specific counter IDs start from this value.

LastAMD

The AMD-specific counter IDs end with this value.

FirstIntel

The Intel-specific counter IDs start from this value.

LastIntel

The Intel-specific counter IDs end with this value.

FirstNvidia

The nVidia-specific counter IDs start from this value.

LastNvidia

The nVidia-specific counter IDs end with this value.

FirstVulkanExtended

The Vulkan extended counter IDs start from this value.

LastVulkanExtended

The Vulkan extended counter IDs end with this value.

FirstARM

The ARM-specific counter IDs start from this value.

LastARM

The ARM-specific counter IDs end with this value.

renderdoc.IsAMDCounter(c)

Check whether or not this is an AMD private counter.

Parameters

c# (GPUCounter) – The counter.

Returns

True if it is an AMD private counter, False if it’s not.

Return type

bool

renderdoc.IsARMCounter(c)

Check whether or not this is an ARM private counter.

Parameters

c# (GPUCounter) – The counter.

Returns

True if it is an ARM private counter, False if it’s not.

Return type

bool

renderdoc.IsGenericCounter(c)

Check whether or not this is a Generic counter.

Parameters

c# (GPUCounter) – The counter.

Returns

True if it is a generic counter, False if it’s not.

Return type

bool

renderdoc.IsIntelCounter(c)

Check whether or not this is an Intel private counter.

Parameters

c# (GPUCounter) – The counter.

Returns

True if it is an Intel private counter, False if it’s not.

Return type

bool

renderdoc.IsNvidiaCounter(c)

Check whether or not this is an Nvidia private counter.

Parameters

c# (GPUCounter) – The counter.

Returns

True if it is an Nvidia private counter, False if it’s not.

Return type

bool

renderdoc.IsVulkanExtendedCounter(c)

Check whether or not this is a KHR counter.

Parameters

c# (GPUCounter) – The counter.

Returns

True if it is a Vulkan counter reported through the VK_KHR_performance_query extension, False if it’s not.

Return type

bool

Results

class renderdoc.CounterResult

The resulting value from a counter at an event.

counter

The counter that produced this value, stored as an int.

Note

This is stored as an int not a GPUCounter to allow for values that may not correspond to any of the predefined values if it’s a hardware-specific counter value.

eventId

The eventId that produced this value.

value

The value itself.

Type

CounterValue

class renderdoc.CounterValue

A resulting value from a GPU counter. Only one member is valid, see CounterDescription.

d

A double value.

f

A float value.

u32

A 32-bit unsigned integer.

u64

A 64-bit unsigned integer.