Structures

VkCopyMemoryIndirectInfoKHR

Parameters describing indirect copy parameters

The VkCopyMemoryIndirectInfoKHR structure is defined as:

typedef struct VkCopyMemoryIndirectInfoKHR {
    VkStructureType sType;
    const void* pNext;
    VkAddressCopyFlagsKHR srcCopyFlags;
    VkAddressCopyFlagsKHR dstCopyFlags;
    uint32_t copyCount;
    VkStridedDeviceAddressRangeKHR copyAddressRange;
} VkCopyMemoryIndirectInfoKHR;
  • sType is a VkStructureType value identifying this structure.
  • pNext is NULL or a pointer to a structure extending this structure.
  • srcCopyFlags is a VkAddressCopyFlagsKHR value defining the copy flags for the source address range.
  • dstCopyFlags is a VkAddressCopyFlagsKHR value defining the copy flags for the destination address range.
  • copyCount is the number of copies to execute, and can be zero.
  • copyAddressRange is 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