VkMemoryOpaqueCaptureAddressAllocateInfo
To request a specific device address for a memory allocation, add a
VkMemoryOpaqueCaptureAddressAllocateInfo structure to the pNext
chain of the VkMemoryAllocateInfo structure.
The VkMemoryOpaqueCaptureAddressAllocateInfo
structure is defined as:
typedef struct VkMemoryOpaqueCaptureAddressAllocateInfo {
VkStructureType sType;
const void* pNext;
uint64_t opaqueCaptureAddress;
} VkMemoryOpaqueCaptureAddressAllocateInfo;
or the equivalent
typedef VkMemoryOpaqueCaptureAddressAllocateInfo VkMemoryOpaqueCaptureAddressAllocateInfoKHR;
sType
is a VkStructureType value identifying this structure.pNext
isNULL
or a pointer to a structure extending this structure.opaqueCaptureAddress
is the opaque capture address requested for the memory allocation.
If opaqueCaptureAddress
is zero, no specific address is requested.
If opaqueCaptureAddress
is not zero, it should be an address
retrieved from vkGetDeviceMemoryOpaqueCaptureAddress on an identically
created memory allocation on the same implementation.
In most cases, it is expected that a non-zero opaqueAddress
is an
address retrieved from vkGetDeviceMemoryOpaqueCaptureAddress on an
identically created memory allocation.
If this is not the case, it is likely that
VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS
errors will occur.
This is, however, not a strict requirement because trace capture/replay tools may need to adjust memory allocation parameters for imported memory.
If this structure is not present, it is as if opaqueCaptureAddress
is
zero.
Valid Usage (Implicit)
VUID-VkMemoryOpaqueCaptureAddressAllocateInfo-sType-sType
sType
must be VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO