Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Name
VK_EXT_pipeline_properties - device extension
VK_EXT_pipeline_properties
- Name String
VK_EXT_pipeline_properties
- Extension Type
- Device extension
- Registered Extension Number
- 373
- Revision
- 1
- Ratification Status
- Not ratified
- Extension and Version Dependencies
- VK_KHR_get_physical_device_properties2
- Contact
Other Extension Metadata
- Last Modified Date
- 2022-04-19
- IP Status
- No known IP claims.
- Contributors
- Mukund Keshava, NVIDIA
- Daniel Koch, NVIDIA
- Mark Bellamy, Arm
Description
Vulkan SC requires offline compilation of pipelines. In order to support this, the pipeline state is represented in a JSON schema that is read by an offline tool for compilation.
One method of developing a Vulkan SC application is to author a Vulkan
application and use a layer to record and serialize the pipeline state
and shaders for offline compilation. Each pipeline is represented by a
separate JSON file, and can be identified with a pipelineIdentifier
.
Once the pipelines have been compiled by the offline pipeline cache
compiler, the Vulkan SC application can then use this
pipelineIdentifier
for identifying the pipeline via Vulkan SC’s
VkPipelineIdentifierInfo
structure.
This extension allows the Vulkan application to query the
pipelineIdentifier
associated with each pipeline so that the
application can store this with its pipeline metadata and the Vulkan SC
application will then use to map the same state to an entry in the
Vulkan SC pipeline cache.
It is expected that this extension will initially be implemented in the json generation layer, although we can envision that there might be future uses for it in native Vulkan drivers as well.
New Commands
New Structures
New Enum Constants
Issues
- This extension does not make sense on a strict Vulkan SC implementation. It may however be of potential use in a non-strict Vulkan SC implementation. Should this extension be enabled as part of Vulkan SC as well?
RESOLVED: No. This extension will not be enabled for Vulkan SC.
- This is intended to be a general pipeline properties query, but is currently only retrieving the pipeline identifier. Should the pipeline identifier query be mandatory for this extension and for all queries using this entry point?
RESOLVED: Use BaseOutStructure
for the
return parameter. Currently this is required to actually be a
PipelinePropertiesIdentifierEXT
structure, but that could be relaxed
in the future to allow other structure types or to allow other
structures to be chained in along with this one.
- Should there be a feature structure? Should it be required?
RESOLVED: Add a feature structure, and a feature for querying pipeline identifier, but allow it to be optional so that this extension can be used as the basis for other pipeline property queries without requiring the pipeline identifier to be supported.
Version History
Revision 1, 2022-04-19 (Mukund Keshava, Daniel Koch)
- Initial draft
See Also
PhysicalDevicePipelinePropertiesFeaturesEXT
, PipelineInfoEXT
,
PipelinePropertiesIdentifierEXT
, getPipelinePropertiesEXT
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
- getPipelinePropertiesEXT :: forall io. MonadIO io => Device -> PipelineInfoEXT -> ("pipelineProperties" ::: Ptr BaseOutStructure) -> io ()
- pattern STRUCTURE_TYPE_PIPELINE_INFO_EXT :: StructureType
- data PipelinePropertiesIdentifierEXT = PipelinePropertiesIdentifierEXT {}
- data PhysicalDevicePipelinePropertiesFeaturesEXT = PhysicalDevicePipelinePropertiesFeaturesEXT {}
- type PipelineInfoEXT = PipelineInfoKHR
- type EXT_PIPELINE_PROPERTIES_SPEC_VERSION = 1
- pattern EXT_PIPELINE_PROPERTIES_SPEC_VERSION :: forall a. Integral a => a
- type EXT_PIPELINE_PROPERTIES_EXTENSION_NAME = "VK_EXT_pipeline_properties"
- pattern EXT_PIPELINE_PROPERTIES_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
- data PipelineInfoKHR = PipelineInfoKHR {}
Documentation
getPipelinePropertiesEXT Source #
:: forall io. MonadIO io | |
=> Device |
|
-> PipelineInfoEXT |
|
-> ("pipelineProperties" ::: Ptr BaseOutStructure) |
|
-> io () |
vkGetPipelinePropertiesEXT - Query pipeline properties
Description
To query a pipeline’s pipelineIdentifier
pass a
PipelinePropertiesIdentifierEXT
structure in pPipelineProperties
.
Each pipeline is associated with a pipelineIdentifier
and the
identifier is implementation specific.
Valid Usage
-
pPipelineProperties
must be a valid pointer to aPipelinePropertiesIdentifierEXT
structure - The pipelinePropertiesIdentifier feature must be enabled
Valid Usage (Implicit)
-
device
must be a validDevice
handle
-
pPipelineInfo
must be a valid pointer to a validPipelineInfoEXT
structure
Return Codes
See Also
VK_EXT_pipeline_properties,
BaseOutStructure
,
Device
, PipelineInfoEXT
pattern STRUCTURE_TYPE_PIPELINE_INFO_EXT :: StructureType Source #
data PipelinePropertiesIdentifierEXT Source #
VkPipelinePropertiesIdentifierEXT - Structure used to retrieve pipeline properties
Valid Usage (Implicit)
See Also
PipelinePropertiesIdentifierEXT | |
|
Instances
data PhysicalDevicePipelinePropertiesFeaturesEXT Source #
VkPhysicalDevicePipelinePropertiesFeaturesEXT - Structure describing what pipeline properties are supported
Members
This structure describes the following feature:
Description
If the PhysicalDevicePipelinePropertiesFeaturesEXT
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. PhysicalDevicePipelinePropertiesFeaturesEXT
can also be
used in the pNext
chain of DeviceCreateInfo
to
selectively enable these features.
Valid Usage (Implicit)
See Also
Instances
type PipelineInfoEXT = PipelineInfoKHR Source #
type EXT_PIPELINE_PROPERTIES_SPEC_VERSION = 1 Source #
pattern EXT_PIPELINE_PROPERTIES_SPEC_VERSION :: forall a. Integral a => a Source #
type EXT_PIPELINE_PROPERTIES_EXTENSION_NAME = "VK_EXT_pipeline_properties" Source #
pattern EXT_PIPELINE_PROPERTIES_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a Source #
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