vulkan-3.24.4: Bindings to the Vulkan graphics API.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Vulkan.Extensions.VK_EXT_pipeline_properties

Description

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
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
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

  1. 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.

  1. 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.

  1. 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

Documentation

getPipelinePropertiesEXT Source #

Arguments

:: forall io. MonadIO io 
=> Device

device is the logical device that created the pipeline.

-> PipelineInfoEXT

pPipelineInfo is a pointer to a PipelineInfoEXT structure which describes the pipeline being queried.

-> ("pipelineProperties" ::: Ptr BaseOutStructure)

pPipelineProperties is a pointer to a BaseOutStructure structure in which the pipeline properties will be written.

-> 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

  • The pipeline member of pPipelineInfo must have been created with device

Valid Usage (Implicit)

  • device must be a valid Device handle
  • pPipelineInfo must be a valid pointer to a valid PipelineInfoEXT structure

Return Codes

Success
Failure

See Also

VK_EXT_pipeline_properties, BaseOutStructure, Device, PipelineInfoEXT

data PipelinePropertiesIdentifierEXT Source #

VkPipelinePropertiesIdentifierEXT - Structure used to retrieve pipeline properties

Valid Usage (Implicit)

See Also

VK_EXT_pipeline_properties, StructureType

Constructors

PipelinePropertiesIdentifierEXT 

Fields

Instances

Instances details
Storable PipelinePropertiesIdentifierEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_pipeline_properties

Show PipelinePropertiesIdentifierEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_pipeline_properties

FromCStruct PipelinePropertiesIdentifierEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_pipeline_properties

ToCStruct PipelinePropertiesIdentifierEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_pipeline_properties

Zero PipelinePropertiesIdentifierEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_pipeline_properties

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

VK_EXT_pipeline_properties, Bool32, StructureType

Constructors

PhysicalDevicePipelinePropertiesFeaturesEXT 

Fields

Instances

Instances details
Storable PhysicalDevicePipelinePropertiesFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_pipeline_properties

Show PhysicalDevicePipelinePropertiesFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_pipeline_properties

Eq PhysicalDevicePipelinePropertiesFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_pipeline_properties

FromCStruct PhysicalDevicePipelinePropertiesFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_pipeline_properties

ToCStruct PhysicalDevicePipelinePropertiesFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_pipeline_properties

Zero PhysicalDevicePipelinePropertiesFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_pipeline_properties

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 #

Constructors

PipelineInfoKHR 

Fields

Instances

Instances details
Storable PipelineInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_pipeline_executable_properties

Show PipelineInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_pipeline_executable_properties

Eq PipelineInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_pipeline_executable_properties

FromCStruct PipelineInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_pipeline_executable_properties

ToCStruct PipelineInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_pipeline_executable_properties

Zero PipelineInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_pipeline_executable_properties