Safe Haskell | None |
---|---|
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 Vulkan 1.0
- Requires
VK_KHR_get_physical_device_properties2
- 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 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
executables associated with the pipeline, at most pExecutableCount
structures will be written and getPipelineExecutablePropertiesKHR
will
return INCOMPLETE
.
Valid Usage
- pipelineExecutableInfo 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
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
getPipelineExecutableStatisticsKHR
will return
INCOMPLETE
.
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 ofGraphicsPipelineCreateInfo
orComputePipelineCreateInfo
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
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
getPipelineExecutableInternalRepresentationsKHR
will return
INCOMPLETE
.
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
- pipelineExecutableInfo 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 ofGraphicsPipelineCreateInfo
orComputePipelineCreateInfo
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
Device
, PipelineExecutableInfoKHR
,
PipelineExecutableInternalRepresentationKHR
data PhysicalDevicePipelineExecutablePropertiesFeaturesKHR Source #
VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR - Structure describing whether pipeline executable properties are available
Members
The members of the
PhysicalDevicePipelineExecutablePropertiesFeaturesKHR
structure
describe the following features:
Description
If the PhysicalDevicePipelineExecutablePropertiesFeaturesKHR
structure
is included in the pNext
chain of
PhysicalDeviceFeatures2
,
it is filled with values indicating whether the feature is supported.
PhysicalDevicePipelineExecutablePropertiesFeaturesKHR
can also be
included in the pNext
chain of DeviceCreateInfo
to enable features.
Valid Usage (Implicit)
See Also
Instances
data PipelineInfoKHR Source #
VkPipelineInfoKHR - Structure describing a pipeline
Valid Usage (Implicit)
See Also
Instances
data PipelineExecutablePropertiesKHR Source #
VkPipelineExecutablePropertiesKHR - Structure describing a pipeline executable
Description
The stages
field may be zero or it may contain one or more bits
describing the stages principally used to compile this pipeline. 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 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
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
Pipeline
,
StructureType
,
getPipelineExecutableInternalRepresentationsKHR
,
getPipelineExecutableStatisticsKHR
PipelineExecutableInfoKHR | |
|
Instances
data PipelineExecutableStatisticKHR Source #
VkPipelineExecutableStatisticKHR - Structure describing a compile-time pipeline executable statistic
Valid Usage (Implicit)
See Also
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 data, at most dataSize
bytes of data will be written to
pData
and getPipelineExecutableInternalRepresentationsKHR
will
return INCOMPLETE
. 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
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
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 #