vkCopyAccelerationStructureKHR
To copy or compact an acceleration structure on the host, call:
VkResult vkCopyAccelerationStructureKHR(
VkDevice device,
VkDeferredOperationKHR deferredOperation,
const VkCopyAccelerationStructureInfoKHR* pInfo);
pub fn copy_acceleration_structure_khr(
device: vk::Device,
deferred_operation: vk::DeferredOperationKHR,
p_info: *const vk::CopyAccelerationStructureInfoKHR,
) -> vk::Result;
deviceis the device which owns the acceleration structures.deferredOperationis an optional VkDeferredOperationKHR to request deferral for this command.pInfois a pointer to a VkCopyAccelerationStructureInfoKHR structure defining the copy operation.
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