1// Copyright 2023 The Khronos Group Inc. 2// 3// SPDX-License-Identifier: CC-BY-4.0 4 5:imageparam: srcImage 6:imagesubresource: imageSubresource 7 8// Common Valid Usage 9 10 * [[VUID-{refpage}-{imageparam}-10000]] 11 If pname:{imageparam} is of type ename:VK_IMAGE_TYPE_1D, then for each element 12 of pname:pRegions, pname:imageOffset.y must: be `0` and pname:imageExtent.height must: be `1` 13 * [[VUID-{refpage}-{imagesubresource}-10001]] 14 For each element of pname:pRegions, pname:imageOffset.z and 15 [eq]#(pname:imageExtent.depth {plus} pname:imageOffset.z)# must: both be 16 greater than or equal to `0` and less than or equal to the depth of the specified pname:{imagesubresource} of pname:{imageparam} 17 * [[VUID-{refpage}-{imageparam}-10002]] 18 If pname:{imageparam} is of type ename:VK_IMAGE_TYPE_1D or ename:VK_IMAGE_TYPE_2D, then for each element of pname:pRegions, pname:imageOffset.z must: be `0` and pname:imageExtent.depth must: be `1` 19 * [[VUID-{refpage}-{imageparam}-10003]] 20 For each element of pname:pRegions, pname:bufferRowLength must: be a 21 multiple of the <<formats-compatibility-classes,texel block extent width>> of the elink:VkFormat of pname:{imageparam} 22 * [[VUID-{refpage}-{imageparam}-10004]] 23 For each element of pname:pRegions, pname:bufferImageHeight must: be a 24 multiple of the <<formats-compatibility-classes,texel block extent height>> of the elink:VkFormat of pname:{imageparam} 25 * [[VUID-{refpage}-{imageparam}-10005]] 26 For each element of pname:pRegions, pname:imageOffset.x must: be a 27 multiple of the <<formats-compatibility-classes,texel block extent width>> of the elink:VkFormat of pname:{imageparam} 28 * [[VUID-{refpage}-{imageparam}-10006]] 29 For each element of pname:pRegions, pname:imageOffset.y must: be a 30 multiple of the <<formats-compatibility-classes,texel block extent height>> of the elink:VkFormat of pname:{imageparam} 31 * [[VUID-{refpage}-{imageparam}-10007]] 32 For each element of pname:pRegions, pname:imageOffset.z must: be a 33 multiple of the <<formats-compatibility-classes,texel block extent depth>> of the elink:VkFormat of pname:{imageparam} 34 * [[VUID-{refpage}-{imageparam}-10008]] 35 For each element of pname:pRegions, if the sum of pname:imageOffset.x 36 and pname:extent.width does not equal the width of the subresource specified by pname:srcSubresource, pname:extent.width must: be a multiple of the <<formats-compatibility-classes,texel block extent width>> of the elink:VkFormat of pname:{imageparam} 37 * [[VUID-{refpage}-{imageparam}-10009]] 38 For each element of pname:pRegions, if the sum of pname:imageOffset.y 39 and pname:extent.height does not equal the height of the subresource specified by pname:srcSubresource, pname:extent.height must: be a multiple of the <<formats-compatibility-classes,texel block extent 40 height>> of the elink:VkFormat of pname:{imageparam} 41 * [[VUID-{refpage}-{imageparam}-10010]] 42 For each element of pname:pRegions, if the sum of pname:imageOffset.z 43 and pname:extent.depth does not equal the depth of the subresource specified by pname:srcSubresource, pname:extent.depth must: be a 44 multiple of the <<formats-compatibility-classes,texel block extent 45 depth>> of the elink:VkFormat of pname:{imageparam} 46 * [[VUID-{refpage}-{imagesubresource}-10011]] 47 For each element of pname:pRegions, pname:{imagesubresource}.aspectMask must: specify aspects present in pname:{imageparam} 48ifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[] 49 * [[VUID-{refpage}-{imageparam}-10012]] 50 If pname:{imageparam} has a elink:VkFormat with <<formats-requiring-sampler-ycbcr-conversion,two planes>> then for each 51 element of pname:pRegions, pname:{imagesubresource}.aspectMask must: be 52 ename:VK_IMAGE_ASPECT_PLANE_0_BIT or ename:VK_IMAGE_ASPECT_PLANE_1_BIT 53 * [[VUID-{refpage}-{imageparam}-10013]] 54 If pname:{imageparam} has a elink:VkFormat with 55 <<formats-requiring-sampler-ycbcr-conversion,three planes>> then for 56 each element of pname:pRegions, pname:{imagesubresource}.aspectMask must: be ename:VK_IMAGE_ASPECT_PLANE_0_BIT, ename:VK_IMAGE_ASPECT_PLANE_1_BIT, or ename:VK_IMAGE_ASPECT_PLANE_2_BIT 57endif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[] 58 * [[VUID-{refpage}-{imageparam}-10014]] 59 If pname:{imageparam} is of type ename:VK_IMAGE_TYPE_3D, for each element of 60 pname:pRegions, pname:{imagesubresource}.baseArrayLayer must: be `0` and pname:{imagesubresource}.layerCount must: be `1` 61 * [[VUID-{refpage}-{imageparam}-10015]] 62 For each element of pname:pRegions, pname:bufferRowLength divided by the <<formats-compatibility-classes,texel block extent width>> and then multiplied by the texel block size of pname:{imageparam} must: be less than or equal to [eq]#2^31^-1# 63// Common Valid Usage 64