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