# VkGeneratedCommandsMemoryRequirementsInfoNV(3) Manual Page

## Name

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

Loading… please wait.

## C Specification

    // Provided by VK_NV_device_generated_commands
    typedef struct VkGeneratedCommandsMemoryRequirementsInfoNV {
        VkStructureType               sType;
        const void*                   pNext;
        VkPipelineBindPoint           pipelineBindPoint;
        VkPipeline                    pipeline;
        VkIndirectCommandsLayoutNV    indirectCommandsLayout;
        uint32_t                      maxSequencesCount;
    } VkGeneratedCommandsMemoryRequirementsInfoNV;

## Members

- `sType` is a VkStructureType value identifying this structure.

- `pNext` is `NULL` or a pointer to a structure extending this structure.

- `pipelineBindPoint` is the VkPipelineBindPoint of the `pipeline` that this buffer memory is intended to be used with during the execution.

- `pipeline` is the VkPipeline that this buffer memory is intended to be used with during the execution.

- `indirectCommandsLayout` is the VkIndirectCommandsLayoutNV that this buffer memory is intended to be used with.

- `maxSequencesCount` is the maximum number of sequences that this buffer memory in combination with the other state provided can be used with.

## Description

Valid Usage

- VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-maxSequencesCount-02907
  `maxSequencesCount` must be less or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::`maxIndirectSequenceCount`

- VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipelineBindPoint-09075
  If `pipelineBindPoint` is of type `VK_PIPELINE_BIND_POINT_GRAPHICS`, then `pipeline` must be a valid VkPipeline handle

- VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipelineBindPoint-09076
  If `pipelineBindPoint` is of type `VK_PIPELINE_BIND_POINT_COMPUTE`, and the `indirectCommandsLayout` was not created with a `VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV` token, then the `pipeline` must be a valid VkPipeline handle

- VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipelineBindPoint-09077
  If `pipelineBindPoint` is of type `VK_PIPELINE_BIND_POINT_COMPUTE`, and the `indirectCommandsLayout` contains a `VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV` token, then the `pipeline` must be VK_NULL_HANDLE

Valid Usage (Implicit)

- VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-sType-sType
  `sType` must be `VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV`

- VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pNext-pNext
  `pNext` must be `NULL`

- VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipelineBindPoint-parameter
  `pipelineBindPoint` must be a valid VkPipelineBindPoint value

- VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipeline-parameter
  If `pipeline` is not VK_NULL_HANDLE, `pipeline` must be a valid VkPipeline handle

- VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-indirectCommandsLayout-parameter
  `indirectCommandsLayout` must be a valid VkIndirectCommandsLayoutNV handle

- VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-commonparent
  Both of `indirectCommandsLayout`, and `pipeline` that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice

## See Also

VK_NV_device_generated_commands, VkIndirectCommandsLayoutNV, VkPipeline, VkPipelineBindPoint, VkStructureType, vkGetGeneratedCommandsMemoryRequirementsNV

## 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-2025 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0