VkGeneratedCommandsMemoryRequirementsInfoEXT
typedef struct VkGeneratedCommandsMemoryRequirementsInfoEXT {
VkStructureType sType;
const void* pNext;
VkIndirectExecutionSetEXT indirectExecutionSet;
VkIndirectCommandsLayoutEXT indirectCommandsLayout;
uint32_t maxSequenceCount;
uint32_t maxDrawCount;
} VkGeneratedCommandsMemoryRequirementsInfoEXT;
sType
is a VkStructureType value identifying this structure.pNext
isNULL
or a pointer to a structure extending this structure.indirectExecutionSet
is the indirect execution set to be used for binding shaders.indirectCommandsLayout
is the VkIndirectCommandsLayoutEXT that this buffer memory is intended to be used with.maxSequenceCount
is the maximum number of sequences that this buffer memory can be used with.maxDrawCount
is 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 struct 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