VkPhysicalDeviceBufferDeviceAddressFeatures
The VkPhysicalDeviceBufferDeviceAddressFeatures structure is defined
as:
typedef struct VkPhysicalDeviceBufferDeviceAddressFeatures {
VkStructureType sType;
void* pNext;
VkBool32 bufferDeviceAddress;
VkBool32 bufferDeviceAddressCaptureReplay;
VkBool32 bufferDeviceAddressMultiDevice;
} VkPhysicalDeviceBufferDeviceAddressFeatures;
or the equivalent
typedef VkPhysicalDeviceBufferDeviceAddressFeatures VkPhysicalDeviceBufferDeviceAddressFeaturesKHR;
This structure describes the following features:
sTypeis a VkStructureType value identifying this structure.pNextisNULLor a pointer to a structure extending this structure.bufferDeviceAddressindicates that the implementation supports accessing buffer memory in shaders as storage buffers via an address queried from vkGetBufferDeviceAddress.bufferDeviceAddressCaptureReplayindicates that the implementation supports saving and reusing buffer and device addresses, e.g. for trace capture and replay.bufferDeviceAddressMultiDeviceindicates that the implementation supports thebufferDeviceAddress,rayTracingPipelineandrayQueryfeatures for logical devices created with multiple physical devices. If this feature is not supported, buffer and acceleration structure addresses must not be queried on a logical device created with more than one physical device.
bufferDeviceAddressMultiDevice exists to allow certain legacy
platforms to be able to support bufferDeviceAddress without needing to
support shared GPU virtual addresses for multi-device configurations.
See vkGetBufferDeviceAddress for more information.
If the VkPhysicalDeviceBufferDeviceAddressFeatures structure is included in the pNext chain of the
VkPhysicalDeviceFeatures2 structure passed to
vkGetPhysicalDeviceFeatures2, it is filled in to indicate whether each
corresponding feature is supported.
If the application wishes to use a VkDevice with any features
described by VkPhysicalDeviceBufferDeviceAddressFeatures, it must add an instance of the structure,
with the desired feature members set to VK_TRUE, to the pNext
chain of VkDeviceCreateInfo when creating the VkDevice.
Valid Usage (Implicit)
VUID-VkPhysicalDeviceBufferDeviceAddressFeatures-sType-sType
sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES