C Specification

The VkDeviceMemoryImageCopyKHR structure is defined as:

// Provided by VK_KHR_device_address_commands
typedef struct VkDeviceMemoryImageCopyKHR {
    VkStructureType             sType;
    const void*                 pNext;
    VkDeviceAddressRangeKHR     addressRange;
    VkAddressCommandFlagsKHR    addressFlags;
    uint32_t                    addressRowLength;
    uint32_t                    addressImageHeight;
    VkImageSubresourceLayers    imageSubresource;
    VkImageLayout               imageLayout;
    VkOffset3D                  imageOffset;
    VkExtent3D                  imageExtent;
} VkDeviceMemoryImageCopyKHR;

Members

  • sType is a VkStructureType value identifying this structure.

  • pNext is NULL or a pointer to a structure extending this structure.

  • addressRange is a VkDeviceAddressRangeKHR structure defining the address range accessed by the copy operation.

  • addressFlags is a VkAddressCommandFlagsKHR value defining the copy flags for the source address range.

  • addressRowLength specifies the total number of texels in the address range representing a row of texels in the x dimension. Each new row of pixels in the copy will be read at an offset increment by this number of texels.

  • addressImageHeight specifies the total number of rows of texels in the address range representing a 2D slice of texels in the x and y dimensions. Each new 2D slice of pixels in the copy will be read at an offset increment by this number of rows of texels.

  • imageSubresource is a VkImageSubresourceLayers used to specify the specific image subresources of the image used for the source or destination image data.

  • imageLayout is the VkImageLayout of the image subresource accessed by this copy.

  • imageOffset selects the initial x, y, z offsets in texels of the sub-region of the source or destination image data.

  • imageExtent is the size in texels of the image to copy in width, height and depth.

Description

This structure defines a copy operation where srcRange.size bytes will be copied from srcRange.address to dstRange.address.

Valid Usage
  • VUID-VkDeviceMemoryImageCopyKHR-addressRowLength-09101
    addressRowLength must be 0, or greater than or equal to the width member of imageExtent

  • VUID-VkDeviceMemoryImageCopyKHR-addressImageHeight-09102
    addressImageHeight must be 0, or greater than or equal to the height member of imageExtent

  • VUID-VkDeviceMemoryImageCopyKHR-aspectMask-09103
    The aspectMask member of imageSubresource must only have a single bit set

  • VUID-VkDeviceMemoryImageCopyKHR-imageExtent-06659
    imageExtent.width must not be 0

  • VUID-VkDeviceMemoryImageCopyKHR-imageExtent-06660
    imageExtent.height must not be 0

  • VUID-VkDeviceMemoryImageCopyKHR-imageExtent-06661
    imageExtent.depth must not be 0

Valid Usage (Implicit)
  • VUID-VkDeviceMemoryImageCopyKHR-sType-sType
    sType must be VK_STRUCTURE_TYPE_DEVICE_MEMORY_IMAGE_COPY_KHR

  • VUID-VkDeviceMemoryImageCopyKHR-pNext-pNext
    pNext must be NULL or a pointer to a valid instance of VkCopyCommandTransformInfoQCOM

  • VUID-VkDeviceMemoryImageCopyKHR-sType-unique
    The sType value of each structure in the pNext chain must be unique

  • VUID-VkDeviceMemoryImageCopyKHR-addressFlags-parameter
    addressFlags must be a valid combination of VkAddressCommandFlagBitsKHR values

  • VUID-VkDeviceMemoryImageCopyKHR-imageSubresource-parameter
    imageSubresource must be a valid VkImageSubresourceLayers structure

  • VUID-VkDeviceMemoryImageCopyKHR-imageLayout-parameter
    imageLayout must be a valid VkImageLayout value

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-2026 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0