VK_EXT_nested_command_buffer(3)

# VK_EXT_nested_command_buffer(3) Manual Page

## Name

VK_EXT_nested_command_buffer - device extension

Loading… please wait.

## Registered Extension Number

452

## Revision

1

## Ratification Status

Ratified

## Extension and Version Dependencies

VK_KHR_get_physical_device_properties2
or
Vulkan Version 1.1

## Contact

- Piers Daniell [GitHub]pdaniell-nv

## Other Extension Metadata

Last Modified Date

  2023-09-18

Contributors

  - Daniel Story, Nintendo

  - Peter Kohaut, NVIDIA

  - Shahbaz Youssefi, Google

  - Slawomir Grajewski, Intel

  - Stu Smith, AMD

## Description

With core Vulkan it is not legal to call vkCmdExecuteCommands when recording a secondary command buffer. This extension relaxes that restriction, allowing secondary command buffers to execute other secondary command buffers.

## New Structures

- Extending VkPhysicalDeviceFeatures2, VkDeviceCreateInfo:

  - VkPhysicalDeviceNestedCommandBufferFeaturesEXT

- Extending VkPhysicalDeviceProperties2:

  - VkPhysicalDeviceNestedCommandBufferPropertiesEXT

## New Enum Constants

- `VK_EXT_NESTED_COMMAND_BUFFER_EXTENSION_NAME`

- `VK_EXT_NESTED_COMMAND_BUFFER_SPEC_VERSION`

- Extending VkRenderingFlagBits:

  - VK_RENDERING_CONTENTS_INLINE_BIT_EXT

- Extending VkStructureType:

  - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT

  - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT

- Extending VkSubpassContents:

  - VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT

## Issues

1) The Command Buffer Levels property for the Vulkan commands comes from the `cmdbufferlevel` attribute in `vk.xml` for the command, and it is currently not possible to modify this attribute based on whether an extension is enabled. For this extension we want the `cmdbufferlevel` attribute for vkCmdExecuteCommands to be `primary,secondary` when this extension is enabled and `primary` otherwise.

RESOLVED: The `cmdbufferlevel` attribute for vkCmdExecuteCommands has been changed to `primary,secondary` and a new VUID added to prohibit recording this command in a secondary command buffer unless this extension is enabled.

## Version History

- Revision 1, 2023-09-18 (Piers Daniell)

  - Internal revisions

## See Also

No cross-references are available

## Document Notes

For more information, see the Vulkan Specification.

This page is a generated document. Fixes and changes should be made to the generator scripts, not directly.

## Copyright

Copyright 2014-2026 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0