If deviceAddress is zero, no specific address is requested.
If deviceAddress is not zero, deviceAddress must be an address retrieved from an identically created micromap on the same implementation. The micromap must also be placed on an identically created buffer and at the same offset.
Applications should avoid creating micromaps with application-provided addresses and implementation-provided addresses in the same process, to reduce the likelihood of ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR errors.
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 will add BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT to all buffers used as storage for a micromap where deviceAddress is not zero. This also means that the tool will need to add MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT to memory allocations to allow the flag to be set where the application may not have otherwise required it. During capture the tool 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. Apps/tools should avoid mixing app-provided and implementation-provided addresses for buffers created with BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT, to avoid address space allocation conflicts.
If the micromap will be the target of a build operation, the required size for a micromap can be queried with GetMicromapBuildSizesEXT.
deviceAddress is not zero, createFlags must include MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXTcreateFlags includes MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT, VkPhysicalDeviceOpacityMicromapFeaturesEXT::micromapCaptureReplay must be TRUEbuffer must have been created with a usage value containing BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXTbuffer must not have been created with BUFFER_CREATE_SPARSE_RESIDENCY_BIToffset and size must be less than the size of bufferoffset must be a multiple of 256 bytessType must be STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXTpNext must be NULLcreateFlags must be a valid combination of VkMicromapCreateFlagBitsEXT valuesbuffer must be a valid VkBuffer handletype must be a valid VkMicromapTypeEXT value
struct VkMicromapCreateInfoEXT {
VkStructureType sType;
void const * pNext;
VkMicromapCreateFlagsEXT createFlags;
VkBuffer buffer;
VkDeviceSize offset;
VkDeviceSize size;
VkMicromapTypeEXT type;
VkDeviceAddress deviceAddress;
}
| Modifier and Type | Class and Description |
|---|---|
| public static class | VkMicromapCreateInfoEXT.
An array of |
| Modifier and Type | Field and Description |
|---|---|
| public static final int | ALIGNOF
The struct alignment in bytes. |
| public static final int | BUFFER
The struct member offsets. |
| public static final int | CREATEFLAGS
The struct member offsets. |
| public static final int | DEVICEADDRESS
The struct member offsets. |
| public static final int | OFFSET
The struct member offsets. |
| public static final int | PNEXT
The struct member offsets. |
| public static final int | SIZE
The struct member offsets. |
| public static final int | SIZEOF
The struct size in bytes. |
| public static final int | STYPE
The struct member offsets. |
| public static final int | TYPE
The struct member offsets. |
| Access | Constructor and Description |
|---|---|
| protected | |
| public | VkMicromapCreateInfoEXT(ByteBuffer container)
Creates a |
| Modifier and Type | Method and Description |
|---|---|
| public long | |
| public VkMicromapCreateInfoEXT | |
| public static VkMicromapCreateInfoEXT | |
| public static VkMicromapCreateInfoEXT. | calloc(int
the buffer capacity capacity)Returns a new |
| public static VkMicromapCreateInfoEXT | calloc(MemoryStack
the stack from which to allocate stack)Returns a new |
| public static VkMicromapCreateInfoEXT. | calloc(int
the buffer capacity capacity, MemoryStack the stack from which to allocate stack)Returns a new |
| protected VkMicromapCreateInfoEXT | create(long
the struct memory address address, ByteBuffer an optional container buffer, to be referenced strongly by the struct instance. container)Implements abstract org. the constructor, but returns the exact type of the Struct subclass.
|
| public static VkMicromapCreateInfoEXT | |
| public static VkMicromapCreateInfoEXT | create(long address)
Returns a new |
| public static VkMicromapCreateInfoEXT. | create(int
the buffer capacity capacity)Returns a new |
| public static VkMicromapCreateInfoEXT. | create(long
the memory address address, int the buffer capacity capacity)Create a |
| public int | createFlags()
a bitmask of |
| public VkMicromapCreateInfoEXT | |
| public static VkMicromapCreateInfoEXT | |
| public static VkMicromapCreateInfoEXT. | |
| public long | deviceAddress()
the device address requested for the micromap if the |
| public VkMicromapCreateInfoEXT | |
| public static VkMicromapCreateInfoEXT | |
| public static VkMicromapCreateInfoEXT. | malloc(int
the buffer capacity capacity)Returns a new |
| public static VkMicromapCreateInfoEXT | malloc(MemoryStack
the stack from which to allocate stack)Returns a new |
| public static VkMicromapCreateInfoEXT. | malloc(int
the buffer capacity capacity, MemoryStack the stack from which to allocate stack)Returns a new |
| public static long | |
| public static void | |
| public static int | |
| public static void | |
| public static long | |
| public static void | |
| public static long | |
| public static void | |
| public static long | |
| public static void | |
| public static long | |
| public static void | |
| public static int | |
| public static void | |
| public static int | |
| public static void | |
| public long | offset()
an offset in bytes from the base address of the buffer at which the micromap will be stored, and must be a multiple of 256. |
| public VkMicromapCreateInfoEXT | |
| public long | |
| public VkMicromapCreateInfoEXT | |
| public VkMicromapCreateInfoEXT | set(int sType, long pNext, int createFlags, long buffer, long offset, long size, int type, long deviceAddress)
Initializes this struct with the specified values. |
| public VkMicromapCreateInfoEXT | Returns: this structthe source struct src)Copies the specified struct data to this struct. |
| public long | |
| public VkMicromapCreateInfoEXT | |
| public int | |
| public int | |
| public VkMicromapCreateInfoEXT | |
| public VkMicromapCreateInfoEXT | |
| public int | |
| public VkMicromapCreateInfoEXT |
| ALIGNOF | back to summary |
|---|---|
| public static final int ALIGNOF The struct alignment in bytes. | |
| BUFFER | back to summary |
|---|---|
| public static final int BUFFER The struct member offsets. | |
| CREATEFLAGS | back to summary |
|---|---|
| public static final int CREATEFLAGS The struct member offsets. | |
| DEVICEADDRESS | back to summary |
|---|---|
| public static final int DEVICEADDRESS The struct member offsets. | |
| OFFSET | back to summary |
|---|---|
| public static final int OFFSET The struct member offsets. | |
| PNEXT | back to summary |
|---|---|
| public static final int PNEXT The struct member offsets. | |
| SIZE | back to summary |
|---|---|
| public static final int SIZE The struct member offsets. | |
| SIZEOF | back to summary |
|---|---|
| public static final int SIZEOF The struct size in bytes. | |
| STYPE | back to summary |
|---|---|
| public static final int STYPE The struct member offsets. | |
| TYPE | back to summary |
|---|---|
| public static final int TYPE The struct member offsets. | |
| VkMicromapCreateInfoEXT | back to summary |
|---|---|
| protected VkMicromapCreateInfoEXT(long address, ByteBuffer container) | |
| VkMicromapCreateInfoEXT | back to summary |
|---|---|
| public VkMicromapCreateInfoEXT(ByteBuffer container) Creates a The created instance holds a strong reference to the container object. | |
| buffer | back to summary |
|---|---|
| public long buffer() the buffer on which the micromap will be stored.
| |
| buffer | back to summary |
|---|---|
| public VkMicromapCreateInfoEXT buffer(long value) Sets the specified value to the | |
| calloc | back to summary |
|---|---|
| public static VkMicromapCreateInfoEXT calloc() Returns a new | |
| calloc | back to summary |
|---|---|
| public static VkMicromapCreateInfoEXT. Returns a new
| |
| calloc | back to summary |
|---|---|
| public static VkMicromapCreateInfoEXT calloc(MemoryStack stack) Returns a new
| |
| calloc | back to summary |
|---|---|
| public static VkMicromapCreateInfoEXT. Returns a new
| |
| create | back to summary |
|---|---|
| protected VkMicromapCreateInfoEXT create(long address, ByteBuffer container) Implements abstract org. Doc from org. Similar to Effectively, every
| |
| create | back to summary |
|---|---|
| public static VkMicromapCreateInfoEXT create() Returns a new | |
| create | back to summary |
|---|---|
| public static VkMicromapCreateInfoEXT create(long address) Returns a new | |
| create | back to summary |
|---|---|
| public static VkMicromapCreateInfoEXT. Returns a new
| |
| create | back to summary |
|---|---|
| public static VkMicromapCreateInfoEXT. Create a
| |
| createFlags | back to summary |
|---|---|
| public int createFlags() a bitmask of
| |
| createFlags | back to summary |
|---|---|
| public VkMicromapCreateInfoEXT createFlags(int value) Sets the specified value to the | |
| createSafe | back to summary |
|---|---|
| public static VkMicromapCreateInfoEXT createSafe(long address) Like
| |
| createSafe | back to summary |
|---|---|
| public static VkMicromapCreateInfoEXT. Like
| |
| deviceAddress | back to summary |
|---|---|
| public long deviceAddress() the device address requested for the micromap if the
| |
| deviceAddress | back to summary |
|---|---|
| public VkMicromapCreateInfoEXT deviceAddress(long value) Sets the specified value to the | |
| malloc | back to summary |
|---|---|
| public static VkMicromapCreateInfoEXT malloc() Returns a new | |
| malloc | back to summary |
|---|---|
| public static VkMicromapCreateInfoEXT. Returns a new
| |
| malloc | back to summary |
|---|---|
| public static VkMicromapCreateInfoEXT malloc(MemoryStack stack) Returns a new
| |
| malloc | back to summary |
|---|---|
| public static VkMicromapCreateInfoEXT. Returns a new
| |
| nbuffer | back to summary |
|---|---|
| public static long nbuffer(long struct) Unsafe version of | |
| nbuffer | back to summary |
|---|---|
| public static void nbuffer(long struct, long value) Unsafe version of | |
| ncreateFlags | back to summary |
|---|---|
| public static int ncreateFlags(long struct) Unsafe version of | |
| ncreateFlags | back to summary |
|---|---|
| public static void ncreateFlags(long struct, int value) Unsafe version of | |
| ndeviceAddress | back to summary |
|---|---|
| public static long ndeviceAddress(long struct) Unsafe version of | |
| ndeviceAddress | back to summary |
|---|---|
| public static void ndeviceAddress(long struct, long value) Unsafe version of | |
| noffset | back to summary |
|---|---|
| public static long noffset(long struct) Unsafe version of | |
| noffset | back to summary |
|---|---|
| public static void noffset(long struct, long value) Unsafe version of | |
| npNext | back to summary |
|---|---|
| public static long npNext(long struct) Unsafe version of | |
| npNext | back to summary |
|---|---|
| public static void npNext(long struct, long value) Unsafe version of | |
| nsize | back to summary |
|---|---|
| public static long nsize(long struct) Unsafe version of | |
| nsize | back to summary |
|---|---|
| public static void nsize(long struct, long value) Unsafe version of | |
| nsType | back to summary |
|---|---|
| public static int nsType(long struct) Unsafe version of | |
| nsType | back to summary |
|---|---|
| public static void nsType(long struct, int value) Unsafe version of | |
| ntype | back to summary |
|---|---|
| public static int ntype(long struct) Unsafe version of | |
| ntype | back to summary |
|---|---|
| public static void ntype(long struct, int value) Unsafe version of | |
| offset | back to summary |
|---|---|
| public long offset() an offset in bytes from the base address of the buffer at which the micromap will be stored, and must be a multiple of 256.
| |
| offset | back to summary |
|---|---|
| public VkMicromapCreateInfoEXT offset(long value) Sets the specified value to the | |
| pNext | back to summary |
|---|---|
| public long pNext()
| |
| pNext | back to summary |
|---|---|
| public VkMicromapCreateInfoEXT pNext(long value) Sets the specified value to the | |
| set | back to summary |
|---|---|
| public VkMicromapCreateInfoEXT set(int sType, long pNext, int createFlags, long buffer, long offset, long size, int type, long deviceAddress) Initializes this struct with the specified values. | |
| set | back to summary |
|---|---|
| public VkMicromapCreateInfoEXT set(VkMicromapCreateInfoEXT src) Copies the specified struct data to this struct.
| |
| size | back to summary |
|---|---|
| public long size() the size required for the micromap.
| |
| size | back to summary |
|---|---|
| public VkMicromapCreateInfoEXT size(long value) Sets the specified value to the | |
| sizeof | back to summary |
|---|---|
| public int sizeof() Implements abstract org. Doc from org. Returns
| |
| sType | back to summary |
|---|---|
| public int sType() a
| |
| sType | back to summary |
|---|---|
| public VkMicromapCreateInfoEXT sType(int value) Sets the specified value to the | |
| sType$Default | back to summary |
|---|---|
| public VkMicromapCreateInfoEXT sType$Default() Sets the | |
| type | back to summary |
|---|---|
| public int type() a
| |
| type | back to summary |
|---|---|
| public VkMicromapCreateInfoEXT type(int value) Sets the specified value to the | |
VkMicromapCreateInfoEXT structs.
| Modifier and Type | Field and Description |
|---|---|
| private static final VkMicromapCreateInfoEXT |
| Access | Constructor and Description |
|---|---|
| public | Buffer(ByteBuffer container)
Creates a new |
| public | |
| pack-priv |
| Modifier and Type | Method and Description |
|---|---|
| public long | |
| public VkMicromapCreateInfoEXT. | |
| public int | |
| public VkMicromapCreateInfoEXT. | |
| public long | |
| public VkMicromapCreateInfoEXT. | deviceAddress(long value)
Sets the specified value to the |
| protected VkMicromapCreateInfoEXT | |
| public long | |
| public VkMicromapCreateInfoEXT. | |
| public long | |
| public VkMicromapCreateInfoEXT. | |
| protected VkMicromapCreateInfoEXT. | |
| public long | |
| public VkMicromapCreateInfoEXT. | |
| public int | |
| public VkMicromapCreateInfoEXT. | |
| public VkMicromapCreateInfoEXT. | sType$Default()
Sets the |
| public int | |
| public VkMicromapCreateInfoEXT. |
| ELEMENT_FACTORY | back to summary |
|---|---|
| private static final VkMicromapCreateInfoEXT ELEMENT_FACTORY | |
| Buffer | back to summary |
|---|---|
| public Buffer(ByteBuffer container) Creates a new Changes to the container's content will be visible to the struct buffer instance and vice versa. The two buffers' position, limit, and mark values
will be independent. The new buffer's position will be zero, its capacity and its limit will be the number of bytes remaining in this buffer divided
by The created buffer instance holds a strong reference to the container object. | |
| Buffer | back to summary |
|---|---|
| public Buffer(long address, int cap) | |
| Buffer | back to summary |
|---|---|
| pack-priv Buffer(long address, ByteBuffer container, int mark, int pos, int lim, int cap) | |
| buffer | back to summary |
|---|---|
public long buffer()
| |
| buffer | back to summary |
|---|---|
| public VkMicromapCreateInfoEXT. Sets the specified value to the | |
| createFlags | back to summary |
|---|---|
public int createFlags()
| |
| createFlags | back to summary |
|---|---|
| public VkMicromapCreateInfoEXT. Sets the specified value to the | |
| deviceAddress | back to summary |
|---|---|
public long deviceAddress()
| |
| deviceAddress | back to summary |
|---|---|
| public VkMicromapCreateInfoEXT. Sets the specified value to the | |
| getElementFactory | back to summary |
|---|---|
| protected VkMicromapCreateInfoEXT getElementFactory() Implements abstract org.
| |
| offset | back to summary |
|---|---|
public long offset()
| |
| offset | back to summary |
|---|---|
| public VkMicromapCreateInfoEXT. Sets the specified value to the | |
| pNext | back to summary |
|---|---|
public long pNext()
| |
| pNext | back to summary |
|---|---|
| public VkMicromapCreateInfoEXT. Sets the specified value to the | |
| self | back to summary |
|---|---|
| protected VkMicromapCreateInfoEXT. Implements abstract org.
| |
| size | back to summary |
|---|---|
public long size()
| |
| size | back to summary |
|---|---|
| public VkMicromapCreateInfoEXT. Sets the specified value to the | |
| sType | back to summary |
|---|---|
public int sType()
| |
| sType | back to summary |
|---|---|
| public VkMicromapCreateInfoEXT. Sets the specified value to the | |
| sType$Default | back to summary |
|---|---|
| public VkMicromapCreateInfoEXT. Sets the | |
| type | back to summary |
|---|---|
public int type()
| |
| type | back to summary |
|---|---|
| public VkMicromapCreateInfoEXT. Sets the specified value to the | |