blob: fac3506e9d1f7f1eebd2c42e81b6ff6d017a5c2b [file] [log] [blame]
Lionel Landwerlin2d9f5632022-01-08 01:12:47 +02001/* Copyright (c) 2015-2022 The Khronos Group Inc.
2 * Copyright (c) 2015-2022 Valve Corporation
3 * Copyright (c) 2015-2022 LunarG, Inc.
4 * Copyright (C) 2015-2022 Google Inc.
stusmithedc4e392021-12-24 15:22:16 +00005 * Modifications Copyright (C) 2020-2022 Advanced Micro Devices, Inc. All rights reserved.
Jasper St. Pierre512613a2019-04-08 16:25:23 -07006 *
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
10 *
11 * http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 *
19 * Author: Cody Northrop <cnorthrop@google.com>
20 * Author: Michael Lentine <mlentine@google.com>
21 * Author: Tobin Ehlis <tobine@google.com>
22 * Author: Chia-I Wu <olv@google.com>
23 * Author: Chris Forbes <chrisf@ijw.co.nz>
24 * Author: Mark Lobodzinski <mark@lunarg.com>
25 * Author: Ian Elliott <ianelliott@google.com>
26 * Author: Dave Houlton <daveh@lunarg.com>
27 * Author: Dustin Graves <dustin@lunarg.com>
28 * Author: Jeremy Hayes <jeremy@lunarg.com>
29 * Author: Jon Ashburn <jon@lunarg.com>
30 * Author: Karl Schultz <karl@lunarg.com>
31 * Author: Mark Young <marky@lunarg.com>
32 * Author: Mike Schuchardt <mikes@lunarg.com>
33 * Author: Mike Weiblen <mikew@lunarg.com>
34 * Author: Tony Barbour <tony@LunarG.com>
35 * Author: John Zulauf <jzulauf@lunarg.com>
36 * Author: Shannon McPherson <shannon@lunarg.com>
Jeremy Kniagere6827432020-04-01 09:05:56 -060037 * Author: Jeremy Kniager <jeremyk@lunarg.com>
Mark Lobodzinskiddf43612020-11-17 11:28:02 -070038 * Author: Nathaniel Cesario <nathaniel@lunarg.com>
Tobias Hector6663c9b2020-11-05 10:18:02 +000039 * Author: Tobias Hector <tobias.hector@amd.com>
Jasper St. Pierre512613a2019-04-08 16:25:23 -070040 */
41
Jasper St. Pierre512613a2019-04-08 16:25:23 -070042#include "chassis.h"
43#include "core_validation.h"
44
Spencer Fricke507600b2020-03-22 13:23:06 -070045// clang-format off
Mark Lobodzinskiddf43612020-11-17 11:28:02 -070046struct DispatchVuidsCmdDraw : DrawDispatchVuid {
47 DispatchVuidsCmdDraw() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -070048 pipeline_bound = "VUID-vkCmdDraw-None-02700";
49 dynamic_state = "VUID-vkCmdDraw-commandBuffer-02701";
50 vertex_binding = "VUID-vkCmdDraw-None-04007";
51 vertex_binding_null = "VUID-vkCmdDraw-None-04008";
52 compatible_pipeline = "VUID-vkCmdDraw-None-02697";
53 render_pass_compatible = "VUID-vkCmdDraw-renderPass-02684";
54 subpass_index = "VUID-vkCmdDraw-subpass-02685";
55 sample_location = "VUID-vkCmdDraw-sampleLocationsEnable-02689";
56 linear_sampler = "VUID-vkCmdDraw-magFilter-04553";
57 cubic_sampler = "VUID-vkCmdDraw-None-02692";
58 viewport_count = "VUID-vkCmdDraw-viewportCount-03417";
59 scissor_count = "VUID-vkCmdDraw-scissorCount-03418";
60 viewport_scissor_count = "VUID-vkCmdDraw-viewportCount-03419";
61 primitive_topology = "VUID-vkCmdDraw-primitiveTopology-03420";
62 corner_sampled_address_mode = "VUID-vkCmdDraw-flags-02696";
63 subpass_input = "VUID-vkCmdDraw-None-02686";
64 imageview_atomic = "VUID-vkCmdDraw-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -070065 push_constants_set = "VUID-vkCmdDraw-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +010066 image_subresources_render_pass_write = "VUID-vkCmdDraw-None-06537";
67 image_subresources_subpass_read = "VUID-vkCmdDraw-None-06538";
68 image_subresources_subpass_write = "VUID-vkCmdDraw-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -070069 descriptor_valid = "VUID-vkCmdDraw-None-02699";
70 sampler_imageview_type = "VUID-vkCmdDraw-None-02702";
71 sampler_implicitLod_dref_proj = "VUID-vkCmdDraw-None-02703";
72 sampler_bias_offset = "VUID-vkCmdDraw-None-02704";
73 vertex_binding_attribute = "VUID-vkCmdDraw-None-02721";
74 dynamic_state_setting_commands = "VUID-vkCmdDraw-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -070075 rasterization_samples = "VUID-vkCmdDraw-rasterizationSamples-04740";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -070076 unprotected_command_buffer = "VUID-vkCmdDraw-commandBuffer-02707";
77 protected_command_buffer = "VUID-vkCmdDraw-commandBuffer-02712";
78 max_multiview_instance_index = "VUID-vkCmdDraw-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -070079 img_filter_cubic = "VUID-vkCmdDraw-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -070080 filter_cubic = "VUID-vkCmdDraw-filterCubic-02694";
81 filter_cubic_min_max = "VUID-vkCmdDraw-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +000082 viewport_count_primitive_shading_rate = "VUID-vkCmdDraw-primitiveFragmentShadingRateWithMultipleViewports-04552";
Vikram Kushwahaa57b0c32021-04-19 12:21:46 -070083 patch_control_points = "VUID-vkCmdDraw-None-04875";
84 rasterizer_discard_enable = "VUID-vkCmdDraw-None-04876";
85 depth_bias_enable = "VUID-vkCmdDraw-None-04877";
86 logic_op = "VUID-vkCmdDraw-logicOp-04878";
87 primitive_restart_enable = "VUID-vkCmdDraw-None-04879";
Piers Daniell924cd832021-05-18 13:48:47 -060088 vertex_input_binding_stride = "VUID-vkCmdDraw-pStrides-04884";
89 vertex_input = kVUID_Core_CmdDraw_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +020090 blend_enable = "VUID-vkCmdDraw-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +010091 color_write_enable = "VUID-vkCmdDraw-attachmentCount-06667";
Aaron Hagan92a44f82021-11-19 09:34:56 -050092 dynamic_rendering_view_mask = "VUID-vkCmdDraw-viewMask-06178";
93 dynamic_rendering_color_count = "VUID-vkCmdDraw-colorAttachmentCount-06179";
94 dynamic_rendering_color_formats = "VUID-vkCmdDraw-colorAttachmentCount-06180";
95 dynamic_rendering_depth_format = "VUID-vkCmdDraw-pDepthAttachment-06181";
96 dynamic_rendering_stencil_format = "VUID-vkCmdDraw-pStencilAttachment-06182";
97 dynamic_rendering_fsr = "VUID-vkCmdDraw-imageView-06183";
98 dynamic_rendering_fdm = "VUID-vkCmdDraw-imageView-06184";
Aaron Hagan09a0e172021-11-19 21:18:33 -050099 dynamic_rendering_color_sample = "VUID-vkCmdDraw-colorAttachmentCount-06185";
100 dynamic_rendering_depth_sample = "VUID-vkCmdDraw-pDepthAttachment-06186";
101 dynamic_rendering_stencil_sample = "VUID-vkCmdDraw-pStencilAttachment-06187";
102 dynamic_rendering_multi_sample = "VUID-vkCmdDraw-colorAttachmentCount-06188";
Aaron Haganaca50442021-12-07 22:26:29 -0500103 dynamic_rendering_06189 = "VUID-vkCmdDraw-pDepthAttachment-06189";
104 dynamic_rendering_06190 = "VUID-vkCmdDraw-pStencilAttachment-06190";
105 dynamic_rendering_06198 = "VUID-vkCmdDraw-renderPass-06198";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200106 storage_image_read_without_format = "VUID-vkCmdDraw-OpTypeImage-06424";
107 storage_image_write_without_format = "VUID-vkCmdDraw-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200108 depth_compare_sample = "VUID-vkCmdDraw-None-06479";
ziga-lunarg50188622022-03-26 01:18:32 +0100109 dynamic_sample_locations = "VUID-vkCmdDraw-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +0200110 primitives_generated = "VUID-vkCmdDraw-primitivesGeneratedQueryWithRasterizerDiscard-06708";
ziga-lunargf4068b12022-04-05 13:58:59 +0200111 primitives_generated_streams = "VUID-vkCmdDraw-primitivesGeneratedQueryWithNonZeroStreams-06709";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700112 }
113};
114
Tony-LunarG4490de42021-06-21 15:49:19 -0600115struct DispatchVuidsCmdDrawMultiEXT : DrawDispatchVuid {
116 DispatchVuidsCmdDrawMultiEXT() : DrawDispatchVuid() {
117 pipeline_bound = "VUID-vkCmdDrawMultiEXT-None-02700";
118 dynamic_state = "VUID-vkCmdDrawMultiEXT-commandBuffer-02701";
119 vertex_binding = "VUID-vkCmdDrawMultiEXT-None-04007";
120 vertex_binding_null = "VUID-vkCmdDrawMultiEXT-None-04008";
121 compatible_pipeline = "VUID-vkCmdDrawMultiEXT-None-02697";
122 render_pass_compatible = "VUID-vkCmdDrawMultiEXT-renderPass-02684";
123 subpass_index = "VUID-vkCmdDrawMultiEXT-subpass-02685";
124 sample_location = "VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-02689";
125 linear_sampler = "VUID-vkCmdDrawMultiEXT-magFilter-04553";
126 cubic_sampler = "VUID-vkCmdDrawMultiEXT-None-02692";
127 viewport_count = "VUID-vkCmdDrawMultiEXT-viewportCount-03417";
128 scissor_count = "VUID-vkCmdDrawMultiEXT-scissorCount-03418";
129 viewport_scissor_count = "VUID-vkCmdDrawMultiEXT-viewportCount-03419";
130 primitive_topology = "VUID-vkCmdDrawMultiEXT-primitiveTopology-03420";
131 corner_sampled_address_mode = "VUID-vkCmdDrawMultiEXT-flags-02696";
132 subpass_input = "VUID-vkCmdDrawMultiEXT-None-02686";
133 imageview_atomic = "VUID-vkCmdDrawMultiEXT-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700134 push_constants_set = "VUID-vkCmdDrawMultiEXT-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100135 image_subresources_render_pass_write = "VUID-vkCmdDrawMultiEXT-None-06537";
136 image_subresources_subpass_read = "VUID-vkCmdDrawMultiEXT-None-06538";
137 image_subresources_subpass_write = "VUID-vkCmdDrawMultiEXT-None-06539";
Tony-LunarG4490de42021-06-21 15:49:19 -0600138 descriptor_valid = "VUID-vkCmdDrawMultiEXT-None-02699";
139 sampler_imageview_type = "VUID-vkCmdDrawMultiEXT-None-02702";
140 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawMultiEXT-None-02703";
141 sampler_bias_offset = "VUID-vkCmdDrawMultiEXT-None-02704";
142 vertex_binding_attribute = "VUID-vkCmdDrawMultiEXT-None-02721";
143 dynamic_state_setting_commands = "VUID-vkCmdDrawMultiEXT-None-02859";
144 rasterization_samples = "VUID-vkCmdDrawMultiEXT-rasterizationSamples-04740";
145 unprotected_command_buffer = "VUID-vkCmdDrawMultiEXT-commandBuffer-02707";
146 protected_command_buffer = "VUID-vkCmdDrawMultiEXT-commandBuffer-02712";
147 max_multiview_instance_index = "VUID-vkCmdDrawMultiEXT-maxMultiviewInstanceIndex-02688";
148 img_filter_cubic = "VUID-vkCmdDrawMultiEXT-None-02693";
149 filter_cubic = "VUID-vkCmdDrawMultiEXT-filterCubic-02694";
150 filter_cubic_min_max = "VUID-vkCmdDrawMultiEXT-filterCubicMinmax-02695";
151 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawMultiEXT-primitiveFragmentShadingRateWithMultipleViewports-04552";
152 patch_control_points = "VUID-vkCmdDrawMultiEXT-None-04875";
153 rasterizer_discard_enable = "VUID-vkCmdDrawMultiEXT-None-04876";
154 depth_bias_enable = "VUID-vkCmdDrawMultiEXT-None-04877";
155 logic_op = "VUID-vkCmdDrawMultiEXT-logicOp-04878";
156 primitive_restart_enable = "VUID-vkCmdDrawMultiEXT-None-04879";
157 vertex_input_binding_stride = "VUID-vkCmdDrawMultiEXT-pStrides-04884";
158 vertex_input = kVUID_Core_CmdDrawMultiEXT_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200159 blend_enable = "VUID-vkCmdDrawMultiEXT-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100160 color_write_enable = "VUID-vkCmdDrawMultiEXT-attachmentCount-06667";
Aaron Hagan92a44f82021-11-19 09:34:56 -0500161 dynamic_rendering_view_mask = "VUID-vkCmdDrawMultiEXT-viewMask-06178";
162 dynamic_rendering_color_count = "VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06179";
163 dynamic_rendering_color_formats = "VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06180";
164 dynamic_rendering_depth_format = "VUID-vkCmdDrawMultiEXT-pDepthAttachment-06181";
165 dynamic_rendering_stencil_format = "VUID-vkCmdDrawMultiEXT-pStencilAttachment-06182";
166 dynamic_rendering_fsr = "VUID-vkCmdDrawMultiEXT-imageView-06183";
167 dynamic_rendering_fdm = "VUID-vkCmdDrawMultiEXT-imageView-06184";
Aaron Hagan09a0e172021-11-19 21:18:33 -0500168 dynamic_rendering_color_sample = "VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06185";
169 dynamic_rendering_depth_sample = "VUID-vkCmdDrawMultiEXT-pDepthAttachment-06186";
170 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawMultiEXT-pStencilAttachment-06187";
171 dynamic_rendering_multi_sample = "VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06188";
Aaron Haganaca50442021-12-07 22:26:29 -0500172 dynamic_rendering_06189 = "VUID-vkCmdDrawMultiEXT-pDepthAttachment-06189";
173 dynamic_rendering_06190 = "VUID-vkCmdDrawMultiEXT-pStencilAttachment-06190";
174 dynamic_rendering_06198 = "VUID-vkCmdDrawMultiEXT-renderPass-06198";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200175 storage_image_read_without_format = "VUID-vkCmdDrawMultiEXT-OpTypeImage-06424";
176 storage_image_write_without_format = "VUID-vkCmdDrawMultiEXT-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200177 depth_compare_sample = "VUID-vkCmdDrawMultiEXT-None-06479";
ziga-lunarg50188622022-03-26 01:18:32 +0100178 dynamic_sample_locations = "VUID-vkCmdDrawMultiEXT-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +0200179 primitives_generated = "VUID-vkCmdDrawMultiEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708";
ziga-lunargf4068b12022-04-05 13:58:59 +0200180 primitives_generated_streams = "VUID-vkCmdDrawMultiEXT-primitivesGeneratedQueryWithNonZeroStreams-06709";
Tony-LunarG4490de42021-06-21 15:49:19 -0600181 }
182};
183
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700184struct DispatchVuidsCmdDrawIndexed : DrawDispatchVuid {
185 DispatchVuidsCmdDrawIndexed() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700186 pipeline_bound = "VUID-vkCmdDrawIndexed-None-02700";
187 dynamic_state = "VUID-vkCmdDrawIndexed-commandBuffer-02701";
188 vertex_binding = "VUID-vkCmdDrawIndexed-None-04007";
189 vertex_binding_null = "VUID-vkCmdDrawIndexed-None-04008";
190 compatible_pipeline = "VUID-vkCmdDrawIndexed-None-02697";
191 render_pass_compatible = "VUID-vkCmdDrawIndexed-renderPass-02684";
192 subpass_index = "VUID-vkCmdDrawIndexed-subpass-02685";
193 sample_location = "VUID-vkCmdDrawIndexed-sampleLocationsEnable-02689";
194 linear_sampler = "VUID-vkCmdDrawIndexed-magFilter-04553";
195 cubic_sampler = "VUID-vkCmdDrawIndexed-None-02692";
196 viewport_count = "VUID-vkCmdDrawIndexed-viewportCount-03417";
197 scissor_count = "VUID-vkCmdDrawIndexed-scissorCount-03418";
198 viewport_scissor_count = "VUID-vkCmdDrawIndexed-viewportCount-03419";
199 primitive_topology = "VUID-vkCmdDrawIndexed-primitiveTopology-03420";
200 corner_sampled_address_mode = "VUID-vkCmdDrawIndexed-flags-02696";
201 subpass_input = "VUID-vkCmdDrawIndexed-None-02686";
202 imageview_atomic = "VUID-vkCmdDrawIndexed-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700203 push_constants_set = "VUID-vkCmdDrawIndexed-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100204 image_subresources_render_pass_write = "VUID-vkCmdDrawIndexed-None-06537";
205 image_subresources_subpass_read = "VUID-vkCmdDrawIndexed-None-06538";
206 image_subresources_subpass_write = "VUID-vkCmdDrawIndexed-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700207 descriptor_valid = "VUID-vkCmdDrawIndexed-None-02699";
208 sampler_imageview_type = "VUID-vkCmdDrawIndexed-None-02702";
209 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawIndexed-None-02703";
210 sampler_bias_offset = "VUID-vkCmdDrawIndexed-None-02704";
211 vertex_binding_attribute = "VUID-vkCmdDrawIndexed-None-02721";
212 dynamic_state_setting_commands = "VUID-vkCmdDrawIndexed-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700213 rasterization_samples = "VUID-vkCmdDrawIndexed-rasterizationSamples-04740";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700214 unprotected_command_buffer = "VUID-vkCmdDrawIndexed-commandBuffer-02707";
215 protected_command_buffer = "VUID-vkCmdDrawIndexed-commandBuffer-02712";
216 max_multiview_instance_index = "VUID-vkCmdDrawIndexed-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700217 img_filter_cubic = "VUID-vkCmdDrawIndexed-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700218 filter_cubic = "VUID-vkCmdDrawIndexed-filterCubic-02694";
219 filter_cubic_min_max = "VUID-vkCmdDrawIndexed-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000220 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawIndexed-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600221 patch_control_points = "VUID-vkCmdDrawIndexed-None-04875";
222 rasterizer_discard_enable = "VUID-vkCmdDrawIndexed-None-04876";
223 depth_bias_enable = "VUID-vkCmdDrawIndexed-None-04877";
224 logic_op = "VUID-vkCmdDrawIndexed-logicOp-04878";
225 primitive_restart_enable = "VUID-vkCmdDrawIndexed-None-04879";
226 vertex_input_binding_stride = "VUID-vkCmdDrawIndexed-pStrides-04884";
227 vertex_input = kVUID_Core_CmdDrawIndexed_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200228 blend_enable = "VUID-vkCmdDrawIndexed-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100229 color_write_enable = "VUID-vkCmdDrawIndexed-attachmentCount-06667";
Aaron Hagan92a44f82021-11-19 09:34:56 -0500230 dynamic_rendering_view_mask = "VUID-vkCmdDrawIndexed-viewMask-06178";
231 dynamic_rendering_color_count = "VUID-vkCmdDrawIndexed-colorAttachmentCount-06179";
232 dynamic_rendering_color_formats = "VUID-vkCmdDrawIndexed-colorAttachmentCount-06180";
233 dynamic_rendering_depth_format = "VUID-vkCmdDrawIndexed-pDepthAttachment-06181";
234 dynamic_rendering_stencil_format = "VUID-vkCmdDrawIndexed-pStencilAttachment-06182";
235 dynamic_rendering_fsr = "VUID-vkCmdDrawIndexed-imageView-06183";
236 dynamic_rendering_fdm = "VUID-vkCmdDrawIndexed-imageView-06184";
Aaron Hagan09a0e172021-11-19 21:18:33 -0500237 dynamic_rendering_color_sample = "VUID-vkCmdDrawIndexed-colorAttachmentCount-06185";
238 dynamic_rendering_depth_sample = "VUID-vkCmdDrawIndexed-pDepthAttachment-06186";
239 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawIndexed-pStencilAttachment-06187";
240 dynamic_rendering_multi_sample = "VUID-vkCmdDrawIndexed-colorAttachmentCount-06188";
Aaron Haganaca50442021-12-07 22:26:29 -0500241 dynamic_rendering_06189 = "VUID-vkCmdDrawIndexed-pDepthAttachment-06189";
242 dynamic_rendering_06190 = "VUID-vkCmdDrawIndexed-pStencilAttachment-06190";
243 dynamic_rendering_06198 = "VUID-vkCmdDrawIndexed-renderPass-06198";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200244 storage_image_read_without_format = "VUID-vkCmdDrawIndexed-OpTypeImage-06424";
245 storage_image_write_without_format = "VUID-vkCmdDrawIndexed-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200246 depth_compare_sample = "VUID-vkCmdDrawIndexed-None-06479";
ziga-lunarg50188622022-03-26 01:18:32 +0100247 dynamic_sample_locations = "VUID-vkCmdDrawIndexed-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +0200248 primitives_generated = "VUID-vkCmdDrawIndexed-primitivesGeneratedQueryWithRasterizerDiscard-06708";
ziga-lunargf4068b12022-04-05 13:58:59 +0200249 primitives_generated_streams = "VUID-vkCmdDrawIndexed-primitivesGeneratedQueryWithNonZeroStreams-06709";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700250 }
251};
252
Tony-LunarG4490de42021-06-21 15:49:19 -0600253struct DispatchVuidsCmdDrawMultiIndexedEXT : DrawDispatchVuid {
254 DispatchVuidsCmdDrawMultiIndexedEXT() : DrawDispatchVuid() {
Lionel Landwerlin45e981c2021-12-07 15:29:40 +0200255 pipeline_bound = "VUID-vkCmdDrawMultiIndexedEXT-None-02700";
256 dynamic_state = "VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02701";
257 vertex_binding = "VUID-vkCmdDrawMultiIndexedEXT-None-04007";
258 vertex_binding_null = "VUID-vkCmdDrawMultiIndexedEXT-None-04008";
259 compatible_pipeline = "VUID-vkCmdDrawMultiIndexedEXT-None-02697";
260 render_pass_compatible = "VUID-vkCmdDrawMultiIndexedEXT-renderPass-02684";
261 subpass_index = "VUID-vkCmdDrawMultiIndexedEXT-subpass-02685";
262 sample_location = "VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-02689";
263 linear_sampler = "VUID-vkCmdDrawMultiIndexedEXT-magFilter-04553";
264 cubic_sampler = "VUID-vkCmdDrawMultiIndexedEXT-None-02692";
265 viewport_count = "VUID-vkCmdDrawMultiIndexedEXT-viewportCount-03417";
266 scissor_count = "VUID-vkCmdDrawMultiIndexedEXT-scissorCount-03418";
267 viewport_scissor_count = "VUID-vkCmdDrawMultiIndexedEXT-viewportCount-03419";
268 primitive_topology = "VUID-vkCmdDrawMultiIndexedEXT-primitiveTopology-03420";
269 corner_sampled_address_mode = "VUID-vkCmdDrawMultiIndexedEXT-flags-02696";
270 subpass_input = "VUID-vkCmdDrawMultiIndexedEXT-None-02686";
271 imageview_atomic = "VUID-vkCmdDrawMultiIndexedEXT-None-02691";
272 push_constants_set = "VUID-vkCmdDrawMultiIndexedEXT-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100273 image_subresources_render_pass_write = "VUID-vkCmdDrawMultiIndexedEXT-None-06537";
274 image_subresources_subpass_read = "VUID-vkCmdDrawMultiIndexedEXT-None-06538";
275 image_subresources_subpass_write = "VUID-vkCmdDrawMultiIndexedEXT-None-06539";
Lionel Landwerlin45e981c2021-12-07 15:29:40 +0200276 descriptor_valid = "VUID-vkCmdDrawMultiIndexedEXT-None-02699";
277 sampler_imageview_type = "VUID-vkCmdDrawMultiIndexedEXT-None-02702";
278 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawMultiIndexedEXT-None-02703";
279 sampler_bias_offset = "VUID-vkCmdDrawMultiIndexedEXT-None-02704";
280 vertex_binding_attribute = "VUID-vkCmdDrawMultiIndexedEXT-None-02721";
281 dynamic_state_setting_commands = "VUID-vkCmdDrawMultiIndexedEXT-None-02859";
282 rasterization_samples = "VUID-vkCmdDrawMultiIndexedEXT-rasterizationSamples-04740";
283 unprotected_command_buffer = "VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02707";
284 protected_command_buffer = "VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02712";
285 max_multiview_instance_index = "VUID-vkCmdDrawMultiIndexedEXT-maxMultiviewInstanceIndex-02688";
286 img_filter_cubic = "VUID-vkCmdDrawMultiIndexedEXT-None-02693";
287 filter_cubic = "VUID-vkCmdDrawMultiIndexedEXT-filterCubic-02694";
288 filter_cubic_min_max = "VUID-vkCmdDrawMultiIndexedEXT-filterCubicMinmax-02695";
Tony-LunarG4490de42021-06-21 15:49:19 -0600289 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawMultiIndexedEXT-primitiveFragmentShadingRateWithMultipleViewports-04552";
Lionel Landwerlin45e981c2021-12-07 15:29:40 +0200290 patch_control_points = "VUID-vkCmdDrawMultiIndexedEXT-None-04875";
291 rasterizer_discard_enable = "VUID-vkCmdDrawMultiIndexedEXT-None-04876";
292 depth_bias_enable = "VUID-vkCmdDrawMultiIndexedEXT-None-04877";
293 logic_op = "VUID-vkCmdDrawMultiIndexedEXT-logicOp-04878";
294 primitive_restart_enable = "VUID-vkCmdDrawMultiIndexedEXT-None-04879";
295 vertex_input_binding_stride = "VUID-vkCmdDrawMultiIndexedEXT-pStrides-04884";
296 vertex_input = kVUID_Core_CmdDrawMultiIndexedEXT_VertexInput;
297 blend_enable = "VUID-vkCmdDrawMultiIndexedEXT-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100298 color_write_enable = "VUID-vkCmdDrawMultiIndexedEXT-attachmentCount-06667";
Lionel Landwerlin45e981c2021-12-07 15:29:40 +0200299 dynamic_rendering_view_mask = "VUID-vkCmdDrawMultiIndexedEXT-viewMask-06178";
300 dynamic_rendering_color_count = "VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-06179";
301 dynamic_rendering_color_formats = "VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-06180";
302 dynamic_rendering_depth_format = "VUID-vkCmdDrawMultiIndexedEXT-pDepthAttachment-06181";
303 dynamic_rendering_stencil_format = "VUID-vkCmdDrawMultiIndexedEXT-pStencilAttachment-06182";
304 dynamic_rendering_fsr = "VUID-vkCmdDrawMultiIndexedEXT-imageView-06183";
305 dynamic_rendering_fdm = "VUID-vkCmdDrawMultiIndexedEXT-imageView-06184";
306 dynamic_rendering_color_sample = "VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-06185";
307 dynamic_rendering_depth_sample = "VUID-vkCmdDrawMultiIndexedEXT-pDepthAttachment-06186";
308 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawMultiIndexedEXT-pStencilAttachment-06187";
309 dynamic_rendering_multi_sample = "VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-06188";
310 dynamic_rendering_06189 = "VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-06189";
311 dynamic_rendering_06190 = "VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-06190";
312 dynamic_rendering_06198 = "VUID-vkCmdDrawIndexedIndirect-renderPass-06198";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200313 storage_image_read_without_format = "VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-06424";
314 storage_image_write_without_format = "VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200315 depth_compare_sample = "VUID-vkCmdDrawMultiIndexedEXT-None-06479";
ziga-lunarg50188622022-03-26 01:18:32 +0100316 dynamic_sample_locations = "VUID-vkCmdDrawMultiIndexedEXT-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +0200317 primitives_generated = "VUID-vkCmdDrawMultiIndexedEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708";
ziga-lunargf4068b12022-04-05 13:58:59 +0200318 primitives_generated_streams = "VUID-vkCmdDrawMultiIndexedEXT-primitivesGeneratedQueryWithNonZeroStreams-06709";
Tony-LunarG4490de42021-06-21 15:49:19 -0600319 }
320};
321
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700322struct DispatchVuidsCmdDrawIndirect : DrawDispatchVuid {
323 DispatchVuidsCmdDrawIndirect() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700324 pipeline_bound = "VUID-vkCmdDrawIndirect-None-02700";
325 dynamic_state = "VUID-vkCmdDrawIndirect-commandBuffer-02701";
326 vertex_binding = "VUID-vkCmdDrawIndirect-None-04007";
327 vertex_binding_null = "VUID-vkCmdDrawIndirect-None-04008";
328 compatible_pipeline = "VUID-vkCmdDrawIndirect-None-02697";
329 render_pass_compatible = "VUID-vkCmdDrawIndirect-renderPass-02684";
330 subpass_index = "VUID-vkCmdDrawIndirect-subpass-02685";
331 sample_location = "VUID-vkCmdDrawIndirect-sampleLocationsEnable-02689";
332 linear_sampler = "VUID-vkCmdDrawIndirect-magFilter-04553";
333 cubic_sampler = "VUID-vkCmdDrawIndirect-None-02692";
334 indirect_protected_cb = "VUID-vkCmdDrawIndirect-commandBuffer-02711";
335 indirect_contiguous_memory = "VUID-vkCmdDrawIndirect-buffer-02708";
336 indirect_buffer_bit = "VUID-vkCmdDrawIndirect-buffer-02709";
337 viewport_count = "VUID-vkCmdDrawIndirect-viewportCount-03417";
338 scissor_count = "VUID-vkCmdDrawIndirect-scissorCount-03418";
339 viewport_scissor_count = "VUID-vkCmdDrawIndirect-viewportCount-03419";
340 primitive_topology = "VUID-vkCmdDrawIndirect-primitiveTopology-03420";
341 corner_sampled_address_mode = "VUID-vkCmdDrawIndirect-flags-02696";
342 subpass_input = "VUID-vkCmdDrawIndirect-None-02686";
343 imageview_atomic = "VUID-vkCmdDrawIndirect-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700344 push_constants_set = "VUID-vkCmdDrawIndirect-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100345 image_subresources_render_pass_write = "VUID-vkCmdDrawIndirect-None-06537";
346 image_subresources_subpass_read = "VUID-vkCmdDrawIndirect-None-06538";
347 image_subresources_subpass_write = "VUID-vkCmdDrawIndirect-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700348 descriptor_valid = "VUID-vkCmdDrawIndirect-None-02699";
349 sampler_imageview_type = "VUID-vkCmdDrawIndirect-None-02702";
350 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawIndirect-None-02703";
351 sampler_bias_offset = "VUID-vkCmdDrawIndirect-None-02704";
352 vertex_binding_attribute = "VUID-vkCmdDrawIndirect-None-02721";
353 dynamic_state_setting_commands = "VUID-vkCmdDrawIndirect-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700354 rasterization_samples = "VUID-vkCmdDrawIndirect-rasterizationSamples-04740";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700355 unprotected_command_buffer = "VUID-vkCmdDrawIndirect-commandBuffer-02707";
356 max_multiview_instance_index = "VUID-vkCmdDrawIndirect-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700357 img_filter_cubic = "VUID-vkCmdDrawIndirect-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700358 filter_cubic = "VUID-vkCmdDrawIndirect-filterCubic-02694";
359 filter_cubic_min_max = "VUID-vkCmdDrawIndirect-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000360 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawIndirect-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600361 patch_control_points = "VUID-vkCmdDrawIndirect-None-04875";
362 rasterizer_discard_enable = "VUID-vkCmdDrawIndirect-None-04876";
363 depth_bias_enable = "VUID-vkCmdDrawIndirect-None-04877";
364 logic_op = "VUID-vkCmdDrawIndirect-logicOp-04878";
365 primitive_restart_enable = "VUID-vkCmdDrawIndirect-None-04879";
366 vertex_input_binding_stride = "VUID-vkCmdDrawIndirect-pStrides-04884";
367 vertex_input = kVUID_Core_CmdDrawIndirect_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200368 blend_enable = "VUID-vkCmdDrawIndirect-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100369 color_write_enable = "VUID-vkCmdDrawIndirect-attachmentCount-06667";
Aaron Hagan92a44f82021-11-19 09:34:56 -0500370 dynamic_rendering_view_mask = "VUID-vkCmdDrawIndirect-viewMask-06178";
371 dynamic_rendering_color_count = "VUID-vkCmdDrawIndirect-colorAttachmentCount-06179";
372 dynamic_rendering_color_formats = "VUID-vkCmdDrawIndirect-colorAttachmentCount-06180";
373 dynamic_rendering_depth_format = "VUID-vkCmdDrawIndirect-pDepthAttachment-06181";
374 dynamic_rendering_stencil_format = "VUID-vkCmdDrawIndirect-pStencilAttachment-06182";
375 dynamic_rendering_fsr = "VUID-vkCmdDrawIndirect-imageView-06183";
376 dynamic_rendering_fdm = "VUID-vkCmdDrawIndirect-imageView-06184";
Aaron Hagan09a0e172021-11-19 21:18:33 -0500377 dynamic_rendering_color_sample = "VUID-vkCmdDrawIndirect-colorAttachmentCount-06185";
378 dynamic_rendering_depth_sample = "VUID-vkCmdDrawIndirect-pDepthAttachment-06186";
379 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawIndirect-pStencilAttachment-06187";
380 dynamic_rendering_multi_sample = "VUID-vkCmdDrawIndirect-colorAttachmentCount-06188";
Aaron Haganaca50442021-12-07 22:26:29 -0500381 dynamic_rendering_06189 = "VUID-vkCmdDrawIndirect-pDepthAttachment-06189";
382 dynamic_rendering_06190 = "VUID-vkCmdDrawIndirect-pStencilAttachment-06190";
383 dynamic_rendering_06198 = "VUID-vkCmdDrawIndirect-renderPass-06198";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200384 storage_image_read_without_format = "VUID-vkCmdDrawIndirect-OpTypeImage-06424";
385 storage_image_write_without_format = "VUID-vkCmdDrawIndirect-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200386 depth_compare_sample = "VUID-vkCmdDrawIndirect-None-06479";
ziga-lunarg50188622022-03-26 01:18:32 +0100387 dynamic_sample_locations = "VUID-vkCmdDrawIndirect-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +0200388 primitives_generated = "VUID-vkCmdDrawIndirect-primitivesGeneratedQueryWithRasterizerDiscard-06708";
ziga-lunargf4068b12022-04-05 13:58:59 +0200389 primitives_generated_streams = "VUID-vkCmdDrawIndirect-primitivesGeneratedQueryWithNonZeroStreams-06709";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700390 }
391};
392
393struct DispatchVuidsCmdDrawIndexedIndirect : DrawDispatchVuid {
394 DispatchVuidsCmdDrawIndexedIndirect() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700395 pipeline_bound = "VUID-vkCmdDrawIndexedIndirect-None-02700";
396 dynamic_state = "VUID-vkCmdDrawIndexedIndirect-commandBuffer-02701";
397 vertex_binding = "VUID-vkCmdDrawIndexedIndirect-None-04007";
398 vertex_binding_null = "VUID-vkCmdDrawIndexedIndirect-None-04008";
399 compatible_pipeline = "VUID-vkCmdDrawIndexedIndirect-None-02697";
400 render_pass_compatible = "VUID-vkCmdDrawIndexedIndirect-renderPass-02684";
401 subpass_index = "VUID-vkCmdDrawIndexedIndirect-subpass-02685";
402 sample_location = "VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-02689";
403 linear_sampler = "VUID-vkCmdDrawIndexedIndirect-magFilter-04553";
404 cubic_sampler = "VUID-vkCmdDrawIndexedIndirect-None-02692";
405 indirect_protected_cb = "VUID-vkCmdDrawIndexedIndirect-commandBuffer-02711";
406 indirect_contiguous_memory = "VUID-vkCmdDrawIndexedIndirect-buffer-02708";
407 indirect_buffer_bit = "VUID-vkCmdDrawIndexedIndirect-buffer-02709";
408 viewport_count = "VUID-vkCmdDrawIndexedIndirect-viewportCount-03417";
409 scissor_count = "VUID-vkCmdDrawIndexedIndirect-scissorCount-03418";
410 viewport_scissor_count = "VUID-vkCmdDrawIndexedIndirect-viewportCount-03419";
411 primitive_topology = "VUID-vkCmdDrawIndexedIndirect-primitiveTopology-03420";
412 corner_sampled_address_mode = "VUID-vkCmdDrawIndexedIndirect-flags-02696";
413 subpass_input = "VUID-vkCmdDrawIndexedIndirect-None-02686";
414 imageview_atomic = "VUID-vkCmdDrawIndexedIndirect-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700415 push_constants_set = "VUID-vkCmdDrawIndexedIndirect-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100416 image_subresources_render_pass_write = "VUID-vkCmdDrawIndexedIndirect-None-06537";
417 image_subresources_subpass_read = "VUID-vkCmdDrawIndexedIndirect-None-06538";
418 image_subresources_subpass_write = "VUID-vkCmdDrawIndexedIndirect-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700419 descriptor_valid = "VUID-vkCmdDrawIndexedIndirect-None-02699";
420 sampler_imageview_type = "VUID-vkCmdDrawIndexedIndirect-None-02702";
421 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawIndexedIndirect-None-02703";
422 sampler_bias_offset = "VUID-vkCmdDrawIndexedIndirect-None-02704";
423 vertex_binding_attribute = "VUID-vkCmdDrawIndexedIndirect-None-02721";
424 dynamic_state_setting_commands = "VUID-vkCmdDrawIndexedIndirect-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700425 rasterization_samples = "VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-04740";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700426 unprotected_command_buffer = "VUID-vkCmdDrawIndexedIndirect-commandBuffer-02707";
427 max_multiview_instance_index = "VUID-vkCmdDrawIndexedIndirect-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700428 img_filter_cubic = "VUID-vkCmdDrawIndexedIndirect-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700429 filter_cubic = "VUID-vkCmdDrawIndexedIndirect-filterCubic-02694";
430 filter_cubic_min_max = "VUID-vkCmdDrawIndexedIndirect-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000431 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawIndexedIndirect-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600432 patch_control_points = "VUID-vkCmdDrawIndexedIndirect-None-04875";
433 rasterizer_discard_enable = "VUID-vkCmdDrawIndexedIndirect-None-04876";
434 depth_bias_enable = "VUID-vkCmdDrawIndexedIndirect-None-04877";
435 logic_op = "VUID-vkCmdDrawIndexedIndirect-logicOp-04878";
436 primitive_restart_enable = "VUID-vkCmdDrawIndexedIndirect-None-04879";
437 vertex_input_binding_stride = "VUID-vkCmdDrawIndexedIndirect-pStrides-04884";
438 vertex_input = kVUID_Core_CmdDrawIndexedIndirect_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200439 blend_enable = "VUID-vkCmdDrawIndexedIndirect-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100440 color_write_enable = "VUID-vkCmdDrawIndexedIndirect-attachmentCount-06667";
Aaron Hagan92a44f82021-11-19 09:34:56 -0500441 dynamic_rendering_view_mask = "VUID-vkCmdDrawIndexedIndirect-viewMask-06178";
442 dynamic_rendering_color_count = "VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06179";
443 dynamic_rendering_color_formats = "VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06180";
444 dynamic_rendering_depth_format = "VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-06181";
445 dynamic_rendering_stencil_format = "VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-06182";
446 dynamic_rendering_fsr = "VUID-vkCmdDrawIndexedIndirect-imageView-06183";
447 dynamic_rendering_fdm = "VUID-vkCmdDrawIndexedIndirect-imageView-06184";
Aaron Hagan09a0e172021-11-19 21:18:33 -0500448 dynamic_rendering_color_sample = "VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06185";
449 dynamic_rendering_depth_sample = "VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-06186";
450 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-06187";
451 dynamic_rendering_multi_sample = "VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06188";
Aaron Haganaca50442021-12-07 22:26:29 -0500452 dynamic_rendering_06189 = "VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-06189";
453 dynamic_rendering_06190 = "VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-06190";
454 dynamic_rendering_06198 = "VUID-vkCmdDrawIndexedIndirect-renderPass-06198";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200455 storage_image_read_without_format = "VUID-vkCmdDrawIndexedIndirect-OpTypeImage-06424";
456 storage_image_write_without_format = "VUID-vkCmdDrawIndexedIndirect-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200457 depth_compare_sample = "VUID-vkCmdDrawIndexedIndirect-None-06479";
ziga-lunarg50188622022-03-26 01:18:32 +0100458 dynamic_sample_locations = "VUID-vkCmdDrawIndexedIndirect-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +0200459 primitives_generated = "VUID-vkCmdDrawIndexedIndirect-primitivesGeneratedQueryWithRasterizerDiscard-06708";
ziga-lunargf4068b12022-04-05 13:58:59 +0200460 primitives_generated_streams = "VUID-vkCmdDrawIndexedIndirect-primitivesGeneratedQueryWithNonZeroStreams-06709";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700461 }
462};
463
464struct DispatchVuidsCmdDispatch : DrawDispatchVuid {
465 DispatchVuidsCmdDispatch() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700466 pipeline_bound = "VUID-vkCmdDispatch-None-02700";
Mark Lobodzinski02d37552020-12-28 13:29:46 -0700467 dynamic_state = "VUID-vkCmdDispatch-commandBuffer-02701";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700468 compatible_pipeline = "VUID-vkCmdDispatch-None-02697";
469 linear_sampler = "VUID-vkCmdDispatch-magFilter-04553";
470 cubic_sampler = "VUID-vkCmdDispatch-None-02692";
471 corner_sampled_address_mode = "VUID-vkCmdDispatch-flags-02696";
472 imageview_atomic = "VUID-vkCmdDispatch-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700473 push_constants_set = "VUID-vkCmdDispatch-maintenance4-06425";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700474 descriptor_valid = "VUID-vkCmdDispatch-None-02699";
475 sampler_imageview_type = "VUID-vkCmdDispatch-None-02702";
476 sampler_implicitLod_dref_proj = "VUID-vkCmdDispatch-None-02703";
477 sampler_bias_offset = "VUID-vkCmdDispatch-None-02704";
478 dynamic_state_setting_commands = "VUID-vkCmdDispatch-None-02859";
479 unprotected_command_buffer = "VUID-vkCmdDispatch-commandBuffer-02707";
480 protected_command_buffer = "VUID-vkCmdDispatch-commandBuffer-02712";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700481 img_filter_cubic = "VUID-vkCmdDispatch-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700482 filter_cubic = "VUID-vkCmdDispatch-filterCubic-02694";
483 filter_cubic_min_max = "VUID-vkCmdDispatch-filterCubicMinmax-02695";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200484 storage_image_read_without_format = "VUID-vkCmdDispatch-OpTypeImage-06424";
485 storage_image_write_without_format = "VUID-vkCmdDispatch-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200486 depth_compare_sample = "VUID-vkCmdDispatch-None-06479";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700487 }
488};
489
490struct DispatchVuidsCmdDispatchIndirect : DrawDispatchVuid {
491 DispatchVuidsCmdDispatchIndirect() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700492 pipeline_bound = "VUID-vkCmdDispatchIndirect-None-02700";
Mark Lobodzinski02d37552020-12-28 13:29:46 -0700493 dynamic_state = "VUID-vkCmdDispatchIndirect-commandBuffer-02701";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700494 compatible_pipeline = "VUID-vkCmdDispatchIndirect-None-02697";
495 linear_sampler = "VUID-vkCmdDispatchIndirect-magFilter-04553";
496 cubic_sampler = "VUID-vkCmdDispatchIndirect-None-02692";
497 indirect_protected_cb = "VUID-vkCmdDispatchIndirect-commandBuffer-02711";
498 indirect_contiguous_memory = "VUID-vkCmdDispatchIndirect-buffer-02708";
499 indirect_buffer_bit = "VUID-vkCmdDispatchIndirect-buffer-02709";
500 corner_sampled_address_mode = "VUID-vkCmdDispatchIndirect-flags-02696";
501 imageview_atomic = "VUID-vkCmdDispatchIndirect-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700502 push_constants_set = "VUID-vkCmdDispatchIndirect-maintenance4-06425";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700503 descriptor_valid = "VUID-vkCmdDispatchIndirect-None-02699";
504 sampler_imageview_type = "VUID-vkCmdDispatchIndirect-None-02702";
505 sampler_implicitLod_dref_proj = "VUID-vkCmdDispatchIndirect-None-02703";
506 sampler_bias_offset = "VUID-vkCmdDispatchIndirect-None-02704";
507 dynamic_state_setting_commands = "VUID-vkCmdDispatchIndirect-None-02859";
508 unprotected_command_buffer = "VUID-vkCmdDispatchIndirect-commandBuffer-02707";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700509 img_filter_cubic = "VUID-vkCmdDispatchIndirect-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700510 filter_cubic = "VUID-vkCmdDispatchIndirect-filterCubic-02694";
511 filter_cubic_min_max = "VUID-vkCmdDispatchIndirect-filterCubicMinmax-02695";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200512 storage_image_read_without_format = "VUID-vkCmdDispatchIndirect-OpTypeImage-06424";
513 storage_image_write_without_format = "VUID-vkCmdDispatchIndirect-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200514 depth_compare_sample = "VUID-vkCmdDispatchIndirect-None-06479";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700515 }
516};
517
518struct DispatchVuidsCmdDrawIndirectCount : DrawDispatchVuid {
519 DispatchVuidsCmdDrawIndirectCount() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700520 pipeline_bound = "VUID-vkCmdDrawIndirectCount-None-02700";
521 dynamic_state = "VUID-vkCmdDrawIndirectCount-commandBuffer-02701";
522 vertex_binding = "VUID-vkCmdDrawIndirectCount-None-04007";
523 vertex_binding_null = "VUID-vkCmdDrawIndirectCount-None-04008";
524 compatible_pipeline = "VUID-vkCmdDrawIndirectCount-None-02697";
525 render_pass_compatible = "VUID-vkCmdDrawIndirectCount-renderPass-02684";
526 subpass_index = "VUID-vkCmdDrawIndirectCount-subpass-02685";
527 sample_location = "VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-02689";
528 linear_sampler = "VUID-vkCmdDrawIndirectCount-magFilter-04553";
529 cubic_sampler = "VUID-vkCmdDrawIndirectCount-None-02692";
530 indirect_protected_cb = "VUID-vkCmdDrawIndirectCount-commandBuffer-02711";
531 indirect_contiguous_memory = "VUID-vkCmdDrawIndirectCount-buffer-02708";
sjfricke177bbb62022-06-02 17:37:03 +0900532 indirect_count_contiguous_memory = "VUID-vkCmdDrawIndirectCount-countBuffer-02714";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700533 indirect_buffer_bit = "VUID-vkCmdDrawIndirectCount-buffer-02709";
sjfricke177bbb62022-06-02 17:37:03 +0900534 indirect_count_buffer_bit = "VUID-vkCmdDrawIndirectCount-countBuffer-02715";
535 indirect_count_offset = "VUID-vkCmdDrawIndirectCount-countBufferOffset-04129";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700536 viewport_count = "VUID-vkCmdDrawIndirectCount-viewportCount-03417";
537 scissor_count = "VUID-vkCmdDrawIndirectCount-scissorCount-03418";
538 viewport_scissor_count = "VUID-vkCmdDrawIndirectCount-viewportCount-03419";
539 primitive_topology = "VUID-vkCmdDrawIndirectCount-primitiveTopology-03420";
540 corner_sampled_address_mode = "VUID-vkCmdDrawIndirectCount-flags-02696";
541 subpass_input = "VUID-vkCmdDrawIndirectCount-None-02686";
542 imageview_atomic = "VUID-vkCmdDrawIndirectCount-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700543 push_constants_set = "VUID-vkCmdDrawIndirectCount-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100544 image_subresources_render_pass_write = "VUID-vkCmdDrawIndirectCount-None-06537";
545 image_subresources_subpass_read = "VUID-vkCmdDrawIndirectCount-None-06538";
546 image_subresources_subpass_write = "VUID-vkCmdDrawIndirectCount-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700547 descriptor_valid = "VUID-vkCmdDrawIndirectCount-None-02699";
548 sampler_imageview_type = "VUID-vkCmdDrawIndirectCount-None-02702";
549 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawIndirectCount-None-02703";
550 sampler_bias_offset = "VUID-vkCmdDrawIndirectCount-None-02704";
551 vertex_binding_attribute = "VUID-vkCmdDrawIndirectCount-None-02721";
552 dynamic_state_setting_commands = "VUID-vkCmdDrawIndirectCount-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700553 rasterization_samples = "VUID-vkCmdDrawIndirectCount-rasterizationSamples-04740";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700554 unprotected_command_buffer = "VUID-vkCmdDrawIndirectCount-commandBuffer-02707";
555 max_multiview_instance_index = "VUID-vkCmdDrawIndirectCount-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700556 img_filter_cubic = "VUID-vkCmdDrawIndirectCount-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700557 filter_cubic = "VUID-vkCmdDrawIndirectCount-filterCubic-02694";
558 filter_cubic_min_max = "VUID-vkCmdDrawIndirectCount-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000559 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawIndirectCount-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600560 patch_control_points = "VUID-vkCmdDrawIndirectCount-None-04875";
561 rasterizer_discard_enable = "VUID-vkCmdDrawIndirectCount-None-04876";
562 depth_bias_enable = "VUID-vkCmdDrawIndirectCount-None-04877";
563 logic_op = "VUID-vkCmdDrawIndirectCount-logicOp-04878";
564 primitive_restart_enable = "VUID-vkCmdDrawIndirectCount-None-04879";
565 vertex_input_binding_stride = "VUID-vkCmdDrawIndirectCount-pStrides-04884";
566 vertex_input = kVUID_Core_CmdDrawIndirectCount_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200567 blend_enable = "VUID-vkCmdDrawIndirectCount-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100568 color_write_enable = "VUID-vkCmdDrawIndirectCount-attachmentCount-06667";
stusmithedc4e392021-12-24 15:22:16 +0000569 dynamic_rendering_view_mask = "VUID-vkCmdDrawIndirectCount-viewMask-06178";
570 dynamic_rendering_color_count = "VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06179";
571 dynamic_rendering_color_formats = "VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06180";
572 dynamic_rendering_depth_format = "VUID-vkCmdDrawIndirectCount-pDepthAttachment-06181";
573 dynamic_rendering_stencil_format = "VUID-vkCmdDrawIndirectCount-pStencilAttachment-06182";
574 dynamic_rendering_fsr = "VUID-vkCmdDrawIndirectCount-imageView-06183";
575 dynamic_rendering_fdm = "VUID-vkCmdDrawIndirectCount-imageView-06184";
576 dynamic_rendering_color_sample = "VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06185";
577 dynamic_rendering_depth_sample = "VUID-vkCmdDrawIndirectCount-pDepthAttachment-06186";
578 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawIndirectCount-pStencilAttachment-06187";
579 dynamic_rendering_multi_sample = "VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06188";
580 dynamic_rendering_06189 = "VUID-vkCmdDrawIndirectCount-pDepthAttachment-06189";
581 dynamic_rendering_06190 = "VUID-vkCmdDrawIndirectCount-pStencilAttachment-06190";
582 dynamic_rendering_06198 = "VUID-vkCmdDrawIndirectCount-renderPass-06198";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200583 storage_image_read_without_format = "VUID-vkCmdDrawIndirectCount-OpTypeImage-06424";
584 storage_image_write_without_format = "VUID-vkCmdDrawIndirectCount-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200585 depth_compare_sample = "VUID-vkCmdDrawIndirectCount-None-06479";
ziga-lunarg50188622022-03-26 01:18:32 +0100586 dynamic_sample_locations = "VUID-vkCmdDrawIndirectCount-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +0200587 primitives_generated = "VUID-vkCmdDrawIndirectCount-primitivesGeneratedQueryWithRasterizerDiscard-06708";
ziga-lunargf4068b12022-04-05 13:58:59 +0200588 primitives_generated_streams = "VUID-vkCmdDrawIndirectCount-primitivesGeneratedQueryWithNonZeroStreams-06709";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700589 }
590};
591
592struct DispatchVuidsCmdDrawIndexedIndirectCount : DrawDispatchVuid {
593 DispatchVuidsCmdDrawIndexedIndirectCount() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700594 pipeline_bound = "VUID-vkCmdDrawIndexedIndirectCount-None-02700";
595 dynamic_state = "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02701";
596 vertex_binding = "VUID-vkCmdDrawIndexedIndirectCount-None-04007";
597 vertex_binding_null = "VUID-vkCmdDrawIndexedIndirectCount-None-04008";
598 compatible_pipeline = "VUID-vkCmdDrawIndexedIndirectCount-None-02697";
599 render_pass_compatible = "VUID-vkCmdDrawIndexedIndirectCount-renderPass-02684";
600 subpass_index = "VUID-vkCmdDrawIndexedIndirectCount-subpass-02685";
601 sample_location = "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-02689";
602 linear_sampler = "VUID-vkCmdDrawIndexedIndirectCount-magFilter-04553";
603 cubic_sampler = "VUID-vkCmdDrawIndexedIndirectCount-None-02692";
604 indirect_protected_cb = "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02711";
605 indirect_contiguous_memory = "VUID-vkCmdDrawIndexedIndirectCount-buffer-02708";
sjfricke177bbb62022-06-02 17:37:03 +0900606 indirect_count_contiguous_memory = "VUID-vkCmdDrawIndexedIndirectCount-countBuffer-02714";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700607 indirect_buffer_bit = "VUID-vkCmdDrawIndexedIndirectCount-buffer-02709";
sjfricke177bbb62022-06-02 17:37:03 +0900608 indirect_count_buffer_bit = "VUID-vkCmdDrawIndexedIndirectCount-countBuffer-02715";
609 indirect_count_offset = "VUID-vkCmdDrawIndexedIndirectCount-countBufferOffset-04129";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700610 viewport_count = "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-03417";
611 scissor_count = "VUID-vkCmdDrawIndexedIndirectCount-scissorCount-03418";
612 viewport_scissor_count = "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-03419";
613 primitive_topology = "VUID-vkCmdDrawIndexedIndirectCount-primitiveTopology-03420";
614 corner_sampled_address_mode = "VUID-vkCmdDrawIndexedIndirectCount-flags-02696";
615 subpass_input = "VUID-vkCmdDrawIndexedIndirectCount-None-02686";
616 imageview_atomic = "VUID-vkCmdDrawIndexedIndirectCount-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700617 push_constants_set = "VUID-vkCmdDrawIndexedIndirectCount-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100618 image_subresources_render_pass_write = "VUID-vkCmdDrawIndexedIndirectCount-None-06537";
619 image_subresources_subpass_read = "VUID-vkCmdDrawIndexedIndirectCount-None-06538";
620 image_subresources_subpass_write = "VUID-vkCmdDrawIndexedIndirectCount-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700621 descriptor_valid = "VUID-vkCmdDrawIndexedIndirectCount-None-02699";
622 sampler_imageview_type = "VUID-vkCmdDrawIndexedIndirectCount-None-02702";
623 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawIndexedIndirectCount-None-02703";
624 sampler_bias_offset = "VUID-vkCmdDrawIndexedIndirectCount-None-02704";
625 vertex_binding_attribute = "VUID-vkCmdDrawIndexedIndirectCount-None-02721";
626 dynamic_state_setting_commands = "VUID-vkCmdDrawIndexedIndirectCount-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700627 rasterization_samples = "VUID-vkCmdDrawIndexedIndirectCount-rasterizationSamples-04740";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700628 unprotected_command_buffer = "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02707";
629 max_multiview_instance_index = "VUID-vkCmdDrawIndexedIndirectCount-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700630 img_filter_cubic = "VUID-vkCmdDrawIndexedIndirectCount-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700631 filter_cubic = "VUID-vkCmdDrawIndexedIndirectCount-filterCubic-02694";
632 filter_cubic_min_max = "VUID-vkCmdDrawIndexedIndirectCount-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000633 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawIndexedIndirectCount-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600634 patch_control_points = "VUID-vkCmdDrawIndexedIndirectCount-None-04875";
635 rasterizer_discard_enable = "VUID-vkCmdDrawIndexedIndirectCount-None-04876";
636 depth_bias_enable = "VUID-vkCmdDrawIndexedIndirectCount-None-04877";
637 logic_op = "VUID-vkCmdDrawIndexedIndirectCount-logicOp-04878";
638 primitive_restart_enable = "VUID-vkCmdDrawIndexedIndirectCount-None-04879";
639 vertex_input_binding_stride = "VUID-vkCmdDrawIndexedIndirectCount-pStrides-04884";
640 vertex_input = kVUID_Core_CmdDrawIndexedIndirectCount_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200641 blend_enable = "VUID-vkCmdDrawIndexedIndirectCount-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100642 color_write_enable = "VUID-vkCmdDrawIndexedIndirectCount-attachmentCount-06667";
Aaron Haganaca50442021-12-07 22:26:29 -0500643 dynamic_rendering_view_mask = "VUID-vkCmdDrawIndexedIndirectCount-viewMask-06178";
644 dynamic_rendering_color_count = "VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06179";
645 dynamic_rendering_color_formats = "VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06180";
646 dynamic_rendering_depth_format = "VUID-vkCmdDrawIndexedIndirectCount-pDepthAttachment-06181";
647 dynamic_rendering_stencil_format = "VUID-vkCmdDrawIndexedIndirectCount-pStencilAttachment-06182";
648 dynamic_rendering_fsr = "VUID-vkCmdDrawIndexedIndirectCount-imageView-06183";
649 dynamic_rendering_fdm = "VUID-vkCmdDrawIndexedIndirectCount-imageView-06184";
650 dynamic_rendering_color_sample = "VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06185";
651 dynamic_rendering_depth_sample = "VUID-vkCmdDrawIndexedIndirectCount-pDepthAttachment-06186";
652 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawIndexedIndirectCount-pStencilAttachment-06187";
653 dynamic_rendering_multi_sample = "VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06188";
654 dynamic_rendering_06189 = "VUID-vkCmdDrawIndexedIndirectCount-pDepthAttachment-06189";
655 dynamic_rendering_06190 = "VUID-vkCmdDrawIndexedIndirectCount-pStencilAttachment-06190";
656 dynamic_rendering_06198 = "VUID-vkCmdDrawIndexedIndirectCount-renderPass-06198";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200657 storage_image_read_without_format = "VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-06424";
658 storage_image_write_without_format = "VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200659 depth_compare_sample = "VUID-vkCmdDrawIndexedIndirectCount-None-06479";
ziga-lunarg50188622022-03-26 01:18:32 +0100660 dynamic_sample_locations = "VUID-vkCmdDrawIndexedIndirectCount-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +0200661 primitives_generated = "VUID-vkCmdDrawIndexedIndirectCount-primitivesGeneratedQueryWithRasterizerDiscard-06708";
ziga-lunargf4068b12022-04-05 13:58:59 +0200662 primitives_generated_streams = "VUID-vkCmdDrawIndexedIndirectCount-primitivesGeneratedQueryWithNonZeroStreams-06709";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700663 }
664};
665
666struct DispatchVuidsCmdTraceRaysNV: DrawDispatchVuid {
667 DispatchVuidsCmdTraceRaysNV() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700668 pipeline_bound = "VUID-vkCmdTraceRaysNV-None-02700";
669 dynamic_state = "VUID-vkCmdTraceRaysNV-commandBuffer-02701";
670 compatible_pipeline = "VUID-vkCmdTraceRaysNV-None-02697";
671 linear_sampler = "VUID-vkCmdTraceRaysNV-magFilter-04553";
672 cubic_sampler = "VUID-vkCmdTraceRaysNV-None-02692";
673 corner_sampled_address_mode = "VUID-vkCmdTraceRaysNV-flags-02696";
674 imageview_atomic = "VUID-vkCmdTraceRaysNV-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700675 push_constants_set = "VUID-vkCmdTraceRaysNV-maintenance4-06425";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700676 descriptor_valid = "VUID-vkCmdTraceRaysNV-None-02699";
677 sampler_imageview_type = "VUID-vkCmdTraceRaysNV-None-02702";
678 sampler_implicitLod_dref_proj = "VUID-vkCmdTraceRaysNV-None-02703";
679 sampler_bias_offset = "VUID-vkCmdTraceRaysNV-None-02704";
680 dynamic_state_setting_commands = "VUID-vkCmdTraceRaysNV-None-02859";
681 unprotected_command_buffer = "VUID-vkCmdTraceRaysNV-commandBuffer-02707";
sfricke-samsunga3c47d12021-09-30 13:34:54 -0700682 ray_query_protected_cb = "VUID-vkCmdTraceRaysNV-commandBuffer-04624";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700683 img_filter_cubic = "VUID-vkCmdTraceRaysNV-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700684 filter_cubic = "VUID-vkCmdTraceRaysNV-filterCubic-02694";
685 filter_cubic_min_max = "VUID-vkCmdTraceRaysNV-filterCubicMinmax-02695";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200686 storage_image_read_without_format = "VUID-vkCmdTraceRaysNV-OpTypeImage-06424";
687 storage_image_write_without_format = "VUID-vkCmdTraceRaysNV-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200688 depth_compare_sample = "VUID-vkCmdTraceRaysNV-None-06479";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700689 }
690};
691
692struct DispatchVuidsCmdTraceRaysKHR: DrawDispatchVuid {
693 DispatchVuidsCmdTraceRaysKHR() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700694 pipeline_bound = "VUID-vkCmdTraceRaysKHR-None-02700";
695 dynamic_state = "VUID-vkCmdTraceRaysKHR-commandBuffer-02701";
696 compatible_pipeline = "VUID-vkCmdTraceRaysKHR-None-02697";
697 linear_sampler = "VUID-vkCmdTraceRaysKHR-magFilter-04553";
698 cubic_sampler = "VUID-vkCmdTraceRaysKHR-None-02692";
699 corner_sampled_address_mode = "VUID-vkCmdTraceRaysKHR-flags-02696";
700 imageview_atomic = "VUID-vkCmdTraceRaysKHR-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700701 push_constants_set = "VUID-vkCmdTraceRaysKHR-maintenance4-06425";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700702 descriptor_valid = "VUID-vkCmdTraceRaysKHR-None-02699";
703 sampler_imageview_type = "VUID-vkCmdTraceRaysKHR-None-02702";
704 sampler_implicitLod_dref_proj = "VUID-vkCmdTraceRaysKHR-None-02703";
705 sampler_bias_offset = "VUID-vkCmdTraceRaysKHR-None-02704";
706 dynamic_state_setting_commands = "VUID-vkCmdTraceRaysKHR-None-02859";
707 unprotected_command_buffer = "VUID-vkCmdTraceRaysKHR-commandBuffer-02707";
Mike Schuchardt840f1252022-05-11 11:31:25 -0700708 ray_query_protected_cb = "VUID-vkCmdTraceRaysKHR-commandBuffer-03635";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700709 img_filter_cubic = "VUID-vkCmdTraceRaysKHR-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700710 filter_cubic = "VUID-vkCmdTraceRaysKHR-filterCubic-02694";
711 filter_cubic_min_max = "VUID-vkCmdTraceRaysKHR-filterCubicMinmax-02695";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200712 storage_image_read_without_format = "VUID-vkCmdTraceRaysKHR-OpTypeImage-06424";
713 storage_image_write_without_format = "VUID-vkCmdTraceRaysKHR-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200714 depth_compare_sample = "VUID-vkCmdTraceRaysKHR-None-06479";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700715 }
716};
717
718struct DispatchVuidsCmdTraceRaysIndirectKHR: DrawDispatchVuid {
719 DispatchVuidsCmdTraceRaysIndirectKHR() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700720 pipeline_bound = "VUID-vkCmdTraceRaysIndirectKHR-None-02700";
721 dynamic_state = "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-02701";
722 compatible_pipeline = "VUID-vkCmdTraceRaysIndirectKHR-None-02697";
723 linear_sampler = "VUID-vkCmdTraceRaysIndirectKHR-magFilter-04553";
724 cubic_sampler = "VUID-vkCmdTraceRaysIndirectKHR-None-02692";
Shannon McPherson57255a62020-12-23 16:00:54 -0700725 indirect_contiguous_memory = "VUID-vkCmdTraceRaysIndirectKHR-indirectDeviceAddress-03632";
726 indirect_buffer_bit = "VUID-vkCmdTraceRaysIndirectKHR-indirectDeviceAddress-03633";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700727 corner_sampled_address_mode = "VUID-vkCmdTraceRaysIndirectKHR-flags-02696";
728 imageview_atomic = "VUID-vkCmdTraceRaysIndirectKHR-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700729 push_constants_set = "VUID-vkCmdTraceRaysIndirectKHR-maintenance4-06425";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700730 descriptor_valid = "VUID-vkCmdTraceRaysIndirectKHR-None-02699";
731 sampler_imageview_type = "VUID-vkCmdTraceRaysIndirectKHR-None-02702";
732 sampler_implicitLod_dref_proj = "VUID-vkCmdTraceRaysIndirectKHR-None-02703";
733 sampler_bias_offset = "VUID-vkCmdTraceRaysIndirectKHR-None-02704";
734 dynamic_state_setting_commands = "VUID-vkCmdTraceRaysIndirectKHR-None-02859";
735 unprotected_command_buffer = "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-02707";
sfricke-samsunga3c47d12021-09-30 13:34:54 -0700736 ray_query_protected_cb = "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-03635";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700737 img_filter_cubic = "VUID-vkCmdTraceRaysIndirectKHR-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700738 filter_cubic = "VUID-vkCmdTraceRaysIndirectKHR-filterCubic-02694";
739 filter_cubic_min_max = "VUID-vkCmdTraceRaysIndirectKHR-filterCubicMinmax-02695";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200740 storage_image_read_without_format = "VUID-vkCmdTraceRaysIndirectKHR-OpTypeImage-06424";
741 storage_image_write_without_format = "VUID-vkCmdTraceRaysIndirectKHR-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200742 depth_compare_sample = "VUID-vkCmdTraceRaysIndirectKHR-None-06479";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700743 }
744};
745
sfricke-samsungf91881c2022-03-31 01:12:00 -0500746struct DispatchVuidsCmdTraceRaysIndirect2KHR: DrawDispatchVuid {
747 DispatchVuidsCmdTraceRaysIndirect2KHR() : DrawDispatchVuid() {
748 pipeline_bound = "VUID-vkCmdTraceRaysIndirect2KHR-None-02700";
749 dynamic_state = "VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-02701";
750 compatible_pipeline = "VUID-vkCmdTraceRaysIndirect2KHR-None-02697";
751 linear_sampler = "VUID-vkCmdTraceRaysIndirect2KHR-magFilter-04553";
752 cubic_sampler = "VUID-vkCmdTraceRaysIndirect2KHR-None-02692";
753 indirect_contiguous_memory = "VUID-vkCmdTraceRaysIndirect2KHR-indirectDeviceAddress-03632";
754 indirect_buffer_bit = "VUID-vkCmdTraceRaysIndirect2KHR-indirectDeviceAddress-03633";
755 corner_sampled_address_mode = "VUID-vkCmdTraceRaysIndirect2KHR-flags-02696";
756 imageview_atomic = "VUID-vkCmdTraceRaysIndirect2KHR-None-02691";
757 push_constants_set = "VUID-vkCmdTraceRaysIndirect2KHR-maintenance4-06425";
758 descriptor_valid = "VUID-vkCmdTraceRaysIndirect2KHR-None-02699";
759 sampler_imageview_type = "VUID-vkCmdTraceRaysIndirect2KHR-None-02702";
760 sampler_implicitLod_dref_proj = "VUID-vkCmdTraceRaysIndirect2KHR-None-02703";
761 sampler_bias_offset = "VUID-vkCmdTraceRaysIndirect2KHR-None-02704";
762 dynamic_state_setting_commands = "VUID-vkCmdTraceRaysIndirect2KHR-None-02859";
763 unprotected_command_buffer = "VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-02707";
764 ray_query_protected_cb = "VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-03635";
765 img_filter_cubic = "VUID-vkCmdTraceRaysIndirect2KHR-None-02693";
766 filter_cubic = "VUID-vkCmdTraceRaysIndirect2KHR-filterCubic-02694";
767 filter_cubic_min_max = "VUID-vkCmdTraceRaysIndirect2KHR-filterCubicMinmax-02695";
768 storage_image_read_without_format = "VUID-vkCmdTraceRaysIndirect2KHR-OpTypeImage-06424";
769 storage_image_write_without_format = "VUID-vkCmdTraceRaysIndirect2KHR-OpTypeImage-06423";
770 depth_compare_sample = "VUID-vkCmdTraceRaysIndirect2KHR-None-06479";
771 }
772};
773
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700774struct DispatchVuidsCmdDrawMeshTasksNV: DrawDispatchVuid {
775 DispatchVuidsCmdDrawMeshTasksNV() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700776 pipeline_bound = "VUID-vkCmdDrawMeshTasksNV-None-02700";
777 dynamic_state = "VUID-vkCmdDrawMeshTasksNV-commandBuffer-02701";
778 compatible_pipeline = "VUID-vkCmdDrawMeshTasksNV-None-02697";
779 render_pass_compatible = "VUID-vkCmdDrawMeshTasksNV-renderPass-02684";
780 subpass_index = "VUID-vkCmdDrawMeshTasksNV-subpass-02685";
781 sample_location = "VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-02689";
782 linear_sampler = "VUID-vkCmdDrawMeshTasksNV-magFilter-04553";
783 cubic_sampler = "VUID-vkCmdDrawMeshTasksNV-None-02692";
784 viewport_count = "VUID-vkCmdDrawMeshTasksNV-viewportCount-03417";
785 scissor_count = "VUID-vkCmdDrawMeshTasksNV-scissorCount-03418";
786 viewport_scissor_count = "VUID-vkCmdDrawMeshTasksNV-viewportCount-03419";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700787 corner_sampled_address_mode = "VUID-vkCmdDrawMeshTasksNV-flags-02696";
788 subpass_input = "VUID-vkCmdDrawMeshTasksNV-None-02686";
789 imageview_atomic = "VUID-vkCmdDrawMeshTasksNV-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700790 push_constants_set = "VUID-vkCmdDrawMeshTasksNV-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100791 image_subresources_render_pass_write = "VUID-vkCmdDrawMeshTasksNV-None-06537";
792 image_subresources_subpass_read = "VUID-vkCmdDrawMeshTasksNV-None-06538";
793 image_subresources_subpass_write = "VUID-vkCmdDrawMeshTasksNV-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700794 descriptor_valid = "VUID-vkCmdDrawMeshTasksNV-None-02699";
795 sampler_imageview_type = "VUID-vkCmdDrawMeshTasksNV-None-02702";
796 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawMeshTasksNV-None-02703";
797 sampler_bias_offset = "VUID-vkCmdDrawMeshTasksNV-None-02704";
798 dynamic_state_setting_commands = "VUID-vkCmdDrawMeshTasksNV-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700799 rasterization_samples = "VUID-vkCmdDrawMeshTasksNV-rasterizationSamples-04740";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700800 unprotected_command_buffer = "VUID-vkCmdDrawMeshTasksNV-commandBuffer-02707";
801 max_multiview_instance_index = "VUID-vkCmdDrawMeshTasksNV-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700802 img_filter_cubic = "VUID-vkCmdDrawMeshTasksNV-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700803 filter_cubic = "VUID-vkCmdDrawMeshTasksNV-filterCubic-02694";
804 filter_cubic_min_max = "VUID-vkCmdDrawMeshTasksNV-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000805 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawMeshTasksNV-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600806 rasterizer_discard_enable = "VUID-vkCmdDrawMeshTasksNV-None-04876";
807 depth_bias_enable = "VUID-vkCmdDrawMeshTasksNV-None-04877";
808 logic_op = "VUID-vkCmdDrawMeshTasksNV-logicOp-04878";
Piers Daniell924cd832021-05-18 13:48:47 -0600809 vertex_input = kVUID_Core_CmdDrawMeshTasksNV_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200810 blend_enable = "VUID-vkCmdDrawMeshTasksNV-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100811 color_write_enable = "VUID-vkCmdDrawMeshTasksNV-attachmentCount-06667";
stusmithedc4e392021-12-24 15:22:16 +0000812 dynamic_rendering_view_mask = "VUID-vkCmdDrawMeshTasksNV-viewMask-06178";
813 dynamic_rendering_color_count = "VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06179";
814 dynamic_rendering_color_formats = "VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06180";
815 dynamic_rendering_depth_format = "VUID-vkCmdDrawMeshTasksNV-pDepthAttachment-06181";
816 dynamic_rendering_stencil_format = "VUID-vkCmdDrawMeshTasksNV-pStencilAttachment-06182";
817 dynamic_rendering_fsr = "VUID-vkCmdDrawMeshTasksNV-imageView-06183";
818 dynamic_rendering_fdm = "VUID-vkCmdDrawMeshTasksNV-imageView-06184";
819 dynamic_rendering_color_sample = "VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06185";
820 dynamic_rendering_depth_sample = "VUID-vkCmdDrawMeshTasksNV-pDepthAttachment-06186";
821 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawMeshTasksNV-pStencilAttachment-06187";
822 dynamic_rendering_multi_sample = "VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06188";
823 dynamic_rendering_06189 = "VUID-vkCmdDrawMeshTasksNV-pDepthAttachment-06189";
824 dynamic_rendering_06190 = "VUID-vkCmdDrawMeshTasksNV-pStencilAttachment-06190";
825 dynamic_rendering_06198 = "VUID-vkCmdDrawMeshTasksNV-renderPass-06198";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200826 storage_image_read_without_format = "VUID-vkCmdDrawMeshTasksNV-OpTypeImage-06424";
827 storage_image_write_without_format = "VUID-vkCmdDrawMeshTasksNV-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200828 depth_compare_sample = "VUID-vkCmdDrawMeshTasksNV-None-06479";
ziga-lunarg50188622022-03-26 01:18:32 +0100829 dynamic_sample_locations = "VUID-vkCmdDrawMeshTasksNV-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +0200830 primitives_generated = "VUID-vkCmdDrawMeshTasksNV-primitivesGeneratedQueryWithRasterizerDiscard-06708";
ziga-lunargf4068b12022-04-05 13:58:59 +0200831 primitives_generated_streams = "VUID-vkCmdDrawMeshTasksNV-primitivesGeneratedQueryWithNonZeroStreams-06709";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700832 }
833};
834
835struct DispatchVuidsCmdDrawMeshTasksIndirectNV: DrawDispatchVuid {
836 DispatchVuidsCmdDrawMeshTasksIndirectNV() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700837 pipeline_bound = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02700";
838 dynamic_state = "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02701";
839 compatible_pipeline = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02697";
840 render_pass_compatible = "VUID-vkCmdDrawMeshTasksIndirectNV-renderPass-02684";
841 subpass_index = "VUID-vkCmdDrawMeshTasksIndirectNV-subpass-02685";
842 sample_location = "VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-02689";
843 linear_sampler = "VUID-vkCmdDrawMeshTasksIndirectNV-magFilter-04553";
844 cubic_sampler = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02692";
845 indirect_protected_cb = "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02711";
846 indirect_contiguous_memory = "VUID-vkCmdDrawMeshTasksIndirectNV-buffer-02708";
sjfricke177bbb62022-06-02 17:37:03 +0900847 indirect_count_contiguous_memory = "VUID-vkCmdDrawMeshTasksIndirectNV-countBuffer-02714";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700848 indirect_buffer_bit = "VUID-vkCmdDrawMeshTasksIndirectNV-buffer-02709";
sjfricke177bbb62022-06-02 17:37:03 +0900849 indirect_count_buffer_bit = "VUID-vkCmdDrawMeshTasksIndirectNV-countBuffer-02715";
850 indirect_count_offset = "VUID-vkCmdDrawMeshTasksIndirectNV-countBufferOffset-04129";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700851 viewport_count = "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-03417";
852 scissor_count = "VUID-vkCmdDrawMeshTasksIndirectNV-scissorCount-03418";
853 viewport_scissor_count = "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-03419";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700854 corner_sampled_address_mode = "VUID-vkCmdDrawMeshTasksIndirectNV-flags-02696";
855 subpass_input = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02686";
856 imageview_atomic = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700857 push_constants_set = "VUID-vkCmdDrawMeshTasksIndirectNV-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100858 image_subresources_render_pass_write = "VUID-vkCmdDrawMeshTasksIndirectNV-None-06537";
859 image_subresources_subpass_read = "VUID-vkCmdDrawMeshTasksIndirectNV-None-06538";
860 image_subresources_subpass_write = "VUID-vkCmdDrawMeshTasksIndirectNV-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700861 descriptor_valid = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02699";
862 sampler_imageview_type = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02702";
863 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02703";
864 sampler_bias_offset = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02704";
865 dynamic_state_setting_commands = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700866 rasterization_samples = "VUID-vkCmdDrawMeshTasksIndirectNV-rasterizationSamples-04740";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700867 unprotected_command_buffer = "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02707";
868 max_multiview_instance_index = "VUID-vkCmdDrawMeshTasksIndirectNV-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700869 img_filter_cubic = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700870 filter_cubic = "VUID-vkCmdDrawMeshTasksIndirectNV-filterCubic-02694";
871 filter_cubic_min_max = "VUID-vkCmdDrawMeshTasksIndirectNV-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000872 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawMeshTasksIndirectNV-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600873 rasterizer_discard_enable = "VUID-vkCmdDrawMeshTasksIndirectNV-None-04876";
874 depth_bias_enable = "VUID-vkCmdDrawMeshTasksIndirectNV-None-04877";
875 logic_op = "VUID-vkCmdDrawMeshTasksIndirectNV-logicOp-04878";
Piers Daniell924cd832021-05-18 13:48:47 -0600876 vertex_input = kVUID_Core_CmdDrawMeshTasksIndirectNV_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200877 blend_enable = "VUID-vkCmdDrawMeshTasksIndirectNV-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100878 color_write_enable = "VUID-vkCmdDrawMeshTasksIndirectNV-attachmentCount-06667";
stusmithedc4e392021-12-24 15:22:16 +0000879 dynamic_rendering_view_mask = "VUID-vkCmdDrawMeshTasksIndirectNV-viewMask-06178";
880 dynamic_rendering_color_count = "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06179";
881 dynamic_rendering_color_formats = "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06180";
882 dynamic_rendering_depth_format = "VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06181";
883 dynamic_rendering_stencil_format = "VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06182";
884 dynamic_rendering_fsr = "VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06183";
885 dynamic_rendering_fdm = "VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06184";
886 dynamic_rendering_color_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06185";
887 dynamic_rendering_depth_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06186";
888 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06187";
889 dynamic_rendering_multi_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06188";
890 dynamic_rendering_06189 = "VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06189";
891 dynamic_rendering_06190 = "VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06190";
892 dynamic_rendering_06198 = "VUID-vkCmdDrawMeshTasksIndirectNV-renderPass-06198";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200893 storage_image_read_without_format = "VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-06424";
894 storage_image_write_without_format = "VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200895 depth_compare_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-None-06479";
Aaron Hagan80034ea2021-12-23 11:24:09 -0500896 dynamic_rendering_view_mask = "VUID-vkCmdDrawMeshTasksIndirectNV-viewMask-06178";
897 dynamic_rendering_color_count = "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06179";
898 dynamic_rendering_color_formats = "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06180";
899 dynamic_rendering_depth_format = "VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06181";
900 dynamic_rendering_stencil_format = "VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06182";
901 dynamic_rendering_fsr = "VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06183";
902 dynamic_rendering_fdm = "VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06184";
903 dynamic_rendering_color_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06185";
904 dynamic_rendering_depth_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06186";
905 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06187";
Jeremy Gebben09c1a072022-02-08 09:42:47 -0700906 dynamic_rendering_multi_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06188";
Aaron Hagan80034ea2021-12-23 11:24:09 -0500907 dynamic_rendering_06189 = "VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06189";
908 dynamic_rendering_06190 = "VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06190";
909 dynamic_rendering_06198 = "VUID-vkCmdDrawMeshTasksIndirectNV-renderPass-06198";
ziga-lunarg50188622022-03-26 01:18:32 +0100910 dynamic_sample_locations = "VUID-vkCmdDrawMeshTasksIndirectNV-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +0200911 primitives_generated = "VUID-vkCmdDrawMeshTasksIndirectNV-primitivesGeneratedQueryWithRasterizerDiscard-06708";
ziga-lunargf4068b12022-04-05 13:58:59 +0200912 primitives_generated_streams = "VUID-vkCmdDrawMeshTasksIndirectNV-primitivesGeneratedQueryWithNonZeroStreams-06709";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700913 }
914};
915
916struct DispatchVuidsCmdDrawMeshTasksIndirectCountNV : DrawDispatchVuid {
917 DispatchVuidsCmdDrawMeshTasksIndirectCountNV() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700918 pipeline_bound = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02700";
919 dynamic_state = "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02701";
920 compatible_pipeline = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02697";
921 render_pass_compatible = "VUID-vkCmdDrawMeshTasksIndirectCountNV-renderPass-02684";
922 subpass_index = "VUID-vkCmdDrawMeshTasksIndirectCountNV-subpass-02685";
923 sample_location = "VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-02689";
924 linear_sampler = "VUID-vkCmdDrawMeshTasksIndirectCountNV-magFilter-04553";
925 cubic_sampler = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02692";
926 indirect_protected_cb = "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02711";
927 indirect_contiguous_memory = "VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-02708";
928 indirect_buffer_bit = "VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-02709";
929 viewport_count = "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-03417";
930 scissor_count = "VUID-vkCmdDrawMeshTasksIndirectCountNV-scissorCount-03418";
931 viewport_scissor_count = "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-03419";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700932 corner_sampled_address_mode = "VUID-vkCmdDrawMeshTasksIndirectCountNV-flags-02696";
933 subpass_input = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02686";
934 imageview_atomic = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700935 push_constants_set = "VUID-vkCmdDrawMeshTasksIndirectCountNV-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100936 image_subresources_render_pass_write = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06537";
937 image_subresources_subpass_read = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06538";
938 image_subresources_subpass_write = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700939 descriptor_valid = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02699";
940 sampler_imageview_type = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02702";
941 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02703";
942 sampler_bias_offset = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02704";
943 dynamic_state_setting_commands = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700944 rasterization_samples = "VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizationSamples-04740";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700945 unprotected_command_buffer = "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02707";
946 max_multiview_instance_index = "VUID-vkCmdDrawMeshTasksIndirectCountNV-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700947 img_filter_cubic = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700948 filter_cubic = "VUID-vkCmdDrawMeshTasksIndirectCountNV-filterCubic-02694";
949 filter_cubic_min_max = "VUID-vkCmdDrawMeshTasksIndirectCountNV-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000950 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawMeshTasksIndirectCountNV-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600951 rasterizer_discard_enable = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04876";
952 depth_bias_enable = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04877";
953 logic_op = "VUID-vkCmdDrawMeshTasksIndirectCountNV-logicOp-04878";
Piers Daniell924cd832021-05-18 13:48:47 -0600954 vertex_input = kVUID_Core_CmdDrawMeshTasksIndirectCountNV_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200955 blend_enable = "VUID-vkCmdDrawMeshTasksIndirectCountNV-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100956 color_write_enable = "VUID-vkCmdDrawMeshTasksIndirectCountNV-attachmentCount-06667";
stusmithedc4e392021-12-24 15:22:16 +0000957 dynamic_rendering_view_mask = "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewMask-06178";
958 dynamic_rendering_color_count = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06179";
959 dynamic_rendering_color_formats = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06180";
960 dynamic_rendering_depth_format = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06181";
961 dynamic_rendering_stencil_format = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06182";
962 dynamic_rendering_fsr = "VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06183";
963 dynamic_rendering_fdm = "VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06184";
964 dynamic_rendering_color_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06185";
965 dynamic_rendering_depth_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06186";
966 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06187";
967 dynamic_rendering_multi_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06188";
968 dynamic_rendering_06189 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06189";
969 dynamic_rendering_06190 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06190";
970 dynamic_rendering_06198 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-renderPass-06198";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200971 storage_image_read_without_format = "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-06424";
972 storage_image_write_without_format = "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200973 depth_compare_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06479";
Aaron Hagan80034ea2021-12-23 11:24:09 -0500974 dynamic_rendering_view_mask = "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewMask-06178";
975 dynamic_rendering_color_count = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06179";
976 dynamic_rendering_color_formats = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06180";
977 dynamic_rendering_depth_format = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06181";
978 dynamic_rendering_stencil_format = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06182";
979 dynamic_rendering_fsr = "VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06183";
980 dynamic_rendering_fdm = "VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06184";
981 dynamic_rendering_color_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06185";
982 dynamic_rendering_depth_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06186";
983 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06187";
Jeremy Gebben09c1a072022-02-08 09:42:47 -0700984 dynamic_rendering_multi_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06188";
Aaron Hagan80034ea2021-12-23 11:24:09 -0500985 dynamic_rendering_06189 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06189";
986 dynamic_rendering_06190 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06190";
987 dynamic_rendering_06198 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-renderPass-06198";
ziga-lunarg50188622022-03-26 01:18:32 +0100988 dynamic_sample_locations = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +0200989 primitives_generated = "VUID-vkCmdDrawMeshTasksIndirectCountNV-primitivesGeneratedQueryWithRasterizerDiscard-06708";
ziga-lunargf4068b12022-04-05 13:58:59 +0200990 primitives_generated_streams = "VUID-vkCmdDrawMeshTasksIndirectCountNV-primitivesGeneratedQueryWithNonZeroStreams-06709";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700991 }
992};
993
994struct DispatchVuidsCmdDrawIndirectByteCountEXT: DrawDispatchVuid {
995 DispatchVuidsCmdDrawIndirectByteCountEXT() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700996 pipeline_bound = "VUID-vkCmdDrawIndirectByteCountEXT-None-02700";
997 dynamic_state = "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02701";
998 vertex_binding = "VUID-vkCmdDrawIndirectByteCountEXT-None-04007";
999 vertex_binding_null = "VUID-vkCmdDrawIndirectByteCountEXT-None-04008";
1000 compatible_pipeline = "VUID-vkCmdDrawIndirectByteCountEXT-None-02697";
1001 render_pass_compatible = "VUID-vkCmdDrawIndirectByteCountEXT-renderPass-02684";
1002 subpass_index = "VUID-vkCmdDrawIndirectByteCountEXT-subpass-02685";
1003 sample_location = "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-02689";
1004 linear_sampler = "VUID-vkCmdDrawIndirectByteCountEXT-magFilter-04553";
1005 cubic_sampler = "VUID-vkCmdDrawIndirectByteCountEXT-None-02692";
1006 indirect_protected_cb = "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02646";
sfricke-samsungb091d4e2021-04-18 23:15:59 -07001007 indirect_contiguous_memory = "VUID-vkCmdDrawIndirectByteCountEXT-counterBuffer-04567",
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001008 indirect_buffer_bit = "VUID-vkCmdDrawIndirectByteCountEXT-counterBuffer-02290";
1009 viewport_count = "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-03417";
1010 scissor_count = "VUID-vkCmdDrawIndirectByteCountEXT-scissorCount-03418";
1011 viewport_scissor_count = "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-03419";
1012 primitive_topology = "VUID-vkCmdDrawIndirectByteCountEXT-primitiveTopology-03420";
1013 corner_sampled_address_mode = "VUID-vkCmdDrawIndirectByteCountEXT-flags-02696";
1014 subpass_input = "VUID-vkCmdDrawIndirectByteCountEXT-None-02686";
1015 imageview_atomic = "VUID-vkCmdDrawIndirectByteCountEXT-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -07001016 push_constants_set = "VUID-vkCmdDrawIndirectByteCountEXT-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +01001017 image_subresources_render_pass_write = "VUID-vkCmdDrawIndirectByteCountEXT-None-06537";
1018 image_subresources_subpass_read = "VUID-vkCmdDrawIndirectByteCountEXT-None-06538";
1019 image_subresources_subpass_write = "VUID-vkCmdDrawIndirectByteCountEXT-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001020 descriptor_valid = "VUID-vkCmdDrawIndirectByteCountEXT-None-02699";
1021 sampler_imageview_type = "VUID-vkCmdDrawIndirectByteCountEXT-None-02702";
1022 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawIndirectByteCountEXT-None-02703";
1023 sampler_bias_offset = "VUID-vkCmdDrawIndirectByteCountEXT-None-02704";
1024 vertex_binding_attribute = "VUID-vkCmdDrawIndirectByteCountEXT-None-02721";
1025 dynamic_state_setting_commands = "VUID-vkCmdDrawIndirectByteCountEXT-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -07001026 rasterization_samples = "VUID-vkCmdDrawIndirectByteCountEXT-rasterizationSamples-04740";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001027 unprotected_command_buffer = "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02707";
1028 max_multiview_instance_index = "VUID-vkCmdDrawIndirectByteCountEXT-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -07001029 img_filter_cubic = "VUID-vkCmdDrawIndirectByteCountEXT-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001030 filter_cubic = "VUID-vkCmdDrawIndirectByteCountEXT-filterCubic-02694";
1031 filter_cubic_min_max = "VUID-vkCmdDrawIndirectByteCountEXT-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +00001032 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawIndirectByteCountEXT-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -06001033 patch_control_points = "VUID-vkCmdDrawIndirectByteCountEXT-None-04875";
1034 rasterizer_discard_enable = "VUID-vkCmdDrawIndirectByteCountEXT-None-04876";
1035 depth_bias_enable = "VUID-vkCmdDrawIndirectByteCountEXT-None-04877";
1036 logic_op = "VUID-vkCmdDrawIndirectByteCountEXT-logicOp-04878";
1037 primitive_restart_enable = "VUID-vkCmdDrawIndirectByteCountEXT-None-04879";
1038 vertex_input_binding_stride = "VUID-vkCmdDrawIndirectByteCountEXT-pStrides-04884";
1039 vertex_input = kVUID_Core_CmdDrawIndirectByteCountEXT_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +02001040 blend_enable = "VUID-vkCmdDrawIndirectByteCountEXT-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +01001041 color_write_enable = "VUID-vkCmdDrawIndirectByteCountEXT-attachmentCount-06667";
stusmithedc4e392021-12-24 15:22:16 +00001042 dynamic_rendering_view_mask = "VUID-vkCmdDrawIndirectByteCountEXT-viewMask-06178";
1043 dynamic_rendering_color_count = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06179";
1044 dynamic_rendering_color_formats = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06180";
1045 dynamic_rendering_depth_format = "VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06181";
1046 dynamic_rendering_stencil_format = "VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06182";
1047 dynamic_rendering_fsr = "VUID-vkCmdDrawIndirectByteCountEXT-imageView-06183";
1048 dynamic_rendering_fdm = "VUID-vkCmdDrawIndirectByteCountEXT-imageView-06184";
1049 dynamic_rendering_color_sample = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06185";
1050 dynamic_rendering_depth_sample = "VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06186";
1051 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06187";
1052 dynamic_rendering_multi_sample = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06188";
1053 dynamic_rendering_06189 = "VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06189";
1054 dynamic_rendering_06190 = "VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06190";
1055 dynamic_rendering_06198 = "VUID-vkCmdDrawIndirectByteCountEXT-renderPass-06198";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +02001056 storage_image_read_without_format = "VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-06424";
1057 storage_image_write_without_format = "VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +02001058 depth_compare_sample = "VUID-vkCmdDrawIndirectByteCountEXT-None-06479";
Aaron Hagan80034ea2021-12-23 11:24:09 -05001059 dynamic_rendering_view_mask = "VUID-vkCmdDrawIndirectByteCountEXT-viewMask-06178";
1060 dynamic_rendering_color_count = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06179";
1061 dynamic_rendering_color_formats = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06180";
1062 dynamic_rendering_depth_format = "VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06181";
1063 dynamic_rendering_stencil_format = "VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06182";
1064 dynamic_rendering_fsr = "VUID-vkCmdDrawIndirectByteCountEXT-imageView-06183";
1065 dynamic_rendering_fdm = "VUID-vkCmdDrawIndirectByteCountEXT-imageView-06184";
1066 dynamic_rendering_color_sample = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06185";
1067 dynamic_rendering_depth_sample = "VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06186";
1068 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06187";
Jeremy Gebben09c1a072022-02-08 09:42:47 -07001069 dynamic_rendering_multi_sample = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06188";
Aaron Hagan80034ea2021-12-23 11:24:09 -05001070 dynamic_rendering_06189 = "VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06189";
1071 dynamic_rendering_06190 = "VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06190";
1072 dynamic_rendering_06198 = "VUID-vkCmdDrawIndirectByteCountEXT-renderPass-06198";
ziga-lunarg50188622022-03-26 01:18:32 +01001073 dynamic_sample_locations = "VUID-vkCmdDrawIndirectByteCountEXT-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +02001074 primitives_generated = "VUID-vkCmdDrawIndirectByteCountEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708";
ziga-lunargf4068b12022-04-05 13:58:59 +02001075 primitives_generated_streams = "VUID-vkCmdDrawIndirectByteCountEXT-primitivesGeneratedQueryWithNonZeroStreams-06709";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001076 }
1077};
1078
1079struct DispatchVuidsCmdDispatchBase: DrawDispatchVuid {
1080 DispatchVuidsCmdDispatchBase() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001081 pipeline_bound = "VUID-vkCmdDispatchBase-None-02700";
Mark Lobodzinski02d37552020-12-28 13:29:46 -07001082 dynamic_state = "VUID-vkCmdDispatchBase-commandBuffer-02701";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001083 compatible_pipeline = "VUID-vkCmdDispatchBase-None-02697";
1084 linear_sampler = "VUID-vkCmdDispatchBase-magFilter-04553";
1085 cubic_sampler = "VUID-vkCmdDispatchBase-None-02692";
1086 corner_sampled_address_mode = "VUID-vkCmdDispatchBase-flags-02696";
1087 imageview_atomic = "VUID-vkCmdDispatchBase-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -07001088 push_constants_set = "VUID-vkCmdDispatchBase-maintenance4-06425";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001089 descriptor_valid = "VUID-vkCmdDispatchBase-None-02699";
1090 sampler_imageview_type = "VUID-vkCmdDispatchBase-None-02702";
1091 sampler_implicitLod_dref_proj = "VUID-vkCmdDispatchBase-None-02703";
1092 sampler_bias_offset = "VUID-vkCmdDispatchBase-None-02704";
1093 dynamic_state_setting_commands = "VUID-vkCmdDispatchBase-None-02859";
1094 unprotected_command_buffer = "VUID-vkCmdDispatchBase-commandBuffer-02707";
sfricke-samsunge79d0892021-06-17 08:56:22 -07001095 protected_command_buffer = "VUID-vkCmdDispatchBase-commandBuffer-02712";
Mark Lobodzinskif786b412020-11-30 12:16:17 -07001096 img_filter_cubic = "VUID-vkCmdDispatchBase-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001097 filter_cubic = "VUID-vkCmdDispatchBase-filterCubic-02694";
1098 filter_cubic_min_max = "VUID-vkCmdDispatchBase-filterCubicMinmax-02695";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +02001099 storage_image_read_without_format = "VUID-vkCmdDispatchBase-OpTypeImage-06424";
1100 storage_image_write_without_format = "VUID-vkCmdDispatchBase-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +02001101 depth_compare_sample = "VUID-vkCmdDispatchBase-None-06479";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001102 }
1103};
1104
1105// This LUT is created to allow a static listing of each VUID that is covered by drawdispatch commands
Nathaniel Cesarioce9b4812020-12-17 08:55:28 -07001106static const std::map<CMD_TYPE, DrawDispatchVuid> kDrawdispatchVuid = {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001107 {CMD_DRAW, DispatchVuidsCmdDraw()},
Tony-LunarG4490de42021-06-21 15:49:19 -06001108 {CMD_DRAWMULTIEXT, DispatchVuidsCmdDrawMultiEXT()},
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001109 {CMD_DRAWINDEXED, DispatchVuidsCmdDrawIndexed()},
Tony-LunarG4490de42021-06-21 15:49:19 -06001110 {CMD_DRAWMULTIINDEXEDEXT, DispatchVuidsCmdDrawMultiIndexedEXT()},
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001111 {CMD_DRAWINDIRECT, DispatchVuidsCmdDrawIndirect()},
1112 {CMD_DRAWINDEXEDINDIRECT, DispatchVuidsCmdDrawIndexedIndirect()},
1113 {CMD_DISPATCH, DispatchVuidsCmdDispatch()},
1114 {CMD_DISPATCHINDIRECT, DispatchVuidsCmdDispatchIndirect()},
1115 {CMD_DRAWINDIRECTCOUNT, DispatchVuidsCmdDrawIndirectCount()},
sfricke-samsung85584a72021-09-30 21:43:38 -07001116 {CMD_DRAWINDIRECTCOUNTKHR, DispatchVuidsCmdDrawIndirectCount()},
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001117 {CMD_DRAWINDEXEDINDIRECTCOUNT, DispatchVuidsCmdDrawIndexedIndirectCount()},
sfricke-samsung85584a72021-09-30 21:43:38 -07001118 {CMD_DRAWINDEXEDINDIRECTCOUNTKHR, DispatchVuidsCmdDrawIndexedIndirectCount()},
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001119 {CMD_TRACERAYSNV, DispatchVuidsCmdTraceRaysNV()},
1120 {CMD_TRACERAYSKHR, DispatchVuidsCmdTraceRaysKHR()},
1121 {CMD_TRACERAYSINDIRECTKHR, DispatchVuidsCmdTraceRaysIndirectKHR()},
sfricke-samsungf91881c2022-03-31 01:12:00 -05001122 {CMD_TRACERAYSINDIRECT2KHR, DispatchVuidsCmdTraceRaysIndirect2KHR()},
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001123 {CMD_DRAWMESHTASKSNV, DispatchVuidsCmdDrawMeshTasksNV()},
1124 {CMD_DRAWMESHTASKSINDIRECTNV, DispatchVuidsCmdDrawMeshTasksIndirectNV()},
1125 {CMD_DRAWMESHTASKSINDIRECTCOUNTNV, DispatchVuidsCmdDrawMeshTasksIndirectCountNV()},
1126 {CMD_DRAWINDIRECTBYTECOUNTEXT, DispatchVuidsCmdDrawIndirectByteCountEXT()},
1127 {CMD_DISPATCHBASE, DispatchVuidsCmdDispatchBase()},
sfricke-samsung85584a72021-09-30 21:43:38 -07001128 {CMD_DISPATCHBASEKHR, DispatchVuidsCmdDispatchBase()},
Spencer Fricke507600b2020-03-22 13:23:06 -07001129 // Used if invalid cmd_type is used
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001130 {CMD_NONE, DrawDispatchVuid()}
Spencer Fricke507600b2020-03-22 13:23:06 -07001131};
1132// clang-format on
1133
1134// Getter function to provide kVUIDUndefined in case an invalid cmd_type is passed in
1135const DrawDispatchVuid &CoreChecks::GetDrawDispatchVuid(CMD_TYPE cmd_type) const {
Nathaniel Cesarioce9b4812020-12-17 08:55:28 -07001136 if (kDrawdispatchVuid.find(cmd_type) != kDrawdispatchVuid.cend()) {
1137 return kDrawdispatchVuid.at(cmd_type);
Spencer Fricke507600b2020-03-22 13:23:06 -07001138 } else {
Nathaniel Cesarioce9b4812020-12-17 08:55:28 -07001139 return kDrawdispatchVuid.at(CMD_NONE);
Spencer Fricke507600b2020-03-22 13:23:06 -07001140 }
1141}
1142
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001143// Generic function to handle validation for all CmdDraw* type functions
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001144bool CoreChecks::ValidateCmdDrawType(const CMD_BUFFER_STATE &cb_state, bool indexed, VkPipelineBindPoint bind_point,
sfricke-samsung85584a72021-09-30 21:43:38 -07001145 CMD_TYPE cmd_type) const {
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001146 bool skip = false;
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001147 skip |= ValidateCmd(&cb_state, cmd_type);
1148 skip |= ValidateCmdBufDrawState(&cb_state, cmd_type, indexed, bind_point);
1149 skip |= ValidateCmdRayQueryState(&cb_state, cmd_type, bind_point);
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001150 return skip;
1151}
1152
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001153bool CoreChecks::ValidateCmdDrawInstance(const CMD_BUFFER_STATE &cb_node, uint32_t instanceCount, uint32_t firstInstance,
sfricke-samsung85584a72021-09-30 21:43:38 -07001154 CMD_TYPE cmd_type) const {
locke-lunarg3fa463a2020-10-23 16:39:04 -06001155 bool skip = false;
1156 const DrawDispatchVuid vuid = GetDrawDispatchVuid(cmd_type);
sfricke-samsung85584a72021-09-30 21:43:38 -07001157 const char *caller = CommandTypeString(cmd_type);
locke-lunarg3fa463a2020-10-23 16:39:04 -06001158
1159 // Verify maxMultiviewInstanceIndex
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001160 if (cb_node.activeRenderPass && cb_node.activeRenderPass->renderPass() && enabled_features.multiview_features.multiview &&
locke-lunarg3fa463a2020-10-23 16:39:04 -06001161 ((instanceCount + firstInstance) > phys_dev_ext_props.multiview_props.maxMultiviewInstanceIndex)) {
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001162 LogObjectList objlist(cb_node.Handle());
1163 objlist.add(cb_node.activeRenderPass->Handle());
locke-lunarg3fa463a2020-10-23 16:39:04 -06001164 skip |= LogError(objlist, vuid.max_multiview_instance_index,
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001165 "%s: renderpass %s multiview is enabled, and maxMultiviewInstanceIndex: %" PRIu32
1166 ", but instanceCount: %" PRIu32 "and firstInstance: %" PRIu32 ".",
1167 caller, report_data->FormatHandle(cb_node.activeRenderPass->Handle()).c_str(),
locke-lunarg3fa463a2020-10-23 16:39:04 -06001168 phys_dev_ext_props.multiview_props.maxMultiviewInstanceIndex, instanceCount, firstInstance);
1169 }
1170 return skip;
1171}
1172
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001173bool CoreChecks::PreCallValidateCmdDraw(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount,
Jeff Bolz5c801d12019-10-09 10:38:45 -05001174 uint32_t firstVertex, uint32_t firstInstance) const {
locke-lunarg3fa463a2020-10-23 16:39:04 -06001175 bool skip = false;
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001176 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001177 skip |= ValidateCmdDrawInstance(*cb_state, instanceCount, firstInstance, CMD_DRAW);
1178 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAW);
locke-lunarg3fa463a2020-10-23 16:39:04 -06001179 return skip;
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001180}
1181
Tony-LunarG4490de42021-06-21 15:49:19 -06001182bool CoreChecks::PreCallValidateCmdDrawMultiEXT(VkCommandBuffer commandBuffer, uint32_t drawCount,
1183 const VkMultiDrawInfoEXT *pVertexInfo, uint32_t instanceCount,
1184 uint32_t firstInstance, uint32_t stride) const {
1185 bool skip = false;
1186 if (!enabled_features.multi_draw_features.multiDraw) {
1187 skip |= LogError(commandBuffer, "VUID-vkCmdDrawMultiEXT-None-04933",
1188 "vkCmdDrawMultiEXT(): The multiDraw feature must be enabled to "
1189 "call this command.");
1190 }
1191 if (drawCount > phys_dev_ext_props.multi_draw_props.maxMultiDrawCount) {
1192 skip |= LogError(commandBuffer, "VUID-vkCmdDrawMultiEXT-drawCount-04934",
1193 "vkCmdDrawMultiEXT(): parameter, uint32_t drawCount (%" PRIu32
1194 ") must be less than VkPhysicalDeviceMultiDrawPropertiesEXT::maxMultiDrawCount (%" PRIu32 ").",
1195 drawCount, phys_dev_ext_props.multi_draw_props.maxMultiDrawCount);
1196 }
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001197 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001198 skip |= ValidateCmdDrawInstance(*cb_state, instanceCount, firstInstance, CMD_DRAWMULTIEXT);
1199 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWMULTIEXT);
Tony-LunarG4490de42021-06-21 15:49:19 -06001200 return skip;
1201}
1202
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001203bool CoreChecks::ValidateCmdDrawIndexedBufferSize(const CMD_BUFFER_STATE &cb_state, uint32_t indexCount, uint32_t firstIndex,
1204 const char *caller, const char *first_index_vuid) const {
Tony-LunarG4490de42021-06-21 15:49:19 -06001205 bool skip = false;
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001206 if (cb_state.status & CBSTATUS_INDEX_BUFFER_BOUND) {
Tony-LunarG4490de42021-06-21 15:49:19 -06001207 unsigned int index_size = 0;
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001208 const auto &index_buffer_binding = cb_state.index_buffer_binding;
Tony-LunarG4490de42021-06-21 15:49:19 -06001209 if (index_buffer_binding.index_type == VK_INDEX_TYPE_UINT16) {
1210 index_size = 2;
1211 }
1212 else if (index_buffer_binding.index_type == VK_INDEX_TYPE_UINT32) {
1213 index_size = 4;
1214 }
1215 else if (index_buffer_binding.index_type == VK_INDEX_TYPE_UINT8_EXT) {
1216 index_size = 1;
1217 }
1218 VkDeviceSize end_offset = (index_size * (static_cast<VkDeviceSize>(firstIndex) + indexCount)) + index_buffer_binding.offset;
1219 if (end_offset > index_buffer_binding.size) {
1220 skip |= LogError(index_buffer_binding.buffer_state->buffer(), first_index_vuid,
1221 "%s: index size (%u) * (firstIndex (%u) + indexCount (%u)) "
1222 "+ binding offset (%" PRIuLEAST64 ") = an ending offset of %" PRIuLEAST64
1223 " bytes, which is greater than the index buffer size (%" PRIuLEAST64 ").",
1224 caller, index_size, firstIndex, indexCount, index_buffer_binding.offset, end_offset,
1225 index_buffer_binding.size);
1226 }
1227 }
1228 return skip;
1229}
1230
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001231bool CoreChecks::PreCallValidateCmdDrawIndexed(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount,
Jeff Bolz5c801d12019-10-09 10:38:45 -05001232 uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance) const {
locke-lunarg3fa463a2020-10-23 16:39:04 -06001233 bool skip = false;
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001234 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001235 skip |= ValidateCmdDrawInstance(*cb_state, instanceCount, firstInstance, CMD_DRAWINDEXED);
1236 skip |= ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWINDEXED);
1237 skip |= ValidateCmdDrawIndexedBufferSize(*cb_state, indexCount, firstIndex, "vkCmdDrawIndexed()",
Tony-LunarG4490de42021-06-21 15:49:19 -06001238 "VUID-vkCmdDrawIndexed-firstIndex-04932");
1239 return skip;
1240}
1241
1242bool CoreChecks::PreCallValidateCmdDrawMultiIndexedEXT(VkCommandBuffer commandBuffer, uint32_t drawCount,
1243 const VkMultiDrawIndexedInfoEXT *pIndexInfo, uint32_t instanceCount,
1244 uint32_t firstInstance, uint32_t stride,
1245 const int32_t *pVertexOffset) const {
1246 bool skip = false;
1247 if (!enabled_features.multi_draw_features.multiDraw) {
1248 skip |= LogError(commandBuffer, "VUID-vkCmdDrawMultiIndexedEXT-None-04937",
1249 "vkCmdDrawMultiIndexedEXT(): The multiDraw feature must be enabled to "
1250 "call this command.");
1251 }
1252 if (drawCount > phys_dev_ext_props.multi_draw_props.maxMultiDrawCount) {
1253 skip |= LogError(commandBuffer, "VUID-vkCmdDrawMultiIndexedEXT-drawCount-04939",
1254 "vkCmdDrawMultiIndexedEXT(): parameter, uint32_t drawCount (0x%" PRIu32
1255 ") must be less than VkPhysicalDeviceMultiDrawPropertiesEXT::maxMultiDrawCount (0x%" PRIu32 ").",
1256 drawCount, phys_dev_ext_props.multi_draw_props.maxMultiDrawCount);
1257 }
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001258 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001259 skip |= ValidateCmdDrawInstance(*cb_state, instanceCount, firstInstance, CMD_DRAWMULTIINDEXEDEXT);
1260 skip |= ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWMULTIINDEXEDEXT);
Ricardo Garcia27a26f52021-07-13 15:52:14 +02001261 const auto info_bytes = reinterpret_cast<const char *>(pIndexInfo);
Tony-LunarG4490de42021-06-21 15:49:19 -06001262 for (uint32_t i = 0; i < drawCount; i++) {
Ricardo Garcia27a26f52021-07-13 15:52:14 +02001263 const auto info_ptr = reinterpret_cast<const VkMultiDrawIndexedInfoEXT *>(info_bytes + i * stride);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001264 skip |= ValidateCmdDrawIndexedBufferSize(*cb_state, info_ptr->indexCount, info_ptr->firstIndex,
Tony-LunarG4490de42021-06-21 15:49:19 -06001265 "vkCmdDrawMultiIndexedEXT()", "VUID-vkCmdDrawMultiIndexedEXT-firstIndex-04938");
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001266 }
1267 return skip;
1268}
1269
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001270bool CoreChecks::PreCallValidateCmdDrawIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1271 uint32_t drawCount, uint32_t stride) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001272 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001273 bool skip = ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWINDIRECT);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001274 auto buffer_state = Get<BUFFER_STATE>(buffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001275 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, CMD_DRAWINDIRECT);
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001276 if (drawCount > 1) {
Lockee68ac652019-05-06 10:17:33 -06001277 skip |= ValidateCmdDrawStrideWithStruct(commandBuffer, "VUID-vkCmdDrawIndirect-drawCount-00476", stride,
1278 "VkDrawIndirectCommand", sizeof(VkDrawIndirectCommand));
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001279 skip |= ValidateCmdDrawStrideWithBuffer(commandBuffer, "VUID-vkCmdDrawIndirect-drawCount-00488", stride,
1280 "VkDrawIndirectCommand", sizeof(VkDrawIndirectCommand), drawCount, offset,
Jeremy Gebben9f537102021-10-05 16:37:12 -06001281 buffer_state.get());
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001282 } else if ((drawCount == 1) && (offset + sizeof(VkDrawIndirectCommand)) > buffer_state->createInfo.size) {
1283 skip |= LogError(commandBuffer, "VUID-vkCmdDrawIndirect-drawCount-00487",
Jeremy Gebbenda6b48f2021-05-13 10:46:18 -06001284 "CmdDrawIndirect: drawCount equals 1 and (offset + sizeof(VkDrawIndirectCommand)) (%" PRIu64 ") is not less than "
1285 "or equal to the size of buffer (%" PRIu64 ").",
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001286 (offset + sizeof(VkDrawIndirectCommand)), buffer_state->createInfo.size);
Lockee68ac652019-05-06 10:17:33 -06001287 }
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001288 // TODO: If the drawIndirectFirstInstance feature is not enabled, all the firstInstance members of the
1289 // VkDrawIndirectCommand structures accessed by this command must be 0, which will require access to the contents of 'buffer'.
1290 return skip;
1291}
1292
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001293bool CoreChecks::PreCallValidateCmdDrawIndexedIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001294 uint32_t drawCount, uint32_t stride) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001295 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001296 bool skip = ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWINDEXEDINDIRECT);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001297 auto buffer_state = Get<BUFFER_STATE>(buffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001298 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, CMD_DRAWINDEXEDINDIRECT);
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001299 if (drawCount > 1) {
Lockee68ac652019-05-06 10:17:33 -06001300 skip |= ValidateCmdDrawStrideWithStruct(commandBuffer, "VUID-vkCmdDrawIndexedIndirect-drawCount-00528", stride,
1301 "VkDrawIndexedIndirectCommand", sizeof(VkDrawIndexedIndirectCommand));
1302 skip |= ValidateCmdDrawStrideWithBuffer(commandBuffer, "VUID-vkCmdDrawIndexedIndirect-drawCount-00540", stride,
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001303 "VkDrawIndexedIndirectCommand", sizeof(VkDrawIndexedIndirectCommand), drawCount,
Jeremy Gebben9f537102021-10-05 16:37:12 -06001304 offset, buffer_state.get());
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001305 } else if ((drawCount == 1) && (offset + sizeof(VkDrawIndexedIndirectCommand)) > buffer_state->createInfo.size) {
1306 skip |= LogError(
1307 commandBuffer, "VUID-vkCmdDrawIndexedIndirect-drawCount-00539",
Jeremy Gebbenda6b48f2021-05-13 10:46:18 -06001308 "CmdDrawIndexedIndirect: drawCount equals 1 and (offset + sizeof(VkDrawIndexedIndirectCommand)) (%" PRIu64 ") is not less than "
1309 "or equal to the size of buffer (%" PRIu64 ").",
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001310 (offset + sizeof(VkDrawIndexedIndirectCommand)), buffer_state->createInfo.size);
Lockee68ac652019-05-06 10:17:33 -06001311 }
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001312 // TODO: If the drawIndirectFirstInstance feature is not enabled, all the firstInstance members of the
1313 // VkDrawIndexedIndirectCommand structures accessed by this command must be 0, which will require access to the contents of
1314 // 'buffer'.
1315 return skip;
1316}
1317
Jeff Bolz5c801d12019-10-09 10:38:45 -05001318bool CoreChecks::PreCallValidateCmdDispatch(VkCommandBuffer commandBuffer, uint32_t x, uint32_t y, uint32_t z) const {
Lockef39c0772019-04-03 14:40:02 -06001319 bool skip = false;
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001320 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001321 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_COMPUTE, CMD_DISPATCH);
Lockef39c0772019-04-03 14:40:02 -06001322 return skip;
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001323}
1324
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001325bool CoreChecks::ValidateBaseGroups(const CMD_BUFFER_STATE &cb_state, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ,
Tony-LunarGf825e6d2020-12-16 13:05:17 -07001326 const char *apiName) const {
1327 bool skip = false;
1328 if (baseGroupX || baseGroupY || baseGroupZ) {
Tony-LunarGf825e6d2020-12-16 13:05:17 -07001329 const auto lv_bind_point = ConvertToLvlBindPoint(VK_PIPELINE_BIND_POINT_COMPUTE);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001330 const auto *pipeline_state = cb_state.lastBound[lv_bind_point].pipeline_state;
Jeremy Gebben11af9792021-08-20 10:20:09 -06001331 if (pipeline_state && !(pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_DISPATCH_BASE)) {
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001332 skip |= LogError(cb_state.Handle(), "VUID-vkCmdDispatchBase-baseGroupX-00427",
Tony-LunarGf825e6d2020-12-16 13:05:17 -07001333 "%s(): If any of baseGroupX, baseGroupY, or baseGroupZ are not zero, then the bound compute pipeline "
1334 "must have been created with the VK_PIPELINE_CREATE_DISPATCH_BASE flag",
1335 apiName);
1336 }
1337 }
1338 return skip;
1339}
1340
locke-lunarg25b6c352020-08-06 17:44:18 -06001341bool CoreChecks::PreCallValidateCmdDispatchBase(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY,
1342 uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY,
1343 uint32_t groupCountZ) const {
1344 bool skip = false;
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001345 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001346 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_COMPUTE, CMD_DISPATCHBASE);
1347 skip |= ValidateBaseGroups(*cb_state, baseGroupX, baseGroupY, baseGroupZ, "vkCmdDispatchBase()");
locke-lunarg25b6c352020-08-06 17:44:18 -06001348 return skip;
1349}
1350
1351bool CoreChecks::PreCallValidateCmdDispatchBaseKHR(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY,
1352 uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY,
1353 uint32_t groupCountZ) const {
1354 bool skip = false;
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001355 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001356 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_COMPUTE, CMD_DISPATCHBASEKHR);
1357 skip |= ValidateBaseGroups(*cb_state, baseGroupX, baseGroupY, baseGroupZ, "vkCmdDispatchBaseKHR()");
locke-lunarg25b6c352020-08-06 17:44:18 -06001358 return skip;
1359}
1360
Jeff Bolz5c801d12019-10-09 10:38:45 -05001361bool CoreChecks::PreCallValidateCmdDispatchIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001362 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001363 bool skip = ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_COMPUTE, CMD_DISPATCHINDIRECT);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001364 auto buffer_state = Get<BUFFER_STATE>(buffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001365 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, CMD_DISPATCHINDIRECT);
Tony-LunarGda555b52021-01-06 13:43:49 -07001366 if ((offset + sizeof(VkDispatchIndirectCommand)) > buffer_state->createInfo.size) {
1367 skip |= LogError(commandBuffer, "VUID-vkCmdDispatchIndirect-offset-00407",
1368 "vkCmdDispatchIndirect(): The sum of offset and the size of VkDispatchIndirectCommand is greater than the "
1369 "size of the buffer");
1370 }
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001371 return skip;
1372}
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001373bool CoreChecks::ValidateCmdDrawIndirectCount(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1374 VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount,
sfricke-samsung85584a72021-09-30 21:43:38 -07001375 uint32_t stride, CMD_TYPE cmd_type) const {
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001376 bool skip = false;
sfricke-samsung85584a72021-09-30 21:43:38 -07001377 const char *apiName = CommandTypeString(cmd_type);
Nathaniel Cesario7f231f12021-03-25 12:10:58 -06001378 if ((device_extensions.vk_khr_draw_indirect_count != kEnabledByCreateinfo) &&
1379 ((api_version >= VK_API_VERSION_1_2) && (enabled_features.core12.drawIndirectCount == VK_FALSE))) {
Shannon McPherson2c793ba2020-08-28 12:13:24 -06001380 skip |= LogError(commandBuffer, "VUID-vkCmdDrawIndirectCount-None-04445",
sfricke-samsung27c70722020-05-02 08:42:39 -07001381 "%s(): Starting in Vulkan 1.2 the VkPhysicalDeviceVulkan12Features::drawIndirectCount must be enabled to "
1382 "call this command.",
1383 apiName);
1384 }
AndreyVK_D3Db2753e12021-07-21 12:24:03 +03001385 skip |= ValidateCmdDrawStrideWithStruct(commandBuffer, "VUID-vkCmdDrawIndirectCount-stride-03110", stride,
1386 "VkDrawIndirectCommand", sizeof(VkDrawIndirectCommand));
Lockee68ac652019-05-06 10:17:33 -06001387 if (maxDrawCount > 1) {
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001388 auto buffer_state = Get<BUFFER_STATE>(buffer);
AndreyVK_D3Db2753e12021-07-21 12:24:03 +03001389 skip |= ValidateCmdDrawStrideWithBuffer(commandBuffer, "VUID-vkCmdDrawIndirectCount-maxDrawCount-03111", stride,
1390 "VkDrawIndirectCommand", sizeof(VkDrawIndirectCommand), maxDrawCount, offset,
Jeremy Gebben9f537102021-10-05 16:37:12 -06001391 buffer_state.get());
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001392 }
1393
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001394 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001395 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, cmd_type);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001396 auto buffer_state = Get<BUFFER_STATE>(buffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001397 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, cmd_type);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001398 auto count_buffer_state = Get<BUFFER_STATE>(countBuffer);
sjfricke177bbb62022-06-02 17:37:03 +09001399 skip |= ValidateIndirectCountCmd(*count_buffer_state, countBufferOffset, cmd_type);
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001400 return skip;
1401}
1402
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001403bool CoreChecks::PreCallValidateCmdDrawIndirectCountKHR(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1404 VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount,
1405 uint32_t stride) const {
Tony-LunarG83544c72020-01-17 12:30:19 -07001406 return ValidateCmdDrawIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride,
sfricke-samsung85584a72021-09-30 21:43:38 -07001407 CMD_DRAWINDIRECTCOUNTKHR);
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001408}
1409
1410bool CoreChecks::PreCallValidateCmdDrawIndirectCount(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1411 VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount,
1412 uint32_t stride) const {
Tony-LunarG83544c72020-01-17 12:30:19 -07001413 return ValidateCmdDrawIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride,
sfricke-samsung85584a72021-09-30 21:43:38 -07001414 CMD_DRAWINDIRECTCOUNT);
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001415}
1416
1417bool CoreChecks::ValidateCmdDrawIndexedIndirectCount(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1418 VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount,
sfricke-samsung85584a72021-09-30 21:43:38 -07001419 uint32_t stride, CMD_TYPE cmd_type) const {
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001420 bool skip = false;
sfricke-samsung85584a72021-09-30 21:43:38 -07001421 const char *apiName = CommandTypeString(cmd_type);
Nathaniel Cesario7f231f12021-03-25 12:10:58 -06001422 if ((device_extensions.vk_khr_draw_indirect_count != kEnabledByCreateinfo) &&
1423 ((api_version >= VK_API_VERSION_1_2) && (enabled_features.core12.drawIndirectCount == VK_FALSE))) {
Shannon McPherson2c793ba2020-08-28 12:13:24 -06001424 skip |= LogError(commandBuffer, "VUID-vkCmdDrawIndexedIndirectCount-None-04445",
sfricke-samsung27c70722020-05-02 08:42:39 -07001425 "%s(): Starting in Vulkan 1.2 the VkPhysicalDeviceVulkan12Features::drawIndirectCount must be enabled to "
1426 "call this command.",
1427 apiName);
1428 }
AndreyVK_D3Db2753e12021-07-21 12:24:03 +03001429 skip |= ValidateCmdDrawStrideWithStruct(commandBuffer, "VUID-vkCmdDrawIndexedIndirectCount-stride-03142", stride,
1430 "VkDrawIndexedIndirectCommand", sizeof(VkDrawIndexedIndirectCommand));
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001431 auto buffer_state = Get<BUFFER_STATE>(buffer);
Lockee68ac652019-05-06 10:17:33 -06001432 if (maxDrawCount > 1) {
Mike Schuchardt65847d92019-12-20 13:50:47 -08001433 skip |= ValidateCmdDrawStrideWithBuffer(commandBuffer, "VUID-vkCmdDrawIndexedIndirectCount-maxDrawCount-03143", stride,
AndreyVK_D3Db2753e12021-07-21 12:24:03 +03001434 "VkDrawIndexedIndirectCommand", sizeof(VkDrawIndexedIndirectCommand), maxDrawCount,
Jeremy Gebben9f537102021-10-05 16:37:12 -06001435 offset, buffer_state.get());
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001436 }
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001437 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001438 skip |= ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_GRAPHICS, cmd_type);
1439 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, cmd_type);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001440 auto count_buffer_state = Get<BUFFER_STATE>(countBuffer);
sjfricke177bbb62022-06-02 17:37:03 +09001441 skip |= ValidateIndirectCountCmd(*count_buffer_state, countBufferOffset, cmd_type);
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001442 return skip;
1443}
1444
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001445bool CoreChecks::PreCallValidateCmdDrawIndexedIndirectCountKHR(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1446 VkBuffer countBuffer, VkDeviceSize countBufferOffset,
1447 uint32_t maxDrawCount, uint32_t stride) const {
sfricke-samsungf692b972020-05-02 08:00:45 -07001448 return ValidateCmdDrawIndexedIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride,
sfricke-samsung85584a72021-09-30 21:43:38 -07001449 CMD_DRAWINDEXEDINDIRECTCOUNTKHR);
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001450}
1451
1452bool CoreChecks::PreCallValidateCmdDrawIndexedIndirectCount(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1453 VkBuffer countBuffer, VkDeviceSize countBufferOffset,
1454 uint32_t maxDrawCount, uint32_t stride) const {
sfricke-samsungf692b972020-05-02 08:00:45 -07001455 return ValidateCmdDrawIndexedIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride,
sfricke-samsung85584a72021-09-30 21:43:38 -07001456 CMD_DRAWINDEXEDINDIRECTCOUNT);
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001457}
1458
locke-lunarg9a16ebb2020-07-30 16:56:33 -06001459bool CoreChecks::PreCallValidateCmdDrawIndirectByteCountEXT(VkCommandBuffer commandBuffer, uint32_t instanceCount,
1460 uint32_t firstInstance, VkBuffer counterBuffer,
1461 VkDeviceSize counterBufferOffset, uint32_t counterOffset,
1462 uint32_t vertexStride) const {
sfricke-samsungd5e9adb2020-10-26 03:59:29 -07001463 bool skip = false;
Tony-LunarG2c94ba82020-11-05 14:21:40 -07001464 if (!enabled_features.transform_feedback_features.transformFeedback) {
1465 skip |= LogError(commandBuffer, "VUID-vkCmdDrawIndirectByteCountEXT-transformFeedback-02287",
1466 "%s: transformFeedback feature is not enabled.", "vkCmdDrawIndirectByteCountEXT()");
1467 }
sfricke-samsung45996a42021-09-16 13:45:27 -07001468 if (IsExtEnabled(device_extensions.vk_ext_transform_feedback) &&
1469 !phys_dev_ext_props.transform_feedback_props.transformFeedbackDraw) {
sfricke-samsungba459bd2020-12-06 23:20:04 -08001470 skip |= LogError(commandBuffer, "VUID-vkCmdDrawIndirectByteCountEXT-transformFeedbackDraw-02288",
Tony-LunarG2c94ba82020-11-05 14:21:40 -07001471 "%s: VkPhysicalDeviceTransformFeedbackPropertiesEXT::transformFeedbackDraw is not supported",
1472 "vkCmdDrawIndirectByteCountEXT()");
1473 }
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001474 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001475 skip |= ValidateCmdDrawInstance(*cb_state, instanceCount, firstInstance, CMD_DRAWINDIRECTBYTECOUNTEXT);
1476 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWINDIRECTBYTECOUNTEXT);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001477 auto counter_buffer_state = Get<BUFFER_STATE>(counterBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001478 skip |= ValidateIndirectCmd(*cb_state, *counter_buffer_state, CMD_DRAWINDIRECTBYTECOUNTEXT);
sfricke-samsungd5e9adb2020-10-26 03:59:29 -07001479 return skip;
locke-lunarg9a16ebb2020-07-30 16:56:33 -06001480}
1481
Jeff Bolzf6e872c2019-10-22 12:17:28 -05001482bool CoreChecks::PreCallValidateCmdTraceRaysNV(VkCommandBuffer commandBuffer, VkBuffer raygenShaderBindingTableBuffer,
1483 VkDeviceSize raygenShaderBindingOffset, VkBuffer missShaderBindingTableBuffer,
1484 VkDeviceSize missShaderBindingOffset, VkDeviceSize missShaderBindingStride,
1485 VkBuffer hitShaderBindingTableBuffer, VkDeviceSize hitShaderBindingOffset,
1486 VkDeviceSize hitShaderBindingStride, VkBuffer callableShaderBindingTableBuffer,
1487 VkDeviceSize callableShaderBindingOffset, VkDeviceSize callableShaderBindingStride,
1488 uint32_t width, uint32_t height, uint32_t depth) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001489 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001490 bool skip = ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_RAY_TRACING_NV, CMD_TRACERAYSNV);
Jeremy Gebbenb20a8242021-11-05 15:14:43 -06001491 auto callable_shader_buffer_state = Get<BUFFER_STATE>(callableShaderBindingTableBuffer);
sourav parmard1521802020-06-07 21:49:02 -07001492 if (callable_shader_buffer_state && callableShaderBindingOffset >= callable_shader_buffer_state->createInfo.size) {
1493 skip |= LogError(commandBuffer, "VUID-vkCmdTraceRaysNV-callableShaderBindingOffset-02461",
1494 "vkCmdTraceRaysNV: callableShaderBindingOffset %" PRIu64
1495 " must be less than the size of callableShaderBindingTableBuffer %" PRIu64 " .",
1496 callableShaderBindingOffset, callable_shader_buffer_state->createInfo.size);
1497 }
Jeremy Gebbenb20a8242021-11-05 15:14:43 -06001498 auto hit_shader_buffer_state = Get<BUFFER_STATE>(hitShaderBindingTableBuffer);
sourav parmard1521802020-06-07 21:49:02 -07001499 if (hit_shader_buffer_state && hitShaderBindingOffset >= hit_shader_buffer_state->createInfo.size) {
1500 skip |= LogError(commandBuffer, "VUID-vkCmdTraceRaysNV-hitShaderBindingOffset-02459",
1501 "vkCmdTraceRaysNV: hitShaderBindingOffset %" PRIu64
1502 " must be less than the size of hitShaderBindingTableBuffer %" PRIu64 " .",
1503 hitShaderBindingOffset, hit_shader_buffer_state->createInfo.size);
1504 }
Jeremy Gebbenb20a8242021-11-05 15:14:43 -06001505 auto miss_shader_buffer_state = Get<BUFFER_STATE>(missShaderBindingTableBuffer);
sourav parmard1521802020-06-07 21:49:02 -07001506 if (miss_shader_buffer_state && missShaderBindingOffset >= miss_shader_buffer_state->createInfo.size) {
1507 skip |= LogError(commandBuffer, "VUID-vkCmdTraceRaysNV-missShaderBindingOffset-02457",
1508 "vkCmdTraceRaysNV: missShaderBindingOffset %" PRIu64
baldurk751594b2020-09-09 09:41:02 +01001509 " must be less than the size of missShaderBindingTableBuffer %" PRIu64 " .",
sourav parmard1521802020-06-07 21:49:02 -07001510 missShaderBindingOffset, miss_shader_buffer_state->createInfo.size);
1511 }
Jeremy Gebbenb20a8242021-11-05 15:14:43 -06001512 auto raygen_shader_buffer_state = Get<BUFFER_STATE>(raygenShaderBindingTableBuffer);
sourav parmard1521802020-06-07 21:49:02 -07001513 if (raygenShaderBindingOffset >= raygen_shader_buffer_state->createInfo.size) {
1514 skip |= LogError(commandBuffer, "VUID-vkCmdTraceRaysNV-raygenShaderBindingOffset-02455",
1515 "vkCmdTraceRaysNV: raygenShaderBindingOffset %" PRIu64
baldurk751594b2020-09-09 09:41:02 +01001516 " must be less than the size of raygenShaderBindingTableBuffer %" PRIu64 " .",
sourav parmard1521802020-06-07 21:49:02 -07001517 raygenShaderBindingOffset, raygen_shader_buffer_state->createInfo.size);
1518 }
sourav parmarcd5fb182020-07-17 12:58:44 -07001519
sourav parmar30e19392020-12-02 16:57:21 -08001520 const auto lv_bind_point = ConvertToLvlBindPoint(VK_PIPELINE_BIND_POINT_RAY_TRACING_NV);
1521 const PIPELINE_STATE *pipeline_state = cb_state->lastBound[lv_bind_point].pipeline_state;
Jeremy Gebben14b0d1a2021-05-15 20:15:41 -06001522 if (!pipeline_state || (pipeline_state && !pipeline_state->pipeline())) {
sourav parmar30e19392020-12-02 16:57:21 -08001523 skip |= LogError(device, "VUID-vkCmdTraceRaysNV-None-02700",
1524 "vkCmdTraceRaysKHR: A valid pipeline must be bound to the pipeline bind point used by this command.");
sourav parmarcd5fb182020-07-17 12:58:44 -07001525 }
Jeff Bolzf6e872c2019-10-22 12:17:28 -05001526 return skip;
1527}
1528
Jeff Bolz443c2ca2020-03-19 12:11:51 -05001529bool CoreChecks::PreCallValidateCmdTraceRaysKHR(VkCommandBuffer commandBuffer,
sourav parmarcd5fb182020-07-17 12:58:44 -07001530 const VkStridedDeviceAddressRegionKHR *pRaygenShaderBindingTable,
1531 const VkStridedDeviceAddressRegionKHR *pMissShaderBindingTable,
1532 const VkStridedDeviceAddressRegionKHR *pHitShaderBindingTable,
1533 const VkStridedDeviceAddressRegionKHR *pCallableShaderBindingTable, uint32_t width,
Jeff Bolz443c2ca2020-03-19 12:11:51 -05001534 uint32_t height, uint32_t depth) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001535 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001536 bool skip = ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR, CMD_TRACERAYSKHR);
Shannon McPherson9caca052020-11-25 11:34:38 -07001537 const auto lv_bind_point = ConvertToLvlBindPoint(VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR);
1538 const PIPELINE_STATE *pipeline_state = cb_state->lastBound[lv_bind_point].pipeline_state;
Jeremy Gebben14b0d1a2021-05-15 20:15:41 -06001539 if (!pipeline_state || (pipeline_state && !pipeline_state->pipeline())) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001540 skip |= LogError(device, "VUID-vkCmdTraceRaysKHR-None-02700",
1541 "vkCmdTraceRaysKHR: A valid pipeline must be bound to the pipeline bind point used by this command.");
1542 } else { // bound to valid RT pipeline
Jeremy Gebben11af9792021-08-20 10:20:09 -06001543 if (pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001544 if (!pHitShaderBindingTable->deviceAddress) {
1545 skip |= LogError(device, "VUID-vkCmdTraceRaysKHR-flags-03697",
1546 "vkCmdTraceRaysKHR: If the currently bound ray tracing pipeline was created with flags "
1547 "that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, the "
1548 "deviceAddress member of pHitShaderBindingTable must not be zero.");
1549 }
1550 if (!pHitShaderBindingTable || pHitShaderBindingTable->size == 0 || pHitShaderBindingTable->stride == 0) {
1551 skip |= LogError(device, "VUID-vkCmdTraceRaysKHR-flags-03514",
1552 "vkCmdTraceRaysKHR: If the currently bound ray tracing pipeline was created with "
1553 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, "
1554 "entries in pHitShaderBindingTable accessed as a result of this command in order to "
1555 "execute an intersection shader must not be set to zero.");
1556 }
1557 }
Jeremy Gebben11af9792021-08-20 10:20:09 -06001558 if (pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001559 if (!pHitShaderBindingTable->deviceAddress) {
1560 skip |= LogError(device, "VUID-vkCmdTraceRaysKHR-flags-03696",
1561 "vkCmdTraceRaysKHR: If the currently bound ray tracing pipeline was created with flags "
1562 "that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, the "
1563 "deviceAddress member of pHitShaderBindingTable must not be zero.");
1564 }
1565 if (!pHitShaderBindingTable || pHitShaderBindingTable->size == 0 || pHitShaderBindingTable->stride == 0) {
1566 skip |= LogError(device, "VUID-vkCmdTraceRaysKHR-flags-03513",
1567 "vkCmdTraceRaysKHR: If the currently bound ray tracing pipeline was created with "
1568 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, "
1569 "entries in pHitShaderBindingTable accessed as a result of this command in order to "
1570 "execute a closest hit shader must not be set to zero.");
1571 }
1572 }
Jeremy Gebben11af9792021-08-20 10:20:09 -06001573 if (pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001574 if (!pHitShaderBindingTable || pHitShaderBindingTable->size == 0 || pHitShaderBindingTable->stride == 0) {
1575 skip |= LogError(device, "VUID-vkCmdTraceRaysKHR-flags-03512",
1576 "vkCmdTraceRaysKHR: If the currently bound ray tracing pipeline was created with "
1577 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR, "
1578 "entries in pHitShaderBindingTable accessed as a result of this command in order to "
1579 "execute an any hit shader must not be set to zero.");
1580 }
1581 }
1582 }
Jeff Bolz443c2ca2020-03-19 12:11:51 -05001583 return skip;
1584}
1585
Jeff Bolz443c2ca2020-03-19 12:11:51 -05001586bool CoreChecks::PreCallValidateCmdTraceRaysIndirectKHR(VkCommandBuffer commandBuffer,
sourav parmarcd5fb182020-07-17 12:58:44 -07001587 const VkStridedDeviceAddressRegionKHR *pRaygenShaderBindingTable,
1588 const VkStridedDeviceAddressRegionKHR *pMissShaderBindingTable,
1589 const VkStridedDeviceAddressRegionKHR *pHitShaderBindingTable,
1590 const VkStridedDeviceAddressRegionKHR *pCallableShaderBindingTable,
1591 VkDeviceAddress indirectDeviceAddress) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001592 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001593 bool skip = ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR, CMD_TRACERAYSINDIRECTKHR);
Shannon McPherson9caca052020-11-25 11:34:38 -07001594 const auto lv_bind_point = ConvertToLvlBindPoint(VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR);
Jeremy Gebbenb20a8242021-11-05 15:14:43 -06001595 const auto *pipeline_state = cb_state->lastBound[lv_bind_point].pipeline_state;
Jeremy Gebben14b0d1a2021-05-15 20:15:41 -06001596 if (!pipeline_state || (pipeline_state && !pipeline_state->pipeline())) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001597 skip |=
1598 LogError(device, "VUID-vkCmdTraceRaysIndirectKHR-None-02700",
1599 "vkCmdTraceRaysIndirectKHR: A valid pipeline must be bound to the pipeline bind point used by this command.");
1600 } else { // valid bind point
Jeremy Gebben11af9792021-08-20 10:20:09 -06001601 if (pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001602 if (!pHitShaderBindingTable || pHitShaderBindingTable->deviceAddress == 0) {
1603 skip |= LogError(device, "VUID-vkCmdTraceRaysIndirectKHR-flags-03697",
1604 "vkCmdTraceRaysIndirectKHR: If the currently bound ray tracing pipeline was created with "
1605 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, the "
1606 "deviceAddress member of pHitShaderBindingTable must not be zero.");
1607 }
1608 if (!pHitShaderBindingTable || pHitShaderBindingTable->size == 0 || pHitShaderBindingTable->stride == 0) {
1609 skip |= LogError(device, "VUID-vkCmdTraceRaysIndirectKHR-flags-03514",
1610 "vkCmdTraceRaysIndirectKHR: If the currently bound ray tracing pipeline was created with "
1611 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, "
1612 "entries in pHitShaderBindingTable accessed as a result of this command in order to "
1613 "execute an intersection shader must not be set to zero.");
1614 }
1615 }
Jeremy Gebben11af9792021-08-20 10:20:09 -06001616 if (pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001617 if (!pHitShaderBindingTable || pHitShaderBindingTable->deviceAddress == 0) {
1618 skip |= LogError(device, "VUID-vkCmdTraceRaysIndirectKHR-flags-03696",
1619 "vkCmdTraceRaysIndirectKHR:If the currently bound ray tracing pipeline was created with "
1620 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, "
1621 "the deviceAddress member of pHitShaderBindingTable must not be zero.");
1622 }
1623 if (!pHitShaderBindingTable || pHitShaderBindingTable->size == 0 || pHitShaderBindingTable->stride == 0) {
1624 skip |= LogError(device, "VUID-vkCmdTraceRaysIndirectKHR-flags-03513",
1625 "vkCmdTraceRaysIndirectKHR: If the currently bound ray tracing pipeline was created with "
1626 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, "
1627 "entries in pHitShaderBindingTable accessed as a result of this command in order to "
1628 "execute a closest hit shader must not be set to zero.");
1629 }
1630 }
Jeremy Gebben11af9792021-08-20 10:20:09 -06001631 if (pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001632 if (!pHitShaderBindingTable || pHitShaderBindingTable->size == 0 || pHitShaderBindingTable->stride == 0) {
1633 skip |= LogError(device, "VUID-vkCmdTraceRaysIndirectKHR-flags-03512",
1634 "vkCmdTraceRaysIndirectKHR: If the currently bound ray tracing pipeline was created with "
1635 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR, "
1636 "entries in pHitShaderBindingTable accessed as a result of this command in order to "
1637 "execute an any hit shader must not be set to zero.");
1638 }
1639 }
1640 }
Jeff Bolz443c2ca2020-03-19 12:11:51 -05001641 return skip;
1642}
1643
sfricke-samsungf91881c2022-03-31 01:12:00 -05001644bool CoreChecks::PreCallValidateCmdTraceRaysIndirect2KHR(VkCommandBuffer commandBuffer,
1645 VkDeviceAddress indirectDeviceAddress) const {
1646 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
1647 bool skip = ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR, CMD_TRACERAYSINDIRECTKHR);
1648 return skip;
1649}
1650
Jeff Bolz5c801d12019-10-09 10:38:45 -05001651bool CoreChecks::PreCallValidateCmdDrawMeshTasksNV(VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001652 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001653 bool skip = ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWMESHTASKSNV);
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001654 return skip;
1655}
1656
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001657bool CoreChecks::PreCallValidateCmdDrawMeshTasksIndirectNV(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
Jeff Bolz5c801d12019-10-09 10:38:45 -05001658 uint32_t drawCount, uint32_t stride) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001659 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001660 bool skip = ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWMESHTASKSINDIRECTNV);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001661 auto buffer_state = Get<BUFFER_STATE>(buffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001662 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, CMD_DRAWMESHTASKSINDIRECTNV);
Lockee68ac652019-05-06 10:17:33 -06001663 if (drawCount > 1) {
Lockee68ac652019-05-06 10:17:33 -06001664 skip |= ValidateCmdDrawStrideWithBuffer(commandBuffer, "VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02157", stride,
1665 "VkDrawMeshTasksIndirectCommandNV", sizeof(VkDrawMeshTasksIndirectCommandNV),
Jeremy Gebben9f537102021-10-05 16:37:12 -06001666 drawCount, offset, buffer_state.get());
Lockee68ac652019-05-06 10:17:33 -06001667 }
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001668 return skip;
1669}
1670
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001671bool CoreChecks::PreCallValidateCmdDrawMeshTasksIndirectCountNV(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1672 VkBuffer countBuffer, VkDeviceSize countBufferOffset,
Jeff Bolz5c801d12019-10-09 10:38:45 -05001673 uint32_t maxDrawCount, uint32_t stride) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001674 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001675 bool skip = ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWMESHTASKSINDIRECTCOUNTNV);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001676 auto buffer_state = Get<BUFFER_STATE>(buffer);
1677 auto count_buffer_state = Get<BUFFER_STATE>(countBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001678 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, CMD_DRAWMESHTASKSINDIRECTCOUNTNV);
sjfricke177bbb62022-06-02 17:37:03 +09001679 skip |= ValidateIndirectCountCmd(*count_buffer_state, countBufferOffset, CMD_DRAWMESHTASKSINDIRECTCOUNTNV);
Lockee68ac652019-05-06 10:17:33 -06001680 skip |= ValidateCmdDrawStrideWithStruct(commandBuffer, "VUID-vkCmdDrawMeshTasksIndirectCountNV-stride-02182", stride,
1681 "VkDrawMeshTasksIndirectCommandNV", sizeof(VkDrawMeshTasksIndirectCommandNV));
1682 if (maxDrawCount > 1) {
1683 skip |= ValidateCmdDrawStrideWithBuffer(commandBuffer, "VUID-vkCmdDrawMeshTasksIndirectCountNV-maxDrawCount-02183", stride,
1684 "VkDrawMeshTasksIndirectCommandNV", sizeof(VkDrawMeshTasksIndirectCommandNV),
Jeremy Gebben9f537102021-10-05 16:37:12 -06001685 maxDrawCount, offset, buffer_state.get());
Lockee68ac652019-05-06 10:17:33 -06001686 }
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001687 return skip;
1688}