VK_EXT_buffer_device_address(3)

# VK_EXT_buffer_device_address(3) Manual Page

## Name

VK_EXT_buffer_device_address - device extension

Loading… please wait.

## Registered Extension Number

245

## Revision

2

## Ratification Status

Not ratified

## Extension and Version Dependencies

VK_KHR_get_physical_device_properties2

## SPIR-V Dependencies

- SPV_EXT_physical_storage_buffer

## Deprecation State

- Deprecated by VK_KHR_buffer_device_address extension

  - Which in turn was promoted to Vulkan 1.2

## Contact

- Jeff Bolz jeffbolznv

## Other Extension Metadata

Last Modified Date

  2019-01-06

IP Status

  No known IP claims.

Interactions and External Dependencies

  - This extension provides API support for `GLSL_EXT_buffer_reference` and `GLSL_EXT_buffer_reference_uvec2`

Contributors

  - Jeff Bolz, NVIDIA

  - Neil Henning, AMD

  - Tobias Hector, AMD

  - Faith Ekstrand, Intel

  - Baldur Karlsson, Valve

## Description

This extension allows the application to query a 64-bit buffer device address value for a buffer, which can be used to access the buffer memory via the `PhysicalStorageBufferEXT` storage class in the `GL_EXT_buffer_reference` GLSL extension and `SPV_EXT_physical_storage_buffer` SPIR-V extension.

It also allows buffer device addresses to be provided by a trace replay tool, so that it matches the address used when the trace was captured.

## New Commands

- vkGetBufferDeviceAddressEXT

## New Structures

- VkBufferDeviceAddressInfoEXT

- Extending VkBufferCreateInfo:

  - VkBufferDeviceAddressCreateInfoEXT

- Extending VkPhysicalDeviceFeatures2, VkDeviceCreateInfo:

  - VkPhysicalDeviceBufferAddressFeaturesEXT

  - VkPhysicalDeviceBufferDeviceAddressFeaturesEXT

## New Enum Constants

- `VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME`

- `VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION`

- Extending VkBufferCreateFlagBits:

  - `VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT`

- Extending VkBufferUsageFlagBits:

  - `VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT`

- Extending VkResult:

  - `VK_ERROR_INVALID_DEVICE_ADDRESS_EXT`

- Extending VkStructureType:

  - `VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT`

  - `VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT`

## New SPIR-V Capabilities

- `PhysicalStorageBufferAddressesEXT`

## Issues

1) Where is VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT and VkPhysicalDeviceBufferAddressFeaturesEXT?

RESOLVED: They were renamed as `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT` and VkPhysicalDeviceBufferDeviceAddressFeaturesEXT accordingly for consistency. Even though, the old names can still be found in the generated header files for compatibility.

## Version History

- Revision 1, 2018-11-01 (Jeff Bolz)

  - Internal revisions

- Revision 2, 2019-01-06 (Jon Leech)

  - Minor updates to appendix for publication

## See Also

VkBufferDeviceAddressCreateInfoEXT, VkBufferDeviceAddressInfoEXT, VkPhysicalDeviceBufferAddressFeaturesEXT, VkPhysicalDeviceBufferDeviceAddressFeaturesEXT, vkGetBufferDeviceAddressEXT

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

SPDX-License-Identifier: CC-BY-4.0