| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Vulkan.Extensions.VK_KHR_pipeline_executable_properties
Description
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
PipelineExecutableInternalRepresentationKHRPipelineExecutablePropertiesKHRPipelineExecutableStatisticKHRPipelineInfoKHRExtending
PhysicalDeviceFeatures2,DeviceCreateInfo:
New Unions
New Enums
New Enum Constants
KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSIONExtending
PipelineCreateFlagBits:Extending
StructureType:STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHRSTRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHRSTRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHRSTRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHRSTRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHRSTRUCTURE_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 #
Arguments
| :: 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)
-
devicemust be a validDevicehandle
-
pPipelineInfomust be a valid pointer to a validPipelineInfoKHRstructure -
pExecutableCountmust be a valid pointer to auint32_tvalue - If
the value referenced by
pExecutableCountis not0, andpPropertiesis notNULL,pPropertiesmust be a valid pointer to an array ofpExecutableCountPipelineExecutablePropertiesKHRstructures
Return Codes
See Also
getPipelineExecutableStatisticsKHR Source #
Arguments
| :: 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
-
pipelinemember ofpExecutableInfomust have been created withdevice -
pipelinemember ofpExecutableInfomust have been created withPIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHRset in theflagsfield ofGraphicsPipelineCreateInfoorComputePipelineCreateInfo
Valid Usage (Implicit)
-
devicemust be a validDevicehandle
-
pExecutableInfomust be a valid pointer to a validPipelineExecutableInfoKHRstructure -
pStatisticCountmust be a valid pointer to auint32_tvalue - If
the value referenced by
pStatisticCountis not0, andpStatisticsis notNULL,pStatisticsmust be a valid pointer to an array ofpStatisticCountPipelineExecutableStatisticKHRstructures
Return Codes
See Also
Device, PipelineExecutableInfoKHR,
PipelineExecutableStatisticKHR
getPipelineExecutableInternalRepresentationsKHR Source #
Arguments
| :: 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
-
pipelinemember ofpExecutableInfomust have been created withdevice -
pipelinemember ofpExecutableInfomust have been created withPIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHRset in theflagsfield ofGraphicsPipelineCreateInfoorComputePipelineCreateInfo
Valid Usage (Implicit)
-
devicemust be a validDevicehandle
-
pExecutableInfomust be a valid pointer to a validPipelineExecutableInfoKHRstructure -
pInternalRepresentationCountmust be a valid pointer to auint32_tvalue -
If the value referenced by
pInternalRepresentationCountis not0, andpInternalRepresentationsis notNULL,pInternalRepresentationsmust be a valid pointer to an array ofpInternalRepresentationCountPipelineExecutableInternalRepresentationKHRstructures
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
Constructors
| PhysicalDevicePipelineExecutablePropertiesFeaturesKHR | |
Fields | |
Instances
data PipelineInfoKHR Source #
VkPipelineInfoKHR - Structure describing a pipeline
Valid Usage (Implicit)
See Also
Constructors
| PipelineInfoKHR | |
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
Constructors
| PipelineExecutablePropertiesKHR | |
Fields
| |
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
Constructors
| PipelineExecutableInfoKHR | |
Fields
| |
Instances
data PipelineExecutableStatisticKHR Source #
VkPipelineExecutableStatisticKHR - Structure describing a compile-time pipeline executable statistic
Valid Usage (Implicit)
See Also
PipelineExecutableStatisticFormatKHR,
PipelineExecutableStatisticValueKHR,
StructureType,
getPipelineExecutableStatisticsKHR
Constructors
| PipelineExecutableStatisticKHR | |
Fields
| |
Instances
| Show PipelineExecutableStatisticKHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_pipeline_executable_properties Methods showsPrec :: Int -> PipelineExecutableStatisticKHR -> ShowS # show :: PipelineExecutableStatisticKHR -> String # showList :: [PipelineExecutableStatisticKHR] -> ShowS # | |
| FromCStruct PipelineExecutableStatisticKHR Source # | |
| ToCStruct PipelineExecutableStatisticKHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_pipeline_executable_properties Methods withCStruct :: PipelineExecutableStatisticKHR -> (Ptr PipelineExecutableStatisticKHR -> IO b) -> IO b Source # pokeCStruct :: Ptr PipelineExecutableStatisticKHR -> PipelineExecutableStatisticKHR -> IO b -> IO b Source # withZeroCStruct :: (Ptr PipelineExecutableStatisticKHR -> IO b) -> IO b Source # pokeZeroCStruct :: Ptr PipelineExecutableStatisticKHR -> IO b -> IO b Source # cStructSize :: Int Source # | |
| Zero PipelineExecutableStatisticKHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_pipeline_executable_properties Methods | |
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
Constructors
| PipelineExecutableInternalRepresentationKHR | |
Fields
| |
Instances
data PipelineExecutableStatisticValueKHR Source #
Instances
peekPipelineExecutableStatisticValueKHR :: PipelineExecutableStatisticFormatKHR -> Ptr PipelineExecutableStatisticValueKHR -> IO PipelineExecutableStatisticValueKHR Source #
newtype PipelineExecutableStatisticFormatKHR Source #
VkPipelineExecutableStatisticFormatKHR - Enum describing a pipeline executable statistic
See Also
Constructors
| PipelineExecutableStatisticFormatKHR Int32 |
Bundled Patterns
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 #