VkCopyMemoryIndirectInfoKHR
The VkCopyMemoryIndirectInfoKHR structure is defined as:
typedef struct VkCopyMemoryIndirectInfoKHR {
VkStructureType sType;
const void* pNext;
VkAddressCopyFlagsKHR srcCopyFlags;
VkAddressCopyFlagsKHR dstCopyFlags;
uint32_t copyCount;
VkStridedDeviceAddressRangeKHR copyAddressRange;
} VkCopyMemoryIndirectInfoKHR;
pub struct CopyMemoryIndirectInfoKHR {
s_type: vk::StructureType,
p_next: *const c_void,
src_copy_flags: vk::AddressCopyFlagsKHR,
dst_copy_flags: vk::AddressCopyFlagsKHR,
copy_count: u32,
copy_address_range: vk::StridedDeviceAddressRangeKHR,
}
sTypeis a VkStructureType value identifying this structure.pNextisNULLor a pointer to a structure extending this structure.srcCopyFlagsis a VkAddressCopyFlagsKHR value defining the copy flags for the source address range.dstCopyFlagsis a VkAddressCopyFlagsKHR value defining the copy flags for the destination address range.copyCountis the number of copies to execute, and can be zero.copyAddressRangeis a memory region specifying the copy parameters. It is laid out as an array of VkCopyMemoryIndirectCommandKHR structures.
Valid Usage
VUID-VkCopyMemoryIndirectInfoKHR-srcCopyFlags-10938
If srcCopyFlags contains VK_ADDRESS_COPY_SPARSE_BIT_KHR, the
source memory regions accessed must be bound to
memory
VUID-VkCopyMemoryIndirectInfoKHR-dstCopyFlags-10939
If dstCopyFlags contains VK_ADDRESS_COPY_SPARSE_BIT_KHR, the
destination memory regions accessed must be bound to
memory
VUID-VkCopyMemoryIndirectInfoKHR-srcCopyFlags-10940
srcCopyFlags must not contain
VK_ADDRESS_COPY_PROTECTED_BIT_KHR
VUID-VkCopyMemoryIndirectInfoKHR-dstCopyFlags-10941
dstCopyFlags must not contain
VK_ADDRESS_COPY_PROTECTED_BIT_KHR
VUID-VkCopyMemoryIndirectInfoKHR-copyAddressRange-10942
copyAddressRange.address must be 4 byte aligned
VUID-VkCopyMemoryIndirectInfoKHR-copyAddressRange-10943
copyAddressRange.stride must be a multiple of 4 and must be
greater than or equal to sizeof(VkCopyMemoryIndirectCommandKHR)
VUID-VkCopyMemoryIndirectInfoKHR-copyCount-10944
copyCount must be less than or equal to
copyAddressRange.size / copyAddressRange.stride
VUID-VkCopyMemoryIndirectInfoKHR-copyAddressRange-10945
Any of the source or destination memory regions specified in
copyAddressRange must not overlap with any of the specified
destination memory regions
VUID-VkCopyMemoryIndirectInfoKHR-copyAddressRange-12210
copyAddressRange must be a device address range allocated to the
application from a buffer created with the
VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT usage flag set
Valid Usage (Implicit)
VUID-VkCopyMemoryIndirectInfoKHR-sType-sType
sType must be VK_STRUCTURE_TYPE_COPY_MEMORY_INDIRECT_INFO_KHR
VUID-VkCopyMemoryIndirectInfoKHR-pNext-pNext
pNext must be NULL
VUID-VkCopyMemoryIndirectInfoKHR-srcCopyFlags-parameter
srcCopyFlags must be a valid combination of VkAddressCopyFlagBitsKHR values
VUID-VkCopyMemoryIndirectInfoKHR-dstCopyFlags-parameter
dstCopyFlags must be a valid combination of VkAddressCopyFlagBitsKHR values