Function Prototype

vkGetClusterAccelerationStructureBuildSizesNV

Retrieve the buffer allocation requirements for cluster geometry command

These cluster acceleration structures can be built or moved by a single versatile multi-indirect function vkCmdBuildClusterAccelerationStructureIndirectNV. To determine the memory requirements for executing this function, call:

void vkGetClusterAccelerationStructureBuildSizesNV(
    VkDevice device,
    const VkClusterAccelerationStructureInputInfoNV* pInfo,
    VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo);
  • device is the logical device that owns the acceleration structure.
  • pInfo is a pointer to a VkClusterAccelerationStructureInputInfoNV structure containing parameters required for the memory requirements query.
  • pSizeInfo is a pointer to a VkAccelerationStructureBuildSizesInfoKHR structure which returns the size required for an acceleration structure and scratch buffer, given the build parameters. The size requirements for a scratch buffer may be zero.

If VkClusterAccelerationStructureInputInfoNV::opMode is VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_IMPLICIT_DESTINATIONS_NV, acceleration structure and scratch memory sizes are returned for all VkClusterAccelerationStructureInputInfoNV::maxAccelerationStructureCount acceleration structures. If VkClusterAccelerationStructureInputInfoNV::opMode is VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_EXPLICIT_DESTINATIONS_NV, scratch memory size for all VkClusterAccelerationStructureInputInfoNV::maxAccelerationStructureCount acceleration structures and the acceleration structure memory size for a single acceleration structure is returned. If VkClusterAccelerationStructureInputInfoNV::opMode is VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_COMPUTE_SIZES_NV, only scratch memory size is returned for the requested acceleration structures.