Structures

VkGeneratedCommandsMemoryRequirementsInfoEXT

Structure specifying parameters for the reservation of preprocess buffer space
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 is NULL 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-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-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