Function Prototype

vkGetMicromapBuildSizesEXT

Retrieve the required size for a micromap

To get the build sizes for a micromap, call:

void vkGetMicromapBuildSizesEXT(
    VkDevice                                            device,
    VkAccelerationStructureBuildTypeKHR                 buildType,
    const VkMicromapBuildInfoEXT*  pBuildInfo,
    VkMicromapBuildSizesInfoEXT*           pSizeInfo);
  • device is the logical device that will be used for creating the micromap.
  • buildType defines whether host or device operations (or both) are being queried for.
  • pBuildInfo is a pointer to a VkMicromapBuildInfoEXT structure describing parameters of a build operation.
  • pSizeInfo is a pointer to a VkMicromapBuildSizesInfoEXT structure which returns the size required for a micromap and the sizes required for the scratch buffers, given the build parameters.

The dstMicromap and mode members of pBuildInfo are ignored. Any VkDeviceOrHostAddressKHR members of pBuildInfo are ignored by this command.

A micromap created with the micromapSize returned by this command supports any build with a VkMicromapBuildInfoEXT structure subject to the following properties:

  • The build command is a host build command, and buildType is VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR or VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR
  • The build command is a device build command, and buildType is VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR or VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR
  • For VkMicromapBuildInfoEXT:
    • Its type, and flags members are equal to pBuildInfo→type and pBuildInfo→flags, respectively.
    • The sum of usage information in either pUsageCounts or ppUsageCounts is equal to the sum of usage information in either pBuildInfo→pUsageCounts or pBuildInfo→ppUsageCounts.

Similarly, the buildScratchSize value will support any build command specifying the VK_BUILD_MICROMAP_MODE_BUILD_EXT mode under the above conditions.

Valid Usage

VUID-vkGetMicromapBuildSizesEXT-dstMicromap-09180

VkMicromapBuildInfoEXT::dstMicromap must have been created from device

VUID-vkGetMicromapBuildSizesEXT-device-07440

If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled