Class VkBufferDeviceAddressCreateInfoEXT

  • All Implemented Interfaces:
    java.lang.AutoCloseable, NativeResource, Pointer

    public class VkBufferDeviceAddressCreateInfoEXT
    extends Struct
    implements NativeResource
    Request a specific address for a buffer.

    If deviceAddress is zero, no specific address is requested.

    If deviceAddress is not zero, deviceAddress must be an address retrieved from an identically created buffer on the same implementation. The buffer must also be bound to an identically created VkDeviceMemory 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.


    The expected usage for this is that a trace capture/replay tool will add the BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT flag to all buffers that use BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT, and during capture will save the queried device addresses in the trace. During replay, the buffers will be created specifying the original address so any address values stored in the trace data will remain valid.

    Implementations are expected to separate such buffers in the GPU address space so normal allocations will avoid using these addresses. Apps/tools should avoid mixing app-provided and implementation-provided addresses for buffers created with BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT, to avoid address space allocation conflicts.

    Valid Usage (Implicit)

    Member documentation

    • sType – the type of this structure.
    • pNextNULL or a pointer to an extension-specific structure.
    • deviceAddress – the device address requested for the buffer.


     struct VkBufferDeviceAddressCreateInfoEXT {
         VkStructureType sType;
         void const * pNext;
         VkDeviceAddress deviceAddress;