# VkDataGraphPipelineCreateInfoARM(3) Manual Page

## Name

VkDataGraphPipelineCreateInfoARM - Structure specifying parameters of a newly created data graph pipeline

Loading… please wait.

## C Specification

The `VkDataGraphPipelineCreateInfoARM` structure is defined as:

    // Provided by VK_ARM_data_graph
    typedef struct VkDataGraphPipelineCreateInfoARM {
        VkStructureType                              sType;
        const void*                                  pNext;
        VkPipelineCreateFlags2KHR                    flags;
        VkPipelineLayout                             layout;
        uint32_t                                     resourceInfoCount;
        const VkDataGraphPipelineResourceInfoARM*    pResourceInfos;
    } VkDataGraphPipelineCreateInfoARM;

## Members

- `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.

## Description

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`.

When an identifier is used to create a data graph pipeline, implementations may fail pipeline creation with `VK_PIPELINE_COMPILE_REQUIRED` for any reason.

Valid Usage

- VUID-VkDataGraphPipelineCreateInfoARM-pNext-09763
  One and only one of the following structures must be included in the `pNext` chain:

  - VkDataGraphPipelineShaderModuleCreateInfoARM

  - VkDataGraphPipelineIdentifierCreateInfoARM

- 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-module-09769
  If a resource variable is declared in VkDataGraphPipelineShaderModuleCreateInfoARM::`module`, a descriptor slot in `layout` must match the descriptor type

- VUID-VkDataGraphPipelineCreateInfoARM-pNext-09875
  If a VkDataGraphPipelineIdentifierCreateInfoARM structure is included in the `pNext` chain, then `flags` must contain `VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT`

- VUID-VkDataGraphPipelineCreateInfoARM-pNext-09876
  If a VkDataGraphPipelineIdentifierCreateInfoARM structure is included in the `pNext` chain, then a VkDataGraphPipelineShaderModuleCreateInfoARM structure must not be included in the `pNext` chain

- VUID-VkDataGraphPipelineCreateInfoARM-pNext-09882
  If a VkDataGraphPipelineIdentifierCreateInfoARM structure is included in the `pNext` chain, then `resourceInfoCount` must be 0 and `pResourceInfos` must be `NULL`

- VUID-VkDataGraphPipelineCreateInfoARM-dataGraphShaderModule-09886
  If the `dataGraphShaderModule` feature is not enabled, a VkDataGraphPipelineShaderModuleCreateInfoARM structure must not be included in the `pNext` chain

- VUID-VkDataGraphPipelineCreateInfoARM-module-09934
  If a resource variable is declared in `module` as an array, a descriptor slot in `layout` must match the descriptor count

- VUID-VkDataGraphPipelineCreateInfoARM-pipelineCreationCacheControl-09871
  If the `pipelineCreationCacheControl` feature is not enabled, `flags` must 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-pResourceInfos-09771
  For each of the structures in `pResourceInfos`, VkDataGraphPipelineResourceInfoARM::`descriptorSet` and VkDataGraphPipelineResourceInfoARM::`binding` must correspond to a resource variable declared in `module`

- 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

Valid Usage (Implicit)

- VUID-VkDataGraphPipelineCreateInfoARM-sType-sType
  `sType` must be `VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_CREATE_INFO_ARM`

- VUID-VkDataGraphPipelineCreateInfoARM-pNext-pNext
  Each `pNext` member of any structure (including this one) in the `pNext` chain must be either `NULL` or a pointer to a valid instance of VkDataGraphPipelineCompilerControlCreateInfoARM, VkDataGraphPipelineIdentifierCreateInfoARM, VkDataGraphPipelineShaderModuleCreateInfoARM, VkDataGraphProcessingEngineCreateInfoARM, or VkPipelineCreationFeedbackCreateInfo

- VUID-VkDataGraphPipelineCreateInfoARM-sType-unique
  The `sType` value of each structure in the `pNext` chain must be unique

- VUID-VkDataGraphPipelineCreateInfoARM-flags-parameter
  `flags` must be a valid combination of VkPipelineCreateFlagBits2KHR values

- VUID-VkDataGraphPipelineCreateInfoARM-layout-parameter
  `layout` must be a valid VkPipelineLayout handle

- VUID-VkDataGraphPipelineCreateInfoARM-pResourceInfos-parameter
  `pResourceInfos` must be a valid pointer to an array of `resourceInfoCount` valid VkDataGraphPipelineResourceInfoARM structures

- VUID-VkDataGraphPipelineCreateInfoARM-resourceInfoCount-arraylength
  `resourceInfoCount` must be greater than `0`

## See Also

VK_ARM_data_graph, VkDataGraphPipelineResourceInfoARM, VkPipelineCreateFlags2KHR, VkPipelineLayout, VkStructureType, vkCreateDataGraphPipelinesARM

## 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

Copyright 2014-2025 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0