1// Copyright 2020-2023 The Khronos Group Inc.
2//
3// SPDX-License-Identifier: CC-BY-4.0
4
5// Common Valid Usage
6// Common to VkCmdCopyImageToBuffer* commands
7  * [[VUID-{refpage}-pRegions-00183]]
8    pname:dstBuffer must: be large enough to contain all buffer locations
9    that are accessed according to <<copies-buffers-images-addressing,Buffer
10    and Image Addressing>>, for each element of pname:pRegions
11  * [[VUID-{refpage}-pRegions-00184]]
12    The union of all source regions, and the union of all destination
13    regions, specified by the elements of pname:pRegions, must: not overlap
14    in memory
15  * [[VUID-{refpage}-srcImage-00186]]
16    pname:srcImage must: have been created with
17    ename:VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag
18ifdef::VK_VERSION_1_1,VK_KHR_maintenance1[]
19  * [[VUID-{refpage}-srcImage-01998]]
20    The <<resources-image-format-features,format features>> of
21    pname:srcImage must: contain ename:VK_FORMAT_FEATURE_TRANSFER_SRC_BIT
22endif::VK_VERSION_1_1,VK_KHR_maintenance1[]
23  * [[VUID-{refpage}-dstBuffer-00191]]
24    pname:dstBuffer must: have been created with
25    ename:VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag
26  * [[VUID-{refpage}-dstBuffer-00192]]
27    If pname:dstBuffer is non-sparse then it must: be bound completely and
28    contiguously to a single sname:VkDeviceMemory object
29  * [[VUID-{refpage}-srcImageLayout-00189]]
30    pname:srcImageLayout must: specify the layout of the image subresources
31    of pname:srcImage specified in pname:pRegions at the time this command
32    is executed on a sname:VkDevice
33  * [[VUID-{refpage}-srcImageLayout-01397]]
34    pname:srcImageLayout must: be
35ifdef::VK_KHR_shared_presentable_image[]
36    ename:VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR,
37endif::VK_KHR_shared_presentable_image[]
38    ename:VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, or
39    ename:VK_IMAGE_LAYOUT_GENERAL
40// Common Valid Usage
41