VkIndirectExecutionSetShaderInfoEXT
The VkIndirectExecutionSetShaderInfoEXT structure is defined as:
typedef struct VkIndirectExecutionSetShaderInfoEXT {
VkStructureType sType;
const void* pNext;
uint32_t shaderCount;
const VkShaderEXT* pInitialShaders;
const VkIndirectExecutionSetShaderLayoutInfoEXT* pSetLayoutInfos;
uint32_t maxShaderCount;
uint32_t pushConstantRangeCount;
const VkPushConstantRange* pPushConstantRanges;
} VkIndirectExecutionSetShaderInfoEXT;
sTypeis a VkStructureType value identifying this structure.pNextisNULLor a pointer to a structure extending this structure.shaderCountis the number of members in thepInitialShadersandpSetLayoutInfosarrays.pInitialShadersis a pointer to an array containing a VkShaderEXT object for each shader stage that will be used in the set. These shaders will be automatically added to the set beginning at index0.pSetLayoutInfosis a pointer to an array containing a VkIndirectExecutionSetShaderLayoutInfoEXT used by each correspondingpInitialShadersshader stage in the set.maxShaderCountis the maximum number of shader objects stored in the set.pushConstantRangeCountis the number of members in thepPushConstantRangesarray.pPushConstantRangesis a pointer to the array of VkPushConstantRange ranges used by all shaders in the set.
The characteristics of pInitialShaders will be used to validate all
shaders added to the set even if they are removed from the set or destroyed.
When an Indirect Execution Set created with shader objects is used,
pInitialShaders constitutes the initial shader state.
Valid Usage
VUID-VkIndirectExecutionSetShaderInfoEXT-pInitialShaders-11020
All members of pInitialShaders must have a stage supported
by [VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT::supportedIndirectCommandsShaderStagesShaderBinding](xref::limits-supportedIndirectCommandsShaderStagesShaderBinding)
VUID-VkIndirectExecutionSetShaderInfoEXT-maxShaderCount-11021
maxShaderCount must not be zero
VUID-VkIndirectExecutionSetShaderInfoEXT-maxShaderCount-11022
maxShaderCount must be less than or equal to
VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT::maxIndirectShaderObjectCount
VUID-VkIndirectExecutionSetShaderInfoEXT-maxShaderCount-11036
maxShaderCount must be greater than or equal to shaderCount
VUID-VkIndirectExecutionSetShaderInfoEXT-stage-11023
The stage of each element in the pInitialShaders array must
be unique
VUID-VkIndirectExecutionSetShaderInfoEXT-pInitialShaders-11154
Each member of pInitialShaders must have been created with
VK_SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT
Valid Usage (Implicit)
VUID-VkIndirectExecutionSetShaderInfoEXT-sType-sType
sType must be VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_INFO_EXT
VUID-VkIndirectExecutionSetShaderInfoEXT-pInitialShaders-parameter
pInitialShaders must be a valid pointer to an array of shaderCount valid VkShaderEXT handles
VUID-VkIndirectExecutionSetShaderInfoEXT-pSetLayoutInfos-parameter
If pSetLayoutInfos is not NULL, pSetLayoutInfos must be a valid pointer to an array of shaderCount valid VkIndirectExecutionSetShaderLayoutInfoEXT structures
VUID-VkIndirectExecutionSetShaderInfoEXT-pPushConstantRanges-parameter
If pushConstantRangeCount is not 0, pPushConstantRanges must be a valid pointer to an array of pushConstantRangeCount valid VkPushConstantRange structures
VUID-VkIndirectExecutionSetShaderInfoEXT-shaderCount-arraylength
shaderCount must be greater than 0