C Specification

To build or move a cluster acceleration structure or a cluster acceleration structure template call:

// Provided by VK_NV_cluster_acceleration_structure
void vkCmdBuildClusterAccelerationStructureIndirectNV(
    VkCommandBuffer                             commandBuffer,
    const VkClusterAccelerationStructureCommandsInfoNV* pCommandInfos);

Parameters

  • commandBuffer is the command buffer into which the command is recorded.

  • pCommandInfos is a pointer to a VkClusterAccelerationStructureCommandsInfoNV structure containing parameters required for building or moving the cluster acceleration structure.

Description

Similar to vkCmdBuildAccelerationStructuresKHR, this command may initiate multiple acceleration structures builds and there is no ordering or synchronization implied between any of the individual acceleration structure builds. Accesses to the acceleration structure scratch memory as identified by the VkClusterAccelerationStructureCommandsInfoNV::scratchData must be synchronized with the VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR pipeline stage and an access type of (VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR | VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR).

Valid Usage
Valid Usage (Implicit)
  • VUID-vkCmdBuildClusterAccelerationStructureIndirectNV-commandBuffer-parameter
    commandBuffer must be a valid VkCommandBuffer handle

  • VUID-vkCmdBuildClusterAccelerationStructureIndirectNV-pCommandInfos-parameter
    pCommandInfos must be a valid pointer to a valid VkClusterAccelerationStructureCommandsInfoNV structure

  • VUID-vkCmdBuildClusterAccelerationStructureIndirectNV-commandBuffer-recording
    commandBuffer must be in the recording state

  • VUID-vkCmdBuildClusterAccelerationStructureIndirectNV-commandBuffer-cmdpool
    The VkCommandPool that commandBuffer was allocated from must support VK_QUEUE_COMPUTE_BIT operations

  • VUID-vkCmdBuildClusterAccelerationStructureIndirectNV-renderpass
    This command must only be called outside of a render pass instance

  • VUID-vkCmdBuildClusterAccelerationStructureIndirectNV-suspended
    This command must not be called between suspended render pass instances

  • VUID-vkCmdBuildClusterAccelerationStructureIndirectNV-videocoding
    This command must only be called outside of a video coding scope

Host Synchronization
  • Host access to commandBuffer must be externally synchronized

  • Host access to the VkCommandPool that commandBuffer was allocated from must be externally synchronized

Command Properties
Command Buffer Levels Render Pass Scope Video Coding Scope Supported Queue Types Command Type

Primary
Secondary

Outside

Outside

VK_QUEUE_COMPUTE_BIT

Action

Conditional Rendering

vkCmdBuildClusterAccelerationStructureIndirectNV is not affected by conditional rendering

See Also

Document Notes

For more information, see the Vulkan Specification.

This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.

Copyright 2014-2026 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0