vkCmdCopyAccelerationStructureNV
To copy an acceleration structure call:
void vkCmdCopyAccelerationStructureNV(
VkCommandBuffer commandBuffer,
VkAccelerationStructureNV dst,
VkAccelerationStructureNV src,
VkCopyAccelerationStructureModeKHR mode);
commandBufferis the command buffer into which the command will be recorded.dstis the target acceleration structure for the copy.srcis the source acceleration structure for the copy.modeis a VkCopyAccelerationStructureModeKHR value specifying additional operations to perform during the copy.
Accesses to src and 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-vkCmdCopyAccelerationStructureNV-mode-03410
mode must be
VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR or
VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR
VUID-vkCmdCopyAccelerationStructureNV-src-04963
The source acceleration structure src must have been constructed
prior to the execution of this command
VUID-vkCmdCopyAccelerationStructureNV-src-03411
If mode is VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR,
src must have been constructed with
VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR in the
build
VUID-vkCmdCopyAccelerationStructureNV-buffer-03718
The buffer used to create src must be bound to device
memory
VUID-vkCmdCopyAccelerationStructureNV-buffer-03719
The buffer used to create dst must be bound to device
memory
VUID-vkCmdCopyAccelerationStructureNV-dst-07791
The range of memory backing dst that is accessed by this command
must not overlap the memory backing src that is accessed by this
command
VUID-vkCmdCopyAccelerationStructureNV-dst-07792
dst must be bound completely and contiguously to a single
VkDeviceMemory object via
vkBindAccelerationStructureMemoryNV
Valid Usage (Implicit)
VUID-vkCmdCopyAccelerationStructureNV-commandBuffer-parameter
commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyAccelerationStructureNV-dst-parameter
dst must be a valid VkAccelerationStructureNV handle
VUID-vkCmdCopyAccelerationStructureNV-src-parameter
src must be a valid VkAccelerationStructureNV handle
VUID-vkCmdCopyAccelerationStructureNV-mode-parameter
mode must be a valid VkCopyAccelerationStructureModeKHR value
VUID-vkCmdCopyAccelerationStructureNV-commandBuffer-recording
commandBuffer must be in the recording state
VUID-vkCmdCopyAccelerationStructureNV-commandBuffer-cmdpool
The VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdCopyAccelerationStructureNV-renderpass
This command must only be called outside of a render pass instance
VUID-vkCmdCopyAccelerationStructureNV-videocoding
This command must only be called outside of a video coding scope
VUID-vkCmdCopyAccelerationStructureNV-commonparent
Each of commandBuffer, dst, and src must have been created, allocated, or retrieved from the same VkDevice
Host Synchronization
- Host access to
commandBuffermust be externally synchronized - Host access to the
VkCommandPoolthatcommandBufferwas allocated from must be externally synchronized ::