| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Vulkan.Extensions.VK_KHR_pipeline_binary
Description
Name
VK_KHR_pipeline_binary - device extension
VK_KHR_pipeline_binary
- Name String
VK_KHR_pipeline_binary
- Extension Type
- Device extension
- Registered Extension Number
- 484
- Revision
- 1
- Ratification Status
- Ratified
- Extension and Version Dependencies
- VK_KHR_maintenance5 or Vulkan Version 1.4
- Contact
- Extension Proposal
- VK_KHR_pipeline_binary
Other Extension Metadata
- Last Modified Date
- 2024-07-01
- Contributors
- Stu Smith, AMD
- Tobias Hector, AMD
- Alan Harrison, AMD
- Maciej Jesionowski, AMD
- Younggwan Kim, Arm
- Jan-Harald Fredriksen, Arm
- Ting Wei, Arm
- Chris Glover, Google
- Shahbaz Youssefi, Google
- Jakub Kuderski, Google
- Piotr Byszewski, Mobica
- Piers Daniell, NVIDIA
- Ralph Potter, Samsung
- Matthew Netsch, Qualcomm
- Hans-Kristian Arntzen, Valve
- Samuel Pitoiset, Valve
- Tatsuyuki Ishi, Valve
Description
This extension provides a method to obtain binary data associated with individual pipelines such that applications can manage caching themselves instead of using VkPipelineCache objects.
New Object Types
New Commands
New Structures
PipelineBinaryDataInfoKHRPipelineBinaryDataKHRPipelineBinaryHandlesInfoKHRPipelineBinaryKeyKHRPipelineBinaryKeysAndDataKHRPipelineCreateInfoKHRReleaseCapturedPipelineDataInfoKHRExtending
DeviceCreateInfo:Extending
GraphicsPipelineCreateInfo,ComputePipelineCreateInfo,RayTracingPipelineCreateInfoKHR:Extending
PhysicalDeviceFeatures2,DeviceCreateInfo:Extending
PhysicalDeviceProperties2:
New Enum Constants
KHR_PIPELINE_BINARY_SPEC_VERSIONMAX_PIPELINE_BINARY_KEY_SIZE_KHRExtending
ObjectType:Extending
PipelineCreateFlagBits2:Extending
Result:Extending
StructureType:STRUCTURE_TYPE_DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_CREATE_INFO_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_DATA_INFO_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_HANDLES_INFO_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_INFO_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_KEY_KHRSTRUCTURE_TYPE_PIPELINE_CREATE_INFO_KHRSTRUCTURE_TYPE_RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHR
Version History
Revision 1, 2021-12-10 (Chris Glover)
- Initial draft.
See Also
No cross-references are available
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
- createPipelineBinariesKHR :: MonadIO io => Device -> PipelineBinaryCreateInfoKHR -> ("allocator" ::: Maybe AllocationCallbacks) -> io (Result, "binaries" ::: PipelineBinaryHandlesInfoKHR)
- destroyPipelineBinaryKHR :: MonadIO io => Device -> PipelineBinaryKHR -> ("allocator" ::: Maybe AllocationCallbacks) -> io ()
- getPipelineKeyKHR :: MonadIO io => Device -> ("pipelineCreateInfo" ::: Maybe PipelineCreateInfoKHR) -> io ("pipelineKey" ::: PipelineBinaryKeyKHR)
- getPipelineBinaryDataKHR :: MonadIO io => Device -> PipelineBinaryDataInfoKHR -> io (PipelineBinaryKeyKHR, "pipelineBinaryData" ::: ByteString)
- releaseCapturedPipelineDataKHR :: MonadIO io => Device -> ReleaseCapturedPipelineDataInfoKHR -> ("allocator" ::: Maybe AllocationCallbacks) -> io ()
- data PipelineBinaryCreateInfoKHR = PipelineBinaryCreateInfoKHR {}
- data PipelineBinaryHandlesInfoKHR = PipelineBinaryHandlesInfoKHR {}
- data PipelineBinaryDataKHR = PipelineBinaryDataKHR {}
- data PipelineBinaryKeysAndDataKHR = PipelineBinaryKeysAndDataKHR {}
- data PipelineBinaryKeyKHR = PipelineBinaryKeyKHR {
- keySize :: Word32
- key :: ByteString
- data PipelineBinaryInfoKHR = PipelineBinaryInfoKHR {}
- data ReleaseCapturedPipelineDataInfoKHR = ReleaseCapturedPipelineDataInfoKHR {}
- data PipelineBinaryDataInfoKHR = PipelineBinaryDataInfoKHR {}
- data PipelineCreateInfoKHR = PipelineCreateInfoKHR
- data PhysicalDevicePipelineBinaryFeaturesKHR = PhysicalDevicePipelineBinaryFeaturesKHR {}
- data DevicePipelineBinaryInternalCacheControlKHR = DevicePipelineBinaryInternalCacheControlKHR {}
- data PhysicalDevicePipelineBinaryPropertiesKHR = PhysicalDevicePipelineBinaryPropertiesKHR {}
- type KHR_PIPELINE_BINARY_SPEC_VERSION = 1
- pattern KHR_PIPELINE_BINARY_SPEC_VERSION :: Integral a => a
- type KHR_PIPELINE_BINARY_EXTENSION_NAME = "VK_KHR_pipeline_binary"
- pattern KHR_PIPELINE_BINARY_EXTENSION_NAME :: (Eq a, IsString a) => a
- newtype PipelineBinaryKHR = PipelineBinaryKHR Word64
- type MAX_PIPELINE_BINARY_KEY_SIZE_KHR = 32
- pattern MAX_PIPELINE_BINARY_KEY_SIZE_KHR :: Integral a => a
Documentation
createPipelineBinariesKHR Source #
Arguments
| :: MonadIO io | |
| => Device |
|
| -> PipelineBinaryCreateInfoKHR |
|
| -> ("allocator" ::: Maybe AllocationCallbacks) |
|
| -> io (Result, "binaries" ::: PipelineBinaryHandlesInfoKHR) |
vkCreatePipelineBinariesKHR - Create pipeline binaries from a pipeline or previously retrieved data
Description
The implementation will attempt to create all pipeline binaries. If creation fails for any pipeline binary, then:
- The corresponding entry in the
pPipelineBinariesoutput array will be filled withNULL_HANDLE. - The
Resultreturned bycreatePipelineBinariesKHRwill contain the error value for the first entry in the output array inpBinariescontainingNULL_HANDLE.
Valid Usage (Implicit)
-
devicemust be a validDevicehandle
-
pCreateInfomust be a valid pointer to a validPipelineBinaryCreateInfoKHRstructure - If
pAllocatoris notNULL,pAllocatormust be a valid pointer to a validAllocationCallbacksstructure -
pBinariesmust be a valid pointer to aPipelineBinaryHandlesInfoKHRstructure
Return Codes
See Also
VK_KHR_pipeline_binary,
AllocationCallbacks,
Device, PipelineBinaryCreateInfoKHR,
PipelineBinaryHandlesInfoKHR
destroyPipelineBinaryKHR Source #
Arguments
| :: MonadIO io | |
| => Device |
|
| -> PipelineBinaryKHR |
|
| -> ("allocator" ::: Maybe AllocationCallbacks) |
|
| -> io () |
vkDestroyPipelineBinaryKHR - Destroy a pipeline binary
Valid Usage
- If
AllocationCallbackswere provided whenpipelineBinarywas created, a compatible set of callbacks must be provided here
- If no
AllocationCallbackswere provided whenpipelineBinarywas created,pAllocatormust beNULL
Valid Usage (Implicit)
-
devicemust be a validDevicehandle
- If
pipelineBinaryis notNULL_HANDLE,pipelineBinarymust be a validPipelineBinaryKHRhandle - If
pAllocatoris notNULL,pAllocatormust be a valid pointer to a validAllocationCallbacksstructure - If
pipelineBinaryis a valid handle, it must have been created, allocated, or retrieved fromdevice
Host Synchronization
- Host access to
pipelineBinarymust be externally synchronized
See Also
VK_KHR_pipeline_binary,
AllocationCallbacks,
Device,
PipelineBinaryKHR
Arguments
| :: MonadIO io | |
| => Device |
|
| -> ("pipelineCreateInfo" ::: Maybe PipelineCreateInfoKHR) |
|
| -> io ("pipelineKey" ::: PipelineBinaryKeyKHR) |
vkGetPipelineKeyKHR - Generate the pipeline key from pipeline creation info
Description
If pPipelineCreateInfo is NULL, then the implementation must
return the global key that applies to all pipelines. If the key obtained
in this way changes between saving and restoring data obtained from
getPipelineBinaryDataKHR in a different
Device, then the application must assume that
the restored data is invalid and cannot be passed to
createPipelineBinariesKHR. Otherwise the application can assume the
data is still valid.
If pPipelineCreateInfo is not NULL, the key obtained functions as a
method to compare two pipeline creation info structures. Implementations
may not compare parts of a pipeline creation info which would not
contribute to the final binary output. If a shader module identifier is
used instead of a shader module, the pPipelineKey generated must be
equal to the key generated when using the shader module from which the
identifier was queried. If the content of two pPipelineKey are equal,
pipelines created with the two pPipelineCreateInfo->pNext create infos
must produce the same PipelineBinaryKHR
contents.
The pipeline key is distinct from pipeline binary key. Pipeline binary keys can only be obtained after compilation. The pipeline key is intended to optionally allow associating pipeline create info with multiple pipeline binary keys.
Valid Usage
- The
pNextchain ofpPipelineCreateInfomust not setPipelineBinaryInfoKHR::binaryCountto a value greater than0
Valid Usage (Implicit)
-
devicemust be a validDevicehandle
- If
pPipelineCreateInfois notNULL,pPipelineCreateInfomust be a valid pointer to a validPipelineCreateInfoKHRstructure -
pPipelineKeymust be a valid pointer to aPipelineBinaryKeyKHRstructure
Return Codes
See Also
VK_KHR_pipeline_binary,
Device, PipelineBinaryKeyKHR,
PipelineCreateInfoKHR
getPipelineBinaryDataKHR Source #
Arguments
| :: MonadIO io | |
| => Device |
|
| -> PipelineBinaryDataInfoKHR |
|
| -> io (PipelineBinaryKeyKHR, "pipelineBinaryData" ::: ByteString) |
vkGetPipelineBinaryDataKHR - Get the data store from a pipeline binary
Description
If pPipelineBinaryData is NULL, then the size of the data, in bytes,
that is required to store the binary is returned in
pPipelineBinaryDataSize. Otherwise, pPipelineBinaryDataSize must
contain the size of the buffer, in bytes, pointed to by
pPipelineBinaryData, and on return pPipelineBinaryDataSize is
overwritten with the size of the data, in bytes, that is required to
store the binary. If pPipelineBinaryDataSize is less than the size
that is required to store the binary, nothing is written to
pPipelineBinaryData and
ERROR_NOT_ENOUGH_SPACE_KHR will be
returned, instead of SUCCESS.
If the call returns one of the success return codes, the pipeline binary
key is written to pPipelineBinaryKey, regardless of whether
pPipelineBinaryData is NULL or not.
If
pipelineBinaryCompressedData
is FALSE, implementations should not
return compressed pipeline binary data to the application.
Valid Usage (Implicit)
-
devicemust be a validDevicehandle
-
pInfomust be a valid pointer to a validPipelineBinaryDataInfoKHRstructure -
pPipelineBinaryKeymust be a valid pointer to aPipelineBinaryKeyKHRstructure -
pPipelineBinaryDataSizemust be a valid pointer to asize_tvalue - If
the value referenced by
pPipelineBinaryDataSizeis not0, andpPipelineBinaryDatais notNULL,pPipelineBinaryDatamust be a valid pointer to an array ofpPipelineBinaryDataSizebytes
Return Codes
See Also
VK_KHR_pipeline_binary,
Device, PipelineBinaryDataInfoKHR,
PipelineBinaryKeyKHR
releaseCapturedPipelineDataKHR Source #
Arguments
| :: MonadIO io | |
| => Device |
|
| -> ReleaseCapturedPipelineDataInfoKHR |
|
| -> ("allocator" ::: Maybe AllocationCallbacks) |
|
| -> io () |
vkReleaseCapturedPipelineDataKHR - Release captured pipeline binary data
Description
The implementation may free any resources captured as a result of
creating the pipeline with
PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR
and put the pipeline into a state as if
PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR
had not been provided at pipeline creation time.
Any resources captured as a result of creating the pipeline with
PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR
are implicitly freed by destroyPipeline.
Valid Usage
- If
AllocationCallbackswere provided whenpipelinewas created, a compatible set of callbacks must be provided inpAllocator
- If no
AllocationCallbackswere provided whenpipelinewas created,pAllocatormust beNULL
Valid Usage (Implicit)
-
devicemust be a validDevicehandle
-
pInfomust be a valid pointer to a validReleaseCapturedPipelineDataInfoKHRstructure - If
pAllocatoris notNULL,pAllocatormust be a valid pointer to a validAllocationCallbacksstructure
Return Codes
See Also
VK_KHR_pipeline_binary,
AllocationCallbacks,
Device, ReleaseCapturedPipelineDataInfoKHR
data PipelineBinaryCreateInfoKHR Source #
VkPipelineBinaryCreateInfoKHR - Structure specifying where to retrieve data for pipeline binary creation
Description
When pPipelineCreateInfo is not NULL, an implementation will attempt
to retrieve pipeline binary data from an internal cache external to the
application if
pipelineBinaryInternalCache
is TRUE. Applications can use this to
determine if a pipeline can be created without compilation. If the
implementation fails to create a pipeline binary due to missing an
internal cache entry,
PIPELINE_BINARY_MISSING_KHR is returned. If
creation succeeds, the resulting binary can be used to create a
pipeline. PIPELINE_BINARY_MISSING_KHR may
be returned for any reason in this situation, even if creating a
pipeline binary with the same parameters that succeeded earlier.
If
pipelineBinaryPrecompiledInternalCache
is TRUE, the implementation may be
able to create pipeline binaries even when pPipelineCreateInfo has not
been used to create binaries before by the application.
On some platforms, internal pipeline caches may be pre-populated before running the application.
Valid Usage
- If
pipelineis notNULL_HANDLE,pipelinemust have been created withPIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR
- If
pipelineis notNULL_HANDLE,releaseCapturedPipelineDataKHRmust not have been called onpipelineprior to this command -
If
pipelineBinaryInternalCache
is
FALSEpPipelineCreateInfo must beNULL - If
devicewas created withDevicePipelineBinaryInternalCacheControlKHR::disableInternalCacheset toTRUE,pPipelineCreateInfomust beNULL - One and
only one of
pKeysAndDataInfo,pipeline, orpPipelineCreateInfomust be non-NULL - If
pPipelineCreateInfois notNULL, thepNextchain ofpPipelineCreateInfomust not setPipelineBinaryInfoKHR::binaryCountto a value greater than0
Valid Usage (Implicit)
-
sTypemust beSTRUCTURE_TYPE_PIPELINE_BINARY_CREATE_INFO_KHR
-
pNextmust beNULL - If
pKeysAndDataInfois notNULL,pKeysAndDataInfomust be a valid pointer to a validPipelineBinaryKeysAndDataKHRstructure - If
pipelineis notNULL_HANDLE,pipelinemust be a validPipelinehandle -
If
pPipelineCreateInfois notNULL,pPipelineCreateInfomust be a valid pointer to a validPipelineCreateInfoKHRstructure
See Also
VK_KHR_pipeline_binary,
Pipeline, PipelineBinaryKeysAndDataKHR,
PipelineCreateInfoKHR,
StructureType,
createPipelineBinariesKHR
Constructors
| PipelineBinaryCreateInfoKHR | |
Fields
| |
Instances
| Show PipelineBinaryCreateInfoKHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_pipeline_binary Methods showsPrec :: Int -> PipelineBinaryCreateInfoKHR -> ShowS # show :: PipelineBinaryCreateInfoKHR -> String # showList :: [PipelineBinaryCreateInfoKHR] -> ShowS # | |
| FromCStruct PipelineBinaryCreateInfoKHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_pipeline_binary | |
| ToCStruct PipelineBinaryCreateInfoKHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_pipeline_binary Methods withCStruct :: PipelineBinaryCreateInfoKHR -> (Ptr PipelineBinaryCreateInfoKHR -> IO b) -> IO b Source # pokeCStruct :: Ptr PipelineBinaryCreateInfoKHR -> PipelineBinaryCreateInfoKHR -> IO b -> IO b Source # withZeroCStruct :: (Ptr PipelineBinaryCreateInfoKHR -> IO b) -> IO b Source # pokeZeroCStruct :: Ptr PipelineBinaryCreateInfoKHR -> IO b -> IO b Source # cStructSize :: Int Source # | |
| Zero PipelineBinaryCreateInfoKHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_pipeline_binary Methods | |
data PipelineBinaryHandlesInfoKHR Source #
VkPipelineBinaryHandlesInfoKHR - Structure containing newly created pipeline binaries
Description
If pPipelineBinaries is NULL, the number of binaries that would be
created is returned in pipelineBinaryCount. Otherwise,
pipelineBinaryCount must be the number of entries in the
pPipelineBinaries array, and on return from
createPipelineBinariesKHR pipelineBinaryCount is overwritten with
the number of handles actually written to pPipelineBinaries. If the
value of pipelineBinaryCount is less than the number of binaries that
would have been created, at most pipelineBinaryCount handles will be
written to pPipelineBinaries and
INCOMPLETE will be returned instead of
SUCCESS, to indicate that
pPipelineBinaries was not large enough to create all the binaries.
Valid Usage (Implicit)
-
sTypemust beSTRUCTURE_TYPE_PIPELINE_BINARY_HANDLES_INFO_KHR
-
pNextmust beNULL - If
pipelineBinaryCountis not0, andpPipelineBinariesis notNULL,pPipelineBinariesmust be a valid pointer to an array ofpipelineBinaryCountPipelineBinaryKHRhandles
See Also
VK_KHR_pipeline_binary,
PipelineBinaryKHR,
StructureType,
createPipelineBinariesKHR
Constructors
| PipelineBinaryHandlesInfoKHR | |
Fields
| |
Instances
data PipelineBinaryDataKHR Source #
VkPipelineBinaryDataKHR - Structure specifying data and length of a pipeline binary
Valid Usage (Implicit)
See Also
Constructors
| PipelineBinaryDataKHR | |
Fields
| |
Instances
data PipelineBinaryKeysAndDataKHR Source #
VkPipelineBinaryKeysAndDataKHR - Structure specifying arrays of key and data pairs
Valid Usage (Implicit)
See Also
VK_KHR_pipeline_binary,
PipelineBinaryCreateInfoKHR, PipelineBinaryDataKHR,
PipelineBinaryKeyKHR
Constructors
| PipelineBinaryKeysAndDataKHR | |
Fields
| |
Instances
| Show PipelineBinaryKeysAndDataKHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_pipeline_binary Methods showsPrec :: Int -> PipelineBinaryKeysAndDataKHR -> ShowS # show :: PipelineBinaryKeysAndDataKHR -> String # showList :: [PipelineBinaryKeysAndDataKHR] -> ShowS # | |
| FromCStruct PipelineBinaryKeysAndDataKHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_pipeline_binary | |
| ToCStruct PipelineBinaryKeysAndDataKHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_pipeline_binary Methods withCStruct :: PipelineBinaryKeysAndDataKHR -> (Ptr PipelineBinaryKeysAndDataKHR -> IO b) -> IO b Source # pokeCStruct :: Ptr PipelineBinaryKeysAndDataKHR -> PipelineBinaryKeysAndDataKHR -> IO b -> IO b Source # withZeroCStruct :: (Ptr PipelineBinaryKeysAndDataKHR -> IO b) -> IO b Source # pokeZeroCStruct :: Ptr PipelineBinaryKeysAndDataKHR -> IO b -> IO b Source # cStructSize :: Int Source # | |
| Zero PipelineBinaryKeysAndDataKHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_pipeline_binary Methods | |
data PipelineBinaryKeyKHR Source #
VkPipelineBinaryKeyKHR - Structure specifying a key to a pipeline binary
Description
Any returned values beyond the first keySize bytes are undefined.
Implementations must return a keySize greater than 0, and
less-or-equal to
MAX_PIPELINE_BINARY_KEY_SIZE_KHR.
Two keys are considered equal if keySize is equal and the first
keySize bytes of key compare equal.
Implementations may return a different keySize for different
binaries.
Implementations should ensure that keySize is large enough to
uniquely identify a pipeline binary.
Valid Usage (Implicit)
See Also
VK_KHR_pipeline_binary,
PipelineBinaryKeysAndDataKHR,
StructureType,
getPipelineBinaryDataKHR, getPipelineKeyKHR
Constructors
| PipelineBinaryKeyKHR | |
Fields
| |
Instances
data PipelineBinaryInfoKHR Source #
VkPipelineBinaryInfoKHR - Structure specifying pipeline binaries to use during pipeline creation
Description
If a PipelineBinaryInfoKHR structure with a binaryCount greater than
0 is included in the pNext chain of any Vk*PipelineCreateInfo
structure when creating a pipeline, implementations must use the data
in pPipelineBinaries instead of recalculating it. Any shader module
identifiers, shader modules, or chained
ShaderModuleCreateInfo structures declared in
PipelineShaderStageCreateInfo instances,
are ignored. Any
ShaderDescriptorSetAndBindingMappingInfoEXT
in the pNext chains of
PipelineShaderStageCreateInfo instances
are ignored.
If this structure is not included in the pNext chain, it is equivalent
to specifying this structure with a binaryCount of 0.
Valid Usage
binaryCountand the order of the elements inpPipelineBinariesmust exactly match that returned bycreatePipelineBinariesKHRfor the matchingVk*PipelineCreateInfostructure and itspNextchain, ignoring the presence of thePipelineBinaryInfoKHRstructure, the presence of thePIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHRflag, and absence of any shader module identifiers, shader modules, orShaderModuleCreateInfostructures, for the same global pipeline key, from either:PipelineBinaryCreateInfoKHR::pPipelineCreateInfo, orPipelineBinaryCreateInfoKHR::pipeline
Valid Usage (Implicit)
-
sTypemust beSTRUCTURE_TYPE_PIPELINE_BINARY_INFO_KHR
- If
binaryCountis not0,pPipelineBinariesmust be a valid pointer to an array ofbinaryCountvalidPipelineBinaryKHRhandles
See Also
Constructors
| PipelineBinaryInfoKHR | |
Fields
| |
Instances
| Show PipelineBinaryInfoKHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_pipeline_binary Methods showsPrec :: Int -> PipelineBinaryInfoKHR -> ShowS # show :: PipelineBinaryInfoKHR -> String # showList :: [PipelineBinaryInfoKHR] -> ShowS # | |
| FromCStruct PipelineBinaryInfoKHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_pipeline_binary Methods peekCStruct :: Ptr PipelineBinaryInfoKHR -> IO PipelineBinaryInfoKHR Source # | |
| ToCStruct PipelineBinaryInfoKHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_pipeline_binary Methods withCStruct :: PipelineBinaryInfoKHR -> (Ptr PipelineBinaryInfoKHR -> IO b) -> IO b Source # pokeCStruct :: Ptr PipelineBinaryInfoKHR -> PipelineBinaryInfoKHR -> IO b -> IO b Source # withZeroCStruct :: (Ptr PipelineBinaryInfoKHR -> IO b) -> IO b Source # pokeZeroCStruct :: Ptr PipelineBinaryInfoKHR -> IO b -> IO b Source # cStructSize :: Int Source # | |
| Zero PipelineBinaryInfoKHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_pipeline_binary Methods | |
data ReleaseCapturedPipelineDataInfoKHR Source #
VkReleaseCapturedPipelineDataInfoKHR - Structure specifying a pipeline whose captured data is to be released
Valid Usage
-
pipelinemust have been created withPIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR
-
pipelinemust not have been used in a previous call toreleaseCapturedPipelineDataKHR
Valid Usage (Implicit)
-
sTypemust beSTRUCTURE_TYPE_RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHR
-
pNextmust beNULL -
pipelinemust be a validPipelinehandle
Host Synchronization
- Host access to
pipelinemust be externally synchronized
See Also
VK_KHR_pipeline_binary,
Pipeline,
StructureType,
releaseCapturedPipelineDataKHR
Constructors
| ReleaseCapturedPipelineDataInfoKHR | |
Instances
data PipelineBinaryDataInfoKHR Source #
VkPipelineBinaryDataInfoKHR - Structure specifying a pipeline binary to retrieve binary data from
Valid Usage (Implicit)
See Also
VK_KHR_pipeline_binary,
PipelineBinaryKHR,
StructureType,
getPipelineBinaryDataKHR
Constructors
| PipelineBinaryDataInfoKHR | |
Fields
| |
Instances
data PipelineCreateInfoKHR Source #
VkPipelineCreateInfoKHR - Structure specifying a pipeline createinfo chain
Valid Usage (Implicit)
See Also
VK_KHR_pipeline_binary,
PipelineBinaryCreateInfoKHR,
StructureType, getPipelineKeyKHR
Constructors
| PipelineCreateInfoKHR |
Instances
data PhysicalDevicePipelineBinaryFeaturesKHR Source #
VkPhysicalDevicePipelineBinaryFeaturesKHR - Structure describing support for pipeline binaries
Members
This structure describes the following feature:
Description
If the PhysicalDevicePipelineBinaryFeaturesKHR 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. If the application wishes to use a
Device with any features described by
PhysicalDevicePipelineBinaryFeaturesKHR, it must add an instance of
the structure, with the desired feature members set to
TRUE, to the pNext chain of
DeviceCreateInfo when creating the
Device.
Valid Usage (Implicit)
See Also
Constructors
| PhysicalDevicePipelineBinaryFeaturesKHR | |
Fields
| |
Instances
data DevicePipelineBinaryInternalCacheControlKHR Source #
VkDevicePipelineBinaryInternalCacheControlKHR - Structure specifying parameter to disable the internal pipeline cache
Description
If the DeviceCreateInfo::pNext chain does not
include this structure, then disableInternalCache defaults to
FALSE.
Valid Usage
-
If
PhysicalDevicePipelineBinaryPropertiesKHR::pipelineBinaryInternalCacheControlisFALSE,disableInternalCachemust beFALSE
Valid Usage (Implicit)
See Also
Constructors
| DevicePipelineBinaryInternalCacheControlKHR | |
Fields
| |
Instances
data PhysicalDevicePipelineBinaryPropertiesKHR Source #
VkPhysicalDevicePipelineBinaryPropertiesKHR - Structure describing properties about the pipeline binary implementation
Description
These properties tend to be platform specific and may change depending
on external configuration which is outside the scope of this
specification. These properties are intended to guide applications when
implementations have dedicated caching solutions available. In
particular, if the pipelineBinaryPrefersInternalCache limit is
exposed, relying on the internal cache may provide some advantage
compared to an application-specific solution. An application with its
own dedicated solution may still use its own caching system even with
this limit exposed.
If the PhysicalDevicePipelineBinaryPropertiesKHR structure is included
in the pNext chain of the
PhysicalDeviceProperties2
structure passed to
getPhysicalDeviceProperties2,
it is filled in with each corresponding implementation-dependent
property.
Valid Usage (Implicit)
See Also
Constructors
| PhysicalDevicePipelineBinaryPropertiesKHR | |
Fields
| |
Instances
type KHR_PIPELINE_BINARY_SPEC_VERSION = 1 Source #
pattern KHR_PIPELINE_BINARY_SPEC_VERSION :: Integral a => a Source #
type KHR_PIPELINE_BINARY_EXTENSION_NAME = "VK_KHR_pipeline_binary" Source #
pattern KHR_PIPELINE_BINARY_EXTENSION_NAME :: (Eq a, IsString a) => a Source #
newtype PipelineBinaryKHR Source #
VkPipelineBinaryKHR - Opaque handle to a pipeline binary object
See Also
VK_DEFINE_NON_DISPATCHABLE_HANDLE,
VK_KHR_pipeline_binary,
PipelineBinaryDataInfoKHR,
PipelineBinaryHandlesInfoKHR,
PipelineBinaryInfoKHR,
destroyPipelineBinaryKHR
Constructors
| PipelineBinaryKHR Word64 |
Instances
type MAX_PIPELINE_BINARY_KEY_SIZE_KHR = 32 Source #
pattern MAX_PIPELINE_BINARY_KEY_SIZE_KHR :: Integral a => a Source #