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.
Synopsis
- pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR
- pattern STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_KHR
- pattern STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO_KHR
- pattern STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR
- pattern STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR
- pattern BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR
- pattern BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR
- pattern MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT_KHR
- pattern MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR
- pattern ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR
- value getBufferOpaqueCaptureAddressKHR
- value getBufferDeviceAddressKHR
- value getDeviceMemoryOpaqueCaptureAddressKHR
- type PhysicalDeviceBufferDeviceAddressFeaturesKHR
- type BufferDeviceAddressInfoKHR
- type BufferOpaqueCaptureAddressCreateInfoKHR
- type MemoryOpaqueCaptureAddressAllocateInfoKHR
- type DeviceMemoryOpaqueCaptureAddressInfoKHR
- type KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION
- pattern KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION
- type KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME
- pattern KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME
- Packagevulkan-3.27
- Exports22
- LanguageGHC2021
- LicenceBSD-3-Clause
- SourceVK_KHR_buffer_device_address.hs