Registered Extension Number

452

Revision

1

Ratification Status

Ratified

Extension and Version Dependencies

Contact

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

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 2014-2024 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0