1// Copyright 2020-2022 The Khronos Group Inc. 2// 3// SPDX-License-Identifier: CC-BY-4.0 4 5// Common Valid Usage 6// Common to VkCmdCopyImage* commands 7 * [[VUID-{refpage}-pRegions-00124]] 8 The union of all source regions, and the union of all destination 9 regions, specified by the elements of pname:pRegions, must: not overlap 10 in memory 11ifdef::VK_VERSION_1_1,VK_KHR_maintenance1[] 12 * [[VUID-{refpage}-srcImage-01995]] 13 The <<resources-image-format-features,format features>> of 14 pname:srcImage must: contain ename:VK_FORMAT_FEATURE_TRANSFER_SRC_BIT 15endif::VK_VERSION_1_1,VK_KHR_maintenance1[] 16ifndef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[] 17 * [[VUID-{refpage}-srcImage-00127]] 18 If pname:srcImage is non-sparse then it must: be bound completely and 19 contiguously to a single sname:VkDeviceMemory object 20endif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[] 21ifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[] 22 * [[VUID-{refpage}-srcImage-01546]] 23 If pname:srcImage is non-sparse then the image or _disjoint_ plane to be 24 copied must: be bound completely and contiguously to a single 25 sname:VkDeviceMemory object 26endif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[] 27 * [[VUID-{refpage}-srcImageLayout-00128]] 28 pname:srcImageLayout must: specify the layout of the image subresources 29 of pname:srcImage specified in pname:pRegions at the time this command 30 is executed on a sname:VkDevice 31ifndef::VK_KHR_shared_presentable_image[] 32 * [[VUID-{refpage}-srcImageLayout-00129]] 33 pname:srcImageLayout must: be ename:VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL 34 or ename:VK_IMAGE_LAYOUT_GENERAL 35endif::VK_KHR_shared_presentable_image[] 36ifdef::VK_KHR_shared_presentable_image[] 37 * [[VUID-{refpage}-srcImageLayout-01917]] 38 pname:srcImageLayout must: be 39 ename:VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, 40 ename:VK_IMAGE_LAYOUT_GENERAL, or 41 ename:VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR 42endif::VK_KHR_shared_presentable_image[] 43ifdef::VK_VERSION_1_1,VK_KHR_maintenance1[] 44 * [[VUID-{refpage}-dstImage-01996]] 45 The <<resources-image-format-features,format features>> of 46 pname:dstImage must: contain ename:VK_FORMAT_FEATURE_TRANSFER_DST_BIT 47endif::VK_VERSION_1_1,VK_KHR_maintenance1[] 48ifndef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[] 49 * [[VUID-{refpage}-dstImage-00132]] 50 If pname:dstImage is non-sparse then it must: be bound completely and 51 contiguously to a single sname:VkDeviceMemory object 52endif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[] 53ifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[] 54 * [[VUID-{refpage}-dstImage-01547]] 55 If pname:dstImage is non-sparse then the image or _disjoint_ plane that 56 is the destination of the copy must: be bound completely and 57 contiguously to a single sname:VkDeviceMemory object 58endif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[] 59 * [[VUID-{refpage}-dstImageLayout-00133]] 60 pname:dstImageLayout must: specify the layout of the image subresources 61 of pname:dstImage specified in pname:pRegions at the time this command 62 is executed on a sname:VkDevice 63ifndef::VK_KHR_shared_presentable_image[] 64 * [[VUID-{refpage}-dstImageLayout-00134]] 65 pname:dstImageLayout must: be ename:VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL 66 or ename:VK_IMAGE_LAYOUT_GENERAL 67endif::VK_KHR_shared_presentable_image[] 68ifdef::VK_KHR_shared_presentable_image[] 69 * [[VUID-{refpage}-dstImageLayout-01395]] 70 pname:dstImageLayout must: be 71 ename:VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, 72 ename:VK_IMAGE_LAYOUT_GENERAL, or 73 ename:VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR 74endif::VK_KHR_shared_presentable_image[] 75ifndef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[] 76 * [[VUID-{refpage}-srcImage-00135]] 77 The elink:VkFormat of each of pname:srcImage and pname:dstImage must: be 78 <<formats-size-compatibility,size-compatible>> 79endif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[] 80ifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[] 81 * [[VUID-{refpage}-srcImage-01548]] 82 If the elink:VkFormat of each of pname:srcImage and pname:dstImage is 83 not a <<formats-requiring-sampler-ycbcr-conversion,_multi-planar 84 format_>>, the elink:VkFormat of each of pname:srcImage and 85 pname:dstImage must: be <<formats-size-compatibility,size-compatible>> 86 * [[VUID-{refpage}-None-01549]] 87 In a copy to or from a plane of a 88 <<formats-requiring-sampler-ycbcr-conversion,multi-planar image>>, the 89 elink:VkFormat of the image and plane must: be compatible according to 90 <<formats-compatible-planes,the description of compatible planes>> for 91 the plane being copied 92endif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[] 93 * [[VUID-{refpage}-srcImage-00136]] 94 The sample count of pname:srcImage and pname:dstImage must: match 95 * [[VUID-{refpage}-srcSubresource-01696]] 96 The pname:srcSubresource.mipLevel member of each element of 97 pname:pRegions must: be less than the pname:mipLevels specified in 98 slink:VkImageCreateInfo when pname:srcImage was created 99 * [[VUID-{refpage}-dstSubresource-01697]] 100 The pname:dstSubresource.mipLevel member of each element of 101 pname:pRegions must: be less than the pname:mipLevels specified in 102 slink:VkImageCreateInfo when pname:dstImage was created 103 * [[VUID-{refpage}-srcSubresource-01698]] 104 The [eq]#pname:srcSubresource.baseArrayLayer {plus} 105 pname:srcSubresource.layerCount# of each element of pname:pRegions must: 106 be less than or equal to the pname:arrayLayers specified in 107 slink:VkImageCreateInfo when pname:srcImage was created 108 * [[VUID-{refpage}-dstSubresource-01699]] 109 The [eq]#pname:dstSubresource.baseArrayLayer {plus} 110 pname:dstSubresource.layerCount# of each element of pname:pRegions must: 111 be less than or equal to the pname:arrayLayers specified in 112 slink:VkImageCreateInfo when pname:dstImage was created 113 * [[VUID-{refpage}-srcOffset-01783]] 114 The pname:srcOffset and pname:extent members of each element of 115 pname:pRegions must: respect the image transfer granularity requirements 116 of pname:commandBuffer's command pool's queue family, as described in 117 slink:VkQueueFamilyProperties 118 * [[VUID-{refpage}-dstOffset-01784]] 119 The pname:dstOffset and pname:extent members of each element of 120 pname:pRegions must: respect the image transfer granularity requirements 121 of pname:commandBuffer's command pool's queue family, as described in 122 slink:VkQueueFamilyProperties 123ifdef::VK_EXT_fragment_density_map[] 124 * [[VUID-{refpage}-dstImage-02542]] 125 pname:dstImage and pname:srcImage must: not have been created with 126 pname:flags containing ename:VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT 127endif::VK_EXT_fragment_density_map[] 128// The remaining common VU used to be in image_copy_common.adoc and have been 129// rewritten to apply to the calling command rather than the structure 130// parameter(s) of that command. 131ifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[] 132 * [[VUID-{refpage}-srcImage-01551]] 133 If neither pname:srcImage nor pname:dstImage has a 134 <<formats-requiring-sampler-ycbcr-conversion, multi-planar image 135 format>> then for each element of pname:pRegions, 136 pname:srcSubresource.aspectMask and pname:dstSubresource.aspectMask 137 must: match 138 * [[VUID-{refpage}-srcImage-01552]] 139 If pname:srcImage has a elink:VkFormat with 140 <<formats-requiring-sampler-ycbcr-conversion,two planes>> then for each 141 element of pname:pRegions, pname:srcSubresource.aspectMask must: be 142 ename:VK_IMAGE_ASPECT_PLANE_0_BIT or ename:VK_IMAGE_ASPECT_PLANE_1_BIT 143 * [[VUID-{refpage}-srcImage-01553]] 144 If pname:srcImage has a elink:VkFormat with 145 <<formats-requiring-sampler-ycbcr-conversion,three planes>> then for 146 each element of pname:pRegions, pname:srcSubresource.aspectMask must: be 147 ename:VK_IMAGE_ASPECT_PLANE_0_BIT, ename:VK_IMAGE_ASPECT_PLANE_1_BIT, or 148 ename:VK_IMAGE_ASPECT_PLANE_2_BIT 149 * [[VUID-{refpage}-dstImage-01554]] 150 If pname:dstImage has a elink:VkFormat with 151 <<formats-requiring-sampler-ycbcr-conversion,two planes>> then for each 152 element of pname:pRegions, pname:dstSubresource.aspectMask must: be 153 ename:VK_IMAGE_ASPECT_PLANE_0_BIT or ename:VK_IMAGE_ASPECT_PLANE_1_BIT 154 * [[VUID-{refpage}-dstImage-01555]] 155 If pname:dstImage has a elink:VkFormat with 156 <<formats-requiring-sampler-ycbcr-conversion,three planes>> then for 157 each element of pname:pRegions, pname:dstSubresource.aspectMask must: be 158 ename:VK_IMAGE_ASPECT_PLANE_0_BIT, ename:VK_IMAGE_ASPECT_PLANE_1_BIT, or 159 ename:VK_IMAGE_ASPECT_PLANE_2_BIT 160 * [[VUID-{refpage}-srcImage-01556]] 161 If pname:srcImage has a 162 <<formats-requiring-sampler-ycbcr-conversion,multi-planar image format>> 163 and the pname:dstImage does not have a multi-planar image format, then 164 for each element of pname:pRegions, pname:dstSubresource.aspectMask 165 must: be ename:VK_IMAGE_ASPECT_COLOR_BIT 166 * [[VUID-{refpage}-dstImage-01557]] 167 If pname:dstImage has a 168 <<formats-requiring-sampler-ycbcr-conversion,multi-planar image format>> 169 and the pname:srcImage does not have a multi-planar image format, then 170 for each element of pname:pRegions, pname:srcSubresource.aspectMask 171 must: be ename:VK_IMAGE_ASPECT_COLOR_BIT 172endif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[] 173ifndef::VK_VERSION_1_1,VK_KHR_maintenance1[] 174 * [[VUID-{refpage}-srcImage-00139]] 175 If either pname:srcImage or pname:dstImage is of type 176 ename:VK_IMAGE_TYPE_3D, then for each element of pname:pRegions, 177 pname:srcSubresource.baseArrayLayer and 178 pname:dstSubresource.baseArrayLayer must: each be `0`, and 179 pname:srcSubresource.layerCount and pname:dstSubresource.layerCount 180 must: each be `1` 181endif::VK_VERSION_1_1,VK_KHR_maintenance1[] 182ifdef::VK_VERSION_1_1,VK_KHR_maintenance1[] 183 * [[VUID-{refpage}-srcImage-04443]] 184 If pname:srcImage is of type ename:VK_IMAGE_TYPE_3D, then for each 185 element of pname:pRegions, pname:srcSubresource.baseArrayLayer must: be 186 `0` and pname:srcSubresource.layerCount must: be `1` 187 * [[VUID-{refpage}-dstImage-04444]] 188 If pname:dstImage is of type ename:VK_IMAGE_TYPE_3D, then for each 189 element of pname:pRegions, pname:dstSubresource.baseArrayLayer must: be 190 `0` and pname:dstSubresource.layerCount must: be `1` 191endif::VK_VERSION_1_1,VK_KHR_maintenance1[] 192 * [[VUID-{refpage}-aspectMask-00142]] 193 For each element of pname:pRegions, pname:srcSubresource.aspectMask 194 must: specify aspects present in pname:srcImage 195 * [[VUID-{refpage}-aspectMask-00143]] 196 For each element of pname:pRegions, pname:dstSubresource.aspectMask 197 must: specify aspects present in pname:dstImage 198 * [[VUID-{refpage}-srcOffset-00144]] 199 For each element of pname:pRegions, pname:srcOffset.x and 200 [eq]#(pname:extent.width {plus} pname:srcOffset.x)# must: both be 201 greater than or equal to `0` and less than or equal to the width of the 202 specified pname:srcSubresource of pname:srcImage 203 * [[VUID-{refpage}-srcOffset-00145]] 204 For each element of pname:pRegions, pname:srcOffset.y and 205 [eq]#(pname:extent.height {plus} pname:srcOffset.y)# must: both be 206 greater than or equal to `0` and less than or equal to the height of the 207 specified pname:srcSubresource of pname:srcImage 208 * [[VUID-{refpage}-srcImage-00146]] 209 If pname:srcImage is of type ename:VK_IMAGE_TYPE_1D, then for each 210 element of pname:pRegions, pname:srcOffset.y must: be `0` and 211 pname:extent.height must: be `1` 212 * [[VUID-{refpage}-srcOffset-00147]] 213 If pname:srcImage is of type ename:VK_IMAGE_TYPE_3D, then for each 214 element of pname:pRegions, pname:srcOffset.z and 215 [eq]#(pname:extent.depth {plus} pname:srcOffset.z)# must: both be 216 greater than or equal to `0` and less than or equal to the depth of the 217 specified pname:srcSubresource of pname:srcImage 218 * [[VUID-{refpage}-srcImage-01785]] 219 If pname:srcImage is of type ename:VK_IMAGE_TYPE_1D, then for each 220 element of pname:pRegions, pname:srcOffset.z must: be `0` and 221 pname:extent.depth must: be `1` 222 * [[VUID-{refpage}-dstImage-01786]] 223 If pname:dstImage is of type ename:VK_IMAGE_TYPE_1D, then for each 224 element of pname:pRegions, pname:dstOffset.z must: be `0` and 225 pname:extent.depth must: be `1` 226 * [[VUID-{refpage}-srcImage-01787]] 227 If pname:srcImage is of type ename:VK_IMAGE_TYPE_2D, then for each 228 element of pname:pRegions, pname:srcOffset.z must: be `0` 229 * [[VUID-{refpage}-dstImage-01788]] 230 If pname:dstImage is of type ename:VK_IMAGE_TYPE_2D, then for each 231 element of pname:pRegions, pname:dstOffset.z must: be `0` 232ifndef::VK_VERSION_1_1,VK_KHR_maintenance1[] 233 * [[VUID-{refpage}-srcImage-07742]] 234 pname:srcImage and pname:dstImage must: have the same elink:VkImageType 235 * [[VUID-{refpage}-srcImage-01789]] 236 If pname:srcImage or pname:dstImage is of type ename:VK_IMAGE_TYPE_2D, 237 then for each element of pname:pRegions, pname:extent.depth must: be `1` 238endif::VK_VERSION_1_1,VK_KHR_maintenance1[] 239ifdef::VK_VERSION_1_1,VK_KHR_maintenance1[] 240 * [[VUID-{refpage}-srcImage-07743]] 241 If pname:srcImage and pname:dstImage have a different elink:VkImageType, 242 one must: be ename:VK_IMAGE_TYPE_3D and the other must: be 243 ename:VK_IMAGE_TYPE_2D 244 * [[VUID-{refpage}-srcImage-07744]] 245 If pname:srcImage and pname:dstImage have the same elink:VkImageType, 246 the pname:layerCount member of pname:srcSubresource and 247 pname:dstSubresource in each element of pname:pRegions must: match 248 * [[VUID-{refpage}-srcImage-01790]] 249 If pname:srcImage and pname:dstImage are both of type 250 ename:VK_IMAGE_TYPE_2D, then for each element of pname:pRegions, 251 pname:extent.depth must: be `1` 252 * [[VUID-{refpage}-srcImage-01791]] 253 If pname:srcImage is of type ename:VK_IMAGE_TYPE_2D, and pname:dstImage 254 is of type ename:VK_IMAGE_TYPE_3D, then for each element of 255 pname:pRegions, pname:extent.depth must: equal 256 pname:srcSubresource.layerCount 257 * [[VUID-{refpage}-dstImage-01792]] 258 If pname:dstImage is of type ename:VK_IMAGE_TYPE_2D, and pname:srcImage 259 is of type ename:VK_IMAGE_TYPE_3D, then for each element of 260 pname:pRegions, pname:extent.depth must: equal 261 pname:dstSubresource.layerCount 262endif::VK_VERSION_1_1,VK_KHR_maintenance1[] 263 * [[VUID-{refpage}-dstOffset-00150]] 264 For each element of pname:pRegions, pname:dstOffset.x and 265 [eq]#(pname:extent.width {plus} pname:dstOffset.x)# must: both be 266 greater than or equal to `0` and less than or equal to the width of the 267 specified pname:dstSubresource of pname:dstImage 268 * [[VUID-{refpage}-dstOffset-00151]] 269 For each element of pname:pRegions, pname:dstOffset.y and 270 [eq]#(pname:extent.height {plus} pname:dstOffset.y)# must: both be 271 greater than or equal to `0` and less than or equal to the height of the 272 specified pname:dstSubresource of pname:dstImage 273 * [[VUID-{refpage}-dstImage-00152]] 274 If pname:dstImage is of type ename:VK_IMAGE_TYPE_1D, then for each 275 element of pname:pRegions, pname:dstOffset.y must: be `0` and 276 pname:extent.height must: be `1` 277 * [[VUID-{refpage}-dstOffset-00153]] 278 If pname:dstImage is of type ename:VK_IMAGE_TYPE_3D, then for each 279 element of pname:pRegions, pname:dstOffset.z and 280 [eq]#(pname:extent.depth {plus} pname:dstOffset.z)# must: both be 281 greater than or equal to `0` and less than or equal to the depth of the 282 specified pname:dstSubresource of pname:dstImage 283 * [[VUID-{refpage}-pRegions-07278]] 284 For each element of pname:pRegions, pname:srcOffset.x must: be a 285 multiple of the <<formats-compatibility-classes,texel block extent 286 width>> of the elink:VkFormat of pname:srcImage 287 * [[VUID-{refpage}-pRegions-07279]] 288 For each element of pname:pRegions, pname:srcOffset.y must: be a 289 multiple of the <<formats-compatibility-classes,texel block extent 290 height>> of the elink:VkFormat of pname:srcImage 291 * [[VUID-{refpage}-pRegions-07280]] 292 For each element of pname:pRegions, pname:srcOffset.z must: be a 293 multiple of the <<formats-compatibility-classes,texel block extent 294 depth>> of the elink:VkFormat of pname:srcImage 295 * [[VUID-{refpage}-pRegions-07281]] 296 For each element of pname:pRegions, pname:dstOffset.x must: be a 297 multiple of the <<formats-compatibility-classes,texel block extent 298 width>> of the elink:VkFormat of pname:dstImage 299 * [[VUID-{refpage}-pRegions-07282]] 300 For each element of pname:pRegions, pname:dstOffset.y must: be a 301 multiple of the <<formats-compatibility-classes,texel block extent 302 height>> of the elink:VkFormat of pname:dstImage 303 * [[VUID-{refpage}-pRegions-07283]] 304 For each element of pname:pRegions, pname:dstOffset.z must: be a 305 multiple of the <<formats-compatibility-classes,texel block extent 306 depth>> of the elink:VkFormat of pname:dstImage 307 * [[VUID-{refpage}-srcImage-01728]] 308 For each element of pname:pRegions, if the sum of pname:srcOffset.x and 309 pname:extent.width does not equal the width of the the subresource 310 specified by pname:srcSubresource, pname:extent.width must: be a 311 multiple of the <<formats-compatibility-classes,texel block extent 312 width>> of the elink:VkFormat of pname:srcImage 313 * [[VUID-{refpage}-srcImage-01729]] 314 For each element of pname:pRegions, if the sum of pname:srcOffset.y and 315 pname:extent.height does not equal the height of the the subresource 316 specified by pname:srcSubresource, pname:extent.height must: be a 317 multiple of the <<formats-compatibility-classes,texel block extent 318 height>> of the elink:VkFormat of pname:srcImage 319 * [[VUID-{refpage}-srcImage-01730]] 320 For each element of pname:pRegions, if the sum of pname:srcOffset.z and 321 pname:extent.depth does not equal the depth of the the subresource 322 specified by pname:srcSubresource, pname:extent.depth must: be a 323 multiple of the <<formats-compatibility-classes,texel block extent 324 depth>> of the elink:VkFormat of pname:srcImage 325 * [[VUID-{refpage}-dstImage-01732]] 326 For each element of pname:pRegions, if the sum of pname:dstOffset.x and 327 pname:extent.width does not equal the width of the the subresource 328 specified by pname:dstSubresource, pname:extent.width must: be a 329 multiple of the <<formats-compatibility-classes,texel block extent 330 width>> of the elink:VkFormat of pname:dstImage 331 * [[VUID-{refpage}-dstImage-01733]] 332 For each element of pname:pRegions, if the sum of pname:dstOffset.y and 333 pname:extent.height does not equal the height of the the subresource 334 specified by pname:dstSubresource, pname:extent.height must: be a 335 multiple of the <<formats-compatibility-classes,texel block extent 336 height>> of the elink:VkFormat of pname:dstImage 337 * [[VUID-{refpage}-dstImage-01734]] 338 For each element of pname:pRegions, if the sum of pname:dstOffset.z and 339 pname:extent.depth does not equal the depth of the the subresource 340 specified by pname:dstSubresource, pname:extent.depth must: be a 341 multiple of the <<formats-compatibility-classes,texel block extent 342 depth>> of the elink:VkFormat of pname:dstImage 343ifndef::VK_VERSION_1_2,VK_EXT_separate_stencil_usage[] 344 * [[VUID-{refpage}-srcImage-00126]] 345 pname:srcImage must: have been created with 346 ename:VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag 347 * [[VUID-{refpage}-dstImage-00131]] 348 pname:dstImage must: have been created with 349 ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag 350endif::VK_VERSION_1_2,VK_EXT_separate_stencil_usage[] 351ifdef::VK_VERSION_1_2,VK_EXT_separate_stencil_usage[] 352 * [[VUID-{refpage}-aspect-06662]] 353 If the pname:aspect member of any element of pname:pRegions includes any 354 flag other than ename:VK_IMAGE_ASPECT_STENCIL_BIT or pname:srcImage was 355 not created with <<VkImageStencilUsageCreateInfo,separate stencil 356 usage>>, ename:VK_IMAGE_USAGE_TRANSFER_SRC_BIT must: have been included 357 in the slink:VkImageCreateInfo::pname:usage used to create 358 pname:srcImage 359 * [[VUID-{refpage}-aspect-06663]] 360 If the pname:aspect member of any element of pname:pRegions includes any 361 flag other than ename:VK_IMAGE_ASPECT_STENCIL_BIT or pname:dstImage was 362 not created with <<VkImageStencilUsageCreateInfo,separate stencil 363 usage>>, ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT must: have been included 364 in the slink:VkImageCreateInfo::pname:usage used to create 365 pname:dstImage 366 * [[VUID-{refpage}-aspect-06664]] 367 If the pname:aspect member of any element of pname:pRegions includes 368 ename:VK_IMAGE_ASPECT_STENCIL_BIT, and pname:srcImage was created with 369 <<VkImageStencilUsageCreateInfo,separate stencil usage>>, 370 ename:VK_IMAGE_USAGE_TRANSFER_SRC_BIT must: have been included in the 371 slink:VkImageStencilUsageCreateInfo::pname:stencilUsage used to create 372 pname:srcImage 373 * [[VUID-{refpage}-aspect-06665]] 374 If the pname:aspect member of any element of pname:pRegions includes 375 ename:VK_IMAGE_ASPECT_STENCIL_BIT, and pname:dstImage was created with 376 <<VkImageStencilUsageCreateInfo,separate stencil usage>>, 377 ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT must: have been included in the 378 slink:VkImageStencilUsageCreateInfo::pname:stencilUsage used to create 379 pname:dstImage 380endif::VK_VERSION_1_2,VK_EXT_separate_stencil_usage[] 381// Common Valid Usage 382