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;
pub struct IndirectExecutionSetShaderInfoEXT {
s_type: vk::StructureType,
p_next: *const c_void,
shader_count: u32,
p_initial_shaders: *const vk::ShaderEXT,
p_set_layout_infos: *const vk::IndirectExecutionSetShaderLayoutInfoEXT,
max_shader_count: u32,
push_constant_range_count: u32,
p_push_constant_ranges: *const vk::PushConstantRange,
}
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 NULL or 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.
If pSetLayoutInfos is NULL, the descriptor layout parameters are
inherited from the shader object.
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
VUID-VkIndirectExecutionSetShaderInfoEXT-pSetLayoutInfos-10929
If pSetLayoutInfos is not NULL, the descriptor layout values
specified must be compatible with the descriptor set layouts defined at
the creation of the shader object
VUID-VkIndirectExecutionSetShaderInfoEXT-pInitialShaders-11321
If any element of pInitialShaders was created with
VK_SHADER_CREATE_DESCRIPTOR_HEAP_BIT_EXT, all elements of
pInitialShaders must have been created with
VK_SHADER_CREATE_DESCRIPTOR_HEAP_BIT_EXT
VUID-VkIndirectExecutionSetShaderInfoEXT-pInitialShaders-11322
If any element of pInitialShaders was created without
VK_SHADER_CREATE_DESCRIPTOR_HEAP_BIT_EXT, all elements of
pInitialShaders must have been created without
VK_SHADER_CREATE_DESCRIPTOR_HEAP_BIT_EXT
VUID-VkIndirectExecutionSetShaderInfoEXT-pInitialShaders-11323
If elements of pInitialShaders were created with
VK_SHADER_CREATE_DESCRIPTOR_HEAP_BIT_EXT, pSetLayoutInfosmust be NULL
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