blob: 6eb3d2e96a727684e127e38c5bc4440818e82ecb [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";
532 indirect_buffer_bit = "VUID-vkCmdDrawIndirectCount-buffer-02709";
533 viewport_count = "VUID-vkCmdDrawIndirectCount-viewportCount-03417";
534 scissor_count = "VUID-vkCmdDrawIndirectCount-scissorCount-03418";
535 viewport_scissor_count = "VUID-vkCmdDrawIndirectCount-viewportCount-03419";
536 primitive_topology = "VUID-vkCmdDrawIndirectCount-primitiveTopology-03420";
537 corner_sampled_address_mode = "VUID-vkCmdDrawIndirectCount-flags-02696";
538 subpass_input = "VUID-vkCmdDrawIndirectCount-None-02686";
539 imageview_atomic = "VUID-vkCmdDrawIndirectCount-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700540 push_constants_set = "VUID-vkCmdDrawIndirectCount-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100541 image_subresources_render_pass_write = "VUID-vkCmdDrawIndirectCount-None-06537";
542 image_subresources_subpass_read = "VUID-vkCmdDrawIndirectCount-None-06538";
543 image_subresources_subpass_write = "VUID-vkCmdDrawIndirectCount-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700544 descriptor_valid = "VUID-vkCmdDrawIndirectCount-None-02699";
545 sampler_imageview_type = "VUID-vkCmdDrawIndirectCount-None-02702";
546 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawIndirectCount-None-02703";
547 sampler_bias_offset = "VUID-vkCmdDrawIndirectCount-None-02704";
548 vertex_binding_attribute = "VUID-vkCmdDrawIndirectCount-None-02721";
549 dynamic_state_setting_commands = "VUID-vkCmdDrawIndirectCount-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700550 rasterization_samples = "VUID-vkCmdDrawIndirectCount-rasterizationSamples-04740";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700551 unprotected_command_buffer = "VUID-vkCmdDrawIndirectCount-commandBuffer-02707";
552 max_multiview_instance_index = "VUID-vkCmdDrawIndirectCount-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700553 img_filter_cubic = "VUID-vkCmdDrawIndirectCount-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700554 filter_cubic = "VUID-vkCmdDrawIndirectCount-filterCubic-02694";
555 filter_cubic_min_max = "VUID-vkCmdDrawIndirectCount-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000556 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawIndirectCount-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600557 patch_control_points = "VUID-vkCmdDrawIndirectCount-None-04875";
558 rasterizer_discard_enable = "VUID-vkCmdDrawIndirectCount-None-04876";
559 depth_bias_enable = "VUID-vkCmdDrawIndirectCount-None-04877";
560 logic_op = "VUID-vkCmdDrawIndirectCount-logicOp-04878";
561 primitive_restart_enable = "VUID-vkCmdDrawIndirectCount-None-04879";
562 vertex_input_binding_stride = "VUID-vkCmdDrawIndirectCount-pStrides-04884";
563 vertex_input = kVUID_Core_CmdDrawIndirectCount_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200564 blend_enable = "VUID-vkCmdDrawIndirectCount-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100565 color_write_enable = "VUID-vkCmdDrawIndirectCount-attachmentCount-06667";
stusmithedc4e392021-12-24 15:22:16 +0000566 dynamic_rendering_view_mask = "VUID-vkCmdDrawIndirectCount-viewMask-06178";
567 dynamic_rendering_color_count = "VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06179";
568 dynamic_rendering_color_formats = "VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06180";
569 dynamic_rendering_depth_format = "VUID-vkCmdDrawIndirectCount-pDepthAttachment-06181";
570 dynamic_rendering_stencil_format = "VUID-vkCmdDrawIndirectCount-pStencilAttachment-06182";
571 dynamic_rendering_fsr = "VUID-vkCmdDrawIndirectCount-imageView-06183";
572 dynamic_rendering_fdm = "VUID-vkCmdDrawIndirectCount-imageView-06184";
573 dynamic_rendering_color_sample = "VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06185";
574 dynamic_rendering_depth_sample = "VUID-vkCmdDrawIndirectCount-pDepthAttachment-06186";
575 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawIndirectCount-pStencilAttachment-06187";
576 dynamic_rendering_multi_sample = "VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06188";
577 dynamic_rendering_06189 = "VUID-vkCmdDrawIndirectCount-pDepthAttachment-06189";
578 dynamic_rendering_06190 = "VUID-vkCmdDrawIndirectCount-pStencilAttachment-06190";
579 dynamic_rendering_06198 = "VUID-vkCmdDrawIndirectCount-renderPass-06198";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200580 storage_image_read_without_format = "VUID-vkCmdDrawIndirectCount-OpTypeImage-06424";
581 storage_image_write_without_format = "VUID-vkCmdDrawIndirectCount-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200582 depth_compare_sample = "VUID-vkCmdDrawIndirectCount-None-06479";
ziga-lunarg50188622022-03-26 01:18:32 +0100583 dynamic_sample_locations = "VUID-vkCmdDrawIndirectCount-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +0200584 primitives_generated = "VUID-vkCmdDrawIndirectCount-primitivesGeneratedQueryWithRasterizerDiscard-06708";
ziga-lunargf4068b12022-04-05 13:58:59 +0200585 primitives_generated_streams = "VUID-vkCmdDrawIndirectCount-primitivesGeneratedQueryWithNonZeroStreams-06709";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700586 }
587};
588
589struct DispatchVuidsCmdDrawIndexedIndirectCount : DrawDispatchVuid {
590 DispatchVuidsCmdDrawIndexedIndirectCount() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700591 pipeline_bound = "VUID-vkCmdDrawIndexedIndirectCount-None-02700";
592 dynamic_state = "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02701";
593 vertex_binding = "VUID-vkCmdDrawIndexedIndirectCount-None-04007";
594 vertex_binding_null = "VUID-vkCmdDrawIndexedIndirectCount-None-04008";
595 compatible_pipeline = "VUID-vkCmdDrawIndexedIndirectCount-None-02697";
596 render_pass_compatible = "VUID-vkCmdDrawIndexedIndirectCount-renderPass-02684";
597 subpass_index = "VUID-vkCmdDrawIndexedIndirectCount-subpass-02685";
598 sample_location = "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-02689";
599 linear_sampler = "VUID-vkCmdDrawIndexedIndirectCount-magFilter-04553";
600 cubic_sampler = "VUID-vkCmdDrawIndexedIndirectCount-None-02692";
601 indirect_protected_cb = "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02711";
602 indirect_contiguous_memory = "VUID-vkCmdDrawIndexedIndirectCount-buffer-02708";
603 indirect_buffer_bit = "VUID-vkCmdDrawIndexedIndirectCount-buffer-02709";
604 viewport_count = "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-03417";
605 scissor_count = "VUID-vkCmdDrawIndexedIndirectCount-scissorCount-03418";
606 viewport_scissor_count = "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-03419";
607 primitive_topology = "VUID-vkCmdDrawIndexedIndirectCount-primitiveTopology-03420";
608 corner_sampled_address_mode = "VUID-vkCmdDrawIndexedIndirectCount-flags-02696";
609 subpass_input = "VUID-vkCmdDrawIndexedIndirectCount-None-02686";
610 imageview_atomic = "VUID-vkCmdDrawIndexedIndirectCount-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700611 push_constants_set = "VUID-vkCmdDrawIndexedIndirectCount-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100612 image_subresources_render_pass_write = "VUID-vkCmdDrawIndexedIndirectCount-None-06537";
613 image_subresources_subpass_read = "VUID-vkCmdDrawIndexedIndirectCount-None-06538";
614 image_subresources_subpass_write = "VUID-vkCmdDrawIndexedIndirectCount-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700615 descriptor_valid = "VUID-vkCmdDrawIndexedIndirectCount-None-02699";
616 sampler_imageview_type = "VUID-vkCmdDrawIndexedIndirectCount-None-02702";
617 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawIndexedIndirectCount-None-02703";
618 sampler_bias_offset = "VUID-vkCmdDrawIndexedIndirectCount-None-02704";
619 vertex_binding_attribute = "VUID-vkCmdDrawIndexedIndirectCount-None-02721";
620 dynamic_state_setting_commands = "VUID-vkCmdDrawIndexedIndirectCount-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700621 rasterization_samples = "VUID-vkCmdDrawIndexedIndirectCount-rasterizationSamples-04740";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700622 unprotected_command_buffer = "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02707";
623 max_multiview_instance_index = "VUID-vkCmdDrawIndexedIndirectCount-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700624 img_filter_cubic = "VUID-vkCmdDrawIndexedIndirectCount-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700625 filter_cubic = "VUID-vkCmdDrawIndexedIndirectCount-filterCubic-02694";
626 filter_cubic_min_max = "VUID-vkCmdDrawIndexedIndirectCount-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000627 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawIndexedIndirectCount-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600628 patch_control_points = "VUID-vkCmdDrawIndexedIndirectCount-None-04875";
629 rasterizer_discard_enable = "VUID-vkCmdDrawIndexedIndirectCount-None-04876";
630 depth_bias_enable = "VUID-vkCmdDrawIndexedIndirectCount-None-04877";
631 logic_op = "VUID-vkCmdDrawIndexedIndirectCount-logicOp-04878";
632 primitive_restart_enable = "VUID-vkCmdDrawIndexedIndirectCount-None-04879";
633 vertex_input_binding_stride = "VUID-vkCmdDrawIndexedIndirectCount-pStrides-04884";
634 vertex_input = kVUID_Core_CmdDrawIndexedIndirectCount_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200635 blend_enable = "VUID-vkCmdDrawIndexedIndirectCount-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100636 color_write_enable = "VUID-vkCmdDrawIndexedIndirectCount-attachmentCount-06667";
Aaron Haganaca50442021-12-07 22:26:29 -0500637 dynamic_rendering_view_mask = "VUID-vkCmdDrawIndexedIndirectCount-viewMask-06178";
638 dynamic_rendering_color_count = "VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06179";
639 dynamic_rendering_color_formats = "VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06180";
640 dynamic_rendering_depth_format = "VUID-vkCmdDrawIndexedIndirectCount-pDepthAttachment-06181";
641 dynamic_rendering_stencil_format = "VUID-vkCmdDrawIndexedIndirectCount-pStencilAttachment-06182";
642 dynamic_rendering_fsr = "VUID-vkCmdDrawIndexedIndirectCount-imageView-06183";
643 dynamic_rendering_fdm = "VUID-vkCmdDrawIndexedIndirectCount-imageView-06184";
644 dynamic_rendering_color_sample = "VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06185";
645 dynamic_rendering_depth_sample = "VUID-vkCmdDrawIndexedIndirectCount-pDepthAttachment-06186";
646 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawIndexedIndirectCount-pStencilAttachment-06187";
647 dynamic_rendering_multi_sample = "VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06188";
648 dynamic_rendering_06189 = "VUID-vkCmdDrawIndexedIndirectCount-pDepthAttachment-06189";
649 dynamic_rendering_06190 = "VUID-vkCmdDrawIndexedIndirectCount-pStencilAttachment-06190";
650 dynamic_rendering_06198 = "VUID-vkCmdDrawIndexedIndirectCount-renderPass-06198";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200651 storage_image_read_without_format = "VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-06424";
652 storage_image_write_without_format = "VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200653 depth_compare_sample = "VUID-vkCmdDrawIndexedIndirectCount-None-06479";
ziga-lunarg50188622022-03-26 01:18:32 +0100654 dynamic_sample_locations = "VUID-vkCmdDrawIndexedIndirectCount-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +0200655 primitives_generated = "VUID-vkCmdDrawIndexedIndirectCount-primitivesGeneratedQueryWithRasterizerDiscard-06708";
ziga-lunargf4068b12022-04-05 13:58:59 +0200656 primitives_generated_streams = "VUID-vkCmdDrawIndexedIndirectCount-primitivesGeneratedQueryWithNonZeroStreams-06709";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700657 }
658};
659
660struct DispatchVuidsCmdTraceRaysNV: DrawDispatchVuid {
661 DispatchVuidsCmdTraceRaysNV() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700662 pipeline_bound = "VUID-vkCmdTraceRaysNV-None-02700";
663 dynamic_state = "VUID-vkCmdTraceRaysNV-commandBuffer-02701";
664 compatible_pipeline = "VUID-vkCmdTraceRaysNV-None-02697";
665 linear_sampler = "VUID-vkCmdTraceRaysNV-magFilter-04553";
666 cubic_sampler = "VUID-vkCmdTraceRaysNV-None-02692";
667 corner_sampled_address_mode = "VUID-vkCmdTraceRaysNV-flags-02696";
668 imageview_atomic = "VUID-vkCmdTraceRaysNV-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700669 push_constants_set = "VUID-vkCmdTraceRaysNV-maintenance4-06425";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700670 descriptor_valid = "VUID-vkCmdTraceRaysNV-None-02699";
671 sampler_imageview_type = "VUID-vkCmdTraceRaysNV-None-02702";
672 sampler_implicitLod_dref_proj = "VUID-vkCmdTraceRaysNV-None-02703";
673 sampler_bias_offset = "VUID-vkCmdTraceRaysNV-None-02704";
674 dynamic_state_setting_commands = "VUID-vkCmdTraceRaysNV-None-02859";
675 unprotected_command_buffer = "VUID-vkCmdTraceRaysNV-commandBuffer-02707";
sfricke-samsunga3c47d12021-09-30 13:34:54 -0700676 ray_query_protected_cb = "VUID-vkCmdTraceRaysNV-commandBuffer-04624";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700677 img_filter_cubic = "VUID-vkCmdTraceRaysNV-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700678 filter_cubic = "VUID-vkCmdTraceRaysNV-filterCubic-02694";
679 filter_cubic_min_max = "VUID-vkCmdTraceRaysNV-filterCubicMinmax-02695";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200680 storage_image_read_without_format = "VUID-vkCmdTraceRaysNV-OpTypeImage-06424";
681 storage_image_write_without_format = "VUID-vkCmdTraceRaysNV-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200682 depth_compare_sample = "VUID-vkCmdTraceRaysNV-None-06479";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700683 }
684};
685
686struct DispatchVuidsCmdTraceRaysKHR: DrawDispatchVuid {
687 DispatchVuidsCmdTraceRaysKHR() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700688 pipeline_bound = "VUID-vkCmdTraceRaysKHR-None-02700";
689 dynamic_state = "VUID-vkCmdTraceRaysKHR-commandBuffer-02701";
690 compatible_pipeline = "VUID-vkCmdTraceRaysKHR-None-02697";
691 linear_sampler = "VUID-vkCmdTraceRaysKHR-magFilter-04553";
692 cubic_sampler = "VUID-vkCmdTraceRaysKHR-None-02692";
693 corner_sampled_address_mode = "VUID-vkCmdTraceRaysKHR-flags-02696";
694 imageview_atomic = "VUID-vkCmdTraceRaysKHR-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700695 push_constants_set = "VUID-vkCmdTraceRaysKHR-maintenance4-06425";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700696 descriptor_valid = "VUID-vkCmdTraceRaysKHR-None-02699";
697 sampler_imageview_type = "VUID-vkCmdTraceRaysKHR-None-02702";
698 sampler_implicitLod_dref_proj = "VUID-vkCmdTraceRaysKHR-None-02703";
699 sampler_bias_offset = "VUID-vkCmdTraceRaysKHR-None-02704";
700 dynamic_state_setting_commands = "VUID-vkCmdTraceRaysKHR-None-02859";
701 unprotected_command_buffer = "VUID-vkCmdTraceRaysKHR-commandBuffer-02707";
Mike Schuchardt840f1252022-05-11 11:31:25 -0700702 ray_query_protected_cb = "VUID-vkCmdTraceRaysKHR-commandBuffer-03635";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700703 img_filter_cubic = "VUID-vkCmdTraceRaysKHR-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700704 filter_cubic = "VUID-vkCmdTraceRaysKHR-filterCubic-02694";
705 filter_cubic_min_max = "VUID-vkCmdTraceRaysKHR-filterCubicMinmax-02695";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200706 storage_image_read_without_format = "VUID-vkCmdTraceRaysKHR-OpTypeImage-06424";
707 storage_image_write_without_format = "VUID-vkCmdTraceRaysKHR-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200708 depth_compare_sample = "VUID-vkCmdTraceRaysKHR-None-06479";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700709 }
710};
711
712struct DispatchVuidsCmdTraceRaysIndirectKHR: DrawDispatchVuid {
713 DispatchVuidsCmdTraceRaysIndirectKHR() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700714 pipeline_bound = "VUID-vkCmdTraceRaysIndirectKHR-None-02700";
715 dynamic_state = "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-02701";
716 compatible_pipeline = "VUID-vkCmdTraceRaysIndirectKHR-None-02697";
717 linear_sampler = "VUID-vkCmdTraceRaysIndirectKHR-magFilter-04553";
718 cubic_sampler = "VUID-vkCmdTraceRaysIndirectKHR-None-02692";
Shannon McPherson57255a62020-12-23 16:00:54 -0700719 indirect_contiguous_memory = "VUID-vkCmdTraceRaysIndirectKHR-indirectDeviceAddress-03632";
720 indirect_buffer_bit = "VUID-vkCmdTraceRaysIndirectKHR-indirectDeviceAddress-03633";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700721 corner_sampled_address_mode = "VUID-vkCmdTraceRaysIndirectKHR-flags-02696";
722 imageview_atomic = "VUID-vkCmdTraceRaysIndirectKHR-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700723 push_constants_set = "VUID-vkCmdTraceRaysIndirectKHR-maintenance4-06425";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700724 descriptor_valid = "VUID-vkCmdTraceRaysIndirectKHR-None-02699";
725 sampler_imageview_type = "VUID-vkCmdTraceRaysIndirectKHR-None-02702";
726 sampler_implicitLod_dref_proj = "VUID-vkCmdTraceRaysIndirectKHR-None-02703";
727 sampler_bias_offset = "VUID-vkCmdTraceRaysIndirectKHR-None-02704";
728 dynamic_state_setting_commands = "VUID-vkCmdTraceRaysIndirectKHR-None-02859";
729 unprotected_command_buffer = "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-02707";
sfricke-samsunga3c47d12021-09-30 13:34:54 -0700730 ray_query_protected_cb = "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-03635";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700731 img_filter_cubic = "VUID-vkCmdTraceRaysIndirectKHR-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700732 filter_cubic = "VUID-vkCmdTraceRaysIndirectKHR-filterCubic-02694";
733 filter_cubic_min_max = "VUID-vkCmdTraceRaysIndirectKHR-filterCubicMinmax-02695";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200734 storage_image_read_without_format = "VUID-vkCmdTraceRaysIndirectKHR-OpTypeImage-06424";
735 storage_image_write_without_format = "VUID-vkCmdTraceRaysIndirectKHR-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200736 depth_compare_sample = "VUID-vkCmdTraceRaysIndirectKHR-None-06479";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700737 }
738};
739
sfricke-samsungf91881c2022-03-31 01:12:00 -0500740struct DispatchVuidsCmdTraceRaysIndirect2KHR: DrawDispatchVuid {
741 DispatchVuidsCmdTraceRaysIndirect2KHR() : DrawDispatchVuid() {
742 pipeline_bound = "VUID-vkCmdTraceRaysIndirect2KHR-None-02700";
743 dynamic_state = "VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-02701";
744 compatible_pipeline = "VUID-vkCmdTraceRaysIndirect2KHR-None-02697";
745 linear_sampler = "VUID-vkCmdTraceRaysIndirect2KHR-magFilter-04553";
746 cubic_sampler = "VUID-vkCmdTraceRaysIndirect2KHR-None-02692";
747 indirect_contiguous_memory = "VUID-vkCmdTraceRaysIndirect2KHR-indirectDeviceAddress-03632";
748 indirect_buffer_bit = "VUID-vkCmdTraceRaysIndirect2KHR-indirectDeviceAddress-03633";
749 corner_sampled_address_mode = "VUID-vkCmdTraceRaysIndirect2KHR-flags-02696";
750 imageview_atomic = "VUID-vkCmdTraceRaysIndirect2KHR-None-02691";
751 push_constants_set = "VUID-vkCmdTraceRaysIndirect2KHR-maintenance4-06425";
752 descriptor_valid = "VUID-vkCmdTraceRaysIndirect2KHR-None-02699";
753 sampler_imageview_type = "VUID-vkCmdTraceRaysIndirect2KHR-None-02702";
754 sampler_implicitLod_dref_proj = "VUID-vkCmdTraceRaysIndirect2KHR-None-02703";
755 sampler_bias_offset = "VUID-vkCmdTraceRaysIndirect2KHR-None-02704";
756 dynamic_state_setting_commands = "VUID-vkCmdTraceRaysIndirect2KHR-None-02859";
757 unprotected_command_buffer = "VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-02707";
758 ray_query_protected_cb = "VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-03635";
759 img_filter_cubic = "VUID-vkCmdTraceRaysIndirect2KHR-None-02693";
760 filter_cubic = "VUID-vkCmdTraceRaysIndirect2KHR-filterCubic-02694";
761 filter_cubic_min_max = "VUID-vkCmdTraceRaysIndirect2KHR-filterCubicMinmax-02695";
762 storage_image_read_without_format = "VUID-vkCmdTraceRaysIndirect2KHR-OpTypeImage-06424";
763 storage_image_write_without_format = "VUID-vkCmdTraceRaysIndirect2KHR-OpTypeImage-06423";
764 depth_compare_sample = "VUID-vkCmdTraceRaysIndirect2KHR-None-06479";
765 }
766};
767
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700768struct DispatchVuidsCmdDrawMeshTasksNV: DrawDispatchVuid {
769 DispatchVuidsCmdDrawMeshTasksNV() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700770 pipeline_bound = "VUID-vkCmdDrawMeshTasksNV-None-02700";
771 dynamic_state = "VUID-vkCmdDrawMeshTasksNV-commandBuffer-02701";
772 compatible_pipeline = "VUID-vkCmdDrawMeshTasksNV-None-02697";
773 render_pass_compatible = "VUID-vkCmdDrawMeshTasksNV-renderPass-02684";
774 subpass_index = "VUID-vkCmdDrawMeshTasksNV-subpass-02685";
775 sample_location = "VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-02689";
776 linear_sampler = "VUID-vkCmdDrawMeshTasksNV-magFilter-04553";
777 cubic_sampler = "VUID-vkCmdDrawMeshTasksNV-None-02692";
778 viewport_count = "VUID-vkCmdDrawMeshTasksNV-viewportCount-03417";
779 scissor_count = "VUID-vkCmdDrawMeshTasksNV-scissorCount-03418";
780 viewport_scissor_count = "VUID-vkCmdDrawMeshTasksNV-viewportCount-03419";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700781 corner_sampled_address_mode = "VUID-vkCmdDrawMeshTasksNV-flags-02696";
782 subpass_input = "VUID-vkCmdDrawMeshTasksNV-None-02686";
783 imageview_atomic = "VUID-vkCmdDrawMeshTasksNV-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700784 push_constants_set = "VUID-vkCmdDrawMeshTasksNV-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100785 image_subresources_render_pass_write = "VUID-vkCmdDrawMeshTasksNV-None-06537";
786 image_subresources_subpass_read = "VUID-vkCmdDrawMeshTasksNV-None-06538";
787 image_subresources_subpass_write = "VUID-vkCmdDrawMeshTasksNV-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700788 descriptor_valid = "VUID-vkCmdDrawMeshTasksNV-None-02699";
789 sampler_imageview_type = "VUID-vkCmdDrawMeshTasksNV-None-02702";
790 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawMeshTasksNV-None-02703";
791 sampler_bias_offset = "VUID-vkCmdDrawMeshTasksNV-None-02704";
792 dynamic_state_setting_commands = "VUID-vkCmdDrawMeshTasksNV-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700793 rasterization_samples = "VUID-vkCmdDrawMeshTasksNV-rasterizationSamples-04740";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700794 unprotected_command_buffer = "VUID-vkCmdDrawMeshTasksNV-commandBuffer-02707";
795 max_multiview_instance_index = "VUID-vkCmdDrawMeshTasksNV-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700796 img_filter_cubic = "VUID-vkCmdDrawMeshTasksNV-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700797 filter_cubic = "VUID-vkCmdDrawMeshTasksNV-filterCubic-02694";
798 filter_cubic_min_max = "VUID-vkCmdDrawMeshTasksNV-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000799 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawMeshTasksNV-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600800 rasterizer_discard_enable = "VUID-vkCmdDrawMeshTasksNV-None-04876";
801 depth_bias_enable = "VUID-vkCmdDrawMeshTasksNV-None-04877";
802 logic_op = "VUID-vkCmdDrawMeshTasksNV-logicOp-04878";
Piers Daniell924cd832021-05-18 13:48:47 -0600803 vertex_input = kVUID_Core_CmdDrawMeshTasksNV_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200804 blend_enable = "VUID-vkCmdDrawMeshTasksNV-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100805 color_write_enable = "VUID-vkCmdDrawMeshTasksNV-attachmentCount-06667";
stusmithedc4e392021-12-24 15:22:16 +0000806 dynamic_rendering_view_mask = "VUID-vkCmdDrawMeshTasksNV-viewMask-06178";
807 dynamic_rendering_color_count = "VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06179";
808 dynamic_rendering_color_formats = "VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06180";
809 dynamic_rendering_depth_format = "VUID-vkCmdDrawMeshTasksNV-pDepthAttachment-06181";
810 dynamic_rendering_stencil_format = "VUID-vkCmdDrawMeshTasksNV-pStencilAttachment-06182";
811 dynamic_rendering_fsr = "VUID-vkCmdDrawMeshTasksNV-imageView-06183";
812 dynamic_rendering_fdm = "VUID-vkCmdDrawMeshTasksNV-imageView-06184";
813 dynamic_rendering_color_sample = "VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06185";
814 dynamic_rendering_depth_sample = "VUID-vkCmdDrawMeshTasksNV-pDepthAttachment-06186";
815 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawMeshTasksNV-pStencilAttachment-06187";
816 dynamic_rendering_multi_sample = "VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06188";
817 dynamic_rendering_06189 = "VUID-vkCmdDrawMeshTasksNV-pDepthAttachment-06189";
818 dynamic_rendering_06190 = "VUID-vkCmdDrawMeshTasksNV-pStencilAttachment-06190";
819 dynamic_rendering_06198 = "VUID-vkCmdDrawMeshTasksNV-renderPass-06198";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200820 storage_image_read_without_format = "VUID-vkCmdDrawMeshTasksNV-OpTypeImage-06424";
821 storage_image_write_without_format = "VUID-vkCmdDrawMeshTasksNV-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200822 depth_compare_sample = "VUID-vkCmdDrawMeshTasksNV-None-06479";
ziga-lunarg50188622022-03-26 01:18:32 +0100823 dynamic_sample_locations = "VUID-vkCmdDrawMeshTasksNV-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +0200824 primitives_generated = "VUID-vkCmdDrawMeshTasksNV-primitivesGeneratedQueryWithRasterizerDiscard-06708";
ziga-lunargf4068b12022-04-05 13:58:59 +0200825 primitives_generated_streams = "VUID-vkCmdDrawMeshTasksNV-primitivesGeneratedQueryWithNonZeroStreams-06709";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700826 }
827};
828
829struct DispatchVuidsCmdDrawMeshTasksIndirectNV: DrawDispatchVuid {
830 DispatchVuidsCmdDrawMeshTasksIndirectNV() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700831 pipeline_bound = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02700";
832 dynamic_state = "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02701";
833 compatible_pipeline = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02697";
834 render_pass_compatible = "VUID-vkCmdDrawMeshTasksIndirectNV-renderPass-02684";
835 subpass_index = "VUID-vkCmdDrawMeshTasksIndirectNV-subpass-02685";
836 sample_location = "VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-02689";
837 linear_sampler = "VUID-vkCmdDrawMeshTasksIndirectNV-magFilter-04553";
838 cubic_sampler = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02692";
839 indirect_protected_cb = "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02711";
840 indirect_contiguous_memory = "VUID-vkCmdDrawMeshTasksIndirectNV-buffer-02708";
841 indirect_buffer_bit = "VUID-vkCmdDrawMeshTasksIndirectNV-buffer-02709";
842 viewport_count = "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-03417";
843 scissor_count = "VUID-vkCmdDrawMeshTasksIndirectNV-scissorCount-03418";
844 viewport_scissor_count = "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-03419";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700845 corner_sampled_address_mode = "VUID-vkCmdDrawMeshTasksIndirectNV-flags-02696";
846 subpass_input = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02686";
847 imageview_atomic = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700848 push_constants_set = "VUID-vkCmdDrawMeshTasksIndirectNV-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100849 image_subresources_render_pass_write = "VUID-vkCmdDrawMeshTasksIndirectNV-None-06537";
850 image_subresources_subpass_read = "VUID-vkCmdDrawMeshTasksIndirectNV-None-06538";
851 image_subresources_subpass_write = "VUID-vkCmdDrawMeshTasksIndirectNV-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700852 descriptor_valid = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02699";
853 sampler_imageview_type = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02702";
854 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02703";
855 sampler_bias_offset = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02704";
856 dynamic_state_setting_commands = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700857 rasterization_samples = "VUID-vkCmdDrawMeshTasksIndirectNV-rasterizationSamples-04740";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700858 unprotected_command_buffer = "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02707";
859 max_multiview_instance_index = "VUID-vkCmdDrawMeshTasksIndirectNV-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700860 img_filter_cubic = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700861 filter_cubic = "VUID-vkCmdDrawMeshTasksIndirectNV-filterCubic-02694";
862 filter_cubic_min_max = "VUID-vkCmdDrawMeshTasksIndirectNV-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000863 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawMeshTasksIndirectNV-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600864 rasterizer_discard_enable = "VUID-vkCmdDrawMeshTasksIndirectNV-None-04876";
865 depth_bias_enable = "VUID-vkCmdDrawMeshTasksIndirectNV-None-04877";
866 logic_op = "VUID-vkCmdDrawMeshTasksIndirectNV-logicOp-04878";
Piers Daniell924cd832021-05-18 13:48:47 -0600867 vertex_input = kVUID_Core_CmdDrawMeshTasksIndirectNV_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200868 blend_enable = "VUID-vkCmdDrawMeshTasksIndirectNV-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100869 color_write_enable = "VUID-vkCmdDrawMeshTasksIndirectNV-attachmentCount-06667";
stusmithedc4e392021-12-24 15:22:16 +0000870 dynamic_rendering_view_mask = "VUID-vkCmdDrawMeshTasksIndirectNV-viewMask-06178";
871 dynamic_rendering_color_count = "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06179";
872 dynamic_rendering_color_formats = "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06180";
873 dynamic_rendering_depth_format = "VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06181";
874 dynamic_rendering_stencil_format = "VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06182";
875 dynamic_rendering_fsr = "VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06183";
876 dynamic_rendering_fdm = "VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06184";
877 dynamic_rendering_color_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06185";
878 dynamic_rendering_depth_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06186";
879 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06187";
880 dynamic_rendering_multi_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06188";
881 dynamic_rendering_06189 = "VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06189";
882 dynamic_rendering_06190 = "VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06190";
883 dynamic_rendering_06198 = "VUID-vkCmdDrawMeshTasksIndirectNV-renderPass-06198";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200884 storage_image_read_without_format = "VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-06424";
885 storage_image_write_without_format = "VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200886 depth_compare_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-None-06479";
Aaron Hagan80034ea2021-12-23 11:24:09 -0500887 dynamic_rendering_view_mask = "VUID-vkCmdDrawMeshTasksIndirectNV-viewMask-06178";
888 dynamic_rendering_color_count = "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06179";
889 dynamic_rendering_color_formats = "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06180";
890 dynamic_rendering_depth_format = "VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06181";
891 dynamic_rendering_stencil_format = "VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06182";
892 dynamic_rendering_fsr = "VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06183";
893 dynamic_rendering_fdm = "VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06184";
894 dynamic_rendering_color_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06185";
895 dynamic_rendering_depth_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06186";
896 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06187";
Jeremy Gebben09c1a072022-02-08 09:42:47 -0700897 dynamic_rendering_multi_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06188";
Aaron Hagan80034ea2021-12-23 11:24:09 -0500898 dynamic_rendering_06189 = "VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06189";
899 dynamic_rendering_06190 = "VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06190";
900 dynamic_rendering_06198 = "VUID-vkCmdDrawMeshTasksIndirectNV-renderPass-06198";
ziga-lunarg50188622022-03-26 01:18:32 +0100901 dynamic_sample_locations = "VUID-vkCmdDrawMeshTasksIndirectNV-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +0200902 primitives_generated = "VUID-vkCmdDrawMeshTasksIndirectNV-primitivesGeneratedQueryWithRasterizerDiscard-06708";
ziga-lunargf4068b12022-04-05 13:58:59 +0200903 primitives_generated_streams = "VUID-vkCmdDrawMeshTasksIndirectNV-primitivesGeneratedQueryWithNonZeroStreams-06709";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700904 }
905};
906
907struct DispatchVuidsCmdDrawMeshTasksIndirectCountNV : DrawDispatchVuid {
908 DispatchVuidsCmdDrawMeshTasksIndirectCountNV() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700909 pipeline_bound = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02700";
910 dynamic_state = "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02701";
911 compatible_pipeline = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02697";
912 render_pass_compatible = "VUID-vkCmdDrawMeshTasksIndirectCountNV-renderPass-02684";
913 subpass_index = "VUID-vkCmdDrawMeshTasksIndirectCountNV-subpass-02685";
914 sample_location = "VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-02689";
915 linear_sampler = "VUID-vkCmdDrawMeshTasksIndirectCountNV-magFilter-04553";
916 cubic_sampler = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02692";
917 indirect_protected_cb = "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02711";
918 indirect_contiguous_memory = "VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-02708";
919 indirect_buffer_bit = "VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-02709";
920 viewport_count = "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-03417";
921 scissor_count = "VUID-vkCmdDrawMeshTasksIndirectCountNV-scissorCount-03418";
922 viewport_scissor_count = "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-03419";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700923 corner_sampled_address_mode = "VUID-vkCmdDrawMeshTasksIndirectCountNV-flags-02696";
924 subpass_input = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02686";
925 imageview_atomic = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700926 push_constants_set = "VUID-vkCmdDrawMeshTasksIndirectCountNV-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100927 image_subresources_render_pass_write = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06537";
928 image_subresources_subpass_read = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06538";
929 image_subresources_subpass_write = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700930 descriptor_valid = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02699";
931 sampler_imageview_type = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02702";
932 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02703";
933 sampler_bias_offset = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02704";
934 dynamic_state_setting_commands = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700935 rasterization_samples = "VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizationSamples-04740";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700936 unprotected_command_buffer = "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02707";
937 max_multiview_instance_index = "VUID-vkCmdDrawMeshTasksIndirectCountNV-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700938 img_filter_cubic = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700939 filter_cubic = "VUID-vkCmdDrawMeshTasksIndirectCountNV-filterCubic-02694";
940 filter_cubic_min_max = "VUID-vkCmdDrawMeshTasksIndirectCountNV-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000941 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawMeshTasksIndirectCountNV-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600942 rasterizer_discard_enable = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04876";
943 depth_bias_enable = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04877";
944 logic_op = "VUID-vkCmdDrawMeshTasksIndirectCountNV-logicOp-04878";
Piers Daniell924cd832021-05-18 13:48:47 -0600945 vertex_input = kVUID_Core_CmdDrawMeshTasksIndirectCountNV_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200946 blend_enable = "VUID-vkCmdDrawMeshTasksIndirectCountNV-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100947 color_write_enable = "VUID-vkCmdDrawMeshTasksIndirectCountNV-attachmentCount-06667";
stusmithedc4e392021-12-24 15:22:16 +0000948 dynamic_rendering_view_mask = "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewMask-06178";
949 dynamic_rendering_color_count = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06179";
950 dynamic_rendering_color_formats = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06180";
951 dynamic_rendering_depth_format = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06181";
952 dynamic_rendering_stencil_format = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06182";
953 dynamic_rendering_fsr = "VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06183";
954 dynamic_rendering_fdm = "VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06184";
955 dynamic_rendering_color_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06185";
956 dynamic_rendering_depth_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06186";
957 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06187";
958 dynamic_rendering_multi_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06188";
959 dynamic_rendering_06189 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06189";
960 dynamic_rendering_06190 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06190";
961 dynamic_rendering_06198 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-renderPass-06198";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200962 storage_image_read_without_format = "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-06424";
963 storage_image_write_without_format = "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200964 depth_compare_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06479";
Aaron Hagan80034ea2021-12-23 11:24:09 -0500965 dynamic_rendering_view_mask = "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewMask-06178";
966 dynamic_rendering_color_count = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06179";
967 dynamic_rendering_color_formats = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06180";
968 dynamic_rendering_depth_format = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06181";
969 dynamic_rendering_stencil_format = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06182";
970 dynamic_rendering_fsr = "VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06183";
971 dynamic_rendering_fdm = "VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06184";
972 dynamic_rendering_color_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06185";
973 dynamic_rendering_depth_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06186";
974 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06187";
Jeremy Gebben09c1a072022-02-08 09:42:47 -0700975 dynamic_rendering_multi_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06188";
Aaron Hagan80034ea2021-12-23 11:24:09 -0500976 dynamic_rendering_06189 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06189";
977 dynamic_rendering_06190 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06190";
978 dynamic_rendering_06198 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-renderPass-06198";
ziga-lunarg50188622022-03-26 01:18:32 +0100979 dynamic_sample_locations = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +0200980 primitives_generated = "VUID-vkCmdDrawMeshTasksIndirectCountNV-primitivesGeneratedQueryWithRasterizerDiscard-06708";
ziga-lunargf4068b12022-04-05 13:58:59 +0200981 primitives_generated_streams = "VUID-vkCmdDrawMeshTasksIndirectCountNV-primitivesGeneratedQueryWithNonZeroStreams-06709";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700982 }
983};
984
985struct DispatchVuidsCmdDrawIndirectByteCountEXT: DrawDispatchVuid {
986 DispatchVuidsCmdDrawIndirectByteCountEXT() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700987 pipeline_bound = "VUID-vkCmdDrawIndirectByteCountEXT-None-02700";
988 dynamic_state = "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02701";
989 vertex_binding = "VUID-vkCmdDrawIndirectByteCountEXT-None-04007";
990 vertex_binding_null = "VUID-vkCmdDrawIndirectByteCountEXT-None-04008";
991 compatible_pipeline = "VUID-vkCmdDrawIndirectByteCountEXT-None-02697";
992 render_pass_compatible = "VUID-vkCmdDrawIndirectByteCountEXT-renderPass-02684";
993 subpass_index = "VUID-vkCmdDrawIndirectByteCountEXT-subpass-02685";
994 sample_location = "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-02689";
995 linear_sampler = "VUID-vkCmdDrawIndirectByteCountEXT-magFilter-04553";
996 cubic_sampler = "VUID-vkCmdDrawIndirectByteCountEXT-None-02692";
997 indirect_protected_cb = "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02646";
sfricke-samsungb091d4e2021-04-18 23:15:59 -0700998 indirect_contiguous_memory = "VUID-vkCmdDrawIndirectByteCountEXT-counterBuffer-04567",
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700999 indirect_buffer_bit = "VUID-vkCmdDrawIndirectByteCountEXT-counterBuffer-02290";
1000 viewport_count = "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-03417";
1001 scissor_count = "VUID-vkCmdDrawIndirectByteCountEXT-scissorCount-03418";
1002 viewport_scissor_count = "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-03419";
1003 primitive_topology = "VUID-vkCmdDrawIndirectByteCountEXT-primitiveTopology-03420";
1004 corner_sampled_address_mode = "VUID-vkCmdDrawIndirectByteCountEXT-flags-02696";
1005 subpass_input = "VUID-vkCmdDrawIndirectByteCountEXT-None-02686";
1006 imageview_atomic = "VUID-vkCmdDrawIndirectByteCountEXT-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -07001007 push_constants_set = "VUID-vkCmdDrawIndirectByteCountEXT-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +01001008 image_subresources_render_pass_write = "VUID-vkCmdDrawIndirectByteCountEXT-None-06537";
1009 image_subresources_subpass_read = "VUID-vkCmdDrawIndirectByteCountEXT-None-06538";
1010 image_subresources_subpass_write = "VUID-vkCmdDrawIndirectByteCountEXT-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001011 descriptor_valid = "VUID-vkCmdDrawIndirectByteCountEXT-None-02699";
1012 sampler_imageview_type = "VUID-vkCmdDrawIndirectByteCountEXT-None-02702";
1013 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawIndirectByteCountEXT-None-02703";
1014 sampler_bias_offset = "VUID-vkCmdDrawIndirectByteCountEXT-None-02704";
1015 vertex_binding_attribute = "VUID-vkCmdDrawIndirectByteCountEXT-None-02721";
1016 dynamic_state_setting_commands = "VUID-vkCmdDrawIndirectByteCountEXT-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -07001017 rasterization_samples = "VUID-vkCmdDrawIndirectByteCountEXT-rasterizationSamples-04740";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001018 unprotected_command_buffer = "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02707";
1019 max_multiview_instance_index = "VUID-vkCmdDrawIndirectByteCountEXT-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -07001020 img_filter_cubic = "VUID-vkCmdDrawIndirectByteCountEXT-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001021 filter_cubic = "VUID-vkCmdDrawIndirectByteCountEXT-filterCubic-02694";
1022 filter_cubic_min_max = "VUID-vkCmdDrawIndirectByteCountEXT-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +00001023 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawIndirectByteCountEXT-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -06001024 patch_control_points = "VUID-vkCmdDrawIndirectByteCountEXT-None-04875";
1025 rasterizer_discard_enable = "VUID-vkCmdDrawIndirectByteCountEXT-None-04876";
1026 depth_bias_enable = "VUID-vkCmdDrawIndirectByteCountEXT-None-04877";
1027 logic_op = "VUID-vkCmdDrawIndirectByteCountEXT-logicOp-04878";
1028 primitive_restart_enable = "VUID-vkCmdDrawIndirectByteCountEXT-None-04879";
1029 vertex_input_binding_stride = "VUID-vkCmdDrawIndirectByteCountEXT-pStrides-04884";
1030 vertex_input = kVUID_Core_CmdDrawIndirectByteCountEXT_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +02001031 blend_enable = "VUID-vkCmdDrawIndirectByteCountEXT-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +01001032 color_write_enable = "VUID-vkCmdDrawIndirectByteCountEXT-attachmentCount-06667";
stusmithedc4e392021-12-24 15:22:16 +00001033 dynamic_rendering_view_mask = "VUID-vkCmdDrawIndirectByteCountEXT-viewMask-06178";
1034 dynamic_rendering_color_count = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06179";
1035 dynamic_rendering_color_formats = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06180";
1036 dynamic_rendering_depth_format = "VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06181";
1037 dynamic_rendering_stencil_format = "VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06182";
1038 dynamic_rendering_fsr = "VUID-vkCmdDrawIndirectByteCountEXT-imageView-06183";
1039 dynamic_rendering_fdm = "VUID-vkCmdDrawIndirectByteCountEXT-imageView-06184";
1040 dynamic_rendering_color_sample = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06185";
1041 dynamic_rendering_depth_sample = "VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06186";
1042 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06187";
1043 dynamic_rendering_multi_sample = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06188";
1044 dynamic_rendering_06189 = "VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06189";
1045 dynamic_rendering_06190 = "VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06190";
1046 dynamic_rendering_06198 = "VUID-vkCmdDrawIndirectByteCountEXT-renderPass-06198";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +02001047 storage_image_read_without_format = "VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-06424";
1048 storage_image_write_without_format = "VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +02001049 depth_compare_sample = "VUID-vkCmdDrawIndirectByteCountEXT-None-06479";
Aaron Hagan80034ea2021-12-23 11:24:09 -05001050 dynamic_rendering_view_mask = "VUID-vkCmdDrawIndirectByteCountEXT-viewMask-06178";
1051 dynamic_rendering_color_count = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06179";
1052 dynamic_rendering_color_formats = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06180";
1053 dynamic_rendering_depth_format = "VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06181";
1054 dynamic_rendering_stencil_format = "VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06182";
1055 dynamic_rendering_fsr = "VUID-vkCmdDrawIndirectByteCountEXT-imageView-06183";
1056 dynamic_rendering_fdm = "VUID-vkCmdDrawIndirectByteCountEXT-imageView-06184";
1057 dynamic_rendering_color_sample = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06185";
1058 dynamic_rendering_depth_sample = "VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06186";
1059 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06187";
Jeremy Gebben09c1a072022-02-08 09:42:47 -07001060 dynamic_rendering_multi_sample = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06188";
Aaron Hagan80034ea2021-12-23 11:24:09 -05001061 dynamic_rendering_06189 = "VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06189";
1062 dynamic_rendering_06190 = "VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06190";
1063 dynamic_rendering_06198 = "VUID-vkCmdDrawIndirectByteCountEXT-renderPass-06198";
ziga-lunarg50188622022-03-26 01:18:32 +01001064 dynamic_sample_locations = "VUID-vkCmdDrawIndirectByteCountEXT-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +02001065 primitives_generated = "VUID-vkCmdDrawIndirectByteCountEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708";
ziga-lunargf4068b12022-04-05 13:58:59 +02001066 primitives_generated_streams = "VUID-vkCmdDrawIndirectByteCountEXT-primitivesGeneratedQueryWithNonZeroStreams-06709";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001067 }
1068};
1069
1070struct DispatchVuidsCmdDispatchBase: DrawDispatchVuid {
1071 DispatchVuidsCmdDispatchBase() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001072 pipeline_bound = "VUID-vkCmdDispatchBase-None-02700";
Mark Lobodzinski02d37552020-12-28 13:29:46 -07001073 dynamic_state = "VUID-vkCmdDispatchBase-commandBuffer-02701";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001074 compatible_pipeline = "VUID-vkCmdDispatchBase-None-02697";
1075 linear_sampler = "VUID-vkCmdDispatchBase-magFilter-04553";
1076 cubic_sampler = "VUID-vkCmdDispatchBase-None-02692";
1077 corner_sampled_address_mode = "VUID-vkCmdDispatchBase-flags-02696";
1078 imageview_atomic = "VUID-vkCmdDispatchBase-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -07001079 push_constants_set = "VUID-vkCmdDispatchBase-maintenance4-06425";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001080 descriptor_valid = "VUID-vkCmdDispatchBase-None-02699";
1081 sampler_imageview_type = "VUID-vkCmdDispatchBase-None-02702";
1082 sampler_implicitLod_dref_proj = "VUID-vkCmdDispatchBase-None-02703";
1083 sampler_bias_offset = "VUID-vkCmdDispatchBase-None-02704";
1084 dynamic_state_setting_commands = "VUID-vkCmdDispatchBase-None-02859";
1085 unprotected_command_buffer = "VUID-vkCmdDispatchBase-commandBuffer-02707";
sfricke-samsunge79d0892021-06-17 08:56:22 -07001086 protected_command_buffer = "VUID-vkCmdDispatchBase-commandBuffer-02712";
Mark Lobodzinskif786b412020-11-30 12:16:17 -07001087 img_filter_cubic = "VUID-vkCmdDispatchBase-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001088 filter_cubic = "VUID-vkCmdDispatchBase-filterCubic-02694";
1089 filter_cubic_min_max = "VUID-vkCmdDispatchBase-filterCubicMinmax-02695";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +02001090 storage_image_read_without_format = "VUID-vkCmdDispatchBase-OpTypeImage-06424";
1091 storage_image_write_without_format = "VUID-vkCmdDispatchBase-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +02001092 depth_compare_sample = "VUID-vkCmdDispatchBase-None-06479";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001093 }
1094};
1095
1096// 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 -07001097static const std::map<CMD_TYPE, DrawDispatchVuid> kDrawdispatchVuid = {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001098 {CMD_DRAW, DispatchVuidsCmdDraw()},
Tony-LunarG4490de42021-06-21 15:49:19 -06001099 {CMD_DRAWMULTIEXT, DispatchVuidsCmdDrawMultiEXT()},
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001100 {CMD_DRAWINDEXED, DispatchVuidsCmdDrawIndexed()},
Tony-LunarG4490de42021-06-21 15:49:19 -06001101 {CMD_DRAWMULTIINDEXEDEXT, DispatchVuidsCmdDrawMultiIndexedEXT()},
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001102 {CMD_DRAWINDIRECT, DispatchVuidsCmdDrawIndirect()},
1103 {CMD_DRAWINDEXEDINDIRECT, DispatchVuidsCmdDrawIndexedIndirect()},
1104 {CMD_DISPATCH, DispatchVuidsCmdDispatch()},
1105 {CMD_DISPATCHINDIRECT, DispatchVuidsCmdDispatchIndirect()},
1106 {CMD_DRAWINDIRECTCOUNT, DispatchVuidsCmdDrawIndirectCount()},
sfricke-samsung85584a72021-09-30 21:43:38 -07001107 {CMD_DRAWINDIRECTCOUNTKHR, DispatchVuidsCmdDrawIndirectCount()},
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001108 {CMD_DRAWINDEXEDINDIRECTCOUNT, DispatchVuidsCmdDrawIndexedIndirectCount()},
sfricke-samsung85584a72021-09-30 21:43:38 -07001109 {CMD_DRAWINDEXEDINDIRECTCOUNTKHR, DispatchVuidsCmdDrawIndexedIndirectCount()},
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001110 {CMD_TRACERAYSNV, DispatchVuidsCmdTraceRaysNV()},
1111 {CMD_TRACERAYSKHR, DispatchVuidsCmdTraceRaysKHR()},
1112 {CMD_TRACERAYSINDIRECTKHR, DispatchVuidsCmdTraceRaysIndirectKHR()},
sfricke-samsungf91881c2022-03-31 01:12:00 -05001113 {CMD_TRACERAYSINDIRECT2KHR, DispatchVuidsCmdTraceRaysIndirect2KHR()},
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001114 {CMD_DRAWMESHTASKSNV, DispatchVuidsCmdDrawMeshTasksNV()},
1115 {CMD_DRAWMESHTASKSINDIRECTNV, DispatchVuidsCmdDrawMeshTasksIndirectNV()},
1116 {CMD_DRAWMESHTASKSINDIRECTCOUNTNV, DispatchVuidsCmdDrawMeshTasksIndirectCountNV()},
1117 {CMD_DRAWINDIRECTBYTECOUNTEXT, DispatchVuidsCmdDrawIndirectByteCountEXT()},
1118 {CMD_DISPATCHBASE, DispatchVuidsCmdDispatchBase()},
sfricke-samsung85584a72021-09-30 21:43:38 -07001119 {CMD_DISPATCHBASEKHR, DispatchVuidsCmdDispatchBase()},
Spencer Fricke507600b2020-03-22 13:23:06 -07001120 // Used if invalid cmd_type is used
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001121 {CMD_NONE, DrawDispatchVuid()}
Spencer Fricke507600b2020-03-22 13:23:06 -07001122};
1123// clang-format on
1124
1125// Getter function to provide kVUIDUndefined in case an invalid cmd_type is passed in
1126const DrawDispatchVuid &CoreChecks::GetDrawDispatchVuid(CMD_TYPE cmd_type) const {
Nathaniel Cesarioce9b4812020-12-17 08:55:28 -07001127 if (kDrawdispatchVuid.find(cmd_type) != kDrawdispatchVuid.cend()) {
1128 return kDrawdispatchVuid.at(cmd_type);
Spencer Fricke507600b2020-03-22 13:23:06 -07001129 } else {
Nathaniel Cesarioce9b4812020-12-17 08:55:28 -07001130 return kDrawdispatchVuid.at(CMD_NONE);
Spencer Fricke507600b2020-03-22 13:23:06 -07001131 }
1132}
1133
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001134// Generic function to handle validation for all CmdDraw* type functions
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001135bool CoreChecks::ValidateCmdDrawType(const CMD_BUFFER_STATE &cb_state, bool indexed, VkPipelineBindPoint bind_point,
sfricke-samsung85584a72021-09-30 21:43:38 -07001136 CMD_TYPE cmd_type) const {
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001137 bool skip = false;
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001138 skip |= ValidateCmd(&cb_state, cmd_type);
1139 skip |= ValidateCmdBufDrawState(&cb_state, cmd_type, indexed, bind_point);
1140 skip |= ValidateCmdRayQueryState(&cb_state, cmd_type, bind_point);
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001141 return skip;
1142}
1143
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001144bool CoreChecks::ValidateCmdDrawInstance(const CMD_BUFFER_STATE &cb_node, uint32_t instanceCount, uint32_t firstInstance,
sfricke-samsung85584a72021-09-30 21:43:38 -07001145 CMD_TYPE cmd_type) const {
locke-lunarg3fa463a2020-10-23 16:39:04 -06001146 bool skip = false;
1147 const DrawDispatchVuid vuid = GetDrawDispatchVuid(cmd_type);
sfricke-samsung85584a72021-09-30 21:43:38 -07001148 const char *caller = CommandTypeString(cmd_type);
locke-lunarg3fa463a2020-10-23 16:39:04 -06001149
1150 // Verify maxMultiviewInstanceIndex
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001151 if (cb_node.activeRenderPass && cb_node.activeRenderPass->renderPass() && enabled_features.multiview_features.multiview &&
locke-lunarg3fa463a2020-10-23 16:39:04 -06001152 ((instanceCount + firstInstance) > phys_dev_ext_props.multiview_props.maxMultiviewInstanceIndex)) {
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001153 LogObjectList objlist(cb_node.Handle());
1154 objlist.add(cb_node.activeRenderPass->Handle());
locke-lunarg3fa463a2020-10-23 16:39:04 -06001155 skip |= LogError(objlist, vuid.max_multiview_instance_index,
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001156 "%s: renderpass %s multiview is enabled, and maxMultiviewInstanceIndex: %" PRIu32
1157 ", but instanceCount: %" PRIu32 "and firstInstance: %" PRIu32 ".",
1158 caller, report_data->FormatHandle(cb_node.activeRenderPass->Handle()).c_str(),
locke-lunarg3fa463a2020-10-23 16:39:04 -06001159 phys_dev_ext_props.multiview_props.maxMultiviewInstanceIndex, instanceCount, firstInstance);
1160 }
1161 return skip;
1162}
1163
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001164bool CoreChecks::PreCallValidateCmdDraw(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount,
Jeff Bolz5c801d12019-10-09 10:38:45 -05001165 uint32_t firstVertex, uint32_t firstInstance) const {
locke-lunarg3fa463a2020-10-23 16:39:04 -06001166 bool skip = false;
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001167 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001168 skip |= ValidateCmdDrawInstance(*cb_state, instanceCount, firstInstance, CMD_DRAW);
1169 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAW);
locke-lunarg3fa463a2020-10-23 16:39:04 -06001170 return skip;
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001171}
1172
Tony-LunarG4490de42021-06-21 15:49:19 -06001173bool CoreChecks::PreCallValidateCmdDrawMultiEXT(VkCommandBuffer commandBuffer, uint32_t drawCount,
1174 const VkMultiDrawInfoEXT *pVertexInfo, uint32_t instanceCount,
1175 uint32_t firstInstance, uint32_t stride) const {
1176 bool skip = false;
1177 if (!enabled_features.multi_draw_features.multiDraw) {
1178 skip |= LogError(commandBuffer, "VUID-vkCmdDrawMultiEXT-None-04933",
1179 "vkCmdDrawMultiEXT(): The multiDraw feature must be enabled to "
1180 "call this command.");
1181 }
1182 if (drawCount > phys_dev_ext_props.multi_draw_props.maxMultiDrawCount) {
1183 skip |= LogError(commandBuffer, "VUID-vkCmdDrawMultiEXT-drawCount-04934",
1184 "vkCmdDrawMultiEXT(): parameter, uint32_t drawCount (%" PRIu32
1185 ") must be less than VkPhysicalDeviceMultiDrawPropertiesEXT::maxMultiDrawCount (%" PRIu32 ").",
1186 drawCount, phys_dev_ext_props.multi_draw_props.maxMultiDrawCount);
1187 }
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001188 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001189 skip |= ValidateCmdDrawInstance(*cb_state, instanceCount, firstInstance, CMD_DRAWMULTIEXT);
1190 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWMULTIEXT);
Tony-LunarG4490de42021-06-21 15:49:19 -06001191 return skip;
1192}
1193
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001194bool CoreChecks::ValidateCmdDrawIndexedBufferSize(const CMD_BUFFER_STATE &cb_state, uint32_t indexCount, uint32_t firstIndex,
1195 const char *caller, const char *first_index_vuid) const {
Tony-LunarG4490de42021-06-21 15:49:19 -06001196 bool skip = false;
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001197 if (cb_state.status & CBSTATUS_INDEX_BUFFER_BOUND) {
Tony-LunarG4490de42021-06-21 15:49:19 -06001198 unsigned int index_size = 0;
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001199 const auto &index_buffer_binding = cb_state.index_buffer_binding;
Tony-LunarG4490de42021-06-21 15:49:19 -06001200 if (index_buffer_binding.index_type == VK_INDEX_TYPE_UINT16) {
1201 index_size = 2;
1202 }
1203 else if (index_buffer_binding.index_type == VK_INDEX_TYPE_UINT32) {
1204 index_size = 4;
1205 }
1206 else if (index_buffer_binding.index_type == VK_INDEX_TYPE_UINT8_EXT) {
1207 index_size = 1;
1208 }
1209 VkDeviceSize end_offset = (index_size * (static_cast<VkDeviceSize>(firstIndex) + indexCount)) + index_buffer_binding.offset;
1210 if (end_offset > index_buffer_binding.size) {
1211 skip |= LogError(index_buffer_binding.buffer_state->buffer(), first_index_vuid,
1212 "%s: index size (%u) * (firstIndex (%u) + indexCount (%u)) "
1213 "+ binding offset (%" PRIuLEAST64 ") = an ending offset of %" PRIuLEAST64
1214 " bytes, which is greater than the index buffer size (%" PRIuLEAST64 ").",
1215 caller, index_size, firstIndex, indexCount, index_buffer_binding.offset, end_offset,
1216 index_buffer_binding.size);
1217 }
1218 }
1219 return skip;
1220}
1221
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001222bool CoreChecks::PreCallValidateCmdDrawIndexed(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount,
Jeff Bolz5c801d12019-10-09 10:38:45 -05001223 uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance) const {
locke-lunarg3fa463a2020-10-23 16:39:04 -06001224 bool skip = false;
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001225 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001226 skip |= ValidateCmdDrawInstance(*cb_state, instanceCount, firstInstance, CMD_DRAWINDEXED);
1227 skip |= ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWINDEXED);
1228 skip |= ValidateCmdDrawIndexedBufferSize(*cb_state, indexCount, firstIndex, "vkCmdDrawIndexed()",
Tony-LunarG4490de42021-06-21 15:49:19 -06001229 "VUID-vkCmdDrawIndexed-firstIndex-04932");
1230 return skip;
1231}
1232
1233bool CoreChecks::PreCallValidateCmdDrawMultiIndexedEXT(VkCommandBuffer commandBuffer, uint32_t drawCount,
1234 const VkMultiDrawIndexedInfoEXT *pIndexInfo, uint32_t instanceCount,
1235 uint32_t firstInstance, uint32_t stride,
1236 const int32_t *pVertexOffset) const {
1237 bool skip = false;
1238 if (!enabled_features.multi_draw_features.multiDraw) {
1239 skip |= LogError(commandBuffer, "VUID-vkCmdDrawMultiIndexedEXT-None-04937",
1240 "vkCmdDrawMultiIndexedEXT(): The multiDraw feature must be enabled to "
1241 "call this command.");
1242 }
1243 if (drawCount > phys_dev_ext_props.multi_draw_props.maxMultiDrawCount) {
1244 skip |= LogError(commandBuffer, "VUID-vkCmdDrawMultiIndexedEXT-drawCount-04939",
1245 "vkCmdDrawMultiIndexedEXT(): parameter, uint32_t drawCount (0x%" PRIu32
1246 ") must be less than VkPhysicalDeviceMultiDrawPropertiesEXT::maxMultiDrawCount (0x%" PRIu32 ").",
1247 drawCount, phys_dev_ext_props.multi_draw_props.maxMultiDrawCount);
1248 }
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001249 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001250 skip |= ValidateCmdDrawInstance(*cb_state, instanceCount, firstInstance, CMD_DRAWMULTIINDEXEDEXT);
1251 skip |= ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWMULTIINDEXEDEXT);
Ricardo Garcia27a26f52021-07-13 15:52:14 +02001252 const auto info_bytes = reinterpret_cast<const char *>(pIndexInfo);
Tony-LunarG4490de42021-06-21 15:49:19 -06001253 for (uint32_t i = 0; i < drawCount; i++) {
Ricardo Garcia27a26f52021-07-13 15:52:14 +02001254 const auto info_ptr = reinterpret_cast<const VkMultiDrawIndexedInfoEXT *>(info_bytes + i * stride);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001255 skip |= ValidateCmdDrawIndexedBufferSize(*cb_state, info_ptr->indexCount, info_ptr->firstIndex,
Tony-LunarG4490de42021-06-21 15:49:19 -06001256 "vkCmdDrawMultiIndexedEXT()", "VUID-vkCmdDrawMultiIndexedEXT-firstIndex-04938");
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001257 }
1258 return skip;
1259}
1260
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001261bool CoreChecks::PreCallValidateCmdDrawIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1262 uint32_t drawCount, uint32_t stride) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001263 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001264 bool skip = ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWINDIRECT);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001265 auto buffer_state = Get<BUFFER_STATE>(buffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001266 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, CMD_DRAWINDIRECT);
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001267 if (drawCount > 1) {
Lockee68ac652019-05-06 10:17:33 -06001268 skip |= ValidateCmdDrawStrideWithStruct(commandBuffer, "VUID-vkCmdDrawIndirect-drawCount-00476", stride,
1269 "VkDrawIndirectCommand", sizeof(VkDrawIndirectCommand));
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001270 skip |= ValidateCmdDrawStrideWithBuffer(commandBuffer, "VUID-vkCmdDrawIndirect-drawCount-00488", stride,
1271 "VkDrawIndirectCommand", sizeof(VkDrawIndirectCommand), drawCount, offset,
Jeremy Gebben9f537102021-10-05 16:37:12 -06001272 buffer_state.get());
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001273 } else if ((drawCount == 1) && (offset + sizeof(VkDrawIndirectCommand)) > buffer_state->createInfo.size) {
1274 skip |= LogError(commandBuffer, "VUID-vkCmdDrawIndirect-drawCount-00487",
Jeremy Gebbenda6b48f2021-05-13 10:46:18 -06001275 "CmdDrawIndirect: drawCount equals 1 and (offset + sizeof(VkDrawIndirectCommand)) (%" PRIu64 ") is not less than "
1276 "or equal to the size of buffer (%" PRIu64 ").",
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001277 (offset + sizeof(VkDrawIndirectCommand)), buffer_state->createInfo.size);
Lockee68ac652019-05-06 10:17:33 -06001278 }
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001279 // TODO: If the drawIndirectFirstInstance feature is not enabled, all the firstInstance members of the
1280 // VkDrawIndirectCommand structures accessed by this command must be 0, which will require access to the contents of 'buffer'.
1281 return skip;
1282}
1283
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001284bool CoreChecks::PreCallValidateCmdDrawIndexedIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001285 uint32_t drawCount, uint32_t stride) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001286 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001287 bool skip = ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWINDEXEDINDIRECT);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001288 auto buffer_state = Get<BUFFER_STATE>(buffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001289 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, CMD_DRAWINDEXEDINDIRECT);
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001290 if (drawCount > 1) {
Lockee68ac652019-05-06 10:17:33 -06001291 skip |= ValidateCmdDrawStrideWithStruct(commandBuffer, "VUID-vkCmdDrawIndexedIndirect-drawCount-00528", stride,
1292 "VkDrawIndexedIndirectCommand", sizeof(VkDrawIndexedIndirectCommand));
1293 skip |= ValidateCmdDrawStrideWithBuffer(commandBuffer, "VUID-vkCmdDrawIndexedIndirect-drawCount-00540", stride,
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001294 "VkDrawIndexedIndirectCommand", sizeof(VkDrawIndexedIndirectCommand), drawCount,
Jeremy Gebben9f537102021-10-05 16:37:12 -06001295 offset, buffer_state.get());
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001296 } else if ((drawCount == 1) && (offset + sizeof(VkDrawIndexedIndirectCommand)) > buffer_state->createInfo.size) {
1297 skip |= LogError(
1298 commandBuffer, "VUID-vkCmdDrawIndexedIndirect-drawCount-00539",
Jeremy Gebbenda6b48f2021-05-13 10:46:18 -06001299 "CmdDrawIndexedIndirect: drawCount equals 1 and (offset + sizeof(VkDrawIndexedIndirectCommand)) (%" PRIu64 ") is not less than "
1300 "or equal to the size of buffer (%" PRIu64 ").",
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001301 (offset + sizeof(VkDrawIndexedIndirectCommand)), buffer_state->createInfo.size);
Lockee68ac652019-05-06 10:17:33 -06001302 }
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001303 // TODO: If the drawIndirectFirstInstance feature is not enabled, all the firstInstance members of the
1304 // VkDrawIndexedIndirectCommand structures accessed by this command must be 0, which will require access to the contents of
1305 // 'buffer'.
1306 return skip;
1307}
1308
Jeff Bolz5c801d12019-10-09 10:38:45 -05001309bool CoreChecks::PreCallValidateCmdDispatch(VkCommandBuffer commandBuffer, uint32_t x, uint32_t y, uint32_t z) const {
Lockef39c0772019-04-03 14:40:02 -06001310 bool skip = false;
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001311 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001312 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_COMPUTE, CMD_DISPATCH);
Lockef39c0772019-04-03 14:40:02 -06001313 return skip;
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001314}
1315
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001316bool CoreChecks::ValidateBaseGroups(const CMD_BUFFER_STATE &cb_state, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ,
Tony-LunarGf825e6d2020-12-16 13:05:17 -07001317 const char *apiName) const {
1318 bool skip = false;
1319 if (baseGroupX || baseGroupY || baseGroupZ) {
Tony-LunarGf825e6d2020-12-16 13:05:17 -07001320 const auto lv_bind_point = ConvertToLvlBindPoint(VK_PIPELINE_BIND_POINT_COMPUTE);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001321 const auto *pipeline_state = cb_state.lastBound[lv_bind_point].pipeline_state;
Jeremy Gebben11af9792021-08-20 10:20:09 -06001322 if (pipeline_state && !(pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_DISPATCH_BASE)) {
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001323 skip |= LogError(cb_state.Handle(), "VUID-vkCmdDispatchBase-baseGroupX-00427",
Tony-LunarGf825e6d2020-12-16 13:05:17 -07001324 "%s(): If any of baseGroupX, baseGroupY, or baseGroupZ are not zero, then the bound compute pipeline "
1325 "must have been created with the VK_PIPELINE_CREATE_DISPATCH_BASE flag",
1326 apiName);
1327 }
1328 }
1329 return skip;
1330}
1331
locke-lunarg25b6c352020-08-06 17:44:18 -06001332bool CoreChecks::PreCallValidateCmdDispatchBase(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY,
1333 uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY,
1334 uint32_t groupCountZ) const {
1335 bool skip = false;
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001336 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001337 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_COMPUTE, CMD_DISPATCHBASE);
1338 skip |= ValidateBaseGroups(*cb_state, baseGroupX, baseGroupY, baseGroupZ, "vkCmdDispatchBase()");
locke-lunarg25b6c352020-08-06 17:44:18 -06001339 return skip;
1340}
1341
1342bool CoreChecks::PreCallValidateCmdDispatchBaseKHR(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY,
1343 uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY,
1344 uint32_t groupCountZ) const {
1345 bool skip = false;
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001346 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001347 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_COMPUTE, CMD_DISPATCHBASEKHR);
1348 skip |= ValidateBaseGroups(*cb_state, baseGroupX, baseGroupY, baseGroupZ, "vkCmdDispatchBaseKHR()");
locke-lunarg25b6c352020-08-06 17:44:18 -06001349 return skip;
1350}
1351
Jeff Bolz5c801d12019-10-09 10:38:45 -05001352bool CoreChecks::PreCallValidateCmdDispatchIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001353 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001354 bool skip = ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_COMPUTE, CMD_DISPATCHINDIRECT);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001355 auto buffer_state = Get<BUFFER_STATE>(buffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001356 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, CMD_DISPATCHINDIRECT);
Tony-LunarGda555b52021-01-06 13:43:49 -07001357 if ((offset + sizeof(VkDispatchIndirectCommand)) > buffer_state->createInfo.size) {
1358 skip |= LogError(commandBuffer, "VUID-vkCmdDispatchIndirect-offset-00407",
1359 "vkCmdDispatchIndirect(): The sum of offset and the size of VkDispatchIndirectCommand is greater than the "
1360 "size of the buffer");
1361 }
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001362 return skip;
1363}
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001364bool CoreChecks::ValidateCmdDrawIndirectCount(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1365 VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount,
sfricke-samsung85584a72021-09-30 21:43:38 -07001366 uint32_t stride, CMD_TYPE cmd_type) const {
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001367 bool skip = false;
sfricke-samsung85584a72021-09-30 21:43:38 -07001368 const char *apiName = CommandTypeString(cmd_type);
Nathaniel Cesario7f231f12021-03-25 12:10:58 -06001369 if ((device_extensions.vk_khr_draw_indirect_count != kEnabledByCreateinfo) &&
1370 ((api_version >= VK_API_VERSION_1_2) && (enabled_features.core12.drawIndirectCount == VK_FALSE))) {
Shannon McPherson2c793ba2020-08-28 12:13:24 -06001371 skip |= LogError(commandBuffer, "VUID-vkCmdDrawIndirectCount-None-04445",
sfricke-samsung27c70722020-05-02 08:42:39 -07001372 "%s(): Starting in Vulkan 1.2 the VkPhysicalDeviceVulkan12Features::drawIndirectCount must be enabled to "
1373 "call this command.",
1374 apiName);
1375 }
AndreyVK_D3Db2753e12021-07-21 12:24:03 +03001376 skip |= ValidateCmdDrawStrideWithStruct(commandBuffer, "VUID-vkCmdDrawIndirectCount-stride-03110", stride,
1377 "VkDrawIndirectCommand", sizeof(VkDrawIndirectCommand));
Lockee68ac652019-05-06 10:17:33 -06001378 if (maxDrawCount > 1) {
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001379 auto buffer_state = Get<BUFFER_STATE>(buffer);
AndreyVK_D3Db2753e12021-07-21 12:24:03 +03001380 skip |= ValidateCmdDrawStrideWithBuffer(commandBuffer, "VUID-vkCmdDrawIndirectCount-maxDrawCount-03111", stride,
1381 "VkDrawIndirectCommand", sizeof(VkDrawIndirectCommand), maxDrawCount, offset,
Jeremy Gebben9f537102021-10-05 16:37:12 -06001382 buffer_state.get());
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001383 }
1384
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001385 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001386 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, cmd_type);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001387 auto buffer_state = Get<BUFFER_STATE>(buffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001388 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, cmd_type);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001389 auto count_buffer_state = Get<BUFFER_STATE>(countBuffer);
Jeremy Gebben9f537102021-10-05 16:37:12 -06001390 skip |= ValidateMemoryIsBoundToBuffer(count_buffer_state.get(), apiName, "VUID-vkCmdDrawIndirectCount-countBuffer-02714");
Tony-LunarG83544c72020-01-17 12:30:19 -07001391 skip |=
Jeremy Gebben9f537102021-10-05 16:37:12 -06001392 ValidateBufferUsageFlags(count_buffer_state.get(), VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT, true,
Tony-LunarG83544c72020-01-17 12:30:19 -07001393 "VUID-vkCmdDrawIndirectCount-countBuffer-02715", apiName, "VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT");
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001394 return skip;
1395}
1396
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001397bool CoreChecks::PreCallValidateCmdDrawIndirectCountKHR(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1398 VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount,
1399 uint32_t stride) const {
Tony-LunarG83544c72020-01-17 12:30:19 -07001400 return ValidateCmdDrawIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride,
sfricke-samsung85584a72021-09-30 21:43:38 -07001401 CMD_DRAWINDIRECTCOUNTKHR);
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001402}
1403
1404bool CoreChecks::PreCallValidateCmdDrawIndirectCount(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1405 VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount,
1406 uint32_t stride) const {
Tony-LunarG83544c72020-01-17 12:30:19 -07001407 return ValidateCmdDrawIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride,
sfricke-samsung85584a72021-09-30 21:43:38 -07001408 CMD_DRAWINDIRECTCOUNT);
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001409}
1410
1411bool CoreChecks::ValidateCmdDrawIndexedIndirectCount(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1412 VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount,
sfricke-samsung85584a72021-09-30 21:43:38 -07001413 uint32_t stride, CMD_TYPE cmd_type) const {
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001414 bool skip = false;
sfricke-samsung85584a72021-09-30 21:43:38 -07001415 const char *apiName = CommandTypeString(cmd_type);
Nathaniel Cesario7f231f12021-03-25 12:10:58 -06001416 if ((device_extensions.vk_khr_draw_indirect_count != kEnabledByCreateinfo) &&
1417 ((api_version >= VK_API_VERSION_1_2) && (enabled_features.core12.drawIndirectCount == VK_FALSE))) {
Shannon McPherson2c793ba2020-08-28 12:13:24 -06001418 skip |= LogError(commandBuffer, "VUID-vkCmdDrawIndexedIndirectCount-None-04445",
sfricke-samsung27c70722020-05-02 08:42:39 -07001419 "%s(): Starting in Vulkan 1.2 the VkPhysicalDeviceVulkan12Features::drawIndirectCount must be enabled to "
1420 "call this command.",
1421 apiName);
1422 }
AndreyVK_D3Db2753e12021-07-21 12:24:03 +03001423 skip |= ValidateCmdDrawStrideWithStruct(commandBuffer, "VUID-vkCmdDrawIndexedIndirectCount-stride-03142", stride,
1424 "VkDrawIndexedIndirectCommand", sizeof(VkDrawIndexedIndirectCommand));
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001425 auto buffer_state = Get<BUFFER_STATE>(buffer);
Lockee68ac652019-05-06 10:17:33 -06001426 if (maxDrawCount > 1) {
Mike Schuchardt65847d92019-12-20 13:50:47 -08001427 skip |= ValidateCmdDrawStrideWithBuffer(commandBuffer, "VUID-vkCmdDrawIndexedIndirectCount-maxDrawCount-03143", stride,
AndreyVK_D3Db2753e12021-07-21 12:24:03 +03001428 "VkDrawIndexedIndirectCommand", sizeof(VkDrawIndexedIndirectCommand), maxDrawCount,
Jeremy Gebben9f537102021-10-05 16:37:12 -06001429 offset, buffer_state.get());
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001430 }
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001431 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001432 skip |= ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_GRAPHICS, cmd_type);
1433 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, cmd_type);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001434 auto count_buffer_state = Get<BUFFER_STATE>(countBuffer);
Jeremy Gebben9f537102021-10-05 16:37:12 -06001435 skip |=
1436 ValidateMemoryIsBoundToBuffer(count_buffer_state.get(), apiName, "VUID-vkCmdDrawIndexedIndirectCount-countBuffer-02714");
1437 skip |= ValidateBufferUsageFlags(count_buffer_state.get(), VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT, true,
sfricke-samsungf692b972020-05-02 08:00:45 -07001438 "VUID-vkCmdDrawIndexedIndirectCount-countBuffer-02715", apiName,
Mike Schuchardt65847d92019-12-20 13:50:47 -08001439 "VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT");
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001440 return skip;
1441}
1442
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001443bool CoreChecks::PreCallValidateCmdDrawIndexedIndirectCountKHR(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1444 VkBuffer countBuffer, VkDeviceSize countBufferOffset,
1445 uint32_t maxDrawCount, uint32_t stride) const {
sfricke-samsungf692b972020-05-02 08:00:45 -07001446 return ValidateCmdDrawIndexedIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride,
sfricke-samsung85584a72021-09-30 21:43:38 -07001447 CMD_DRAWINDEXEDINDIRECTCOUNTKHR);
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001448}
1449
1450bool CoreChecks::PreCallValidateCmdDrawIndexedIndirectCount(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1451 VkBuffer countBuffer, VkDeviceSize countBufferOffset,
1452 uint32_t maxDrawCount, uint32_t stride) const {
sfricke-samsungf692b972020-05-02 08:00:45 -07001453 return ValidateCmdDrawIndexedIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride,
sfricke-samsung85584a72021-09-30 21:43:38 -07001454 CMD_DRAWINDEXEDINDIRECTCOUNT);
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001455}
1456
locke-lunarg9a16ebb2020-07-30 16:56:33 -06001457bool CoreChecks::PreCallValidateCmdDrawIndirectByteCountEXT(VkCommandBuffer commandBuffer, uint32_t instanceCount,
1458 uint32_t firstInstance, VkBuffer counterBuffer,
1459 VkDeviceSize counterBufferOffset, uint32_t counterOffset,
1460 uint32_t vertexStride) const {
sfricke-samsungd5e9adb2020-10-26 03:59:29 -07001461 bool skip = false;
Tony-LunarG2c94ba82020-11-05 14:21:40 -07001462 if (!enabled_features.transform_feedback_features.transformFeedback) {
1463 skip |= LogError(commandBuffer, "VUID-vkCmdDrawIndirectByteCountEXT-transformFeedback-02287",
1464 "%s: transformFeedback feature is not enabled.", "vkCmdDrawIndirectByteCountEXT()");
1465 }
sfricke-samsung45996a42021-09-16 13:45:27 -07001466 if (IsExtEnabled(device_extensions.vk_ext_transform_feedback) &&
1467 !phys_dev_ext_props.transform_feedback_props.transformFeedbackDraw) {
sfricke-samsungba459bd2020-12-06 23:20:04 -08001468 skip |= LogError(commandBuffer, "VUID-vkCmdDrawIndirectByteCountEXT-transformFeedbackDraw-02288",
Tony-LunarG2c94ba82020-11-05 14:21:40 -07001469 "%s: VkPhysicalDeviceTransformFeedbackPropertiesEXT::transformFeedbackDraw is not supported",
1470 "vkCmdDrawIndirectByteCountEXT()");
1471 }
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001472 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001473 skip |= ValidateCmdDrawInstance(*cb_state, instanceCount, firstInstance, CMD_DRAWINDIRECTBYTECOUNTEXT);
1474 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWINDIRECTBYTECOUNTEXT);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001475 auto counter_buffer_state = Get<BUFFER_STATE>(counterBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001476 skip |= ValidateIndirectCmd(*cb_state, *counter_buffer_state, CMD_DRAWINDIRECTBYTECOUNTEXT);
sfricke-samsungd5e9adb2020-10-26 03:59:29 -07001477 return skip;
locke-lunarg9a16ebb2020-07-30 16:56:33 -06001478}
1479
Jeff Bolzf6e872c2019-10-22 12:17:28 -05001480bool CoreChecks::PreCallValidateCmdTraceRaysNV(VkCommandBuffer commandBuffer, VkBuffer raygenShaderBindingTableBuffer,
1481 VkDeviceSize raygenShaderBindingOffset, VkBuffer missShaderBindingTableBuffer,
1482 VkDeviceSize missShaderBindingOffset, VkDeviceSize missShaderBindingStride,
1483 VkBuffer hitShaderBindingTableBuffer, VkDeviceSize hitShaderBindingOffset,
1484 VkDeviceSize hitShaderBindingStride, VkBuffer callableShaderBindingTableBuffer,
1485 VkDeviceSize callableShaderBindingOffset, VkDeviceSize callableShaderBindingStride,
1486 uint32_t width, uint32_t height, uint32_t depth) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001487 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001488 bool skip = ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_RAY_TRACING_NV, CMD_TRACERAYSNV);
Jeremy Gebbenb20a8242021-11-05 15:14:43 -06001489 auto callable_shader_buffer_state = Get<BUFFER_STATE>(callableShaderBindingTableBuffer);
sourav parmard1521802020-06-07 21:49:02 -07001490 if (callable_shader_buffer_state && callableShaderBindingOffset >= callable_shader_buffer_state->createInfo.size) {
1491 skip |= LogError(commandBuffer, "VUID-vkCmdTraceRaysNV-callableShaderBindingOffset-02461",
1492 "vkCmdTraceRaysNV: callableShaderBindingOffset %" PRIu64
1493 " must be less than the size of callableShaderBindingTableBuffer %" PRIu64 " .",
1494 callableShaderBindingOffset, callable_shader_buffer_state->createInfo.size);
1495 }
Jeremy Gebbenb20a8242021-11-05 15:14:43 -06001496 auto hit_shader_buffer_state = Get<BUFFER_STATE>(hitShaderBindingTableBuffer);
sourav parmard1521802020-06-07 21:49:02 -07001497 if (hit_shader_buffer_state && hitShaderBindingOffset >= hit_shader_buffer_state->createInfo.size) {
1498 skip |= LogError(commandBuffer, "VUID-vkCmdTraceRaysNV-hitShaderBindingOffset-02459",
1499 "vkCmdTraceRaysNV: hitShaderBindingOffset %" PRIu64
1500 " must be less than the size of hitShaderBindingTableBuffer %" PRIu64 " .",
1501 hitShaderBindingOffset, hit_shader_buffer_state->createInfo.size);
1502 }
Jeremy Gebbenb20a8242021-11-05 15:14:43 -06001503 auto miss_shader_buffer_state = Get<BUFFER_STATE>(missShaderBindingTableBuffer);
sourav parmard1521802020-06-07 21:49:02 -07001504 if (miss_shader_buffer_state && missShaderBindingOffset >= miss_shader_buffer_state->createInfo.size) {
1505 skip |= LogError(commandBuffer, "VUID-vkCmdTraceRaysNV-missShaderBindingOffset-02457",
1506 "vkCmdTraceRaysNV: missShaderBindingOffset %" PRIu64
baldurk751594b2020-09-09 09:41:02 +01001507 " must be less than the size of missShaderBindingTableBuffer %" PRIu64 " .",
sourav parmard1521802020-06-07 21:49:02 -07001508 missShaderBindingOffset, miss_shader_buffer_state->createInfo.size);
1509 }
Jeremy Gebbenb20a8242021-11-05 15:14:43 -06001510 auto raygen_shader_buffer_state = Get<BUFFER_STATE>(raygenShaderBindingTableBuffer);
sourav parmard1521802020-06-07 21:49:02 -07001511 if (raygenShaderBindingOffset >= raygen_shader_buffer_state->createInfo.size) {
1512 skip |= LogError(commandBuffer, "VUID-vkCmdTraceRaysNV-raygenShaderBindingOffset-02455",
1513 "vkCmdTraceRaysNV: raygenShaderBindingOffset %" PRIu64
baldurk751594b2020-09-09 09:41:02 +01001514 " must be less than the size of raygenShaderBindingTableBuffer %" PRIu64 " .",
sourav parmard1521802020-06-07 21:49:02 -07001515 raygenShaderBindingOffset, raygen_shader_buffer_state->createInfo.size);
1516 }
sourav parmarcd5fb182020-07-17 12:58:44 -07001517
sourav parmar30e19392020-12-02 16:57:21 -08001518 const auto lv_bind_point = ConvertToLvlBindPoint(VK_PIPELINE_BIND_POINT_RAY_TRACING_NV);
1519 const PIPELINE_STATE *pipeline_state = cb_state->lastBound[lv_bind_point].pipeline_state;
Jeremy Gebben14b0d1a2021-05-15 20:15:41 -06001520 if (!pipeline_state || (pipeline_state && !pipeline_state->pipeline())) {
sourav parmar30e19392020-12-02 16:57:21 -08001521 skip |= LogError(device, "VUID-vkCmdTraceRaysNV-None-02700",
1522 "vkCmdTraceRaysKHR: A valid pipeline must be bound to the pipeline bind point used by this command.");
sourav parmarcd5fb182020-07-17 12:58:44 -07001523 }
Jeff Bolzf6e872c2019-10-22 12:17:28 -05001524 return skip;
1525}
1526
Jeff Bolz443c2ca2020-03-19 12:11:51 -05001527bool CoreChecks::PreCallValidateCmdTraceRaysKHR(VkCommandBuffer commandBuffer,
sourav parmarcd5fb182020-07-17 12:58:44 -07001528 const VkStridedDeviceAddressRegionKHR *pRaygenShaderBindingTable,
1529 const VkStridedDeviceAddressRegionKHR *pMissShaderBindingTable,
1530 const VkStridedDeviceAddressRegionKHR *pHitShaderBindingTable,
1531 const VkStridedDeviceAddressRegionKHR *pCallableShaderBindingTable, uint32_t width,
Jeff Bolz443c2ca2020-03-19 12:11:51 -05001532 uint32_t height, uint32_t depth) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001533 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001534 bool skip = ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR, CMD_TRACERAYSKHR);
Shannon McPherson9caca052020-11-25 11:34:38 -07001535 const auto lv_bind_point = ConvertToLvlBindPoint(VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR);
1536 const PIPELINE_STATE *pipeline_state = cb_state->lastBound[lv_bind_point].pipeline_state;
Jeremy Gebben14b0d1a2021-05-15 20:15:41 -06001537 if (!pipeline_state || (pipeline_state && !pipeline_state->pipeline())) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001538 skip |= LogError(device, "VUID-vkCmdTraceRaysKHR-None-02700",
1539 "vkCmdTraceRaysKHR: A valid pipeline must be bound to the pipeline bind point used by this command.");
1540 } else { // bound to valid RT pipeline
Jeremy Gebben11af9792021-08-20 10:20:09 -06001541 if (pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001542 if (!pHitShaderBindingTable->deviceAddress) {
1543 skip |= LogError(device, "VUID-vkCmdTraceRaysKHR-flags-03697",
1544 "vkCmdTraceRaysKHR: If the currently bound ray tracing pipeline was created with flags "
1545 "that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, the "
1546 "deviceAddress member of pHitShaderBindingTable must not be zero.");
1547 }
1548 if (!pHitShaderBindingTable || pHitShaderBindingTable->size == 0 || pHitShaderBindingTable->stride == 0) {
1549 skip |= LogError(device, "VUID-vkCmdTraceRaysKHR-flags-03514",
1550 "vkCmdTraceRaysKHR: If the currently bound ray tracing pipeline was created with "
1551 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, "
1552 "entries in pHitShaderBindingTable accessed as a result of this command in order to "
1553 "execute an intersection shader must not be set to zero.");
1554 }
1555 }
Jeremy Gebben11af9792021-08-20 10:20:09 -06001556 if (pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001557 if (!pHitShaderBindingTable->deviceAddress) {
1558 skip |= LogError(device, "VUID-vkCmdTraceRaysKHR-flags-03696",
1559 "vkCmdTraceRaysKHR: If the currently bound ray tracing pipeline was created with flags "
1560 "that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, the "
1561 "deviceAddress member of pHitShaderBindingTable must not be zero.");
1562 }
1563 if (!pHitShaderBindingTable || pHitShaderBindingTable->size == 0 || pHitShaderBindingTable->stride == 0) {
1564 skip |= LogError(device, "VUID-vkCmdTraceRaysKHR-flags-03513",
1565 "vkCmdTraceRaysKHR: If the currently bound ray tracing pipeline was created with "
1566 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, "
1567 "entries in pHitShaderBindingTable accessed as a result of this command in order to "
1568 "execute a closest hit shader must not be set to zero.");
1569 }
1570 }
Jeremy Gebben11af9792021-08-20 10:20:09 -06001571 if (pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001572 if (!pHitShaderBindingTable || pHitShaderBindingTable->size == 0 || pHitShaderBindingTable->stride == 0) {
1573 skip |= LogError(device, "VUID-vkCmdTraceRaysKHR-flags-03512",
1574 "vkCmdTraceRaysKHR: If the currently bound ray tracing pipeline was created with "
1575 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR, "
1576 "entries in pHitShaderBindingTable accessed as a result of this command in order to "
1577 "execute an any hit shader must not be set to zero.");
1578 }
1579 }
1580 }
Jeff Bolz443c2ca2020-03-19 12:11:51 -05001581 return skip;
1582}
1583
Jeff Bolz443c2ca2020-03-19 12:11:51 -05001584bool CoreChecks::PreCallValidateCmdTraceRaysIndirectKHR(VkCommandBuffer commandBuffer,
sourav parmarcd5fb182020-07-17 12:58:44 -07001585 const VkStridedDeviceAddressRegionKHR *pRaygenShaderBindingTable,
1586 const VkStridedDeviceAddressRegionKHR *pMissShaderBindingTable,
1587 const VkStridedDeviceAddressRegionKHR *pHitShaderBindingTable,
1588 const VkStridedDeviceAddressRegionKHR *pCallableShaderBindingTable,
1589 VkDeviceAddress indirectDeviceAddress) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001590 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001591 bool skip = ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR, CMD_TRACERAYSINDIRECTKHR);
Shannon McPherson9caca052020-11-25 11:34:38 -07001592 const auto lv_bind_point = ConvertToLvlBindPoint(VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR);
Jeremy Gebbenb20a8242021-11-05 15:14:43 -06001593 const auto *pipeline_state = cb_state->lastBound[lv_bind_point].pipeline_state;
Jeremy Gebben14b0d1a2021-05-15 20:15:41 -06001594 if (!pipeline_state || (pipeline_state && !pipeline_state->pipeline())) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001595 skip |=
1596 LogError(device, "VUID-vkCmdTraceRaysIndirectKHR-None-02700",
1597 "vkCmdTraceRaysIndirectKHR: A valid pipeline must be bound to the pipeline bind point used by this command.");
1598 } else { // valid bind point
Jeremy Gebben11af9792021-08-20 10:20:09 -06001599 if (pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001600 if (!pHitShaderBindingTable || pHitShaderBindingTable->deviceAddress == 0) {
1601 skip |= LogError(device, "VUID-vkCmdTraceRaysIndirectKHR-flags-03697",
1602 "vkCmdTraceRaysIndirectKHR: If the currently bound ray tracing pipeline was created with "
1603 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, the "
1604 "deviceAddress member of pHitShaderBindingTable must not be zero.");
1605 }
1606 if (!pHitShaderBindingTable || pHitShaderBindingTable->size == 0 || pHitShaderBindingTable->stride == 0) {
1607 skip |= LogError(device, "VUID-vkCmdTraceRaysIndirectKHR-flags-03514",
1608 "vkCmdTraceRaysIndirectKHR: If the currently bound ray tracing pipeline was created with "
1609 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, "
1610 "entries in pHitShaderBindingTable accessed as a result of this command in order to "
1611 "execute an intersection shader must not be set to zero.");
1612 }
1613 }
Jeremy Gebben11af9792021-08-20 10:20:09 -06001614 if (pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001615 if (!pHitShaderBindingTable || pHitShaderBindingTable->deviceAddress == 0) {
1616 skip |= LogError(device, "VUID-vkCmdTraceRaysIndirectKHR-flags-03696",
1617 "vkCmdTraceRaysIndirectKHR:If the currently bound ray tracing pipeline was created with "
1618 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, "
1619 "the deviceAddress member of pHitShaderBindingTable must not be zero.");
1620 }
1621 if (!pHitShaderBindingTable || pHitShaderBindingTable->size == 0 || pHitShaderBindingTable->stride == 0) {
1622 skip |= LogError(device, "VUID-vkCmdTraceRaysIndirectKHR-flags-03513",
1623 "vkCmdTraceRaysIndirectKHR: If the currently bound ray tracing pipeline was created with "
1624 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, "
1625 "entries in pHitShaderBindingTable accessed as a result of this command in order to "
1626 "execute a closest hit shader must not be set to zero.");
1627 }
1628 }
Jeremy Gebben11af9792021-08-20 10:20:09 -06001629 if (pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001630 if (!pHitShaderBindingTable || pHitShaderBindingTable->size == 0 || pHitShaderBindingTable->stride == 0) {
1631 skip |= LogError(device, "VUID-vkCmdTraceRaysIndirectKHR-flags-03512",
1632 "vkCmdTraceRaysIndirectKHR: If the currently bound ray tracing pipeline was created with "
1633 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR, "
1634 "entries in pHitShaderBindingTable accessed as a result of this command in order to "
1635 "execute an any hit shader must not be set to zero.");
1636 }
1637 }
1638 }
Jeff Bolz443c2ca2020-03-19 12:11:51 -05001639 return skip;
1640}
1641
sfricke-samsungf91881c2022-03-31 01:12:00 -05001642bool CoreChecks::PreCallValidateCmdTraceRaysIndirect2KHR(VkCommandBuffer commandBuffer,
1643 VkDeviceAddress indirectDeviceAddress) const {
1644 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
1645 bool skip = ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR, CMD_TRACERAYSINDIRECTKHR);
1646 return skip;
1647}
1648
Jeff Bolz5c801d12019-10-09 10:38:45 -05001649bool CoreChecks::PreCallValidateCmdDrawMeshTasksNV(VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001650 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001651 bool skip = ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWMESHTASKSNV);
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001652 return skip;
1653}
1654
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001655bool CoreChecks::PreCallValidateCmdDrawMeshTasksIndirectNV(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
Jeff Bolz5c801d12019-10-09 10:38:45 -05001656 uint32_t drawCount, uint32_t stride) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001657 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001658 bool skip = ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWMESHTASKSINDIRECTNV);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001659 auto buffer_state = Get<BUFFER_STATE>(buffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001660 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, CMD_DRAWMESHTASKSINDIRECTNV);
Lockee68ac652019-05-06 10:17:33 -06001661 if (drawCount > 1) {
Lockee68ac652019-05-06 10:17:33 -06001662 skip |= ValidateCmdDrawStrideWithBuffer(commandBuffer, "VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02157", stride,
1663 "VkDrawMeshTasksIndirectCommandNV", sizeof(VkDrawMeshTasksIndirectCommandNV),
Jeremy Gebben9f537102021-10-05 16:37:12 -06001664 drawCount, offset, buffer_state.get());
Lockee68ac652019-05-06 10:17:33 -06001665 }
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001666 return skip;
1667}
1668
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001669bool CoreChecks::PreCallValidateCmdDrawMeshTasksIndirectCountNV(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1670 VkBuffer countBuffer, VkDeviceSize countBufferOffset,
Jeff Bolz5c801d12019-10-09 10:38:45 -05001671 uint32_t maxDrawCount, uint32_t stride) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001672 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001673 bool skip = ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWMESHTASKSINDIRECTCOUNTNV);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001674 auto buffer_state = Get<BUFFER_STATE>(buffer);
1675 auto count_buffer_state = Get<BUFFER_STATE>(countBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001676 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, CMD_DRAWMESHTASKSINDIRECTCOUNTNV);
Jeremy Gebben9f537102021-10-05 16:37:12 -06001677 skip |= ValidateMemoryIsBoundToBuffer(count_buffer_state.get(), "vkCmdDrawMeshTasksIndirectCountNV()",
Shannon McPhersonde3eeba2019-04-30 16:53:59 -06001678 "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02714");
Jeremy Gebben9f537102021-10-05 16:37:12 -06001679 skip |= ValidateBufferUsageFlags(count_buffer_state.get(), VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT, true,
sfricke-samsungf692b972020-05-02 08:00:45 -07001680 "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02715",
1681 "vkCmdDrawMeshTasksIndirectCountNV()", "VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT");
Lockee68ac652019-05-06 10:17:33 -06001682 skip |= ValidateCmdDrawStrideWithStruct(commandBuffer, "VUID-vkCmdDrawMeshTasksIndirectCountNV-stride-02182", stride,
1683 "VkDrawMeshTasksIndirectCommandNV", sizeof(VkDrawMeshTasksIndirectCommandNV));
1684 if (maxDrawCount > 1) {
1685 skip |= ValidateCmdDrawStrideWithBuffer(commandBuffer, "VUID-vkCmdDrawMeshTasksIndirectCountNV-maxDrawCount-02183", stride,
1686 "VkDrawMeshTasksIndirectCommandNV", sizeof(VkDrawMeshTasksIndirectCommandNV),
Jeremy Gebben9f537102021-10-05 16:37:12 -06001687 maxDrawCount, offset, buffer_state.get());
Lockee68ac652019-05-06 10:17:33 -06001688 }
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001689 return skip;
1690}