// Copyright 2020-2024 The Khronos Group Inc. // // SPDX-License-Identifier: CC-BY-4.0 // Common Valid Usage // Common to VkCmdCopyBuffer* commands * [[VUID-{refpage}-srcOffset-00113]] The pname:srcOffset member of each element of pname:pRegions must: be less than the size of pname:srcBuffer * [[VUID-{refpage}-dstOffset-00114]] The pname:dstOffset member of each element of pname:pRegions must: be less than the size of pname:dstBuffer * [[VUID-{refpage}-size-00115]] The pname:size member of each element of pname:pRegions must: be less than or equal to the size of pname:srcBuffer minus pname:srcOffset * [[VUID-{refpage}-size-00116]] The pname:size member of each element of pname:pRegions must: be less than or equal to the size of pname:dstBuffer minus pname:dstOffset * [[VUID-{refpage}-pRegions-00117]] The union of the source regions, and the union of the destination regions, specified by the elements of pname:pRegions, must: not overlap in memory * [[VUID-{refpage}-srcBuffer-00118]] pname:srcBuffer must: have been created with ename:VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag * [[VUID-{refpage}-srcBuffer-00119]] If pname:srcBuffer is non-sparse then it must: be bound completely and contiguously to a single sname:VkDeviceMemory object * [[VUID-{refpage}-dstBuffer-00120]] pname:dstBuffer must: have been created with ename:VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag * [[VUID-{refpage}-dstBuffer-00121]] If pname:dstBuffer is non-sparse then it must: be bound completely and contiguously to a single sname:VkDeviceMemory object // Common Valid Usage