VK_EXT_descriptor_buffer(3)

# VK_EXT_descriptor_buffer(3) Manual Page

## Name

VK_EXT_descriptor_buffer - device extension

## Registered Extension Number

317

## Revision

1

## Ratification Status

Ratified

## Extension and Version Dependencies

VK_KHR_get_physical_device_properties2
or
Vulkan Version 1.1
and
VK_KHR_buffer_device_address
and
VK_EXT_descriptor_indexing
or
Vulkan Version 1.2
and
VK_KHR_synchronization2
or
Vulkan Version 1.3

## API Interactions

- Interacts with VK_EXT_fragment_density_map

- Interacts with VK_KHR_acceleration_structure

- Interacts with VK_NV_ray_tracing

## Deprecation State

- Deprecated by VK_EXT_descriptor_heap extension

## Contact

- Tobias Hector [GitHub]tobski

## Extension Proposal

VK_EXT_descriptor_buffer

## Other Extension Metadata

Last Modified Date

  2021-06-07

IP Status

  No known IP claims.

Contributors

  - Tobias Hector, AMD

  - Stu Smith, AMD

  - Maciej Jesionowski, AMD

  - Boris Zanin, AMD

  - Hans-Kristian Arntzen, Valve

  - Connor Abbott, Valve

  - Baldur Karlsson, Valve

  - Mike Blumenkrantz, Valve

  - Graeme Leese, Broadcom

  - Jan-Harald Fredriksen, Arm

  - Rodrigo Locatti, NVIDIA

  - Jeff Bolz, NVIDIA

  - Piers Daniell, NVIDIA

  - Jeff Leger, QUALCOMM

  - Lionel Landwerlin, Intel

  - Slawomir Grajewski, Intel

## Description

This extension introduces new commands to put shader-accessible descriptors directly in memory, making the management of descriptor data more explicit.

## Deprecation by `VK_EXT_descriptor_heap`

Functionality in this extension is deprecated by the VK_EXT_descriptor_heap extension. See Descriptor Management: Replaced by Descriptor Heaps.

## New Commands

- vkCmdBindDescriptorBufferEmbeddedSamplersEXT

- vkCmdBindDescriptorBuffersEXT

- vkCmdSetDescriptorBufferOffsetsEXT

- vkGetBufferOpaqueCaptureDescriptorDataEXT

- vkGetDescriptorEXT

- vkGetDescriptorSetLayoutBindingOffsetEXT

- vkGetDescriptorSetLayoutSizeEXT

- vkGetImageOpaqueCaptureDescriptorDataEXT

- vkGetImageViewOpaqueCaptureDescriptorDataEXT

- vkGetSamplerOpaqueCaptureDescriptorDataEXT

If VK_KHR_acceleration_structure or VK_NV_ray_tracing is supported:

- vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT

## New Structures

- VkBufferCaptureDescriptorDataInfoEXT

- VkDescriptorAddressInfoEXT

- VkDescriptorBufferBindingInfoEXT

- VkDescriptorGetInfoEXT

- VkImageCaptureDescriptorDataInfoEXT

- VkImageViewCaptureDescriptorDataInfoEXT

- VkSamplerCaptureDescriptorDataInfoEXT

- Extending VkBufferCreateInfo, VkImageCreateInfo, VkImageViewCreateInfo, VkSamplerCreateInfo, VkAccelerationStructureCreateInfoKHR, VkAccelerationStructureCreateInfoNV, VkTensorCreateInfoARM, VkTensorViewCreateInfoARM, VkAccelerationStructureCreateInfo2KHR:

  - VkOpaqueCaptureDescriptorDataCreateInfoEXT

- Extending VkDescriptorBufferBindingInfoEXT:

  - VkDescriptorBufferBindingPushDescriptorBufferHandleEXT

- Extending VkPhysicalDeviceFeatures2, VkDeviceCreateInfo:

  - VkPhysicalDeviceDescriptorBufferFeaturesEXT

- Extending VkPhysicalDeviceProperties2:

  - VkPhysicalDeviceDescriptorBufferPropertiesEXT

If VK_EXT_fragment_density_map is supported:

- Extending VkPhysicalDeviceProperties2:

  - VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT

If VK_KHR_acceleration_structure or VK_NV_ray_tracing is supported:

- VkAccelerationStructureCaptureDescriptorDataInfoEXT

## New Unions

- VkDescriptorDataEXT

## New Enum Constants

- `VK_EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME`

- `VK_EXT_DESCRIPTOR_BUFFER_SPEC_VERSION`

- Extending VkAccelerationStructureCreateFlagBitsKHR:

  - VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT

- Extending VkAccessFlagBits2:

  - VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT

- Extending VkBufferCreateFlagBits:

  - VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT

- Extending VkBufferUsageFlagBits:

  - VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT

  - VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT

  - VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT

- Extending VkDescriptorSetLayoutCreateFlagBits:

  - VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT

  - VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT

- Extending VkImageCreateFlagBits:

  - VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT

- Extending VkImageViewCreateFlagBits:

  - VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT

- Extending VkPipelineCreateFlagBits:

  - VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT

- Extending VkSamplerCreateFlagBits:

  - VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT

- Extending VkStructureType:

  - VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT

  - VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT

  - VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT

  - VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT

  - VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT

  - VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT

  - VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT

  - VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT

  - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT

  - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT

  - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT

  - VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT

If VK_KHR_acceleration_structure or VK_NV_ray_tracing is supported:

- Extending VkStructureType:

  - VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT

## Version History

- Revision 1, 2021-06-07 (Stu Smith)

  - 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

Copyright 2014-2026 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0