Class VkBufferOpaqueCaptureAddressCreateInfo

java.lang.Object
org.lwjgl.system.Pointer.Default
org.lwjgl.system.Struct<VkBufferOpaqueCaptureAddressCreateInfo>
org.lwjgl.vulkan.VkBufferOpaqueCaptureAddressCreateInfo
All Implemented Interfaces:
AutoCloseable, org.lwjgl.system.NativeResource, org.lwjgl.system.Pointer
Direct Known Subclasses:
VkBufferOpaqueCaptureAddressCreateInfoKHR

public class VkBufferOpaqueCaptureAddressCreateInfo extends org.lwjgl.system.Struct<VkBufferOpaqueCaptureAddressCreateInfo> implements org.lwjgl.system.NativeResource
Request a specific address for a buffer.
Description

If opaqueCaptureAddress is zero, no specific address is requested.

If opaqueCaptureAddress is not zero, then it should be an address retrieved from GetBufferOpaqueCaptureAddress for an identically created buffer on the same implementation.

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

Applications should avoid creating buffers with application-provided addresses and implementation-provided addresses in the same process, to reduce the likelihood of ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS errors.

Note

The expected usage for this is that a trace capture/replay tool will add the BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT flag to all buffers that use BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT, and during capture will save the queried opaque 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. Applications and tools should avoid mixing application-provided and implementation-provided addresses for buffers created with BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT, to avoid address space allocation conflicts.

Valid Usage (Implicit)

Layout


 struct VkBufferOpaqueCaptureAddressCreateInfo {
     VkStructureType sType();
     void const * pNext();
     uint64_t opaqueCaptureAddress();
 }