VK_EXT_nested_command_buffer
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:
- Extending VkPhysicalDeviceProperties2:
New Enum Constants
VK_EXT_NESTED_COMMAND_BUFFER_EXTENSION_NAMEVK_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_EXTVK_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