Class KHRPipelineBinary
- Name String
VK_KHR_pipeline_binary- Extension Type
- Device extension
- Registered Extension Number
- 484
- Revision
- 1
- Extension and Version Dependencies
VK_KHR_maintenance5- Contact
- Stu Smith stu-s
- 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
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intExtendsVkResult.static final StringThe extension name.static final intThe extension specification version.static final intVK_MAX_PIPELINE_BINARY_KEY_SIZE_KHRstatic final intExtendsVkObjectType.static final intExtendsVkResult.static final longExtendsVkPipelineCreateFlagBits2.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType. -
Method Summary
Modifier and TypeMethodDescriptionstatic intnvkCreatePipelineBinariesKHR(org.lwjgl.vulkan.VkDevice device, long pCreateInfo, long pAllocator, long pBinaries) Unsafe version of:CreatePipelineBinariesKHRstatic voidnvkDestroyPipelineBinaryKHR(org.lwjgl.vulkan.VkDevice device, long pipelineBinary, long pAllocator) Unsafe version of:DestroyPipelineBinaryKHRstatic intnvkGetPipelineBinaryDataKHR(org.lwjgl.vulkan.VkDevice device, long pInfo, long pPipelineBinaryKey, long pPipelineBinaryDataSize, long pPipelineBinaryData) Unsafe version of:GetPipelineBinaryDataKHRstatic intnvkGetPipelineKeyKHR(org.lwjgl.vulkan.VkDevice device, long pPipelineCreateInfo, long pPipelineKey) Unsafe version of:GetPipelineKeyKHRstatic intnvkReleaseCapturedPipelineDataKHR(org.lwjgl.vulkan.VkDevice device, long pInfo, long pAllocator) Unsafe version of:ReleaseCapturedPipelineDataKHRstatic intvkCreatePipelineBinariesKHR(org.lwjgl.vulkan.VkDevice device, VkPipelineBinaryCreateInfoKHR pCreateInfo, @Nullable VkAllocationCallbacks pAllocator, VkPipelineBinaryHandlesInfoKHR pBinaries) Create pipeline binaries from a pipeline or previously retrieved data.static voidvkDestroyPipelineBinaryKHR(org.lwjgl.vulkan.VkDevice device, long pipelineBinary, @Nullable VkAllocationCallbacks pAllocator) Destroy a pipeline binary.static intvkGetPipelineBinaryDataKHR(org.lwjgl.vulkan.VkDevice device, VkPipelineBinaryDataInfoKHR pInfo, VkPipelineBinaryKeyKHR pPipelineBinaryKey, org.lwjgl.PointerBuffer pPipelineBinaryDataSize, @Nullable ByteBuffer pPipelineBinaryData) Get the data store from a pipeline binary.static intvkGetPipelineKeyKHR(org.lwjgl.vulkan.VkDevice device, @Nullable VkPipelineCreateInfoKHR pPipelineCreateInfo, VkPipelineBinaryKeyKHR pPipelineKey) Generate the pipeline key from pipeline creation info.static intvkReleaseCapturedPipelineDataKHR(org.lwjgl.vulkan.VkDevice device, VkReleaseCapturedPipelineDataInfoKHR pInfo, @Nullable VkAllocationCallbacks pAllocator) Release captured pipeline binary data.
-
Field Details
-
VK_KHR_PIPELINE_BINARY_SPEC_VERSION
public static final int VK_KHR_PIPELINE_BINARY_SPEC_VERSIONThe extension specification version.- See Also:
-
VK_KHR_PIPELINE_BINARY_EXTENSION_NAME
The extension name.- See Also:
-
VK_MAX_PIPELINE_BINARY_KEY_SIZE_KHR
public static final int VK_MAX_PIPELINE_BINARY_KEY_SIZE_KHRVK_MAX_PIPELINE_BINARY_KEY_SIZE_KHR- See Also:
-
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR
public static final int VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHRExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_CREATE_INFO_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_INFO_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_KEY_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHRSTRUCTURE_TYPE_RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_DATA_INFO_KHRSTRUCTURE_TYPE_PIPELINE_CREATE_INFO_KHRSTRUCTURE_TYPE_DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_HANDLES_INFO_KHR
- See Also:
-
VK_STRUCTURE_TYPE_PIPELINE_BINARY_CREATE_INFO_KHR
public static final int VK_STRUCTURE_TYPE_PIPELINE_BINARY_CREATE_INFO_KHRExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_CREATE_INFO_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_INFO_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_KEY_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHRSTRUCTURE_TYPE_RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_DATA_INFO_KHRSTRUCTURE_TYPE_PIPELINE_CREATE_INFO_KHRSTRUCTURE_TYPE_DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_HANDLES_INFO_KHR
- See Also:
-
VK_STRUCTURE_TYPE_PIPELINE_BINARY_INFO_KHR
public static final int VK_STRUCTURE_TYPE_PIPELINE_BINARY_INFO_KHRExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_CREATE_INFO_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_INFO_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_KEY_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHRSTRUCTURE_TYPE_RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_DATA_INFO_KHRSTRUCTURE_TYPE_PIPELINE_CREATE_INFO_KHRSTRUCTURE_TYPE_DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_HANDLES_INFO_KHR
- See Also:
-
VK_STRUCTURE_TYPE_PIPELINE_BINARY_KEY_KHR
public static final int VK_STRUCTURE_TYPE_PIPELINE_BINARY_KEY_KHRExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_CREATE_INFO_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_INFO_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_KEY_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHRSTRUCTURE_TYPE_RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_DATA_INFO_KHRSTRUCTURE_TYPE_PIPELINE_CREATE_INFO_KHRSTRUCTURE_TYPE_DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_HANDLES_INFO_KHR
- See Also:
-
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR
public static final int VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHRExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_CREATE_INFO_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_INFO_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_KEY_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHRSTRUCTURE_TYPE_RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_DATA_INFO_KHRSTRUCTURE_TYPE_PIPELINE_CREATE_INFO_KHRSTRUCTURE_TYPE_DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_HANDLES_INFO_KHR
- See Also:
-
VK_STRUCTURE_TYPE_RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHR
public static final int VK_STRUCTURE_TYPE_RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHRExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_CREATE_INFO_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_INFO_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_KEY_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHRSTRUCTURE_TYPE_RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_DATA_INFO_KHRSTRUCTURE_TYPE_PIPELINE_CREATE_INFO_KHRSTRUCTURE_TYPE_DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_HANDLES_INFO_KHR
- See Also:
-
VK_STRUCTURE_TYPE_PIPELINE_BINARY_DATA_INFO_KHR
public static final int VK_STRUCTURE_TYPE_PIPELINE_BINARY_DATA_INFO_KHRExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_CREATE_INFO_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_INFO_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_KEY_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHRSTRUCTURE_TYPE_RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_DATA_INFO_KHRSTRUCTURE_TYPE_PIPELINE_CREATE_INFO_KHRSTRUCTURE_TYPE_DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_HANDLES_INFO_KHR
- See Also:
-
VK_STRUCTURE_TYPE_PIPELINE_CREATE_INFO_KHR
public static final int VK_STRUCTURE_TYPE_PIPELINE_CREATE_INFO_KHRExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_CREATE_INFO_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_INFO_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_KEY_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHRSTRUCTURE_TYPE_RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_DATA_INFO_KHRSTRUCTURE_TYPE_PIPELINE_CREATE_INFO_KHRSTRUCTURE_TYPE_DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_HANDLES_INFO_KHR
- See Also:
-
VK_STRUCTURE_TYPE_DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR
public static final int VK_STRUCTURE_TYPE_DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHRExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_CREATE_INFO_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_INFO_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_KEY_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHRSTRUCTURE_TYPE_RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_DATA_INFO_KHRSTRUCTURE_TYPE_PIPELINE_CREATE_INFO_KHRSTRUCTURE_TYPE_DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_HANDLES_INFO_KHR
- See Also:
-
VK_STRUCTURE_TYPE_PIPELINE_BINARY_HANDLES_INFO_KHR
public static final int VK_STRUCTURE_TYPE_PIPELINE_BINARY_HANDLES_INFO_KHRExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_CREATE_INFO_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_INFO_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_KEY_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHRSTRUCTURE_TYPE_RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_DATA_INFO_KHRSTRUCTURE_TYPE_PIPELINE_CREATE_INFO_KHRSTRUCTURE_TYPE_DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHRSTRUCTURE_TYPE_PIPELINE_BINARY_HANDLES_INFO_KHR
- See Also:
-
VK_OBJECT_TYPE_PIPELINE_BINARY_KHR
public static final int VK_OBJECT_TYPE_PIPELINE_BINARY_KHRExtendsVkObjectType.- See Also:
-
VK_PIPELINE_BINARY_MISSING_KHR
public static final int VK_PIPELINE_BINARY_MISSING_KHR- See Also:
-
VK_ERROR_NOT_ENOUGH_SPACE_KHR
public static final int VK_ERROR_NOT_ENOUGH_SPACE_KHR- See Also:
-
VK_PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR
public static final long VK_PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHRExtendsVkPipelineCreateFlagBits2.- See Also:
-
-
Method Details
-
nvkCreatePipelineBinariesKHR
public static int nvkCreatePipelineBinariesKHR(org.lwjgl.vulkan.VkDevice device, long pCreateInfo, long pAllocator, long pBinaries) Unsafe version of:CreatePipelineBinariesKHR -
vkCreatePipelineBinariesKHR
public static int vkCreatePipelineBinariesKHR(org.lwjgl.vulkan.VkDevice device, VkPipelineBinaryCreateInfoKHR pCreateInfo, @Nullable VkAllocationCallbacks pAllocator, VkPipelineBinaryHandlesInfoKHR pBinaries) Create pipeline binaries from a pipeline or previously retrieved data.C Specification
To create pipeline binary objects, call:
VkResult vkCreatePipelineBinariesKHR( VkDevice device, const VkPipelineBinaryCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineBinaryHandlesInfoKHR* pBinaries);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
VkResultreturned byCreatePipelineBinariesKHRwill contain the error value for the first entry in the output array inpBinariescontainingNULL_HANDLE.
Valid Usage (Implicit)
devicemust be a validVkDevicehandlepCreateInfomust be a valid pointer to a validVkPipelineBinaryCreateInfoKHRstructure- If
pAllocatoris notNULL,pAllocatormust be a valid pointer to a validVkAllocationCallbacksstructure pBinariesmust be a valid pointer to aVkPipelineBinaryHandlesInfoKHRstructure
Return Codes
- On success, this command returns
- On failure, this command returns
See Also
VkAllocationCallbacks,VkPipelineBinaryCreateInfoKHR,VkPipelineBinaryHandlesInfoKHR- Parameters:
device- the logical device that creates the pipeline binary objects.pCreateInfo- a pointer to aVkPipelineBinaryCreateInfoKHRstructure that contains the data to create the pipeline binaries from.pAllocator- controls host memory allocation as described in the Memory Allocation chapter.pBinaries- a pointer to aVkPipelineBinaryHandlesInfoKHRstructure in which the resulting pipeline binaries are returned.
- The corresponding entry in the
-
nvkDestroyPipelineBinaryKHR
public static void nvkDestroyPipelineBinaryKHR(org.lwjgl.vulkan.VkDevice device, long pipelineBinary, long pAllocator) Unsafe version of:DestroyPipelineBinaryKHR -
vkDestroyPipelineBinaryKHR
public static void vkDestroyPipelineBinaryKHR(org.lwjgl.vulkan.VkDevice device, long pipelineBinary, @Nullable VkAllocationCallbacks pAllocator) Destroy a pipeline binary.C Specification
To destroy a
VkPipelineBinaryKHR, call:void vkDestroyPipelineBinaryKHR( VkDevice device, VkPipelineBinaryKHR pipelineBinary, const VkAllocationCallbacks* pAllocator);Valid Usage
- If
VkAllocationCallbackswere provided whenpipelineBinarywas created, a compatible set of callbacks must be provided here - If no
VkAllocationCallbackswere provided whenpipelineBinarywas created,pAllocatormust beNULL
Valid Usage (Implicit)
devicemust be a validVkDevicehandle- If
pipelineBinaryis notNULL_HANDLE,pipelineBinarymust be a validVkPipelineBinaryKHRhandle - If
pAllocatoris notNULL,pAllocatormust be a valid pointer to a validVkAllocationCallbacksstructure - 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
- Parameters:
device- the logical device that created the pipeline binary object.pipelineBinary- the handle of the pipeline binary object to destroy.pAllocator- controls host memory allocation as described in the Memory Allocation chapter.
- If
-
nvkGetPipelineKeyKHR
public static int nvkGetPipelineKeyKHR(org.lwjgl.vulkan.VkDevice device, long pPipelineCreateInfo, long pPipelineKey) Unsafe version of:GetPipelineKeyKHR -
vkGetPipelineKeyKHR
public static int vkGetPipelineKeyKHR(org.lwjgl.vulkan.VkDevice device, @Nullable VkPipelineCreateInfoKHR pPipelineCreateInfo, VkPipelineBinaryKeyKHR pPipelineKey) Generate the pipeline key from pipeline creation info.C Specification
To generate the key for a particular pipeline creation info, call:
VkResult vkGetPipelineKeyKHR( VkDevice device, const VkPipelineCreateInfoKHR* pPipelineCreateInfo, VkPipelineBinaryKeyKHR* pPipelineKey);Description
If
pPipelineCreateInfoisNULL, 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 fromGetPipelineBinaryDataKHRin a differentVkDevice, then the application must assume that the restored data is invalid and cannot be passed toCreatePipelineBinariesKHR. Otherwise the application can assume the data is still valid.If
pPipelineCreateInfois notNULL, 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, thepPipelineKeygenerated must be equal to the key generated when using the shader module from which the identifier was queried. If the content of twopPipelineKeyare equal, pipelines created with the twopPipelineCreateInfo→pname:pNext create infos must produce the sameVkPipelineBinaryKHRcontents.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 setVkPipelineBinaryInfoKHR::binaryCountto a value greater than 0
Valid Usage (Implicit)
devicemust be a validVkDevicehandle- If
pPipelineCreateInfois notNULL,pPipelineCreateInfomust be a valid pointer to a validVkPipelineCreateInfoKHRstructure pPipelineKeymust be a valid pointer to aVkPipelineBinaryKeyKHRstructure
Return Codes
- On success, this command returns
- On failure, this command returns
See Also
- Parameters:
device- the logical device that creates the pipeline object.pPipelineCreateInfo-NULLor a pointer to aVkPipelineCreateInfoKHRstructure.pPipelineKey- a pointer to aVkPipelineBinaryKeyKHRstructure in which the resulting key is returned.
- The
-
nvkGetPipelineBinaryDataKHR
public static int nvkGetPipelineBinaryDataKHR(org.lwjgl.vulkan.VkDevice device, long pInfo, long pPipelineBinaryKey, long pPipelineBinaryDataSize, long pPipelineBinaryData) Unsafe version of:GetPipelineBinaryDataKHR- Parameters:
pPipelineBinaryDataSize- a pointer to asize_tvalue related to the amount of data in the pipeline binary, as described below.
-
vkGetPipelineBinaryDataKHR
public static int vkGetPipelineBinaryDataKHR(org.lwjgl.vulkan.VkDevice device, VkPipelineBinaryDataInfoKHR pInfo, VkPipelineBinaryKeyKHR pPipelineBinaryKey, org.lwjgl.PointerBuffer pPipelineBinaryDataSize, @Nullable ByteBuffer pPipelineBinaryData) Get the data store from a pipeline binary.C Specification
Data can be retrieved from a pipeline binary object using the command:
VkResult vkGetPipelineBinaryDataKHR( VkDevice device, const VkPipelineBinaryDataInfoKHR* pInfo, VkPipelineBinaryKeyKHR* pPipelineBinaryKey, size_t* pPipelineBinaryDataSize, void* pPipelineBinaryData);Description
If
pPipelineBinaryDataisNULL, then the size of the data, in bytes, that is required to store the binary is returned inpPipelineBinaryDataSize. Otherwise,pPipelineBinaryDataSizemust contain the size of the buffer, in bytes, pointed to bypPipelineBinaryData, and on returnpPipelineBinaryDataSizeis overwritten with the size of the data, in bytes, that is required to store the binary. IfpPipelineBinaryDataSizeis less than the size that is required to store the binary, nothing is written topPipelineBinaryDataandERROR_NOT_ENOUGH_SPACE_KHRwill be returned, instead ofSUCCESS.If the call returns one of the success return codes, the pipeline binary key is written to
pPipelineBinaryKey, regardless of whetherpPipelineBinaryDataisNULLor not.If pipelineBinaryCompressedData is
FALSE, implementations should not return compressed pipeline binary data to the application.Valid Usage (Implicit)
devicemust be a validVkDevicehandlepInfomust be a valid pointer to a validVkPipelineBinaryDataInfoKHRstructurepPipelineBinaryKeymust be a valid pointer to aVkPipelineBinaryKeyKHRstructurepPipelineBinaryDataSizemust be a valid pointer to asize_tvalue- If the value referenced by
pPipelineBinaryDataSizeis not 0, andpPipelineBinaryDatais notNULL,pPipelineBinaryDatamust be a valid pointer to an array ofpPipelineBinaryDataSizebytes
Return Codes
- On success, this command returns
- On failure, this command returns
See Also
- Parameters:
device- the logical device that created the pipeline binary.pInfo- a pointer to aVkPipelineBinaryDataInfoKHRstructure which describes the pipeline binary to get data from.pPipelineBinaryKey- a pointer to aVkPipelineBinaryKeyKHRstructure where the key for this binary will be written.pPipelineBinaryDataSize- a pointer to asize_tvalue related to the amount of data in the pipeline binary, as described below.pPipelineBinaryData- eitherNULLor a pointer to a buffer.
-
nvkReleaseCapturedPipelineDataKHR
public static int nvkReleaseCapturedPipelineDataKHR(org.lwjgl.vulkan.VkDevice device, long pInfo, long pAllocator) Unsafe version of:ReleaseCapturedPipelineDataKHR -
vkReleaseCapturedPipelineDataKHR
public static int vkReleaseCapturedPipelineDataKHR(org.lwjgl.vulkan.VkDevice device, VkReleaseCapturedPipelineDataInfoKHR pInfo, @Nullable VkAllocationCallbacks pAllocator) Release captured pipeline binary data.C Specification
To release pipeline resources captured with
PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR, call:VkResult vkReleaseCapturedPipelineDataKHR( VkDevice device, const VkReleaseCapturedPipelineDataInfoKHR* pInfo, const VkAllocationCallbacks* pAllocator);Description
The implementation may free any resources captured as a result of creating the pipeline with
PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHRand put the pipeline into a state as ifPIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHRhad not been provided at pipeline creation time.Note
Any resources captured as a result of creating the pipeline with
PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHRare implicitly freed byDestroyPipeline.Valid Usage
- If
VkAllocationCallbackswere provided whenpipelinewas created, a compatible set of callbacks must be provided inpAllocator - If no
VkAllocationCallbackswere provided whenpipelinewas created,pAllocatormust beNULL
Valid Usage (Implicit)
devicemust be a validVkDevicehandlepInfomust be a valid pointer to a validVkReleaseCapturedPipelineDataInfoKHRstructure- If
pAllocatoris notNULL,pAllocatormust be a valid pointer to a validVkAllocationCallbacksstructure
Host Synchronization
- Host access to
pInfo→pipelinemust be externally synchronized
Return Codes
- On success, this command returns
See Also
- Parameters:
device- the logical device that created the pipeline object.pInfo- a pointer to aVkReleaseCapturedPipelineDataInfoKHRstructure which describes the pipeline to release the data from.pAllocator- controls host memory allocation as described in the Memory Allocation chapter.
- If
-