Class KHRPipelineExecutableProperties
- java.lang.Object
-
- org.lwjgl.vulkan.KHRPipelineExecutableProperties
-
public class KHRPipelineExecutableProperties extends java.lang.Object
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.- Name String
VK_KHR_pipeline_executable_properties
- Extension Type
- Device extension
- Registered Extension Number
- 270
- Revision
- 1
- Extension and Version Dependencies
- Requires Vulkan 1.0
- Contact
- Jason Ekstrand jekstrand
- Last Modified Date
- 2019-05-28
- IP Status
- No known IP claims.
- Contributors
- Jason 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
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static int
nvkGetPipelineExecutableInternalRepresentationsKHR(VkDevice device, long pExecutableInfo, long pInternalRepresentationCount, long pInternalRepresentations)
Unsafe version of:GetPipelineExecutableInternalRepresentationsKHR
static int
nvkGetPipelineExecutablePropertiesKHR(VkDevice device, long pPipelineInfo, long pExecutableCount, long pProperties)
Unsafe version of:GetPipelineExecutablePropertiesKHR
static int
nvkGetPipelineExecutableStatisticsKHR(VkDevice device, long pExecutableInfo, long pStatisticCount, long pStatistics)
Unsafe version of:GetPipelineExecutableStatisticsKHR
static int
vkGetPipelineExecutableInternalRepresentationsKHR(VkDevice device, VkPipelineExecutableInfoKHR pExecutableInfo, int[] pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR.Buffer pInternalRepresentations)
Array version of:GetPipelineExecutableInternalRepresentationsKHR
static int
vkGetPipelineExecutableInternalRepresentationsKHR(VkDevice device, VkPipelineExecutableInfoKHR pExecutableInfo, java.nio.IntBuffer pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR.Buffer pInternalRepresentations)
Get internal representations of the pipeline executable.static int
vkGetPipelineExecutablePropertiesKHR(VkDevice device, VkPipelineInfoKHR pPipelineInfo, int[] pExecutableCount, VkPipelineExecutablePropertiesKHR.Buffer pProperties)
Array version of:GetPipelineExecutablePropertiesKHR
static int
vkGetPipelineExecutablePropertiesKHR(VkDevice device, VkPipelineInfoKHR pPipelineInfo, java.nio.IntBuffer pExecutableCount, VkPipelineExecutablePropertiesKHR.Buffer pProperties)
Get the executables associated with a pipeline.static int
vkGetPipelineExecutableStatisticsKHR(VkDevice device, VkPipelineExecutableInfoKHR pExecutableInfo, int[] pStatisticCount, VkPipelineExecutableStatisticKHR.Buffer pStatistics)
Array version of:GetPipelineExecutableStatisticsKHR
static int
vkGetPipelineExecutableStatisticsKHR(VkDevice device, VkPipelineExecutableInfoKHR pExecutableInfo, java.nio.IntBuffer pStatisticCount, VkPipelineExecutableStatisticKHR.Buffer pStatistics)
Get compile time statistics associated with a pipeline executable.
-
-
-
Field Detail
-
VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION
The extension specification version.
-
VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME
The extension name.
-
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR, VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR, VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR, VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR, VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR, VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR
ExtendsVkStructureType
.Enum values:
STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR
STRUCTURE_TYPE_PIPELINE_INFO_KHR
STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR
STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR
STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR
STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR
-
VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR, VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR
ExtendsVkPipelineCreateFlagBits
.Enum values:
-
VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR, VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR, VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR, VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR
VkPipelineExecutableStatisticFormatKHR - Enum describing a pipeline executable statisticDescription
PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR
specifies that the statistic is returned as a 32-bit boolean value which must be eitherTRUE
orFALSE
and should be read from theb32
field ofVkPipelineExecutableStatisticValueKHR
.PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR
specifies that the statistic is returned as a signed 64-bit integer and should be read from thei64
field ofVkPipelineExecutableStatisticValueKHR
.PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR
specifies that the statistic is returned as an unsigned 64-bit integer and should be read from theu64
field ofVkPipelineExecutableStatisticValueKHR
.PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR
specifies that the statistic is returned as a 64-bit floating-point value and should be read from thef64
field ofVkPipelineExecutableStatisticValueKHR
.
See Also
-
-
Method Detail
-
nvkGetPipelineExecutablePropertiesKHR
public static int nvkGetPipelineExecutablePropertiesKHR(VkDevice device, long pPipelineInfo, long pExecutableCount, long pProperties)
Unsafe version of:GetPipelineExecutablePropertiesKHR
- Parameters:
pExecutableCount
- a pointer to an integer related to the number of pipeline executables available or queried, as described below.
-
vkGetPipelineExecutablePropertiesKHR
public static int vkGetPipelineExecutablePropertiesKHR(VkDevice device, VkPipelineInfoKHR pPipelineInfo, java.nio.IntBuffer pExecutableCount, @Nullable 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 executables, call:
VkResult vkGetPipelineExecutablePropertiesKHR( VkDevice device, const VkPipelineInfoKHR* pPipelineInfo, uint32_t* pExecutableCount, VkPipelineExecutablePropertiesKHR* pProperties);
Description
If
pProperties
isNULL
, then the number of executables associated with the pipeline is returned inpExecutableCount
. Otherwise,pExecutableCount
must point to a variable set by the user to the number of elements in thepProperties
array, and on return the variable is overwritten with the number of structures actually written topProperties
. IfpExecutableCount
is less than the number of executables associated with the pipeline, at mostpExecutableCount
structures will be written andvkGetPipelineExecutablePropertiesKHR
will returnINCOMPLETE
.Valid Usage
pipelineExecutableProperties
must be enabled.pipeline
member ofpPipelineInfo
must have been created withdevice
.
Valid Usage (Implicit)
device
must be a validVkDevice
handlepPipelineInfo
must be a valid pointer to a validVkPipelineInfoKHR
structurepExecutableCount
must be a valid pointer to auint32_t
value- If the value referenced by
pExecutableCount
is not 0, andpProperties
is notNULL
,pProperties
must be a valid pointer to an array ofpExecutableCount
VkPipelineExecutablePropertiesKHR
structures
Return Codes
- On success, this command returns
- On failure, this command returns
See Also
- Parameters:
device
- the device that created the pipeline.pPipelineInfo
- describes the pipeline being queried.pExecutableCount
- a pointer to an integer related to the number of pipeline executables available or queried, as described below.pProperties
- eitherNULL
or a pointer to an array ofVkPipelineExecutablePropertiesKHR
structures.
-
nvkGetPipelineExecutableStatisticsKHR
public static int nvkGetPipelineExecutableStatisticsKHR(VkDevice device, long pExecutableInfo, long pStatisticCount, long pStatistics)
Unsafe version of:GetPipelineExecutableStatisticsKHR
- Parameters:
pStatisticCount
- a pointer to an integer related to the number of statistics available or queried, as described below.
-
vkGetPipelineExecutableStatisticsKHR
public static int vkGetPipelineExecutableStatisticsKHR(VkDevice device, VkPipelineExecutableInfoKHR pExecutableInfo, java.nio.IntBuffer pStatisticCount, @Nullable 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
isNULL
, then the number of statistics associated with the pipeline executable is returned inpStatisticCount
. Otherwise,pStatisticCount
must point to a variable set by the user to the number of elements in thepStatistics
array, and on return the variable is overwritten with the number of structures actually written topStatistics
. IfpStatisticCount
is less than the number of statistics associated with the pipeline executable, at mostpStatisticCount
structures will be written andvkGetPipelineExecutableStatisticsKHR
will returnINCOMPLETE
.Valid Usage
pipelineExecutableInfo
must be enabled.pipeline
member ofpExecutableInfo
must have been created withdevice
.pipeline
member ofpExecutableInfo
must have been created withPIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR
set in theflags
field ofVkGraphicsPipelineCreateInfo
orVkComputePipelineCreateInfo
.
Valid Usage (Implicit)
device
must be a validVkDevice
handlepExecutableInfo
must be a valid pointer to a validVkPipelineExecutableInfoKHR
structurepStatisticCount
must be a valid pointer to auint32_t
value- If the value referenced by
pStatisticCount
is not 0, andpStatistics
is notNULL
,pStatistics
must be a valid pointer to an array ofpStatisticCount
VkPipelineExecutableStatisticKHR
structures
Return Codes
- On success, this command returns
- On failure, this command returns
See Also
VkPipelineExecutableInfoKHR
,VkPipelineExecutableStatisticKHR
- Parameters:
device
- the device that created the pipeline.pExecutableInfo
- describes the pipeline executable being queried.pStatisticCount
- a pointer to an integer related to the number of statistics available or queried, as described below.pStatistics
- eitherNULL
or a pointer to an array ofVkPipelineExecutableStatisticKHR
structures.
-
nvkGetPipelineExecutableInternalRepresentationsKHR
public static int nvkGetPipelineExecutableInternalRepresentationsKHR(VkDevice device, long pExecutableInfo, long pInternalRepresentationCount, long pInternalRepresentations)
Unsafe version of:GetPipelineExecutableInternalRepresentationsKHR
- Parameters:
pInternalRepresentationCount
- a pointer to an integer related to the number of internal representations available or queried, as described below.
-
vkGetPipelineExecutableInternalRepresentationsKHR
public static int vkGetPipelineExecutableInternalRepresentationsKHR(VkDevice device, VkPipelineExecutableInfoKHR pExecutableInfo, java.nio.IntBuffer pInternalRepresentationCount, @Nullable 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
isNULL
, then the number of internal representations associated with the pipeline executable is returned inpInternalRepresentationCount
. Otherwise,pInternalRepresentationCount
must point to a variable set by the user to the number of elements in thepInternalRepresentations
array, and on return the variable is overwritten with the number of structures actually written topInternalRepresentations
. IfpInternalRepresentationCount
is less than the number of internal representations associated with the pipeline executable, at mostpInternalRepresentationCount
structures will be written andvkGetPipelineExecutableInternalRepresentationsKHR
will returnINCOMPLETE
.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 compile pipeline with the final shader assembly (if any) last.
Valid Usage
pipelineExecutableProperties
must be enabled.pipeline
member ofpExecutableInfo
must have been created withdevice
.pipeline
member ofpExecutableInfo
must have been created withPIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR
set in theflags
field ofVkGraphicsPipelineCreateInfo
orVkComputePipelineCreateInfo
.
Valid Usage (Implicit)
device
must be a validVkDevice
handlepExecutableInfo
must be a valid pointer to a validVkPipelineExecutableInfoKHR
structurepInternalRepresentationCount
must be a valid pointer to auint32_t
value- If the value referenced by
pInternalRepresentationCount
is not 0, andpInternalRepresentations
is notNULL
,pInternalRepresentations
must be a valid pointer to an array ofpInternalRepresentationCount
VkPipelineExecutableInternalRepresentationKHR
structures
Return Codes
- On success, this command returns
- On failure, this command returns
See Also
VkPipelineExecutableInfoKHR
,VkPipelineExecutableInternalRepresentationKHR
- Parameters:
device
- the device that created the pipeline.pExecutableInfo
- describes the pipeline executable being queried.pInternalRepresentationCount
- a pointer to an integer related to the number of internal representations available or queried, as described below.pInternalRepresentations
- eitherNULL
or a pointer to an array ofVkPipelineExecutableInternalRepresentationKHR
structures.
-
vkGetPipelineExecutablePropertiesKHR
public static int vkGetPipelineExecutablePropertiesKHR(VkDevice device, VkPipelineInfoKHR pPipelineInfo, int[] pExecutableCount, @Nullable VkPipelineExecutablePropertiesKHR.Buffer pProperties)
Array version of:GetPipelineExecutablePropertiesKHR
-
vkGetPipelineExecutableStatisticsKHR
public static int vkGetPipelineExecutableStatisticsKHR(VkDevice device, VkPipelineExecutableInfoKHR pExecutableInfo, int[] pStatisticCount, @Nullable VkPipelineExecutableStatisticKHR.Buffer pStatistics)
Array version of:GetPipelineExecutableStatisticsKHR
-
vkGetPipelineExecutableInternalRepresentationsKHR
public static int vkGetPipelineExecutableInternalRepresentationsKHR(VkDevice device, VkPipelineExecutableInfoKHR pExecutableInfo, int[] pInternalRepresentationCount, @Nullable VkPipelineExecutableInternalRepresentationKHR.Buffer pInternalRepresentations)
Array version of:GetPipelineExecutableInternalRepresentationsKHR
-
-