VkGeneratedCommandsMemoryRequirementsInfoEXT(3)

Name

VkGeneratedCommandsMemoryRequirementsInfoEXT - Structure specifying parameters for the reservation of preprocess buffer space

C Specification

// Provided by VK_EXT_device_generated_commands
typedef struct VkGeneratedCommandsMemoryRequirementsInfoEXT {
    VkStructureType                sType;
    const void*                    pNext;
    VkIndirectExecutionSetEXT      indirectExecutionSet;
    VkIndirectCommandsLayoutEXT    indirectCommandsLayout;
    uint32_t                       maxSequenceCount;
    uint32_t                       maxDrawCount;
} VkGeneratedCommandsMemoryRequirementsInfoEXT;

Members

  • 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.

Description

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, either a VkGeneratedCommandsPipelineInfoEXT or a VkGeneratedCommandsShaderInfoEXT must 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

Document Notes

For more information, see the Vulkan Specification.

This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.