| Safe Haskell | Safe-Inferred |
|---|---|
| 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
- Ratification Status
- Ratified
- Extension and Version Dependencies
- 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
- Faith 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 (Faith 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 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)
-
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
VK_KHR_pipeline_executable_properties,
Device, PipelineExecutablePropertiesKHR,
PipelineInfoKHR
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
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
pipelinemember ofpExecutableInfomust have been created withdevice - The
pipelinemember ofpExecutableInfomust have been created withPIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR
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
VK_KHR_pipeline_executable_properties,
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
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
pipelinemember ofpExecutableInfomust have been created withdevice -
The
pipelinemember ofpExecutableInfomust have been created withPIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR
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
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
Constructors
| PhysicalDevicePipelineExecutablePropertiesFeaturesKHR | |
Fields | |
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
Constructors
| PipelineInfoKHR | |
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
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
VK_KHR_pipeline_executable_properties,
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
VK_KHR_pipeline_executable_properties,
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’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
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
VK_KHR_pipeline_executable_properties,
PipelineExecutableStatisticKHR
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 #