Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Name
VK_KHR_pipeline_executable_properties - device extension
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
- Requires support for Vulkan 1.0
- Requires
VK_KHR_get_physical_device_properties2
to be enabled for any device-level functionality
- Special Use
- Contact
Other Extension Metadata
- Last Modified Date
- 2019-05-28
- IP Status
- No known IP claims.
- Interactions and External Dependencies; 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
Description
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.
New Commands
New Structures
PipelineExecutableInternalRepresentationKHR
PipelineExecutablePropertiesKHR
PipelineExecutableStatisticKHR
PipelineInfoKHR
Extending
PhysicalDeviceFeatures2
,DeviceCreateInfo
:
New Unions
New Enums
New Enum Constants
KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION
Extending
PipelineCreateFlagBits
:Extending
StructureType
:STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR
STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR
STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR
STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR
STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR
STRUCTURE_TYPE_PIPELINE_INFO_KHR
Issues
1) What should we call the pieces of the pipeline which are produced by the compilation process and about which you can query properties and statistics?
RESOLVED: Call them “executables”. The name “binary” was used in early drafts of the extension but it was determined that “pipeline binary” could have a fairly broad meaning (such as a binary serialized form of an entire pipeline) and was too big of a namespace for the very specific needs of this extension.
Version History
Revision 1, 2019-05-28 (Jason Ekstrand)
- Initial draft
See Also
PhysicalDevicePipelineExecutablePropertiesFeaturesKHR
,
PipelineExecutableInfoKHR
,
PipelineExecutableInternalRepresentationKHR
,
PipelineExecutablePropertiesKHR
,
PipelineExecutableStatisticFormatKHR
,
PipelineExecutableStatisticKHR
, PipelineExecutableStatisticValueKHR
,
PipelineInfoKHR
, getPipelineExecutableInternalRepresentationsKHR
,
getPipelineExecutablePropertiesKHR
,
getPipelineExecutableStatisticsKHR
Document Notes
For more information, see the Vulkan Specification
This page is a generated document. Fixes and changes should be made to the generator scripts, not directly.
Synopsis
- getPipelineExecutablePropertiesKHR :: forall io. MonadIO io => Device -> PipelineInfoKHR -> io (Result, "properties" ::: Vector PipelineExecutablePropertiesKHR)
- getPipelineExecutableStatisticsKHR :: forall io. MonadIO io => Device -> PipelineExecutableInfoKHR -> io (Result, "statistics" ::: Vector PipelineExecutableStatisticKHR)
- getPipelineExecutableInternalRepresentationsKHR :: forall io. MonadIO io => Device -> PipelineExecutableInfoKHR -> io (Result, "internalRepresentations" ::: Vector PipelineExecutableInternalRepresentationKHR)
- data PhysicalDevicePipelineExecutablePropertiesFeaturesKHR = PhysicalDevicePipelineExecutablePropertiesFeaturesKHR {}
- data PipelineInfoKHR = PipelineInfoKHR {}
- data PipelineExecutablePropertiesKHR = PipelineExecutablePropertiesKHR {}
- data PipelineExecutableInfoKHR = PipelineExecutableInfoKHR {}
- data PipelineExecutableStatisticKHR = PipelineExecutableStatisticKHR {}
- data PipelineExecutableInternalRepresentationKHR = PipelineExecutableInternalRepresentationKHR {
- name :: ByteString
- description :: ByteString
- isText :: Bool
- dataSize :: Word64
- data' :: Ptr ()
- data PipelineExecutableStatisticValueKHR
- peekPipelineExecutableStatisticValueKHR :: PipelineExecutableStatisticFormatKHR -> Ptr PipelineExecutableStatisticValueKHR -> IO PipelineExecutableStatisticValueKHR
- newtype PipelineExecutableStatisticFormatKHR where
- PipelineExecutableStatisticFormatKHR Int32
- pattern PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR :: PipelineExecutableStatisticFormatKHR
- pattern PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR :: PipelineExecutableStatisticFormatKHR
- pattern PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR :: PipelineExecutableStatisticFormatKHR
- pattern PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR :: PipelineExecutableStatisticFormatKHR
- type KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION = 1
- pattern KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION :: forall a. Integral a => a
- type KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME = "VK_KHR_pipeline_executable_properties"
- pattern KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
Documentation
getPipelineExecutablePropertiesKHR Source #
:: forall io. MonadIO io | |
=> Device |
|
-> PipelineInfoKHR |
|
-> io (Result, "properties" ::: Vector PipelineExecutablePropertiesKHR) |
vkGetPipelineExecutablePropertiesKHR - Get the executables associated with a pipeline
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
Valid Usage (Implicit)
-
device
must be a validDevice
handle
-
pPipelineInfo
must be a valid pointer to a validPipelineInfoKHR
structure -
pExecutableCount
must be a valid pointer to auint32_t
value - If
the value referenced by
pExecutableCount
is not0
, andpProperties
is notNULL
,pProperties
must be a valid pointer to an array ofpExecutableCount
PipelineExecutablePropertiesKHR
structures
Return Codes
See Also
VK_KHR_pipeline_executable_properties,
Device
, PipelineExecutablePropertiesKHR
,
PipelineInfoKHR
getPipelineExecutableStatisticsKHR Source #
:: forall io. MonadIO io | |
=> Device |
|
-> PipelineExecutableInfoKHR |
|
-> io (Result, "statistics" ::: Vector PipelineExecutableStatisticKHR) |
vkGetPipelineExecutableStatisticsKHR - Get compile time statistics associated with a pipeline executable
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
- The pipelineExecutableInfo feature must be enabled
- The
pipeline
member ofpExecutableInfo
must have been created withdevice
- The
pipeline
member ofpExecutableInfo
must have been created withPIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR
Valid Usage (Implicit)
-
device
must be a validDevice
handle
-
pExecutableInfo
must be a valid pointer to a validPipelineExecutableInfoKHR
structure -
pStatisticCount
must be a valid pointer to auint32_t
value - If
the value referenced by
pStatisticCount
is not0
, andpStatistics
is notNULL
,pStatistics
must be a valid pointer to an array ofpStatisticCount
PipelineExecutableStatisticKHR
structures
Return Codes
See Also
VK_KHR_pipeline_executable_properties,
Device
, PipelineExecutableInfoKHR
,
PipelineExecutableStatisticKHR
getPipelineExecutableInternalRepresentationsKHR Source #
:: forall io. MonadIO io | |
=> Device |
|
-> PipelineExecutableInfoKHR |
|
-> io (Result, "internalRepresentations" ::: Vector PipelineExecutableInternalRepresentationKHR) |
vkGetPipelineExecutableInternalRepresentationsKHR - Get internal representations of the pipeline executable
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
- The pipelineExecutableInfo feature must be enabled
-
The
pipeline
member ofpExecutableInfo
must have been created withdevice
-
The
pipeline
member ofpExecutableInfo
must have been created withPIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR
Valid Usage (Implicit)
-
device
must be a validDevice
handle
-
pExecutableInfo
must be a valid pointer to a validPipelineExecutableInfoKHR
structure -
pInternalRepresentationCount
must be a valid pointer to auint32_t
value -
If the value referenced by
pInternalRepresentationCount
is not0
, andpInternalRepresentations
is notNULL
,pInternalRepresentations
must be a valid pointer to an array ofpInternalRepresentationCount
PipelineExecutableInternalRepresentationKHR
structures
Return Codes
See Also
VK_KHR_pipeline_executable_properties,
Device
, PipelineExecutableInfoKHR
,
PipelineExecutableInternalRepresentationKHR
data PhysicalDevicePipelineExecutablePropertiesFeaturesKHR Source #
VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR - Structure describing whether pipeline executable properties are available
Members
This structure describes the following feature:
Description
If the PhysicalDevicePipelineExecutablePropertiesFeaturesKHR
structure
is included in the pNext
chain of the
PhysicalDeviceFeatures2
structure passed to
getPhysicalDeviceFeatures2
,
it is filled in to indicate whether each corresponding feature is
supported. PhysicalDevicePipelineExecutablePropertiesFeaturesKHR
can
also be used in the pNext
chain of
DeviceCreateInfo
to selectively enable these
features.
Valid Usage (Implicit)
See Also
VK_KHR_pipeline_executable_properties,
Bool32
,
StructureType
Instances
data PipelineInfoKHR Source #
VkPipelineInfoKHR - Structure describing a pipeline
Valid Usage (Implicit)
See Also
VK_EXT_pipeline_properties,
VK_KHR_pipeline_executable_properties,
Pipeline
,
StructureType
,
getPipelineExecutablePropertiesKHR
,
getPipelinePropertiesEXT
Instances
data PipelineExecutablePropertiesKHR Source #
VkPipelineExecutablePropertiesKHR - Structure describing a pipeline executable
Description
Not all implementations have a 1:1 mapping between shader stages and
pipeline executables and some implementations may reduce a given
shader stage to fixed function hardware programming such that no
pipeline executable is available. No guarantees are provided about the
mapping between shader stages and pipeline executables and stages
should be considered a best effort hint. Because the application
cannot rely on the stages
field to provide an exact description,
name
and description
provide a human readable name and description
which more accurately describes the given pipeline executable.
Valid Usage (Implicit)
See Also
VK_KHR_pipeline_executable_properties,
ShaderStageFlags
,
StructureType
,
getPipelineExecutablePropertiesKHR
PipelineExecutablePropertiesKHR | |
|
Instances
data PipelineExecutableInfoKHR Source #
VkPipelineExecutableInfoKHR - Structure describing a pipeline executable to query for associated statistics or internal representations
Valid Usage (Implicit)
See Also
VK_KHR_pipeline_executable_properties,
Pipeline
,
StructureType
,
getPipelineExecutableInternalRepresentationsKHR
,
getPipelineExecutableStatisticsKHR
PipelineExecutableInfoKHR | |
|
Instances
data PipelineExecutableStatisticKHR Source #
VkPipelineExecutableStatisticKHR - Structure describing a compile-time pipeline executable statistic
Valid Usage (Implicit)
See Also
VK_KHR_pipeline_executable_properties,
PipelineExecutableStatisticFormatKHR
,
PipelineExecutableStatisticValueKHR
,
StructureType
,
getPipelineExecutableStatisticsKHR
PipelineExecutableStatisticKHR | |
|
Instances
data PipelineExecutableInternalRepresentationKHR Source #
VkPipelineExecutableInternalRepresentationKHR - Structure describing the textual form of a pipeline executable internal representation
Description
If pData
is NULL
, then the size, in bytes, of the internal
representation data is returned in dataSize
. Otherwise, dataSize
must be the size of the buffer, in bytes, pointed to by pData
and on
return dataSize
is overwritten with the number of bytes of data
actually written to pData
including any trailing null character. If
dataSize
is less than the size, in bytes, of the internal
representation’s data, at most dataSize
bytes of data will be written
to pData
, and INCOMPLETE
will be returned
instead of SUCCESS
, to indicate that not
all the available representation was returned.
If isText
is TRUE
and pData
is not
NULL
and dataSize
is not zero, the last byte written to pData
will
be a null character.
Valid Usage (Implicit)
See Also
VK_KHR_pipeline_executable_properties,
Bool32
,
StructureType
,
getPipelineExecutableInternalRepresentationsKHR
PipelineExecutableInternalRepresentationKHR | |
|
Instances
data PipelineExecutableStatisticValueKHR Source #
Instances
peekPipelineExecutableStatisticValueKHR :: PipelineExecutableStatisticFormatKHR -> Ptr PipelineExecutableStatisticValueKHR -> IO PipelineExecutableStatisticValueKHR Source #
newtype PipelineExecutableStatisticFormatKHR Source #
VkPipelineExecutableStatisticFormatKHR - Enum describing a pipeline executable statistic
See Also
VK_KHR_pipeline_executable_properties,
PipelineExecutableStatisticKHR
Instances
pattern KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION :: forall a. Integral a => a Source #
type KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME = "VK_KHR_pipeline_executable_properties" Source #
pattern KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a Source #