Function Prototype

vkCreateMicromapEXT

Create a new micromap object

To create a micromap, call:

VkResult vkCreateMicromapEXT(
    VkDevice                                           device,
    const VkMicromapCreateInfoEXT*                     pCreateInfo,
    const VkAllocationCallbacks*       pAllocator,
    VkMicromapEXT*                                     pMicromap);
  • device is the logical device that creates the micromap structure object.
  • pCreateInfo is a pointer to a VkMicromapCreateInfoEXT structure containing parameters affecting creation of the micromap.
  • pAllocator controls host memory allocation as described in the Memory Allocation chapter.
  • pMicromap is 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 set VkCopyMicromapToMemoryInfoEXT::mode to VK_COPY_MICROMAP_MODE_SERIALIZE_EXT, and during replay the tool will set VkCopyMemoryToMicromapInfoEXT::mode to VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT.

Valid Usage (Implicit)

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

VUID-vkCreateMicromapEXT-device-queuecount

The device must have been created with at least 1 queue