C Specification

To copy or compact an acceleration structure on the host, call:

Warning
This functionality is superseded by vkCmdCopyAccelerationStructureKHR. See Legacy Functionality for more information.
// Provided by VK_KHR_acceleration_structure
VkResult vkCopyAccelerationStructureKHR(
    VkDevice                                    device,
    VkDeferredOperationKHR                      deferredOperation,
    const VkCopyAccelerationStructureInfoKHR*   pInfo);

Parameters

Description

This command fulfills the same task as vkCmdCopyAccelerationStructureKHR but is executed by the host.

Valid Usage
  • VUID-vkCopyAccelerationStructureKHR-deferredOperation-03678
    Any previous deferred operation that was associated with deferredOperation must be complete

  • VUID-vkCopyAccelerationStructureKHR-buffer-03727
    pInfo->src must be bound to host-visible device memory

  • VUID-vkCopyAccelerationStructureKHR-buffer-03728
    pInfo->dst must be bound to host-visible device memory

  • VUID-vkCopyAccelerationStructureKHR-buffer-03780
    pInfo->src must be bound to memory that was not allocated with multiple instances

  • VUID-vkCopyAccelerationStructureKHR-buffer-03781
    pInfo->dst must be bound to memory that was not allocated with multiple instances

  • VUID-vkCopyAccelerationStructureKHR-src-11586
    The source acceleration structure pInfo->src must have been constructed prior to the execution of this command

  • VUID-vkCopyAccelerationStructureKHR-src-11587
    If the source acceleration structure pInfo->src was constructed through deserialization, all micromap arrays the acceleration structure references that were not replaced by an acceleration structure update command must have been deserialized using the serialized data of the corresponding micromaps used to originally build the acceleration structure prior to the execution of this command

  • VUID-vkCopyAccelerationStructureKHR-src-11588
    pInfo->src must have been created with vkCreateAccelerationStructureKHR

  • VUID-vkCopyAccelerationStructureKHR-dst-11589
    pInfo->dst must have been created with vkCreateAccelerationStructureKHR

Valid Usage (Implicit)
  • VUID-vkCopyAccelerationStructureKHR-device-parameter
    device must be a valid VkDevice handle

  • VUID-vkCopyAccelerationStructureKHR-deferredOperation-parameter
    If deferredOperation is not VK_NULL_HANDLE, deferredOperation must be a valid VkDeferredOperationKHR handle

  • VUID-vkCopyAccelerationStructureKHR-pInfo-parameter
    pInfo must be a valid pointer to a valid VkCopyAccelerationStructureInfoKHR structure

  • VUID-vkCopyAccelerationStructureKHR-deferredOperation-parent
    If deferredOperation is a valid handle, it must have been created, allocated, or retrieved from device

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