vkCreateMicromapEXT
To create a micromap, call:
VkResult vkCreateMicromapEXT(
VkDevice device,
const VkMicromapCreateInfoEXT* pCreateInfo,
const VkAllocationCallbacks* pAllocator,
VkMicromapEXT* pMicromap);
deviceis the logical device that creates the acceleration structure object.pCreateInfois a pointer to a VkMicromapCreateInfoEXT structure containing parameters affecting creation of the micromap.pAllocatorcontrols host memory allocation as described in the Memory Allocation chapter.pMicromapis a pointer to a VkMicromapEXT handle in which the resulting micromap object is returned.
Similar to other objects in Vulkan, the micromap creation merely creates an
object with a specific shape.
The type and quantity of geometry that can be built into a micromap is
determined by the parameters of VkMicromapCreateInfoEXT.
The micromap data is stored in the object referred to by
VkMicromapCreateInfoEXT::buffer.
Once memory has been bound to that buffer, it must be populated by micromap
build or micromap copy commands such as vkCmdBuildMicromapsEXT,
vkBuildMicromapsEXT, vkCmdCopyMicromapEXT, and
vkCopyMicromapEXT.
The expected usage for a trace capture/replay tool is that it will serialize
and later deserialize the micromap data using micromap copy commands.
During capture the tool will use vkCopyMicromapToMemoryEXT or
vkCmdCopyMicromapToMemoryEXT with a mode of
VK_COPY_MICROMAP_MODE_SERIALIZE_EXT, and
vkCopyMemoryToMicromapEXT or vkCmdCopyMemoryToMicromapEXT with a
mode of VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT during replay.
The input buffers passed to micromap build commands will be referenced by the implementation for the duration of the command. Micromaps must be fully self-contained. The application can reuse or free any memory which was used by the command as an input or as scratch without affecting the results of a subsequent acceleration structure build using the micromap or traversal of that acceleration structure.
Valid Usage
VUID-vkCreateMicromapEXT-micromap-07430
The micromap feature must be enabled
VUID-vkCreateMicromapEXT-deviceAddress-07431
If VkMicromapCreateInfoEXT::deviceAddress is not zero, the
micromapCaptureReplay feature
must be enabled
VUID-vkCreateMicromapEXT-device-07432
If device was created with multiple physical devices, then the
bufferDeviceAddressMultiDevice feature must be enabled
Valid Usage (Implicit)
VUID-vkCreateMicromapEXT-device-parameter
device must be a valid VkDevice handle
VUID-vkCreateMicromapEXT-pCreateInfo-parameter
pCreateInfo must be a valid pointer to a valid VkMicromapCreateInfoEXT structure
VUID-vkCreateMicromapEXT-pAllocator-parameter
If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateMicromapEXT-pMicromap-parameter
pMicromap must be a valid pointer to a VkMicromapEXT handle