VkIndirectExecutionSetPipelineInfoEXT
The VkIndirectExecutionSetPipelineInfoEXT
structure is defined as:
typedef struct VkIndirectExecutionSetPipelineInfoEXT {
VkStructureType sType;
const void* pNext;
VkPipeline initialPipeline;
uint32_t maxPipelineCount;
} VkIndirectExecutionSetPipelineInfoEXT;
sType
is a VkStructureType value identifying this structure.pNext
isNULL
or a pointer to a structure extending this structure.initialPipeline
is the initial pipeline for the set. This pipeline will be automatically added to the set at index0
.maxPipelineCount
is the maximum number of pipelines stored in the set.
The characteristics of initialPipeline
will be used to validate all
pipelines added to the set even if they are removed from the set or
destroyed.
When an Indirect Execution Set created with pipelines is used,
initialPipeline
constitutes the initial shader state.
Valid Usage
VUID-VkIndirectExecutionSetPipelineInfoEXT-supportedIndirectCommandsShaderStagesPipelineBinding-11015
If [VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT::supportedIndirectCommandsShaderStagesPipelineBinding
](xref::limits-supportedIndirectCommandsShaderStagesPipelineBinding)
does not contain VK_SHADER_STAGE_COMPUTE_BIT
, the
VkPipelineBindPoint
of initialPipeline
must not be
VK_PIPELINE_BIND_POINT_COMPUTE
VUID-VkIndirectExecutionSetPipelineInfoEXT-supportedIndirectCommandsShaderStagesPipelineBinding-11016
If [VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT::supportedIndirectCommandsShaderStagesPipelineBinding
](xref::limits-supportedIndirectCommandsShaderStagesPipelineBinding)
does not contain VK_SHADER_STAGE_FRAGMENT_BIT
, the
VkPipelineBindPoint
of initialPipeline
must not be
VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-VkIndirectExecutionSetPipelineInfoEXT-supportedIndirectCommandsShaderStagesPipelineBinding-11017
If [VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT::supportedIndirectCommandsShaderStagesPipelineBinding
](xref::limits-supportedIndirectCommandsShaderStagesPipelineBinding)
does not contain ray tracing stages, the VkPipelineBindPoint
of
initialPipeline
must not be
VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR
VUID-VkIndirectExecutionSetPipelineInfoEXT-maxPipelineCount-11018
maxPipelineCount
must be between 1
and
VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT
::maxIndirectPipelineCount
VUID-VkIndirectExecutionSetPipelineInfoEXT-initialPipeline-11019
initialPipeline
must not use descriptors of type
VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC
or
VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC
VUID-VkIndirectExecutionSetPipelineInfoEXT-initialPipeline-11153
initialPipeline
must have been created with
VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT
Valid Usage (Implicit)
VUID-VkIndirectExecutionSetPipelineInfoEXT-sType-sType
sType
must be VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_PIPELINE_INFO_EXT
VUID-VkIndirectExecutionSetPipelineInfoEXT-initialPipeline-parameter
initialPipeline
must be a valid VkPipeline handle