VkGeneratedCommandsMemoryRequirementsInfoEXT
typedef struct VkGeneratedCommandsMemoryRequirementsInfoEXT {
VkStructureType sType;
const void* pNext;
VkIndirectExecutionSetEXT indirectExecutionSet;
VkIndirectCommandsLayoutEXT indirectCommandsLayout;
uint32_t maxSequenceCount;
uint32_t maxDrawCount;
} VkGeneratedCommandsMemoryRequirementsInfoEXT;
sTypeis a VkStructureType value identifying this structure.pNextisNULLor a pointer to a structure extending this structure.indirectExecutionSetis the indirect execution set to be used for binding shaders.indirectCommandsLayoutis the VkIndirectCommandsLayoutEXT that this buffer memory is intended to be used with.maxSequenceCountis the maximum number of sequences that this buffer memory can be used with.maxDrawCountis the maximum number of indirect draws that can be executed by any COUNT-type multi-draw indirect tokens. The draw count in the indirect buffer is clamped to this value for these token types.
If the action command token for the layout is not a COUNT-type multi-draw
indirect token, maxDrawCount is ignored.
Valid Usage
VUID-VkGeneratedCommandsMemoryRequirementsInfoEXT-maxSequencesCount-11009
maxSequencesCount must be less or equal to
VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT::maxIndirectSequenceCount
VUID-VkGeneratedCommandsMemoryRequirementsInfoEXT-indirectCommandsLayout-11010
If indirectCommandsLayout was created with a token sequence that
contained the VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT
token, indirectExecutionSet must not be VK_NULL_HANDLE
VUID-VkGeneratedCommandsMemoryRequirementsInfoEXT-indirectCommandsLayout-11151
If indirectCommandsLayout was created with a token sequence that
contained the VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT
token, the shader stages used to create the initial shader state of
indirectExecutionSet must equal the
VkIndirectCommandsExecutionSetTokenEXT::shaderStages used to
create indirectCommandsLayout
VUID-VkGeneratedCommandsMemoryRequirementsInfoEXT-indirectCommandsLayout-11011
If indirectCommandsLayout was not created with a token sequence
that contained the
VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT token,
indirectExecutionSet must be VK_NULL_HANDLE
VUID-VkGeneratedCommandsMemoryRequirementsInfoEXT-maxDrawCount-11146
When not ignored, maxDrawCount ×
maxSequenceCount must be less than 2^24
VUID-VkGeneratedCommandsMemoryRequirementsInfoEXT-indirectExecutionSet-11012
If `indirectExecutionSet` is [VK_NULL_HANDLE](/man/VK_NULL_HANDLE),
either
a VkGeneratedCommandsPipelineInfoEXT
or a VkGeneratedCommandsShaderInfoEXTmust be included in the pNext chain
Valid Usage (Implicit)
VUID-VkGeneratedCommandsMemoryRequirementsInfoEXT-sType-sType
sType must be VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT
VUID-VkGeneratedCommandsMemoryRequirementsInfoEXT-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 VkGeneratedCommandsPipelineInfoEXT or VkGeneratedCommandsShaderInfoEXT
VUID-VkGeneratedCommandsMemoryRequirementsInfoEXT-sType-unique
The sType value of each structure in the pNext chain must be unique
VUID-VkGeneratedCommandsMemoryRequirementsInfoEXT-indirectExecutionSet-parameter
If indirectExecutionSet is not VK_NULL_HANDLE, indirectExecutionSet must be a valid VkIndirectExecutionSetEXT handle
VUID-VkGeneratedCommandsMemoryRequirementsInfoEXT-indirectCommandsLayout-parameter
indirectCommandsLayout must be a valid VkIndirectCommandsLayoutEXT handle
VUID-VkGeneratedCommandsMemoryRequirementsInfoEXT-commonparent
Both of indirectCommandsLayout, and indirectExecutionSet that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice