# Performance Counters

Contents

- Performance Counters

  - Counters

  - Counter Types

  - Results

## 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.