VK_NV_cluster_acceleration_structure
Other Extension Metadata
Last Modified Date
2024-09-09
Contributors
- Vikram Kushwaha, NVIDIA
- Eric Werness, NVIDIA
- Christoph Kubisch, NVIDIA
- Jan Schmid, NVIDIA
- Pyarelal Knowles, NVIDIA
Description
Acceleration structure build times can become a bottleneck in ray tracing applications dealing with extensive dynamic geometry. This extension addresses the problem by enabling applications to construct bottom-level acceleration structures (BLAS) from pre-generated acceleration structures based on clusters of triangles (CLAS), leading to significant improvements in build times.
It provides a host-side query function to fetch the requirements and a versatile multi-indirect call for managing cluster geometry. This call enables applications to generate cluster geometry, construct Cluster BLAS from CLAS lists, and move or copy CLAS and BLAS. By sourcing inputs from device memory and processing multiple elements simultaneously, the call reduces the host-side costs associated with traditional acceleration structure functions.
This extension adds support for the following SPIR-V extension in Vulkan:
SPV_NV_cluster_acceleration_structure
New Commands
New Structures
- VkClusterAccelerationStructureBuildClustersBottomLevelInfoNV
- VkClusterAccelerationStructureBuildTriangleClusterInfoNV
- VkClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV
- VkClusterAccelerationStructureClustersBottomLevelInputNV
- VkClusterAccelerationStructureCommandsInfoNV
- VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV
- VkClusterAccelerationStructureInputInfoNV
- VkClusterAccelerationStructureInstantiateClusterInfoNV
- VkClusterAccelerationStructureMoveObjectsInfoNV
- VkClusterAccelerationStructureMoveObjectsInputNV
- VkClusterAccelerationStructureTriangleClusterInputNV
- VkStridedDeviceAddressNV
- Extending VkPhysicalDeviceFeatures2, VkDeviceCreateInfo:
- Extending VkPhysicalDeviceProperties2:
If VK_KHR_ray_tracing_pipeline is supported:
- Extending VkRayTracingPipelineCreateInfoKHR:
New Unions
New Enums
- VkClusterAccelerationStructureAddressResolutionFlagBitsNV
- VkClusterAccelerationStructureClusterFlagBitsNV
- VkClusterAccelerationStructureGeometryFlagBitsNV
- VkClusterAccelerationStructureIndexFormatFlagBitsNV
- VkClusterAccelerationStructureOpModeNV
- VkClusterAccelerationStructureOpTypeNV
- VkClusterAccelerationStructureTypeNV
New Bitmasks
- VkClusterAccelerationStructureAddressResolutionFlagsNV
- VkClusterAccelerationStructureClusterFlagsNV
- VkClusterAccelerationStructureGeometryFlagsNV
- VkClusterAccelerationStructureIndexFormatFlagsNV
New Enum Constants
VK_NV_CLUSTER_ACCELERATION_STRUCTURE_EXTENSION_NAME
VK_NV_CLUSTER_ACCELERATION_STRUCTURE_SPEC_VERSION
- Extending VkStructureType:
VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_CLUSTERS_BOTTOM_LEVEL_INPUT_NV
VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_COMMANDS_INFO_NV
VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_INPUT_INFO_NV
VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_MOVE_OBJECTS_INPUT_NV
VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_TRIANGLE_CLUSTER_INPUT_NV
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_FEATURES_NV
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_PROPERTIES_NV
VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CLUSTER_ACCELERATION_STRUCTURE_CREATE_INFO_NV
If VK_EXT_opacity_micromap is supported:
- Extending VkOpacityMicromapSpecialIndexEXT:
VK_OPACITY_MICROMAP_SPECIAL_INDEX_CLUSTER_GEOMETRY_DISABLE_OPACITY_MICROMAP_NV
New or Modified Built-In Variables
New SPIR-V Capability
Version History
- Revision 2, 2024-09-09 (Vikram Kushwaha)
- Changes to some structures causing incompatibility with Revision 1
- Revision 1, 2024-08-29 (Vikram Kushwaha)
- Initial draft