Top Description Fields Constructors Methods
org.lwjgl.vulkan

public Class KHRPipelineExecutableProperties

extends Object
Class Inheritance
Imports
javax.annotation.*, java.nio.*, org.lwjgl.system.*

When a pipeline is created, its state and shaders are compiled into zero or more device-specific executables, which are used when executing commands against that pipeline. This extension adds a mechanism to query properties and statistics about the different executables produced by the pipeline compilation process. This is intended to be used by debugging and performance tools to allow them to provide more detailed information to the user. Certain compile time shader statistics provided through this extension may be useful to developers for debugging or performance analysis.
VK_KHR_pipeline_executable_properties
Name String
VK_KHR_pipeline_executable_properties
Extension Type
Device extension
Registered Extension Number
270
Revision
1
Extension and Version Dependencies
VK_KHR_get_physical_device_properties2
Special Use
Contact
Other Extension Metadata
Last Modified Date
2019-05-28
IP Status
No known IP claims.
Contributors
  • Faith Ekstrand, Intel
  • Ian Romanick, Intel
  • Kenneth Graunke, Intel
  • Baldur Karlsson, Valve
  • Jesse Hall, Google
  • Jeff Bolz, Nvidia
  • Piers Daniel, Nvidia
  • Tobias Hector, AMD
  • Jan-Harald Fredriksen, ARM
  • Tom Olson, ARM
  • Daniel Koch, Nvidia
  • Spencer Fricke, Samsung

Field Summary

Modifier and TypeField and Description
public static final String
public static final int
VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION

The extension specification version.

public static final int
public static final int
VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR

Extends VkPipelineCreateFlagBits.

public static final int
VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR

VkPipelineExecutableStatisticFormatKHR - Enum describing a pipeline executable statistic Description

public static final int
VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR

VkPipelineExecutableStatisticFormatKHR - Enum describing a pipeline executable statistic Description

public static final int
VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR

VkPipelineExecutableStatisticFormatKHR - Enum describing a pipeline executable statistic Description

public static final int
VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR

VkPipelineExecutableStatisticFormatKHR - Enum describing a pipeline executable statistic Description

public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR

Extends VkStructureType.

Constructor Summary

AccessConstructor and Description
protected

Method Summary

Modifier and TypeMethod and Description
public static int
nvkGetPipelineExecutableInternalRepresentationsKHR(VkDevice device, long pExecutableInfo, long
a pointer to an integer related to the number of internal representations available or queried, as described below.
pInternalRepresentationCount
,
long pInternalRepresentations)

Unsafe version of: GetPipelineExecutableInternalRepresentationsKHR

public static int
nvkGetPipelineExecutablePropertiesKHR(VkDevice device, long pPipelineInfo, long
a pointer to an integer related to the number of pipeline executables available or queried, as described below.
pExecutableCount
,
long pProperties)

Unsafe version of: GetPipelineExecutablePropertiesKHR

public static int
nvkGetPipelineExecutableStatisticsKHR(VkDevice device, long pExecutableInfo, long
a pointer to an integer related to the number of statistics available or queried, as described below.
pStatisticCount
,
long pStatistics)

Unsafe version of: GetPipelineExecutableStatisticsKHR

public static int
vkGetPipelineExecutableInternalRepresentationsKHR(VkDevice
the device that created the pipeline.
device
,
VkPipelineExecutableInfoKHR
describes the pipeline executable being queried.
pExecutableInfo
,
IntBuffer
a pointer to an integer related to the number of internal representations available or queried, as described below.
pInternalRepresentationCount
,
VkPipelineExecutableInternalRepresentationKHR.Buffer
either NULL or a pointer to an array of VkPipelineExecutableInternalRepresentationKHR structures.
pInternalRepresentations
)

Get internal representations of the pipeline executable.

public static int
public static int
vkGetPipelineExecutablePropertiesKHR(VkDevice
the device that created the pipeline.
device
,
VkPipelineInfoKHR
describes the pipeline being queried.
pPipelineInfo
,
IntBuffer
a pointer to an integer related to the number of pipeline executables available or queried, as described below.
pExecutableCount
,
VkPipelineExecutablePropertiesKHR.Buffer
either NULL or a pointer to an array of VkPipelineExecutablePropertiesKHR structures.
pProperties
)

Get the executables associated with a pipeline.

public static int
public static int
vkGetPipelineExecutableStatisticsKHR(VkDevice
the device that created the pipeline.
device
,
VkPipelineExecutableInfoKHR
describes the pipeline executable being queried.
pExecutableInfo
,
IntBuffer
a pointer to an integer related to the number of statistics available or queried, as described below.
pStatisticCount
,
VkPipelineExecutableStatisticKHR.Buffer
either NULL or a pointer to an array of VkPipelineExecutableStatisticKHR structures.
pStatistics
)

Get compile time statistics associated with a pipeline executable.

public static int
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAMEback to summary
public static final String VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME

The extension name.

VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSIONback to summary
public static final int VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION

The extension specification version.

VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHRback to summary
public static final int VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR

Extends VkPipelineCreateFlagBits.

Enum values:
VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHRback to summary
public static final int VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR

Extends VkPipelineCreateFlagBits.

Enum values:
VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHRback to summary
public static final int VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR

VkPipelineExecutableStatisticFormatKHR - Enum describing a pipeline executable statistic

Description
See Also

VkPipelineExecutableStatisticKHR

VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHRback to summary
public static final int VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR

VkPipelineExecutableStatisticFormatKHR - Enum describing a pipeline executable statistic

Description
See Also

VkPipelineExecutableStatisticKHR

VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHRback to summary
public static final int VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR

VkPipelineExecutableStatisticFormatKHR - Enum describing a pipeline executable statistic

Description
See Also

VkPipelineExecutableStatisticKHR

VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHRback to summary
public static final int VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR

VkPipelineExecutableStatisticFormatKHR - Enum describing a pipeline executable statistic

Description
See Also

VkPipelineExecutableStatisticKHR

VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHRback to summary
public static final int VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR

Extends VkStructureType.

Enum values:
VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHRback to summary
public static final int VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR

Extends VkStructureType.

Enum values:
VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHRback to summary
public static final int VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR

Extends VkStructureType.

Enum values:
VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHRback to summary
public static final int VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR

Extends VkStructureType.

Enum values:
VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHRback to summary
public static final int VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR

Extends VkStructureType.

Enum values:
VK_STRUCTURE_TYPE_PIPELINE_INFO_KHRback to summary
public static final int VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR

Extends VkStructureType.

Enum values:

Constructor Detail

KHRPipelineExecutablePropertiesback to summary
protected KHRPipelineExecutableProperties()

Method Detail

nvkGetPipelineExecutableInternalRepresentationsKHRback to summary
public static int nvkGetPipelineExecutableInternalRepresentationsKHR(VkDevice device, long pExecutableInfo, long pInternalRepresentationCount, long pInternalRepresentations)

Unsafe version of: GetPipelineExecutableInternalRepresentationsKHR

Parameters
pInternalRepresentationCount:long

a pointer to an integer related to the number of internal representations available or queried, as described below.

nvkGetPipelineExecutablePropertiesKHRback to summary
public static int nvkGetPipelineExecutablePropertiesKHR(VkDevice device, long pPipelineInfo, long pExecutableCount, long pProperties)

Unsafe version of: GetPipelineExecutablePropertiesKHR

Parameters
pExecutableCount:long

a pointer to an integer related to the number of pipeline executables available or queried, as described below.

nvkGetPipelineExecutableStatisticsKHRback to summary
public static int nvkGetPipelineExecutableStatisticsKHR(VkDevice device, long pExecutableInfo, long pStatisticCount, long pStatistics)

Unsafe version of: GetPipelineExecutableStatisticsKHR

Parameters
pStatisticCount:long

a pointer to an integer related to the number of statistics available or queried, as described below.

vkGetPipelineExecutableInternalRepresentationsKHRback to summary
public static int vkGetPipelineExecutableInternalRepresentationsKHR(VkDevice device, VkPipelineExecutableInfoKHR pExecutableInfo, IntBuffer pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR.Buffer pInternalRepresentations)

Get internal representations of the pipeline executable.

C Specification

Each pipeline executable may have one or more text or binary internal representations associated with it which are generated as part of the compile process. These may include the final shader assembly, a binary form of the compiled shader, or the shader compiler’s internal representation at any number of intermediate compile steps. To query the internal representations associated with a pipeline executable, call:


VkResult vkGetPipelineExecutableInternalRepresentationsKHR(
    VkDevice                                    device,
    const VkPipelineExecutableInfoKHR*          pExecutableInfo,
    uint32_t*                                   pInternalRepresentationCount,
    VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations);
Description

If pInternalRepresentations is NULL, then the number of internal representations associated with the pipeline executable is returned in pInternalRepresentationCount. Otherwise, pInternalRepresentationCount must point to a variable set by the user to the number of elements in the pInternalRepresentations array, and on return the variable is overwritten with the number of structures actually written to pInternalRepresentations. If pInternalRepresentationCount is less than the number of internal representations associated with the pipeline executable, at most pInternalRepresentationCount structures will be written, and INCOMPLETE will be returned instead of SUCCESS, to indicate that not all the available representations were returned.

While the details of the internal representations remain implementation-dependent, the implementation should order the internal representations in the order in which they occur in the compiled pipeline with the final shader assembly (if any) last.

Valid Usage
Valid Usage (Implicit)
  • device must be a valid VkDevice handle
  • pExecutableInfo must be a valid pointer to a valid VkPipelineExecutableInfoKHR structure
  • pInternalRepresentationCount must be a valid pointer to a uint32_t value
  • If the value referenced by pInternalRepresentationCount is not 0, and pInternalRepresentations is not NULL, pInternalRepresentations must be a valid pointer to an array of pInternalRepresentationCount VkPipelineExecutableInternalRepresentationKHR structures
Return Codes
On success, this command returns
On failure, this command returns
See Also

VkPipelineExecutableInfoKHR, VkPipelineExecutableInternalRepresentationKHR

Parameters
device:VkDevice

the device that created the pipeline.

pExecutableInfo:VkPipelineExecutableInfoKHR

describes the pipeline executable being queried.

pInternalRepresentationCount:IntBuffer

a pointer to an integer related to the number of internal representations available or queried, as described below.

pInternalRepresentations:VkPipelineExecutableInternalRepresentationKHR.Buffer

either NULL or a pointer to an array of VkPipelineExecutableInternalRepresentationKHR structures.

Annotations
@NativeType:VkResult
vkGetPipelineExecutableInternalRepresentationsKHRback to summary
public static int vkGetPipelineExecutableInternalRepresentationsKHR(VkDevice device, VkPipelineExecutableInfoKHR pExecutableInfo, int[] pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR.Buffer pInternalRepresentations)

Array version of: GetPipelineExecutableInternalRepresentationsKHR

Annotations
@NativeType:VkResult
vkGetPipelineExecutablePropertiesKHRback to summary
public static int vkGetPipelineExecutablePropertiesKHR(VkDevice device, VkPipelineInfoKHR pPipelineInfo, IntBuffer pExecutableCount, VkPipelineExecutablePropertiesKHR.Buffer pProperties)

Get the executables associated with a pipeline.

C Specification

When a pipeline is created, its state and shaders are compiled into zero or more device-specific executables, which are used when executing commands against that pipeline. To query the properties of these pipeline executables, call:


VkResult vkGetPipelineExecutablePropertiesKHR(
    VkDevice                                    device,
    const VkPipelineInfoKHR*                    pPipelineInfo,
    uint32_t*                                   pExecutableCount,
    VkPipelineExecutablePropertiesKHR*          pProperties);
Description

If pProperties is NULL, then the number of pipeline executables associated with the pipeline is returned in pExecutableCount. Otherwise, pExecutableCount must point to a variable set by the user to the number of elements in the pProperties array, and on return the variable is overwritten with the number of structures actually written to pProperties. If pExecutableCount is less than the number of pipeline executables associated with the pipeline, at most pExecutableCount structures will be written, and INCOMPLETE will be returned instead of SUCCESS, to indicate that not all the available properties were returned.

Valid Usage
  • The pipelineExecutableInfo feature must be enabled
  • The pipeline member of pPipelineInfo must have been created with device
Valid Usage (Implicit)
  • device must be a valid VkDevice handle
  • pPipelineInfo must be a valid pointer to a valid VkPipelineInfoKHR structure
  • pExecutableCount must be a valid pointer to a uint32_t value
  • If the value referenced by pExecutableCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pExecutableCount VkPipelineExecutablePropertiesKHR structures
Return Codes
On success, this command returns
On failure, this command returns
See Also

VkPipelineExecutablePropertiesKHR, VkPipelineInfoKHR

Parameters
device:VkDevice

the device that created the pipeline.

pPipelineInfo:VkPipelineInfoKHR

describes the pipeline being queried.

pExecutableCount:IntBuffer

a pointer to an integer related to the number of pipeline executables available or queried, as described below.

pProperties:VkPipelineExecutablePropertiesKHR.Buffer

either NULL or a pointer to an array of VkPipelineExecutablePropertiesKHR structures.

Annotations
@NativeType:VkResult
vkGetPipelineExecutablePropertiesKHRback to summary
public static int vkGetPipelineExecutablePropertiesKHR(VkDevice device, VkPipelineInfoKHR pPipelineInfo, int[] pExecutableCount, VkPipelineExecutablePropertiesKHR.Buffer pProperties)

Array version of: GetPipelineExecutablePropertiesKHR

Annotations
@NativeType:VkResult
vkGetPipelineExecutableStatisticsKHRback to summary
public static int vkGetPipelineExecutableStatisticsKHR(VkDevice device, VkPipelineExecutableInfoKHR pExecutableInfo, IntBuffer pStatisticCount, VkPipelineExecutableStatisticKHR.Buffer pStatistics)

Get compile time statistics associated with a pipeline executable.

C Specification

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);
Description

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 user 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 INCOMPLETE will be returned instead of SUCCESS, to indicate that not all the available statistics were returned.

Valid Usage
Valid Usage (Implicit)
  • device must be a valid VkDevice handle
  • pExecutableInfo must be a valid pointer to a valid VkPipelineExecutableInfoKHR structure
  • pStatisticCount must be a valid pointer to a uint32_t value
  • 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
Return Codes
On success, this command returns
On failure, this command returns
See Also

VkPipelineExecutableInfoKHR, VkPipelineExecutableStatisticKHR

Parameters
device:VkDevice

the device that created the pipeline.

pExecutableInfo:VkPipelineExecutableInfoKHR

describes the pipeline executable being queried.

pStatisticCount:IntBuffer

a pointer to an integer related to the number of statistics available or queried, as described below.

pStatistics:VkPipelineExecutableStatisticKHR.Buffer

either NULL or a pointer to an array of VkPipelineExecutableStatisticKHR structures.

Annotations
@NativeType:VkResult
vkGetPipelineExecutableStatisticsKHRback to summary
public static int vkGetPipelineExecutableStatisticsKHR(VkDevice device, VkPipelineExecutableInfoKHR pExecutableInfo, int[] pStatisticCount, VkPipelineExecutableStatisticKHR.Buffer pStatistics)

Array version of: GetPipelineExecutableStatisticsKHR

Annotations
@NativeType:VkResult