VkCopyMemoryIndirectInfoKHR(3)

Name

VkCopyMemoryIndirectInfoKHR - Parameters describing indirect copy parameters

C Specification

The VkCopyMemoryIndirectInfoKHR structure is defined as:

// Provided by VK_KHR_copy_memory_indirect
typedef struct VkCopyMemoryIndirectInfoKHR {
    VkStructureType                   sType;
    const void*                       pNext;
    VkAddressCopyFlagsKHR             srcCopyFlags;
    VkAddressCopyFlagsKHR             dstCopyFlags;
    uint32_t                          copyCount;
    VkStridedDeviceAddressRangeKHR    copyAddressRange;
} VkCopyMemoryIndirectInfoKHR;

Members

  • 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.

Description

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-srcCopyFlags-requiredbitmask
    srcCopyFlags must not be 0

  • VUID-VkCopyMemoryIndirectInfoKHR-dstCopyFlags-parameter
    dstCopyFlags must be a valid combination of VkAddressCopyFlagBitsKHR values

  • VUID-VkCopyMemoryIndirectInfoKHR-dstCopyFlags-requiredbitmask
    dstCopyFlags must not be 0

Document Notes

For more information, see the Vulkan Specification.

This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.