Class KHRPipelineExecutableProperties
- java.lang.Object
-
- org.lwjgl.vulkan.KHRPipelineExecutableProperties
-
public class KHRPipelineExecutableProperties extends java.lang.ObjectWhen 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 intnvkGetPipelineExecutableInternalRepresentationsKHR(VkDevice device, long pExecutableInfo, long pInternalRepresentationCount, long pInternalRepresentations)Unsafe version of:GetPipelineExecutableInternalRepresentationsKHRstatic intnvkGetPipelineExecutablePropertiesKHR(VkDevice device, long pPipelineInfo, long pExecutableCount, long pProperties)Unsafe version of:GetPipelineExecutablePropertiesKHRstatic intnvkGetPipelineExecutableStatisticsKHR(VkDevice device, long pExecutableInfo, long pStatisticCount, long pStatistics)Unsafe version of:GetPipelineExecutableStatisticsKHRstatic intvkGetPipelineExecutableInternalRepresentationsKHR(VkDevice device, VkPipelineExecutableInfoKHR pExecutableInfo, int[] pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR.Buffer pInternalRepresentations)Array version of:GetPipelineExecutableInternalRepresentationsKHRstatic intvkGetPipelineExecutableInternalRepresentationsKHR(VkDevice device, VkPipelineExecutableInfoKHR pExecutableInfo, java.nio.IntBuffer pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR.Buffer pInternalRepresentations)Get internal representations of the pipeline executable.static intvkGetPipelineExecutablePropertiesKHR(VkDevice device, VkPipelineInfoKHR pPipelineInfo, int[] pExecutableCount, VkPipelineExecutablePropertiesKHR.Buffer pProperties)Array version of:GetPipelineExecutablePropertiesKHRstatic intvkGetPipelineExecutablePropertiesKHR(VkDevice device, VkPipelineInfoKHR pPipelineInfo, java.nio.IntBuffer pExecutableCount, VkPipelineExecutablePropertiesKHR.Buffer pProperties)Get the executables associated with a pipeline.static intvkGetPipelineExecutableStatisticsKHR(VkDevice device, VkPipelineExecutableInfoKHR pExecutableInfo, int[] pStatisticCount, VkPipelineExecutableStatisticKHR.Buffer pStatistics)Array version of:GetPipelineExecutableStatisticsKHRstatic intvkGetPipelineExecutableStatisticsKHR(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_KHRSTRUCTURE_TYPE_PIPELINE_INFO_KHRSTRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHRSTRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHRSTRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHRSTRUCTURE_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_KHRspecifies that the statistic is returned as a 32-bit boolean value which must be eitherTRUEorFALSEand should be read from theb32field ofVkPipelineExecutableStatisticValueKHR.PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHRspecifies that the statistic is returned as a signed 64-bit integer and should be read from thei64field ofVkPipelineExecutableStatisticValueKHR.PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHRspecifies that the statistic is returned as an unsigned 64-bit integer and should be read from theu64field ofVkPipelineExecutableStatisticValueKHR.PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHRspecifies that the statistic is returned as a 64-bit floating-point value and should be read from thef64field 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
pPropertiesisNULL, then the number of executables associated with the pipeline is returned inpExecutableCount. Otherwise,pExecutableCountmust point to a variable set by the user to the number of elements in thepPropertiesarray, and on return the variable is overwritten with the number of structures actually written topProperties. IfpExecutableCountis less than the number of executables associated with the pipeline, at mostpExecutableCountstructures will be written andvkGetPipelineExecutablePropertiesKHRwill returnINCOMPLETE.Valid Usage
pipelineExecutablePropertiesmust be enabled.pipelinemember ofpPipelineInfomust have been created withdevice.
Valid Usage (Implicit)
devicemust be a validVkDevicehandlepPipelineInfomust be a valid pointer to a validVkPipelineInfoKHRstructurepExecutableCountmust be a valid pointer to auint32_tvalue- If the value referenced by
pExecutableCountis not 0, andpPropertiesis notNULL,pPropertiesmust be a valid pointer to an array ofpExecutableCountVkPipelineExecutablePropertiesKHRstructures
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- eitherNULLor a pointer to an array ofVkPipelineExecutablePropertiesKHRstructures.
-
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
pStatisticsisNULL, then the number of statistics associated with the pipeline executable is returned inpStatisticCount. Otherwise,pStatisticCountmust point to a variable set by the user to the number of elements in thepStatisticsarray, and on return the variable is overwritten with the number of structures actually written topStatistics. IfpStatisticCountis less than the number of statistics associated with the pipeline executable, at mostpStatisticCountstructures will be written andvkGetPipelineExecutableStatisticsKHRwill returnINCOMPLETE.Valid Usage
pipelineExecutableInfomust be enabled.pipelinemember ofpExecutableInfomust have been created withdevice.pipelinemember ofpExecutableInfomust have been created withPIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHRset in theflagsfield ofVkGraphicsPipelineCreateInfoorVkComputePipelineCreateInfo.
Valid Usage (Implicit)
devicemust be a validVkDevicehandlepExecutableInfomust be a valid pointer to a validVkPipelineExecutableInfoKHRstructurepStatisticCountmust be a valid pointer to auint32_tvalue- If the value referenced by
pStatisticCountis not 0, andpStatisticsis notNULL,pStatisticsmust be a valid pointer to an array ofpStatisticCountVkPipelineExecutableStatisticKHRstructures
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- eitherNULLor a pointer to an array ofVkPipelineExecutableStatisticKHRstructures.
-
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
pInternalRepresentationsisNULL, then the number of internal representations associated with the pipeline executable is returned inpInternalRepresentationCount. Otherwise,pInternalRepresentationCountmust point to a variable set by the user to the number of elements in thepInternalRepresentationsarray, and on return the variable is overwritten with the number of structures actually written topInternalRepresentations. IfpInternalRepresentationCountis less than the number of internal representations associated with the pipeline executable, at mostpInternalRepresentationCountstructures will be written andvkGetPipelineExecutableInternalRepresentationsKHRwill 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
pipelineExecutablePropertiesmust be enabled.pipelinemember ofpExecutableInfomust have been created withdevice.pipelinemember ofpExecutableInfomust have been created withPIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHRset in theflagsfield ofVkGraphicsPipelineCreateInfoorVkComputePipelineCreateInfo.
Valid Usage (Implicit)
devicemust be a validVkDevicehandlepExecutableInfomust be a valid pointer to a validVkPipelineExecutableInfoKHRstructurepInternalRepresentationCountmust be a valid pointer to auint32_tvalue- If the value referenced by
pInternalRepresentationCountis not 0, andpInternalRepresentationsis notNULL,pInternalRepresentationsmust be a valid pointer to an array ofpInternalRepresentationCountVkPipelineExecutableInternalRepresentationKHRstructures
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- eitherNULLor a pointer to an array ofVkPipelineExecutableInternalRepresentationKHRstructures.
-
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
-
-