VKIMAGECOPY(3)

NAME
VkImageCopy - Structure specifying an image copy operation

C SPECIFICATION

The VkImageCopy structure is defined as:

    typedef struct VkImageCopy {
        VkImageSubresourceLayers    srcSubresource;
        VkOffset3D                  srcOffset;
        VkImageSubresourceLayers    dstSubresource;
        VkOffset3D                  dstOffset;
        VkExtent3D                  extent;
    } VkImageCopy;

MEMBERS

    • srcSubresource and dstSubresource are VkImageSubresourceLayers structures specifying the image subresources of the images used for the source and destination image data, respectively.

    • srcOffset and dstOffset select the initial x, y, and z offsets in texels of the sub-regions of the source and destination image data.

    • extent is the size in texels of the source image to copy in width, height and depth. 1D images use only x and width. 2D images use x, y, width and height. 3D images use x, y, z, width, height and depth.

DESCRIPTION
Valid Usage

    • The aspectMask member of srcSubresource and dstSubresource must match

    • The layerCount member of srcSubresource and dstSubresource must match

    • If either of the calling command’s srcImage or dstImage parameters are of VkImageType VK_IMAGE_TYPE_3D, the baseArrayLayer and layerCount members of both srcSubresource and dstSubresource must be 0 and 1, respectively

    • The aspectMask member of srcSubresource must specify aspects present in the calling command’s srcImage

    • The aspectMask member of dstSubresource must specify aspects present in the calling command’s dstImage

    • srcOffset.x and (extent.width + srcOffset.x) must both be greater than or equal to 0 and less than or equal to the source image subresource width

    • srcOffset.y and (extent.height + srcOffset.y) must both be greater than or equal to 0 and less than or equal to the source image subresource height

    • srcOffset.z and (extent.depth + srcOffset.z) must both be greater than or equal to 0 and less than or equal to the source image subresource depth

    • dstOffset.x and (extent.width + dstOffset.x) must both be greater than or equal to 0 and less than or equal to the destination image subresource width

    • dstOffset.y and (extent.height + dstOffset.y) must both be greater than or equal to 0 and less than or equal to the destination image subresource height

    • dstOffset.z and (extent.depth + dstOffset.z) must both be greater than or equal to 0 and less than or equal to the destination image subresource depth

    • If the calling command’s srcImage is a compressed format image:

        • all members of srcOffset must be a multiple of the corresponding dimensions of the compressed texel block

        • extent.width must be a multiple of the compressed texel block width or (extent.width + srcOffset.x) must equal the source image subresource width

        • extent.height must be a multiple of the compressed texel block height or (extent.height + srcOffset.y) must equal the source image subresource height

        • extent.depth must be a multiple of the compressed texel block depth or (extent.depth + srcOffset.z) must equal the source image subresource depth

    • If the calling command’s dstImage is a compressed format image:

        • all members of dstOffset must be a multiple of the corresponding dimensions of the compressed texel block

        • extent.width must be a multiple of the compressed texel block width or (extent.width + dstOffset.x) must equal the destination image subresource width

        • extent.height must be a multiple of the compressed texel block height or (extent.height + dstOffset.y) must equal the destination image subresource height

        • extent.depth must be a multiple of the compressed texel block depth or (extent.depth + dstOffset.z) must equal the destination image subresource depth

    • srcOffset, dstOffset, and extent must respect the image transfer granularity requirements of the queue family that it will be submitted against, as described in Physical Device Enumeration
Valid Usage (Implicit)

    • srcSubresource must be a valid VkImageSubresourceLayers structure

    • dstSubresource must be a valid VkImageSubresourceLayers structure

SEE ALSO

VkExtent3D, VkImageSubresourceLayers, VkOffset3D, vkCmdCopyImage

DOCUMENT NOTES

For more information, see the Vulkan Specification at URL

https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#VkImageCopy

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

COPYRIGHT

Copyright (c) 2014-2016 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

AUTHOR

Khronos Group
    Author.