vkCopyAccelerationStructureKHR(3)

# vkCopyAccelerationStructureKHR(3) Manual Page

## Name

vkCopyAccelerationStructureKHR - Copy an acceleration structure on the host

## 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

- `device` is the device which owns the acceleration structures.

- `deferredOperation` is an optional VkDeferredOperationKHR to request deferral for this command.

- `pInfo` is a pointer to a VkCopyAccelerationStructureInfoKHR structure defining the copy operation.

## Description

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

Valid Usage

- VUID-vkCopyAccelerationStructureKHR-accelerationStructureHostCommands-03582
  The `VkPhysicalDeviceAccelerationStructureFeaturesKHR`::`accelerationStructureHostCommands` feature must be enabled

- 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`

Return Codes

On success, this command returns

  - VK_OPERATION_DEFERRED_KHR

  - VK_OPERATION_NOT_DEFERRED_KHR

  - VK_SUCCESS

On failure, this command returns

  - VK_ERROR_OUT_OF_DEVICE_MEMORY

  - VK_ERROR_OUT_OF_HOST_MEMORY

  - VK_ERROR_UNKNOWN

  - VK_ERROR_VALIDATION_FAILED

## See Also

VK_KHR_acceleration_structure, VkCopyAccelerationStructureInfoKHR, VkDeferredOperationKHR, VkDevice

## 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

Copyright 2014-2026 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0