// Copyright 2018-2024 The Khronos Group Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

include::{generated}/meta/{refprefix}VK_EXT_buffer_device_address.adoc[]

=== 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
    {GLSLregistry}/ext/GLSL_EXT_buffer_reference.txt[`GLSL_EXT_buffer_reference`]
    and
    {GLSLregistry}/ext/GLSL_EXT_buffer_reference_uvec2.txt[`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 code:PhysicalStorageBufferEXT storage class in the
{GLSLregistry}/ext/GLSL_EXT_buffer_reference.txt[`GL_EXT_buffer_reference`]
GLSL extension and
{spirv}/EXT/SPV_EXT_physical_storage_buffer.html[`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.

include::{generated}/interfaces/VK_EXT_buffer_device_address.adoc[]

=== New SPIR-V Capabilities

  * <<spirvenv-capabilities-table-PhysicalStorageBufferAddresses,
    code:PhysicalStorageBufferAddressesEXT>>

=== Issues

1) Where is VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT
and VkPhysicalDeviceBufferAddressFeaturesEXT?

*RESOLVED*: They were renamed as
ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT
and slink: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
