C Specification

To enumerate the available shader instrumentation metrics, call:

// Provided by VK_ARM_shader_instrumentation
VkResult vkEnumeratePhysicalDeviceShaderInstrumentationMetricsARM(
    VkPhysicalDevice                            physicalDevice,
    uint32_t*                                   pDescriptionCount,
    VkShaderInstrumentationMetricDescriptionARM* pDescriptions);

Parameters

  • physicalDevice is the physical device.

  • pDescriptionCount is a pointer to an integer related to the number of shader instrumentation metrics available or queried.

  • pDescriptions is either NULL or a pointer to an array of VkShaderInstrumentationMetricDescriptionARM structures.

Description

If pDescriptions is NULL, then the number of shader instrumentation metrics available is returned in pDescriptionCount. Otherwise, pDescriptionCount must point to a variable set by the application to the number of elements in the pDescriptions array, and on return the variable is overwritten with the number of structures actually written to pDescriptions. If pDescriptionCount is less than the number shader instrumentation metrics available, at most pDescriptionCount structures will be written, and VK_INCOMPLETE will be returned instead of VK_SUCCESS, to indicate that not all the available shader instrumentation metrics were returned.

Valid Usage (Implicit)
  • VUID-vkEnumeratePhysicalDeviceShaderInstrumentationMetricsARM-physicalDevice-parameter
    physicalDevice must be a valid VkPhysicalDevice handle

  • VUID-vkEnumeratePhysicalDeviceShaderInstrumentationMetricsARM-pDescriptionCount-parameter
    pDescriptionCount must be a valid pointer to a uint32_t value

  • VUID-vkEnumeratePhysicalDeviceShaderInstrumentationMetricsARM-pDescriptions-parameter
    If the value referenced by pDescriptionCount is not 0, and pDescriptions is not NULL, pDescriptions must be a valid pointer to an array of pDescriptionCount VkShaderInstrumentationMetricDescriptionARM structures

See Also

Document Notes

For more information, see the Vulkan Specification.

This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.

Copyright 2014-2026 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0