• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright 2020-2021 The Khronos Group Inc.
2//
3// SPDX-License-Identifier: CC-BY-4.0
4// Common Valid Usage
5// Common to structs taking VkPipelineStageFlags2KHR and VkAccessFlags2KHR parameters to define scopes
6// Set "stageMaskName" and "accessMaskName" attribute to the name of the stage and access mask to validate
7  * [[VUID-{refpage}-{accessMaskName}-03900]]
8    If pname:{accessMaskName} includes
9    ename:VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR, pname:{stageMaskName}
10    must: include ename:VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR,
11    ename:VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,
12    ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or
13    ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
14  * [[VUID-{refpage}-{accessMaskName}-03901]]
15    If pname:{accessMaskName} includes ename:VK_ACCESS_2_INDEX_READ_BIT_KHR,
16    pname:{stageMaskName} must: include
17    ename:VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR,
18    ename:VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR,
19    ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or
20    ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
21  * [[VUID-{refpage}-{accessMaskName}-03902]]
22    If pname:{accessMaskName} includes
23    ename:VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR, pname:{stageMaskName}
24    must: include ename:VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR,
25    ename:VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR,
26    ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or
27    ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
28  * [[VUID-{refpage}-{accessMaskName}-03903]]
29    If pname:{accessMaskName} includes
30    ename:VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR, pname:{stageMaskName}
31    must: include ename:VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR,
32    ename:VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI,
33    ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or
34    ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
35  * [[VUID-{refpage}-{accessMaskName}-03904]]
36    If pname:{accessMaskName} includes
37    ename:VK_ACCESS_2_UNIFORM_READ_BIT_KHR, pname:{stageMaskName} must:
38    include ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR,
39    ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the
40    etext:VK_PIPELINE_STAGE_*_SHADER_BIT stages
41  * [[VUID-{refpage}-{accessMaskName}-03905]]
42    If pname:{accessMaskName} includes
43    ename:VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR, pname:{stageMaskName}
44    must: include ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR,
45    ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the
46    etext:VK_PIPELINE_STAGE_*_SHADER_BIT stages
47  * [[VUID-{refpage}-{accessMaskName}-03906]]
48    If pname:{accessMaskName} includes
49    ename:VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR, pname:{stageMaskName}
50    must: include ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR,
51    ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the
52    etext:VK_PIPELINE_STAGE_*_SHADER_BIT stages
53  * [[VUID-{refpage}-{accessMaskName}-03907]]
54    If pname:{accessMaskName} includes
55    ename:VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR, pname:{stageMaskName}
56    must: include ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR,
57    ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the
58    etext:VK_PIPELINE_STAGE_*_SHADER_BIT stages
59  * [[VUID-{refpage}-{accessMaskName}-03908]]
60    If pname:{accessMaskName} includes
61    ename:VK_ACCESS_2_SHADER_READ_BIT_KHR, pname:{stageMaskName} must:
62    include ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR,
63    ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR,
64    ename:VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or one
65    of the etext:VK_PIPELINE_STAGE_*_SHADER_BIT stages
66  * [[VUID-{refpage}-{accessMaskName}-03909]]
67    If pname:{accessMaskName} includes
68    ename:VK_ACCESS_2_SHADER_WRITE_BIT_KHR, pname:{stageMaskName} must:
69    include ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR,
70    ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the
71    etext:VK_PIPELINE_STAGE_*_SHADER_BIT stages
72  * [[VUID-{refpage}-{accessMaskName}-03910]]
73    If pname:{accessMaskName} includes
74    ename:VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR, pname:{stageMaskName}
75    must: include ename:VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR
76    ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or
77    ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
78  * [[VUID-{refpage}-{accessMaskName}-03911]]
79    If pname:{accessMaskName} includes
80    ename:VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR, pname:{stageMaskName}
81    must: include ename:VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR
82    ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or
83    ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
84  * [[VUID-{refpage}-{accessMaskName}-03912]]
85    If pname:{accessMaskName} includes
86    ename:VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR,
87    pname:{stageMaskName} must: include
88    ename:VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR,
89    ename:VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR,
90    ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or
91    ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
92  * [[VUID-{refpage}-{accessMaskName}-03913]]
93    If pname:{accessMaskName} includes
94    ename:VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR,
95    pname:{stageMaskName} must: include
96    ename:VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR,
97    ename:VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR,
98    ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or
99    ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
100  * [[VUID-{refpage}-{accessMaskName}-03914]]
101    If pname:{accessMaskName} includes
102    ename:VK_ACCESS_2_TRANSFER_READ_BIT_KHR, pname:{stageMaskName} must:
103    include ename:VK_PIPELINE_STAGE_2_COPY_BIT_KHR,
104    ename:VK_PIPELINE_STAGE_2_BLIT_BIT_KHR,
105    ename:VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR,
106    ename:VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR,
107    ename:VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or
108    ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
109  * [[VUID-{refpage}-{accessMaskName}-03915]]
110    If pname:{accessMaskName} includes
111    ename:VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, pname:{stageMaskName} must:
112    include ename:VK_PIPELINE_STAGE_2_COPY_BIT_KHR,
113    ename:VK_PIPELINE_STAGE_2_BLIT_BIT_KHR,
114    ename:VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR,
115    ename:VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR,
116    ename:VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR,
117    ename:VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or
118    ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
119  * [[VUID-{refpage}-{accessMaskName}-03916]]
120    If pname:{accessMaskName} includes ename:VK_ACCESS_2_HOST_READ_BIT_KHR,
121    pname:{stageMaskName} must: include
122    ename:VK_PIPELINE_STAGE_2_HOST_BIT_KHR
123  * [[VUID-{refpage}-{accessMaskName}-03917]]
124    If pname:{accessMaskName} includes ename:VK_ACCESS_2_HOST_WRITE_BIT_KHR,
125    pname:{stageMaskName} must: include
126    ename:VK_PIPELINE_STAGE_2_HOST_BIT_KHR
127ifdef::VK_EXT_conditional_rendering[]
128  * [[VUID-{refpage}-{accessMaskName}-03918]]
129    If pname:{accessMaskName} includes
130    ename:VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT,
131    pname:{stageMaskName} must: include
132    ename:VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT,
133    ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or
134    ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
135endif::VK_EXT_conditional_rendering[]
136ifdef::VK_EXT_fragment_density_map[]
137  * [[VUID-{refpage}-{accessMaskName}-03919]]
138    If pname:{accessMaskName} includes
139    ename:VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT,
140    pname:{stageMaskName} must: include
141    ename:VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT,
142    ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or
143    ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
144endif::VK_EXT_fragment_density_map[]
145ifdef::VK_EXT_transform_feedback[]
146  * [[VUID-{refpage}-{accessMaskName}-03920]]
147    If pname:{accessMaskName} includes
148    ename:VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT,
149    pname:{stageMaskName} must: include
150    ename:VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT,
151    ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or
152    ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
153  * [[VUID-{refpage}-{accessMaskName}-04747]]
154    If pname:{accessMaskName} includes
155    ename:VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT,
156    pname:{stageMaskName} must: include
157    ename:VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR,
158    ename:VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT,
159    ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or
160    ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
161  * [[VUID-{refpage}-{accessMaskName}-03922]]
162    If pname:{accessMaskName} includes
163    ename:VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT,
164    pname:{stageMaskName} must: include
165    ename:VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT,
166    ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or
167    ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
168endif::VK_EXT_transform_feedback[]
169ifdef::VK_NV_shading_rate_image[]
170  * [[VUID-{refpage}-{accessMaskName}-03923]]
171    If pname:{accessMaskName} includes
172    ename:VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV, pname:{stageMaskName}
173    must: include ename:VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV,
174    ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or
175    ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
176endif::VK_NV_shading_rate_image[]
177ifdef::VK_HUAWEI_invocation_mask[]
178  * [[VUID-{refpage}-{accessMaskName}-04994]]
179    If pname:{accessMaskName} includes
180    ename:VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI, pname:{stageMaskName}
181    must: include ename:VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
182endif::VK_HUAWEI_invocation_mask[]
183ifdef::VK_NV_device_generated_commands[]
184  * [[VUID-{refpage}-{accessMaskName}-03924]]
185    If pname:{accessMaskName} includes
186    ename:VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV, pname:{stageMaskName}
187    must: include ename:VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or
188    ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
189  * [[VUID-{refpage}-{accessMaskName}-03925]]
190    If pname:{accessMaskName} includes
191    ename:VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV, pname:{stageMaskName}
192    must: include ename:VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or
193    ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
194endif::VK_NV_device_generated_commands[]
195ifdef::VK_EXT_blend_operation_advanced[]
196  * [[VUID-{refpage}-{accessMaskName}-03926]]
197    If pname:{accessMaskName} includes
198    ename:VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT,
199    pname:{stageMaskName} must: include
200    ename:VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR
201    ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or
202    ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
203endif::VK_EXT_blend_operation_advanced[]
204ifdef::VK_KHR_acceleration_structure,VK_NV_ray_tracing[]
205  * [[VUID-{refpage}-{accessMaskName}-03927]]
206    If pname:{accessMaskName} includes
207    ename:VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR,
208    pname:{stageMaskName} must: include
209    ename:VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,
210    ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the
211    etext:VK_PIPELINE_STAGE_*_SHADER_BIT stages
212  * [[VUID-{refpage}-{accessMaskName}-03928]]
213    If pname:{accessMaskName} includes
214    ename:VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,
215    pname:{stageMaskName} must: include
216    ename:VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR or
217    ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
218ifndef::VK_KHR_ray_query[]
219ifdef::VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing[]
220  * [[VUID-{refpage}-{accessMaskName}-06254]]
221    If pname:{accessMaskName} includes
222    ename:VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR,
223    pname:{stageMaskName} must: not include any of the
224    etext:VK_PIPELINE_STAGE_*_SHADER_BIT stages except
225    ename:VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR
226endif::VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing[]
227ifndef::VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing[]
228  * [[VUID-{refpage}-{accessMaskName}-06255]]
229    If pname:{accessMaskName} includes
230    ename:VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR,
231    pname:{stageMaskName} must: not include any of the
232    etext:VK_PIPELINE_STAGE_*_SHADER_BIT stages
233endif::VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing[]
234endif::VK_KHR_ray_query[]
235ifdef::VK_KHR_ray_query[]
236ifdef::VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing[]
237  * [[VUID-{refpage}-{accessMaskName}-06256]]
238    If <<features-rayQuery,pname:rayQuery>> is not enabled and
239    pname:{accessMaskName} includes
240    ename:VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR,
241    pname:{stageMaskName} must: not include any of the
242    etext:VK_PIPELINE_STAGE_*_SHADER_BIT stages except
243    ename:VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR
244endif::VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing[]
245ifndef::VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing[]
246  * [[VUID-{refpage}-{accessMaskName}-06257]]
247    If <<features-rayQuery,pname:rayQuery>> is not enabled and
248    pname:{accessMaskName} includes
249    ename:VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR,
250    pname:{stageMaskName} must: not include any of the
251    etext:VK_PIPELINE_STAGE_*_SHADER_BIT stages
252endif::VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing[]
253endif::VK_KHR_ray_query[]
254endif::VK_KHR_acceleration_structure,VK_NV_ray_tracing[]
255ifdef::VK_KHR_video_decode_queue[]
256  * [[VUID-{refpage}-{accessMaskName}-04858]]
257    If pname:{accessMaskName} includes
258    ename:VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR, pname:{stageMaskName} must:
259    include ename:VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR
260  * [[VUID-{refpage}-{accessMaskName}-04859]]
261    If pname:{accessMaskName} includes
262    ename:VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR, pname:{stageMaskName}
263    must: include ename:VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR
264endif::VK_KHR_video_decode_queue[]
265ifdef::VK_KHR_video_encode_queue[]
266  * [[VUID-{refpage}-{accessMaskName}-04860]]
267    If pname:{accessMaskName} includes
268    ename:VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR, pname:{stageMaskName} must:
269    include ename:VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR
270  * [[VUID-{refpage}-{accessMaskName}-04861]]
271    If pname:{accessMaskName} includes
272    ename:VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR, pname:{stageMaskName}
273    must: include ename:VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR
274endif::VK_KHR_video_encode_queue[]
275// Common Valid Usage
276