VkDataGraphPipelineCreateInfoARM
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;
pub struct DataGraphPipelineCreateInfoARM {
s_type: vk::StructureType,
p_next: *const c_void,
flags: vk::PipelineCreateFlags2KHR,
layout: vk::PipelineLayout,
resource_info_count: u32,
p_resource_infos: *const vk::DataGraphPipelineResourceInfoARM,
}
sTypeis a VkStructureType value identifying this structure.pNextisNULLor a pointer to a structure extending this structure.flagsis a bitmask of VkPipelineCreateFlagBits2KHR specifying how the pipeline will be generated.layoutis the description of binding locations used by both the pipeline and descriptor sets used with the pipeline.resourceInfoCountis the length of thepResourceInfosarray.pResourceInfosis 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-pNext-09763
One and only one of the following structures must be included in the
pNext chain:
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-dataGraphShaderModule-09886
If the dataGraphShaderModule
feature is not enabled, a
VkDataGraphPipelineShaderModuleCreateInfoARM structure must not
be included in the pNext chain
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-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 VkDataGraphPipelineBuiltinModelCreateInfoQCOM, VkDataGraphPipelineCompilerControlCreateInfoARM, VkDataGraphPipelineIdentifierCreateInfoARM, VkDataGraphPipelineShaderModuleCreateInfoARM, VkDataGraphProcessingEngineCreateInfoARM, VkPipelineCreationFeedbackCreateInfo, or VkShaderModuleCreateInfo
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
If resourceInfoCount is not 0, pResourceInfos must be a valid pointer to an array of resourceInfoCount valid VkDataGraphPipelineResourceInfoARM structures