C Specification

The VkPipelineBinaryCreateInfoKHR structure is defined as:

// Provided by VK_KHR_pipeline_binary
typedef struct VkPipelineBinaryCreateInfoKHR {
    VkStructureType                          sType;
    const void*                              pNext;
    const VkPipelineBinaryKeysAndDataKHR*    pKeysAndDataInfo;
    VkPipeline                               pipeline;
    const VkPipelineCreateInfoKHR*           pPipelineCreateInfo;
} VkPipelineBinaryCreateInfoKHR;

Members

  • sType is a VkStructureType value identifying this structure.

  • pNext is NULL or a pointer to a structure extending this structure.

  • pKeysAndDataInfo is NULL or a pointer to a VkPipelineBinaryKeysAndDataKHR structure that contains keys and data to create the pipeline binaries from.

  • pipeline is VK_NULL_HANDLE or a VkPipeline that contains data to create the pipeline binaries from.

  • pPipelineCreateInfo is NULL or a pointer to a VkPipelineCreateInfoKHR structure with the pipeline creation info. This is used to probe the implementation’s internal cache for pipeline binaries.

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 VK_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, VK_PIPELINE_BINARY_MISSING_KHR is returned. If creation succeeds, the resulting binary can be used to create a pipeline. VK_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 VK_TRUE, the implementation may be able to create pipeline binaries even when pPipelineCreateInfo has not been used to create binaries before by the application.

Note

On some platforms, internal pipeline caches may be pre-populated before running the application.

Valid Usage
  • VUID-VkPipelineBinaryCreateInfoKHR-pipeline-09607
    If pipeline is not VK_NULL_HANDLE, pipeline must have been created with VK_PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR

  • VUID-VkPipelineBinaryCreateInfoKHR-pipeline-09608
    If pipeline is not VK_NULL_HANDLE, vkReleaseCapturedPipelineDataKHR must not have been called on pipeline prior to this command

  • VUID-VkPipelineBinaryCreateInfoKHR-pipelineBinaryInternalCache-09609
    If pipelineBinaryInternalCache is VK_FALSE pPipelineCreateInfo must be NULL

  • VUID-VkPipelineBinaryCreateInfoKHR-device-09610
    If device was created with VkDevicePipelineBinaryInternalCacheControlKHR::disableInternalCache set to VK_TRUE, pPipelineCreateInfo must be NULL

  • VUID-VkPipelineBinaryCreateInfoKHR-pKeysAndDataInfo-09619
    One and only one of pKeysAndDataInfo, pipeline, or pPipelineCreateInfo must be non-NULL

  • VUID-VkPipelineBinaryCreateInfoKHR-pPipelineCreateInfo-09606
    If pPipelineCreateInfo is not NULL, the pNext chain of pPipelineCreateInfo must not set VkPipelineBinaryInfoKHR::binaryCount to a value greater than 0

Valid Usage (Implicit)
  • VUID-VkPipelineBinaryCreateInfoKHR-sType-sType
    sType must be VK_STRUCTURE_TYPE_PIPELINE_BINARY_CREATE_INFO_KHR

  • VUID-VkPipelineBinaryCreateInfoKHR-pNext-pNext
    pNext must be NULL

  • VUID-VkPipelineBinaryCreateInfoKHR-pKeysAndDataInfo-parameter
    If pKeysAndDataInfo is not NULL, pKeysAndDataInfo must be a valid pointer to a valid VkPipelineBinaryKeysAndDataKHR structure

  • VUID-VkPipelineBinaryCreateInfoKHR-pipeline-parameter
    If pipeline is not VK_NULL_HANDLE, pipeline must be a valid VkPipeline handle

  • VUID-VkPipelineBinaryCreateInfoKHR-pPipelineCreateInfo-parameter
    If pPipelineCreateInfo is not NULL, pPipelineCreateInfo must be a valid pointer to a valid VkPipelineCreateInfoKHR structure

See Also

Document Notes

For more information, see the Vulkan Specification

This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.

Copyright 2014-2025 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0