Function Prototype

vkCopyAccelerationStructureKHR

Copy an acceleration structure on the host

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

VkResult vkCopyAccelerationStructureKHR(
    VkDevice device,
    VkDeferredOperationKHR deferredOperation,
    const VkCopyAccelerationStructureInfoKHR* pInfo);

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

Valid Usage (Implicit)

VUID-vkCopyAccelerationStructureKHR-deferredOperation-parameter

If deferredOperation is not VK_NULL_HANDLE, deferredOperation must be a valid VkDeferredOperationKHR handle

VUID-vkCopyAccelerationStructureKHR-deferredOperation-parent

If deferredOperation is a valid handle, it must have been created, allocated, or retrieved from device