Function Prototype

vkCmdCopyAccelerationStructureKHR

Copy an acceleration structure
primary / secondary
outside
compute
action

To copy an acceleration structure call:

void vkCmdCopyAccelerationStructureKHR(
    VkCommandBuffer commandBuffer,
    const VkCopyAccelerationStructureInfoKHR* pInfo);
  • commandBuffer is the command buffer into which the command will be recorded.
  • pInfo is a pointer to a VkCopyAccelerationStructureInfoKHR structure defining the copy operation.

This command copies the pInfo→src acceleration structure to the pInfo→dst acceleration structure in the manner specified by pInfo→mode.

Accesses to pInfo→src and pInfo→dst must be synchronized with the VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR

pipeline stage or the VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR

pipeline stage, and an access type of VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR or VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR as appropriate.

Valid Usage

VUID-vkCmdCopyAccelerationStructureKHR-buffer-03737

The buffer used to create pInfo→src must be bound to device memory

VUID-vkCmdCopyAccelerationStructureKHR-buffer-03738

The buffer used to create pInfo→dst must be bound to device memory

Valid Usage (Implicit)

VUID-vkCmdCopyAccelerationStructureKHR-commandBuffer-cmdpool

The VkCommandPool that commandBuffer was allocated from must support compute operations

VUID-vkCmdCopyAccelerationStructureKHR-renderpass

This command must only be called outside of a render pass instance

VUID-vkCmdCopyAccelerationStructureKHR-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 ::