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 fully-resident

  • VUID-VkCopyMemoryIndirectInfoKHR-dstCopyFlags-10939
    If dstCopyFlags contains VK_ADDRESS_COPY_SPARSE_BIT_KHR, the destination memory regions accessed must be fully-resident

  • 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.pname:address must be 4 byte aligned

  • VUID-VkCopyMemoryIndirectInfoKHR-copyAddressRange-10943
    copyAddressRange.pname: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.pname:size / copyAddressRange.pname: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

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

See Also

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.

Copyright 2014-2025 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0