Structures

VkDataGraphPipelineCreateInfoARM

Structure specifying parameters of a newly created data graph pipeline

The VkDataGraphPipelineCreateInfoARM structure is defined as:

typedef struct VkDataGraphPipelineCreateInfoARM {
    VkStructureType sType;
    const void* pNext;
    VkPipelineCreateFlags2KHR flags;
    VkPipelineLayout layout;
    uint32_t resourceInfoCount;
    const VkDataGraphPipelineResourceInfoARM* pResourceInfos;
} VkDataGraphPipelineCreateInfoARM;
  • sType is a VkStructureType value identifying this structure.
  • pNext is NULL or a pointer to a structure extending this structure.
  • flags is a bitmask of VkPipelineCreateFlagBits2KHR specifying how the pipeline will be generated.
  • layout is the description of binding locations used by both the pipeline and descriptor sets used with the pipeline.
  • resourceInfoCount is the length of the pResourceInfos array.
  • pResourceInfos is a pointer to an array of VkDataGraphPipelineResourceInfoARM structures.

Applications can create a data graph pipeline entirely from data present in a pipeline cache. This is done by including a VkDataGraphPipelineIdentifierCreateInfoARM structure in the pNext chain. If the required data is not found in the pipeline cache, creating the data graph pipeline is not possible and the implementation must fail as specified by VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT.

Applications can create a data graph pipeline without providing a pipeline cache or shader module by invoking one of the models provided by the implementation. This is done by including VkDataGraphPipelineBuiltinModelCreateInfoQCOM in the pNext chain.

When an identifier or built-in model is used to create a data graph pipeline, implementations may fail pipeline creation with VK_PIPELINE_COMPILE_REQUIRED for any reason.

The data graph engines for this pipeline can be selected by including a VkDataGraphProcessingEngineCreateInfoARM to the pNext chain of this structure. Otherwise, VK_PHYSICAL_DEVICE_DATA_GRAPH_PROCESSING_ENGINE_TYPE_DEFAULT_ARM will be used as the sole data graph engine.

The data graph operations that this pipeline uses must be supported for the data graph engines selected for this pipeline as retrieved by vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM.

Valid Usage

VUID-VkDataGraphPipelineCreateInfoARM-flags-09764

flags may only contain VK_PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT_EXT, VK_PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_EXT, VK_PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT, VK_PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT, VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR or VK_PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR

VUID-VkDataGraphPipelineCreateInfoARM-layout-09767

layout must have been created with pushConstantRangeCount equal to 0 and pPushConstantRanges equal to NULL

VUID-VkDataGraphPipelineCreateInfoARM-dataGraphUpdateAfterBind-09768

If the dataGraphUpdateAfterBind feature is not enabled, layout must not use any VkDescriptorSetLayout object created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set

VUID-VkDataGraphPipelineCreateInfoARM-dataGraphDescriptorBuffer-09885

If the dataGraphDescriptorBuffer feature is not enabled, flags must not contain VK_PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT

VUID-VkDataGraphPipelineCreateInfoARM-layout-09769

If a VkDataGraphPipelineShaderModuleCreateInfoARM structure is included in the pNext chain and a resource variable is declared in the shader module, the corresponding descriptor binding used to create layout must have a descriptorType that corresponds to the type of the resource variable

VUID-VkDataGraphPipelineCreateInfoARM-None-11840

If a [VkDataGraphPipelineIdentifierCreateInfoARM](/man/VkDataGraphPipelineIdentifierCreateInfoARM)

or a VkDataGraphPipelineBuiltinModelCreateInfoQCOM structure is included in the pNext chain, then flags must contain VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT

VUID-VkDataGraphPipelineCreateInfoARM-None-12363

If a [VkDataGraphPipelineIdentifierCreateInfoARM](/man/VkDataGraphPipelineIdentifierCreateInfoARM)

or a VkDataGraphPipelineBuiltinModelCreateInfoQCOM structure is included in the pNext chain, then resourceInfoCount must be 0

VUID-VkDataGraphPipelineCreateInfoARM-resourceInfoCount-12364

If resourceInfoCount is equal to 0, then pResourceInfosmust equal NULL

VUID-VkDataGraphPipelineCreateInfoARM-None-12365

If

neither a VkDataGraphPipelineIdentifierCreateInfoARM nor a VkDataGraphPipelineBuiltinModelCreateInfoQCOM structure are included in the pNext chain, then resourceInfoCount must be greater than 0

VUID-VkDataGraphPipelineCreateInfoARM-layout-09934

If a VkDataGraphPipelineShaderModuleCreateInfoARM structure is included in the pNext chain and an array resource variable is declared in the shader module, the corresponding descriptor binding used to create layoutmust have a descriptorCount that is greater than or equal to the length of the array

VUID-VkDataGraphPipelineCreateInfoARM-pipelineCreationCacheControl-09871

If the pipelineCreationCacheControl feature is not enabled, flagsmust not include VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR or VK_PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR

VUID-VkDataGraphPipelineCreateInfoARM-pSetLayouts-09770

The descriptor set layouts in VkPipelineLayoutCreateInfo::pSetLayouts used to create layout must not include any VkDescriptorSetLayoutBinding whose descriptor type is VK_DESCRIPTOR_TYPE_MUTABLE_EXT

VUID-VkDataGraphPipelineCreateInfoARM-pipelineProtectedAccess-09772

If the pipelineProtectedAccess feature is not enabled, flags must not include VK_PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT_EXT or VK_PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_EXT

VUID-VkDataGraphPipelineCreateInfoARM-flags-09773

flags must not include both VK_PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT_EXT and VK_PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_EXT

VUID-VkDataGraphPipelineCreateInfoARM-pNext-09804

If the pNext chain includes an VkPipelineCreationFeedbackCreateInfo structure, then its pipelineStageCreationFeedbackCount must be 0

VUID-VkDataGraphPipelineCreateInfoARM-pNext-09948

If a VkDataGraphProcessingEngineCreateInfoARM structure is included in the pNext chain, each member of pProcessingEngines must be identical to an VkQueueFamilyDataGraphPropertiesARM::engine retrieved from vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM with the physicalDevice that was used to create device

VUID-VkDataGraphPipelineCreateInfoARM-pNext-09949

If a VkDataGraphProcessingEngineCreateInfoARM structure is not included in the pNext chain, VK_PHYSICAL_DEVICE_DATA_GRAPH_PROCESSING_ENGINE_TYPE_DEFAULT_ARMmust be set in an VkQueueFamilyDataGraphPropertiesARM::engine retrieved from vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM with the physicalDevice that was used to create device

Valid Usage (Implicit)

VUID-VkDataGraphPipelineCreateInfoARM-sType-sType

sType must be VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_CREATE_INFO_ARM

VUID-VkDataGraphPipelineCreateInfoARM-sType-unique

The sType value of each structure in the pNext chain must be unique

VUID-VkDataGraphPipelineCreateInfoARM-pResourceInfos-parameter

If resourceInfoCount is not 0, pResourceInfos must be a valid pointer to an array of resourceInfoCount valid VkDataGraphPipelineResourceInfoARM structures