Structures

VkMemoryToImageCopyEXT

Structure specifying a host memory to image copy operation

Each element of VkCopyMemoryToImageInfoEXT::pRegions is a structure defined as:

typedef struct VkMemoryToImageCopyEXT {
    VkStructureType sType;
    const void* pNext;
    const void* pHostPointer;
    uint32_t memoryRowLength;
    uint32_t memoryImageHeight;
    VkImageSubresourceLayers imageSubresource;
    VkOffset3D imageOffset;
    VkExtent3D imageExtent;
} VkMemoryToImageCopyEXT;
  • sType is a VkStructureType value identifying this structure.
  • pNext is NULL or a pointer to a structure extending this structure.
  • pHostPointer is the host memory address which is the source of the copy.
  • memoryRowLength and memoryImageHeight specify in texels a subregion of a larger two- or three-dimensional image in host memory, and control the addressing calculations. If either of these values is zero, that aspect of the host memory is considered to be tightly packed according to the imageExtent.
  • imageSubresource is a VkImageSubresourceLayers used to specify the specific image subresources of the image used for the source or destination image data.
  • imageOffset selects the initial x, y, z offsets in texels of the sub-region of the destination image data.
  • imageExtent is the size in texels of the image to copy in width, height and depth.

This structure is functionally similar to VkBufferImageCopy2, except it defines host memory as the source of copy instead of a buffer. In particular, the same data packing rules and restrictions as that structure apply here as well.

Valid Usage

VUID-VkMemoryToImageCopyEXT-pHostPointer-09061

pHostPointer must point to memory that is large enough to contain all memory locations that are accessed according to Buffer and Image Addressing, for each element of pRegions

VUID-VkMemoryToImageCopyEXT-pRegions-09062

The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory

VUID-VkMemoryToImageCopyEXT-memoryRowLength-09101

memoryRowLength must be 0, or greater than or equal to the width member of imageExtent

VUID-VkMemoryToImageCopyEXT-memoryImageHeight-09102

memoryImageHeight must be 0, or greater than or equal to the height member of imageExtent

VUID-VkMemoryToImageCopyEXT-aspectMask-09103

The aspectMask member of imageSubresource must only have a single bit set

VUID-VkMemoryToImageCopyEXT-imageExtent-06659

imageExtent.width must not be 0

VUID-VkMemoryToImageCopyEXT-imageExtent-06660

imageExtent.height must not be 0

VUID-VkMemoryToImageCopyEXT-imageExtent-06661

imageExtent.depth must not be 0

Valid Usage (Implicit)

VUID-VkMemoryToImageCopyEXT-sType-sType

sType must be VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT

VUID-VkMemoryToImageCopyEXT-pHostPointer-parameter

pHostPointer must be a pointer value