# VkGeneratedCommandsMemoryRequirementsInfoEXT(3) Manual Page

## Name

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

Loading… please wait.

## 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 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

## See Also

VK_EXT_device_generated_commands, VkIndirectCommandsLayoutEXT, VkIndirectExecutionSetEXT, VkStructureType, vkGetGeneratedCommandsMemoryRequirementsEXT

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

## Copyright

Copyright 2014-2024 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0