Function Prototype

vkCreateDataGraphPipelinesARM

Create data graph pipeline objects

To create data graph pipelines, call:

VkResult vkCreateDataGraphPipelinesARM(
    VkDevice               device,
    VkDeferredOperationKHR deferredOperation,
    VkPipelineCache        pipelineCache,
    uint32_t               createInfoCount,
    const VkDataGraphPipelineCreateInfoARM* pCreateInfos,
    const VkAllocationCallbacks* pAllocator,
    VkPipeline*     pPipelines);
  • device is the logical device that creates the data graph pipelines.
  • deferredOperation is VK_NULL_HANDLE or the handle of a valid VkDeferredOperationKHR request deferral object for this command.
  • pipelineCache is either VK_NULL_HANDLE, indicating that pipeline caching is disabled; or the handle of a valid pipeline cache object, in which case use of that cache is enabled for the duration of the command.
  • createInfoCount is the length of the pCreateInfos and pPipelines arrays.
  • pCreateInfos is a pointer to an array of VkDataGraphPipelineCreateInfoARM structures.
  • pAllocator controls host memory allocation as described in the Memory Allocation chapter.
  • pPipelines is a pointer to an array of VkPipeline handles in which the resulting data graph pipelines objects are returned.

The implementation will create a pipeline in each element of pPipelines from the corresponding element of pCreateInfos. If the creation of any pipeline fails, that pipeline will be set to VK_NULL_HANDLE.

Valid Usage

VUID-vkCreateDataGraphPipelinesARM-device-09927

device must support at least one queue family with the VK_QUEUE_DATA_GRAPH_BIT_ARM capability

VUID-vkCreateDataGraphPipelinesARM-deferredOperation-09916

If deferredOperation is not VK_NULL_HANDLE, the flags member of elements of pCreateInfos must not include VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT

VUID-vkCreateDataGraphPipelinesARM-pNext-09928

If at least one of the VkDataGraphPipelineCreateInfoARM includes a VkDataGraphPipelineIdentifierCreateInfoARM structure in its pNext chain then pipelineCache must not be VK_NULL_HANDLE

VUID-vkCreateDataGraphPipelinesARM-pipelineCache-09762

If pipelineCache was created with VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT, host access to pipelineCache must be externally synchronized

Valid Usage (Implicit)

VUID-vkCreateDataGraphPipelinesARM-deferredOperation-parameter

If deferredOperation is not VK_NULL_HANDLE, deferredOperation must be a valid VkDeferredOperationKHR handle

VUID-vkCreateDataGraphPipelinesARM-pipelineCache-parameter

If pipelineCache is not VK_NULL_HANDLE, pipelineCache must be a valid VkPipelineCache handle

VUID-vkCreateDataGraphPipelinesARM-pCreateInfos-parameter

pCreateInfos must be a valid pointer to an array of createInfoCount valid VkDataGraphPipelineCreateInfoARM structures

VUID-vkCreateDataGraphPipelinesARM-pAllocator-parameter

If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure

VUID-vkCreateDataGraphPipelinesARM-pPipelines-parameter

pPipelines must be a valid pointer to an array of createInfoCount VkPipeline handles

VUID-vkCreateDataGraphPipelinesARM-device-queuecount

The device must have been created with at least 1 queue

VUID-vkCreateDataGraphPipelinesARM-deferredOperation-parent

If deferredOperation is a valid handle, it must have been created, allocated, or retrieved from device

VUID-vkCreateDataGraphPipelinesARM-pipelineCache-parent

If pipelineCache is a valid handle, it must have been created, allocated, or retrieved from device