vulkan-3.17: Bindings to the Vulkan graphics API.
Safe HaskellNone
LanguageHaskell2010

Vulkan.Extensions.VK_EXT_buffer_device_address

Description

Name

VK_EXT_buffer_device_address - device extension

VK_EXT_buffer_device_address

Name String
VK_EXT_buffer_device_address
Extension Type
Device extension
Registered Extension Number
245
Revision
2
Extension and Version Dependencies
  • Requires Vulkan 1.0
  • Requires VK_KHR_get_physical_device_properties2
Deprecation state
  • Deprecated by VK_KHR_buffer_device_address extension

Contact

Other Extension Metadata

Last Modified Date
2019-01-06
IP Status
No known IP claims.
Interactions and External Dependencies
Contributors
  • Jeff Bolz, NVIDIA
  • Neil Henning, AMD
  • Tobias Hector, AMD
  • Jason 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

New Structures

New Enum Constants

New SPIR-V Capabilities

Issues

1) Where is VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT and VkPhysicalDeviceBufferAddressFeaturesEXT?

RESOLVED: They were renamed as STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT and PhysicalDeviceBufferDeviceAddressFeaturesEXT 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

BufferDeviceAddressCreateInfoEXT, BufferDeviceAddressInfoEXT, PhysicalDeviceBufferAddressFeaturesEXT, PhysicalDeviceBufferDeviceAddressFeaturesEXT, getBufferDeviceAddressEXT

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

Documentation

data PhysicalDeviceBufferDeviceAddressFeaturesEXT Source #

VkPhysicalDeviceBufferDeviceAddressFeaturesEXT - Structure describing buffer address features that can be supported by an implementation

Members

This structure describes the following features:

Description

If the PhysicalDeviceBufferDeviceAddressFeaturesEXT structure is included in the pNext chain of the PhysicalDeviceFeatures2 structure passed to getPhysicalDeviceFeatures2, it is filled in to indicate whether each corresponding feature is supported. PhysicalDeviceBufferDeviceAddressFeaturesEXT can also be used in the pNext chain of DeviceCreateInfo to selectively enable these features.

Note

The PhysicalDeviceBufferDeviceAddressFeaturesEXT structure has the same members as the PhysicalDeviceBufferDeviceAddressFeatures structure, but the functionality indicated by the members is expressed differently. The features indicated by the PhysicalDeviceBufferDeviceAddressFeatures structure requires additional flags to be passed at memory allocation time, and the capture and replay mechanism is built around opaque capture addresses for buffer and memory objects.

Valid Usage (Implicit)

See Also

VK_EXT_buffer_device_address, Bool32, StructureType

Constructors

PhysicalDeviceBufferDeviceAddressFeaturesEXT 

Fields

  • bufferDeviceAddress :: Bool

    bufferDeviceAddress indicates that the implementation supports accessing buffer memory in shaders as storage buffers via an address queried from getBufferDeviceAddressEXT.

  • bufferDeviceAddressCaptureReplay :: Bool

    bufferDeviceAddressCaptureReplay indicates that the implementation supports saving and reusing buffer addresses, e.g. for trace capture and replay.

  • bufferDeviceAddressMultiDevice :: Bool

    bufferDeviceAddressMultiDevice indicates that the implementation supports the bufferDeviceAddress feature for logical devices created with multiple physical devices. If this feature is not supported, buffer addresses must not be queried on a logical device created with more than one physical device.

Instances

Instances details
Eq PhysicalDeviceBufferDeviceAddressFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_buffer_device_address

Show PhysicalDeviceBufferDeviceAddressFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_buffer_device_address

Storable PhysicalDeviceBufferDeviceAddressFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_buffer_device_address

FromCStruct PhysicalDeviceBufferDeviceAddressFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_buffer_device_address

ToCStruct PhysicalDeviceBufferDeviceAddressFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_buffer_device_address

Zero PhysicalDeviceBufferDeviceAddressFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_buffer_device_address

data BufferDeviceAddressCreateInfoEXT Source #

VkBufferDeviceAddressCreateInfoEXT - Request a specific address for a buffer

Description

If deviceAddress is zero, no specific address is requested.

If deviceAddress is not zero, then it must be an address retrieved from an identically created buffer on the same implementation. The buffer must also be bound to an identically created DeviceMemory object.

If this structure is not present, it is as if deviceAddress is zero.

Apps should avoid creating buffers with app-provided addresses and implementation-provided addresses in the same process, to reduce the likelihood of ERROR_INVALID_DEVICE_ADDRESS_EXT errors.

Valid Usage (Implicit)

See Also

VK_EXT_buffer_device_address, DeviceAddress, StructureType

Constructors

BufferDeviceAddressCreateInfoEXT 

Fields

Instances

Instances details
Eq BufferDeviceAddressCreateInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_buffer_device_address

Show BufferDeviceAddressCreateInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_buffer_device_address

Storable BufferDeviceAddressCreateInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_buffer_device_address

FromCStruct BufferDeviceAddressCreateInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_buffer_device_address

ToCStruct BufferDeviceAddressCreateInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_buffer_device_address

Zero BufferDeviceAddressCreateInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_buffer_device_address

type EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME = "VK_EXT_buffer_device_address" Source #