Function Prototype

vkGetPipelineExecutableStatisticsKHR

Get compile time statistics associated with a pipeline executable

Each pipeline executable may have a set of statistics associated with it that are generated by the pipeline compilation process. These statistics may include things such as instruction counts, amount of spilling (if any), maximum number of simultaneous threads, or anything else which may aid developers in evaluating the expected performance of a shader. To query the compile time statistics associated with a pipeline executable, call:

VkResult vkGetPipelineExecutableStatisticsKHR(
    VkDevice                        device,
    const VkPipelineExecutableInfoKHR*  pExecutableInfo,
    uint32_t* pStatisticCount,
    VkPipelineExecutableStatisticKHR* pStatistics);
  • device is the device that created the pipeline.
  • pExecutableInfo describes the pipeline executable being queried.
  • pStatisticCount is a pointer to an integer related to the number of statistics available or queried, as described below.
  • pStatistics is either NULL or a pointer to an array of VkPipelineExecutableStatisticKHR structures.

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

Valid Usage

VUID-vkGetPipelineExecutableStatisticsKHR-pipeline-03273

The pipeline member of pExecutableInfo must have been created with device

VUID-vkGetPipelineExecutableStatisticsKHR-pipeline-03274

The pipeline member of pExecutableInfo must have been created with VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR

Valid Usage (Implicit)

VUID-vkGetPipelineExecutableStatisticsKHR-pStatisticCount-parameter

pStatisticCount must be a valid pointer to a uint32_t value

VUID-vkGetPipelineExecutableStatisticsKHR-pStatistics-parameter

If the value referenced by pStatisticCount is not 0, and pStatistics is not NULL, pStatistics must be a valid pointer to an array of pStatisticCount VkPipelineExecutableStatisticKHR structures