# vkCmdExecuteGeneratedCommandsNV(3) Manual Page

## Name

vkCmdExecuteGeneratedCommandsNV - Performs the generation and execution of commands on the device

## C Specification

The actual generation of commands as well as their execution on the device is handled as single action with:

    void vkCmdExecuteGeneratedCommandsNV(
        VkCommandBuffer                             commandBuffer,
        VkBool32                                    isPreprocessed,
        const VkGeneratedCommandsInfoNV*            pGeneratedCommandsInfo);

## Parameters

- `commandBuffer` is the command buffer into which the command is recorded.

- `isPreprocessed` represents whether the input data has already been preprocessed on the device. If it is `VK_FALSE` this command will implicitly trigger the preprocessing step, otherwise not.

- `pGeneratedCommandsInfo` is a pointer to an instance of the VkGeneratedCommandsInfoNV structure containing parameters affecting the generation of commands.

## Description

Valid Usage

- If `isPreprocessed` is `VK_TRUE` then vkCmdPreprocessGeneratedCommandsNV must have already been executed on the device, using the same `pGeneratedCommandsInfo` content as well as the content of the input buffers it references (all except VkGeneratedCommandsInfoNV::`preprocessBuffer`). Furthermore `pGeneratedCommandsInfo``s `indirectCommandsLayout` must have been created with the `VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV` bit set.

- `VkGeneratedCommandsInfoNV`::`pipeline` must match the current bound pipeline at `VkGeneratedCommandsInfoNV`::`pipelineBindPoint`.

- Transform feedback must not be active.

- The `VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV`→`deviceGeneratedCommands` feature must be enabled

Valid Usage (Implicit)

- `commandBuffer` must be a valid VkCommandBuffer handle

- `pGeneratedCommandsInfo` must be a valid pointer to a valid VkGeneratedCommandsInfoNV structure

- `commandBuffer` must be in the recording state

- The `VkCommandPool` that `commandBuffer` was allocated from must support graphics, or compute operations

- This command must only be called inside of a render pass instance

Host Synchronization

- Host access to `commandBuffer` must be externally synchronized

- Host access to the `VkCommandPool` that `commandBuffer` was allocated from must be externally synchronized

Command Properties

Command Buffer Levels | Render Pass Scope | Supported Queue Types | Pipeline Type
--- | --- | --- | ---
Primary Secondary | Inside | Graphics Compute |

## See Also

`VkBool32`, VkCommandBuffer, VkGeneratedCommandsInfoNV

## 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 (c) 2014-2020 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.