Registered Extension Number

136

Revision

1

Ratification Status

Ratified

Extension and Version Dependencies

API Interactions

  • Interacts with VK_ARM_tensors

  • Interacts with VK_EXT_custom_border_color

  • Interacts with VK_EXT_device_generated_commands

  • Interacts with VK_EXT_fragment_density_map

  • Interacts with VK_EXT_shader_object

  • Interacts with VK_KHR_ray_tracing_pipeline

  • Interacts with VK_NV_device_generated_commands

  • Interacts with VK_NV_ray_tracing

SPIR-V Dependencies

Contact

Extension Proposal

Other Extension Metadata

Last Modified Date

2024-06-12

IP Status

No known IP claims.

Contributors
  • Tobias Hector, AMD

  • Jan-Harald Fredriksen, Arm

  • Daniel Story, Nintendo

  • Connor Abbot, Valve

  • Hans-Kristian Arntzen, Valve

  • Matthew Netsch, Qualcomm

  • Jeff Bolz, NVIDIA

  • Alyssa Rosenzweig, Valve

  • Lionel Landerwerlin, Intel

  • Baldur Karlsson, Valve

  • Faith Ekstrand, Collabora

  • Slawomir Grajewski, Intel

  • Mike Blumenkrantz, Valve

  • Yiwei Zhang, Google

  • Stu Smith, AMD

  • Piers Daniell, NVIDIA

  • Jon Leech, Khronos

  • Rodrigo Locatti, NVIDIA

  • Krzysztof Niski, NVIDIA

  • Alan Baker, Google

  • James Fitzpatrick, Imagination

  • Samuel (Sheng-Wen) Huang, Mediatek

  • Hai Nguyen, Google

  • Jeff Leger, Qualcomm

  • Marty Johnson, Khronos

  • Tom Olson, Arm

  • Chris Glover, Google

  • Daniel Koch, NVIDIA

  • Robert Simpson, Qualcomm

  • Dan Ginsburg, Valve

  • Andreas Süßenbach, NVIDIA

  • Anna Maniscalco, Valve

  • Artem Kharytoniuk, LunarG

  • Younggwan Kim, Arm

  • Konstantin Seurer, Valve

  • Catarina Shablia, Collabora

  • Spencer Fricke, LunarG

  • Chris Bieneman, Microsoft

  • Ting Wei, Arm

  • Boris Zanin, AMD

  • Samuel Pitoiset, Valve

  • Erik Hogeman, Arm

  • Jesse Natalie, Microsoft

  • Guang Xu, AMD

  • Embla Flatlandsmo, Arm

Interactions and External Dependencies

Description

This extension allows explicit management of descriptors, and the memory used to store descriptors, conceptualised as descriptor heaps. Descriptor heap memory can be accessed as any other memory, enabling management of descriptors on both CPU and the GPU.

This extension was developed based on issues discovered with VK_EXT_descriptor_buffer. There are more constraints on how it is implemented, to provide more portable guarantees and more predictable performance characteristics. For instance, rather than an arbitrary number of sampler or resource buffers, there is exactly one sampler heap and exactly one resource heap.

This extension also eliminates descriptor sets and pipeline layouts completely; instead applications can look descriptors up solely by their offset into a heap. Shaders still using descriptor set and binding decorations can still be mapped to heaps through an API that maps set and binding decorations to heap offsets, either as constants or through push data. This new mapping API also enables a much more straightforward mapping to HLSL shaders using the root signature and descriptor table interfaces.

The push constant API has also been replaced with the push data interface, which aims to provide much more clarity about how data is passed to the shader, without requiring any mapping information to be provided during pipeline or shader creation. Mappings are still available for shaders written for the legacy interface.

There is also a much clearer path for mapping shader constant data, with two recommended options for mapping constant data through push data; either directly in push data, or through a device address stored in push data, both of which can be mapped to shaders with set and binding interfaces.

New Object Types

New Commands

New Structures

If VK_ARM_tensors is supported:

If VK_EXT_custom_border_color is supported:

If VK_EXT_fragment_density_map is supported:

New Unions

New Enums

New Bitmasks

New Enum Constants

If VK_ARM_tensors is supported:

If VK_EXT_custom_border_color is supported:

If VK_EXT_fragment_density_map is supported:

If VK_EXT_shader_object is supported:

Version History

  • Revision 1, 2024-06-12 (Tobias Hector)

    • Initial revision.

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

SPDX-License-Identifier: CC-BY-4.0