Modulevulkan-3.27GHC2021
Vulkan.Extensions.VK_KHR_buffer_device_address
Name
VK_KHR_buffer_device_address - device extension
VK_KHR_buffer_device_address
- Name String
VK_KHR_buffer_device_address
- Extension Type
Device extension
- Registered Extension Number
258
- Revision
1
- Ratification Status
Ratified
- Extension and Version Dependencies
VK_KHR_get_physical_device_properties2 and
VK_KHR_device_group or Vulkan Version 1.1
- SPIR-V Dependencies
- Deprecation State
Promoted to Vulkan 1.2
- Contact
Other Extension Metadata
- Last Modified Date
2019-06-24
- IP Status
No known IP claims.
- Interactions and External Dependencies
This extension provides API support for GL_EXT_buffer_reference and GL_EXT_buffer_reference2 and GL_EXT_buffer_reference_uvec2
- Contributors
Jeff Bolz, NVIDIA
Neil Henning, AMD
Tobias Hector, AMD
Faith Ekstrand, Intel
Baldur Karlsson, Valve
Jan-Harald Fredriksen, Arm
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 PhysicalStorageBuffer storage class in the
GL_EXT_buffer_reference
GLSL extension and
SPV_KHR_physical_storage_buffer
SPIR-V extension.
Another way to describe this extension is that it adds “pointers to buffer memory in shaders”. By calling getBufferDeviceAddress with a Buffer, it will return a DeviceAddress value which represents the address of the start of the buffer.
getBufferOpaqueCaptureAddress
and
getDeviceMemoryOpaqueCaptureAddress
allow opaque addresses for buffers and memory objects to be queried for
the current process. A trace capture and replay tool can then supply
these addresses to be used at replay time to match the addresses used
when the trace was captured. To enable tools to insert these queries,
new memory allocation flags must be specified for memory objects that
will be bound to buffers accessed via the PhysicalStorageBuffer
storage class. __Note that this mechanism is intended only to support
capture/replay tools, and is not recommended for use in other
applications.__
Promotion to Vulkan 1.2
All functionality in this extension is included in core Vulkan 1.2, with
the KHR suffix omitted. However, if Vulkan 1.2 is supported and this
extension is not, the bufferDeviceAddress feature is optional. The
original type, enum, and command names are still available as aliases of
the core functionality.
Promotion to Vulkan 1.3
If Vulkan 1.3 is supported, support for the bufferDeviceAddress
capability is required.
New Commands
New Structures
Extending BufferCreateInfo:
Extending MemoryAllocateInfo:
Extending PhysicalDeviceFeatures2, DeviceCreateInfo:
New Enum Constants
Extending BufferCreateFlagBits:
Extending BufferUsageFlagBits:
Extending MemoryAllocateFlagBits:
Extending Result:
Extending StructureType:
New SPIR-V Capabilities
Version History
Revision 1, 2019-06-24 (Jan-Harald Fredriksen)
Internal revisions based on VK_EXT_buffer_device_address
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.
- 7 types
- 3 values
- Packagevulkan-3.27
- Exports22
- LanguageGHC2021
- LicenceBSD-3-Clause
- SourceVK_KHR_buffer_device_address.hs