1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
// Copyright 2023 The Khronos Group Inc.
//
// SPDX-License-Identifier: CC-BY-4.0
// Common Valid Usage
// Common to VkImageMemoryBarrier* structs
* [[VUID-{refpage}-subresourceRange-01486]]
pname:subresourceRange.baseMipLevel must: be less than the
pname:mipLevels specified in slink:VkImageCreateInfo when pname:image
was created
* [[VUID-{refpage}-subresourceRange-01724]]
If pname:subresourceRange.levelCount is not
ename:VK_REMAINING_MIP_LEVELS, [eq]#pname:subresourceRange.baseMipLevel
{plus} pname:subresourceRange.levelCount# must: be less than or equal to
the pname:mipLevels specified in slink:VkImageCreateInfo when
pname:image was created
* [[VUID-{refpage}-subresourceRange-01488]]
pname:subresourceRange.baseArrayLayer must: be less than the
pname:arrayLayers specified in slink:VkImageCreateInfo when pname:image
was created
* [[VUID-{refpage}-subresourceRange-01725]]
If pname:subresourceRange.layerCount is not
ename:VK_REMAINING_ARRAY_LAYERS,
[eq]#pname:subresourceRange.baseArrayLayer {plus}
pname:subresourceRange.layerCount# must: be less than or equal to the
pname:arrayLayers specified in slink:VkImageCreateInfo when pname:image
was created
* [[VUID-{refpage}-image-01932]]
If pname:image is non-sparse then it must: be bound completely and
contiguously to a single sname:VkDeviceMemory object
* [[VUID-{refpage}-image-09241]]
If pname:image has a color format
ifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
that is single-plane,
endif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
then the pname:aspectMask member of pname:subresourceRange must: be
ename:VK_IMAGE_ASPECT_COLOR_BIT
ifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
* [[VUID-{refpage}-image-09242]]
If pname:image has a color format and is not _disjoint_, then the
pname:aspectMask member of pname:subresourceRange must: be
ename:VK_IMAGE_ASPECT_COLOR_BIT
* [[VUID-{refpage}-image-01672]]
If pname:image has a multi-planar format and the image is _disjoint_,
then the pname:aspectMask member of pname:subresourceRange must: include
at least one <<formats-planes-image-aspect,multi-planar aspect mask>>
bit or ename:VK_IMAGE_ASPECT_COLOR_BIT
endif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
* [[VUID-{refpage}-image-03320]]
If pname:image has a depth/stencil format with both depth and stencil
ifdef::VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts[]
and the <<features-separateDepthStencilLayouts,
pname:separateDepthStencilLayouts>> feature is not enabled,
endif::VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts[]
then the pname:aspectMask member of pname:subresourceRange must: include
both ename:VK_IMAGE_ASPECT_DEPTH_BIT and
ename:VK_IMAGE_ASPECT_STENCIL_BIT
ifdef::VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts[]
* [[VUID-{refpage}-image-03319]]
If pname:image has a depth/stencil format with both depth and stencil
and the <<features-separateDepthStencilLayouts,
pname:separateDepthStencilLayouts>> feature is enabled, then the
pname:aspectMask member of pname:subresourceRange must: include either
or both ename:VK_IMAGE_ASPECT_DEPTH_BIT and
ename:VK_IMAGE_ASPECT_STENCIL_BIT
* [[VUID-{refpage}-aspectMask-08702]]
If the pname:aspectMask member of pname:subresourceRange includes
ename:VK_IMAGE_ASPECT_DEPTH_BIT, pname:oldLayout and pname:newLayout
must: not be one of ename:VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or
ename:VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
* [[VUID-{refpage}-aspectMask-08703]]
If the pname:aspectMask member of pname:subresourceRange includes
ename:VK_IMAGE_ASPECT_STENCIL_BIT, pname:oldLayout and pname:newLayout
must: not be one of ename:VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or
ename:VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL
endif::VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts[]
// Common Valid Usage
|