// Copyright 2020-2023 The Khronos Group Inc. // // SPDX-License-Identifier: CC-BY-4.0 // Common Valid Usage // Common to VkCmdCopyBufferToImage* commands * [[VUID-{refpage}-pRegions-00171]] pname:srcBuffer must: be large enough to contain all buffer locations that are accessed according to <>, for each element of pname:pRegions * [[VUID-{refpage}-pRegions-10000]] The union of all source regions, and the union of all destination regions, specified by the elements of pname:pRegions, must: not overlap in memory * [[VUID-{refpage}-srcBuffer-10001]] pname:srcBuffer must: have been created with ename:VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag ifdef::VK_VERSION_1_1,VK_KHR_maintenance1[] * [[VUID-{refpage}-dstImage-10002]] The <> of pname:dstImage must: contain ename:VK_FORMAT_FEATURE_TRANSFER_DST_BIT endif::VK_VERSION_1_1,VK_KHR_maintenance1[] * [[VUID-{refpage}-srcBuffer-00176]] If pname:srcBuffer is non-sparse then it must: be bound completely and contiguously to a single sname:VkDeviceMemory object * [[VUID-{refpage}-dstImage-00177]] pname:dstImage must: have been created with ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag * [[VUID-{refpage}-dstImage-00178]] If pname:dstImage is non-sparse then it must: be bound completely and contiguously to a single sname:VkDeviceMemory object * [[VUID-{refpage}-dstImage-10003]] pname:dstImage must: have a sample count equal to ename:VK_SAMPLE_COUNT_1_BIT * [[VUID-{refpage}-dstImageLayout-10004]] pname:dstImageLayout must: specify the layout of the image subresources of pname:dstImage specified in pname:pRegions at the time this command is executed on a sname:VkDevice ifndef::VK_KHR_shared_presentable_image[] * [[VUID-{refpage}-dstImageLayout-00181]] pname:dstImageLayout must: be ename:VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or ename:VK_IMAGE_LAYOUT_GENERAL endif::VK_KHR_shared_presentable_image[] // Common Valid Usage