• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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