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 size requirements for a scratch buffer may be zero.

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