blob: 1017ec1019d226b409f086ba9a3cbbcc8ab99612 [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";
Mike Schuchardt0e558a52022-08-18 15:14:51 -0700106 storage_image_read_without_format = "VUID-vkCmdDraw-OpTypeImage-07028";
107 storage_image_write_without_format = "VUID-vkCmdDraw-OpTypeImage-07027";
108 storage_texel_buffer_read_without_format = "VUID-vkCmdDraw-OpTypeImage-07030";
109 storage_texel_buffer_write_without_format = "VUID-vkCmdDraw-OpTypeImage-07029";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200110 depth_compare_sample = "VUID-vkCmdDraw-None-06479";
ziga-lunarg50188622022-03-26 01:18:32 +0100111 dynamic_sample_locations = "VUID-vkCmdDraw-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +0200112 primitives_generated = "VUID-vkCmdDraw-primitivesGeneratedQueryWithRasterizerDiscard-06708";
ziga-lunargf4068b12022-04-05 13:58:59 +0200113 primitives_generated_streams = "VUID-vkCmdDraw-primitivesGeneratedQueryWithNonZeroStreams-06709";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700114 }
115};
116
Tony-LunarG4490de42021-06-21 15:49:19 -0600117struct DispatchVuidsCmdDrawMultiEXT : DrawDispatchVuid {
118 DispatchVuidsCmdDrawMultiEXT() : DrawDispatchVuid() {
119 pipeline_bound = "VUID-vkCmdDrawMultiEXT-None-02700";
120 dynamic_state = "VUID-vkCmdDrawMultiEXT-commandBuffer-02701";
121 vertex_binding = "VUID-vkCmdDrawMultiEXT-None-04007";
122 vertex_binding_null = "VUID-vkCmdDrawMultiEXT-None-04008";
123 compatible_pipeline = "VUID-vkCmdDrawMultiEXT-None-02697";
124 render_pass_compatible = "VUID-vkCmdDrawMultiEXT-renderPass-02684";
125 subpass_index = "VUID-vkCmdDrawMultiEXT-subpass-02685";
126 sample_location = "VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-02689";
127 linear_sampler = "VUID-vkCmdDrawMultiEXT-magFilter-04553";
128 cubic_sampler = "VUID-vkCmdDrawMultiEXT-None-02692";
129 viewport_count = "VUID-vkCmdDrawMultiEXT-viewportCount-03417";
130 scissor_count = "VUID-vkCmdDrawMultiEXT-scissorCount-03418";
131 viewport_scissor_count = "VUID-vkCmdDrawMultiEXT-viewportCount-03419";
132 primitive_topology = "VUID-vkCmdDrawMultiEXT-primitiveTopology-03420";
133 corner_sampled_address_mode = "VUID-vkCmdDrawMultiEXT-flags-02696";
134 subpass_input = "VUID-vkCmdDrawMultiEXT-None-02686";
135 imageview_atomic = "VUID-vkCmdDrawMultiEXT-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700136 push_constants_set = "VUID-vkCmdDrawMultiEXT-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100137 image_subresources_render_pass_write = "VUID-vkCmdDrawMultiEXT-None-06537";
138 image_subresources_subpass_read = "VUID-vkCmdDrawMultiEXT-None-06538";
139 image_subresources_subpass_write = "VUID-vkCmdDrawMultiEXT-None-06539";
Tony-LunarG4490de42021-06-21 15:49:19 -0600140 descriptor_valid = "VUID-vkCmdDrawMultiEXT-None-02699";
141 sampler_imageview_type = "VUID-vkCmdDrawMultiEXT-None-02702";
142 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawMultiEXT-None-02703";
143 sampler_bias_offset = "VUID-vkCmdDrawMultiEXT-None-02704";
144 vertex_binding_attribute = "VUID-vkCmdDrawMultiEXT-None-02721";
145 dynamic_state_setting_commands = "VUID-vkCmdDrawMultiEXT-None-02859";
146 rasterization_samples = "VUID-vkCmdDrawMultiEXT-rasterizationSamples-04740";
147 unprotected_command_buffer = "VUID-vkCmdDrawMultiEXT-commandBuffer-02707";
148 protected_command_buffer = "VUID-vkCmdDrawMultiEXT-commandBuffer-02712";
149 max_multiview_instance_index = "VUID-vkCmdDrawMultiEXT-maxMultiviewInstanceIndex-02688";
150 img_filter_cubic = "VUID-vkCmdDrawMultiEXT-None-02693";
151 filter_cubic = "VUID-vkCmdDrawMultiEXT-filterCubic-02694";
152 filter_cubic_min_max = "VUID-vkCmdDrawMultiEXT-filterCubicMinmax-02695";
153 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawMultiEXT-primitiveFragmentShadingRateWithMultipleViewports-04552";
154 patch_control_points = "VUID-vkCmdDrawMultiEXT-None-04875";
155 rasterizer_discard_enable = "VUID-vkCmdDrawMultiEXT-None-04876";
156 depth_bias_enable = "VUID-vkCmdDrawMultiEXT-None-04877";
157 logic_op = "VUID-vkCmdDrawMultiEXT-logicOp-04878";
158 primitive_restart_enable = "VUID-vkCmdDrawMultiEXT-None-04879";
159 vertex_input_binding_stride = "VUID-vkCmdDrawMultiEXT-pStrides-04884";
160 vertex_input = kVUID_Core_CmdDrawMultiEXT_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200161 blend_enable = "VUID-vkCmdDrawMultiEXT-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100162 color_write_enable = "VUID-vkCmdDrawMultiEXT-attachmentCount-06667";
Aaron Hagan92a44f82021-11-19 09:34:56 -0500163 dynamic_rendering_view_mask = "VUID-vkCmdDrawMultiEXT-viewMask-06178";
164 dynamic_rendering_color_count = "VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06179";
165 dynamic_rendering_color_formats = "VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06180";
166 dynamic_rendering_depth_format = "VUID-vkCmdDrawMultiEXT-pDepthAttachment-06181";
167 dynamic_rendering_stencil_format = "VUID-vkCmdDrawMultiEXT-pStencilAttachment-06182";
168 dynamic_rendering_fsr = "VUID-vkCmdDrawMultiEXT-imageView-06183";
169 dynamic_rendering_fdm = "VUID-vkCmdDrawMultiEXT-imageView-06184";
Aaron Hagan09a0e172021-11-19 21:18:33 -0500170 dynamic_rendering_color_sample = "VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06185";
171 dynamic_rendering_depth_sample = "VUID-vkCmdDrawMultiEXT-pDepthAttachment-06186";
172 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawMultiEXT-pStencilAttachment-06187";
173 dynamic_rendering_multi_sample = "VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06188";
Aaron Haganaca50442021-12-07 22:26:29 -0500174 dynamic_rendering_06189 = "VUID-vkCmdDrawMultiEXT-pDepthAttachment-06189";
175 dynamic_rendering_06190 = "VUID-vkCmdDrawMultiEXT-pStencilAttachment-06190";
176 dynamic_rendering_06198 = "VUID-vkCmdDrawMultiEXT-renderPass-06198";
Mike Schuchardt0e558a52022-08-18 15:14:51 -0700177 storage_image_read_without_format = "VUID-vkCmdDrawMultiEXT-OpTypeImage-07028";
178 storage_image_write_without_format = "VUID-vkCmdDrawMultiEXT-OpTypeImage-07027";
179 storage_texel_buffer_read_without_format = "VUID-vkCmdDrawMultiEXT-OpTypeImage-07030";
180 storage_texel_buffer_write_without_format = "VUID-vkCmdDrawMultiEXT-OpTypeImage-07029";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200181 depth_compare_sample = "VUID-vkCmdDrawMultiEXT-None-06479";
ziga-lunarg50188622022-03-26 01:18:32 +0100182 dynamic_sample_locations = "VUID-vkCmdDrawMultiEXT-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +0200183 primitives_generated = "VUID-vkCmdDrawMultiEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708";
ziga-lunargf4068b12022-04-05 13:58:59 +0200184 primitives_generated_streams = "VUID-vkCmdDrawMultiEXT-primitivesGeneratedQueryWithNonZeroStreams-06709";
Tony-LunarG4490de42021-06-21 15:49:19 -0600185 }
186};
187
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700188struct DispatchVuidsCmdDrawIndexed : DrawDispatchVuid {
189 DispatchVuidsCmdDrawIndexed() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700190 pipeline_bound = "VUID-vkCmdDrawIndexed-None-02700";
191 dynamic_state = "VUID-vkCmdDrawIndexed-commandBuffer-02701";
192 vertex_binding = "VUID-vkCmdDrawIndexed-None-04007";
193 vertex_binding_null = "VUID-vkCmdDrawIndexed-None-04008";
194 compatible_pipeline = "VUID-vkCmdDrawIndexed-None-02697";
195 render_pass_compatible = "VUID-vkCmdDrawIndexed-renderPass-02684";
196 subpass_index = "VUID-vkCmdDrawIndexed-subpass-02685";
197 sample_location = "VUID-vkCmdDrawIndexed-sampleLocationsEnable-02689";
198 linear_sampler = "VUID-vkCmdDrawIndexed-magFilter-04553";
199 cubic_sampler = "VUID-vkCmdDrawIndexed-None-02692";
200 viewport_count = "VUID-vkCmdDrawIndexed-viewportCount-03417";
201 scissor_count = "VUID-vkCmdDrawIndexed-scissorCount-03418";
202 viewport_scissor_count = "VUID-vkCmdDrawIndexed-viewportCount-03419";
203 primitive_topology = "VUID-vkCmdDrawIndexed-primitiveTopology-03420";
204 corner_sampled_address_mode = "VUID-vkCmdDrawIndexed-flags-02696";
205 subpass_input = "VUID-vkCmdDrawIndexed-None-02686";
206 imageview_atomic = "VUID-vkCmdDrawIndexed-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700207 push_constants_set = "VUID-vkCmdDrawIndexed-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100208 image_subresources_render_pass_write = "VUID-vkCmdDrawIndexed-None-06537";
209 image_subresources_subpass_read = "VUID-vkCmdDrawIndexed-None-06538";
210 image_subresources_subpass_write = "VUID-vkCmdDrawIndexed-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700211 descriptor_valid = "VUID-vkCmdDrawIndexed-None-02699";
212 sampler_imageview_type = "VUID-vkCmdDrawIndexed-None-02702";
213 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawIndexed-None-02703";
214 sampler_bias_offset = "VUID-vkCmdDrawIndexed-None-02704";
215 vertex_binding_attribute = "VUID-vkCmdDrawIndexed-None-02721";
216 dynamic_state_setting_commands = "VUID-vkCmdDrawIndexed-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700217 rasterization_samples = "VUID-vkCmdDrawIndexed-rasterizationSamples-04740";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700218 unprotected_command_buffer = "VUID-vkCmdDrawIndexed-commandBuffer-02707";
219 protected_command_buffer = "VUID-vkCmdDrawIndexed-commandBuffer-02712";
220 max_multiview_instance_index = "VUID-vkCmdDrawIndexed-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700221 img_filter_cubic = "VUID-vkCmdDrawIndexed-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700222 filter_cubic = "VUID-vkCmdDrawIndexed-filterCubic-02694";
223 filter_cubic_min_max = "VUID-vkCmdDrawIndexed-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000224 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawIndexed-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600225 patch_control_points = "VUID-vkCmdDrawIndexed-None-04875";
226 rasterizer_discard_enable = "VUID-vkCmdDrawIndexed-None-04876";
227 depth_bias_enable = "VUID-vkCmdDrawIndexed-None-04877";
228 logic_op = "VUID-vkCmdDrawIndexed-logicOp-04878";
229 primitive_restart_enable = "VUID-vkCmdDrawIndexed-None-04879";
230 vertex_input_binding_stride = "VUID-vkCmdDrawIndexed-pStrides-04884";
231 vertex_input = kVUID_Core_CmdDrawIndexed_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200232 blend_enable = "VUID-vkCmdDrawIndexed-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100233 color_write_enable = "VUID-vkCmdDrawIndexed-attachmentCount-06667";
Aaron Hagan92a44f82021-11-19 09:34:56 -0500234 dynamic_rendering_view_mask = "VUID-vkCmdDrawIndexed-viewMask-06178";
235 dynamic_rendering_color_count = "VUID-vkCmdDrawIndexed-colorAttachmentCount-06179";
236 dynamic_rendering_color_formats = "VUID-vkCmdDrawIndexed-colorAttachmentCount-06180";
237 dynamic_rendering_depth_format = "VUID-vkCmdDrawIndexed-pDepthAttachment-06181";
238 dynamic_rendering_stencil_format = "VUID-vkCmdDrawIndexed-pStencilAttachment-06182";
239 dynamic_rendering_fsr = "VUID-vkCmdDrawIndexed-imageView-06183";
240 dynamic_rendering_fdm = "VUID-vkCmdDrawIndexed-imageView-06184";
Aaron Hagan09a0e172021-11-19 21:18:33 -0500241 dynamic_rendering_color_sample = "VUID-vkCmdDrawIndexed-colorAttachmentCount-06185";
242 dynamic_rendering_depth_sample = "VUID-vkCmdDrawIndexed-pDepthAttachment-06186";
243 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawIndexed-pStencilAttachment-06187";
244 dynamic_rendering_multi_sample = "VUID-vkCmdDrawIndexed-colorAttachmentCount-06188";
Aaron Haganaca50442021-12-07 22:26:29 -0500245 dynamic_rendering_06189 = "VUID-vkCmdDrawIndexed-pDepthAttachment-06189";
246 dynamic_rendering_06190 = "VUID-vkCmdDrawIndexed-pStencilAttachment-06190";
247 dynamic_rendering_06198 = "VUID-vkCmdDrawIndexed-renderPass-06198";
Mike Schuchardt0e558a52022-08-18 15:14:51 -0700248 storage_image_read_without_format = "VUID-vkCmdDrawIndexed-OpTypeImage-07028";
249 storage_image_write_without_format = "VUID-vkCmdDrawIndexed-OpTypeImage-07027";
250 storage_texel_buffer_read_without_format = "VUID-vkCmdDrawIndexed-OpTypeImage-07030";
251 storage_texel_buffer_write_without_format = "VUID-vkCmdDrawIndexed-OpTypeImage-07029";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200252 depth_compare_sample = "VUID-vkCmdDrawIndexed-None-06479";
ziga-lunarg50188622022-03-26 01:18:32 +0100253 dynamic_sample_locations = "VUID-vkCmdDrawIndexed-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +0200254 primitives_generated = "VUID-vkCmdDrawIndexed-primitivesGeneratedQueryWithRasterizerDiscard-06708";
ziga-lunargf4068b12022-04-05 13:58:59 +0200255 primitives_generated_streams = "VUID-vkCmdDrawIndexed-primitivesGeneratedQueryWithNonZeroStreams-06709";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700256 }
257};
258
Tony-LunarG4490de42021-06-21 15:49:19 -0600259struct DispatchVuidsCmdDrawMultiIndexedEXT : DrawDispatchVuid {
260 DispatchVuidsCmdDrawMultiIndexedEXT() : DrawDispatchVuid() {
Lionel Landwerlin45e981c2021-12-07 15:29:40 +0200261 pipeline_bound = "VUID-vkCmdDrawMultiIndexedEXT-None-02700";
262 dynamic_state = "VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02701";
263 vertex_binding = "VUID-vkCmdDrawMultiIndexedEXT-None-04007";
264 vertex_binding_null = "VUID-vkCmdDrawMultiIndexedEXT-None-04008";
265 compatible_pipeline = "VUID-vkCmdDrawMultiIndexedEXT-None-02697";
266 render_pass_compatible = "VUID-vkCmdDrawMultiIndexedEXT-renderPass-02684";
267 subpass_index = "VUID-vkCmdDrawMultiIndexedEXT-subpass-02685";
268 sample_location = "VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-02689";
269 linear_sampler = "VUID-vkCmdDrawMultiIndexedEXT-magFilter-04553";
270 cubic_sampler = "VUID-vkCmdDrawMultiIndexedEXT-None-02692";
271 viewport_count = "VUID-vkCmdDrawMultiIndexedEXT-viewportCount-03417";
272 scissor_count = "VUID-vkCmdDrawMultiIndexedEXT-scissorCount-03418";
273 viewport_scissor_count = "VUID-vkCmdDrawMultiIndexedEXT-viewportCount-03419";
274 primitive_topology = "VUID-vkCmdDrawMultiIndexedEXT-primitiveTopology-03420";
275 corner_sampled_address_mode = "VUID-vkCmdDrawMultiIndexedEXT-flags-02696";
276 subpass_input = "VUID-vkCmdDrawMultiIndexedEXT-None-02686";
277 imageview_atomic = "VUID-vkCmdDrawMultiIndexedEXT-None-02691";
278 push_constants_set = "VUID-vkCmdDrawMultiIndexedEXT-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100279 image_subresources_render_pass_write = "VUID-vkCmdDrawMultiIndexedEXT-None-06537";
280 image_subresources_subpass_read = "VUID-vkCmdDrawMultiIndexedEXT-None-06538";
281 image_subresources_subpass_write = "VUID-vkCmdDrawMultiIndexedEXT-None-06539";
Lionel Landwerlin45e981c2021-12-07 15:29:40 +0200282 descriptor_valid = "VUID-vkCmdDrawMultiIndexedEXT-None-02699";
283 sampler_imageview_type = "VUID-vkCmdDrawMultiIndexedEXT-None-02702";
284 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawMultiIndexedEXT-None-02703";
285 sampler_bias_offset = "VUID-vkCmdDrawMultiIndexedEXT-None-02704";
286 vertex_binding_attribute = "VUID-vkCmdDrawMultiIndexedEXT-None-02721";
287 dynamic_state_setting_commands = "VUID-vkCmdDrawMultiIndexedEXT-None-02859";
288 rasterization_samples = "VUID-vkCmdDrawMultiIndexedEXT-rasterizationSamples-04740";
289 unprotected_command_buffer = "VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02707";
290 protected_command_buffer = "VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02712";
291 max_multiview_instance_index = "VUID-vkCmdDrawMultiIndexedEXT-maxMultiviewInstanceIndex-02688";
292 img_filter_cubic = "VUID-vkCmdDrawMultiIndexedEXT-None-02693";
293 filter_cubic = "VUID-vkCmdDrawMultiIndexedEXT-filterCubic-02694";
294 filter_cubic_min_max = "VUID-vkCmdDrawMultiIndexedEXT-filterCubicMinmax-02695";
Tony-LunarG4490de42021-06-21 15:49:19 -0600295 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawMultiIndexedEXT-primitiveFragmentShadingRateWithMultipleViewports-04552";
Lionel Landwerlin45e981c2021-12-07 15:29:40 +0200296 patch_control_points = "VUID-vkCmdDrawMultiIndexedEXT-None-04875";
297 rasterizer_discard_enable = "VUID-vkCmdDrawMultiIndexedEXT-None-04876";
298 depth_bias_enable = "VUID-vkCmdDrawMultiIndexedEXT-None-04877";
299 logic_op = "VUID-vkCmdDrawMultiIndexedEXT-logicOp-04878";
300 primitive_restart_enable = "VUID-vkCmdDrawMultiIndexedEXT-None-04879";
301 vertex_input_binding_stride = "VUID-vkCmdDrawMultiIndexedEXT-pStrides-04884";
302 vertex_input = kVUID_Core_CmdDrawMultiIndexedEXT_VertexInput;
303 blend_enable = "VUID-vkCmdDrawMultiIndexedEXT-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100304 color_write_enable = "VUID-vkCmdDrawMultiIndexedEXT-attachmentCount-06667";
Lionel Landwerlin45e981c2021-12-07 15:29:40 +0200305 dynamic_rendering_view_mask = "VUID-vkCmdDrawMultiIndexedEXT-viewMask-06178";
306 dynamic_rendering_color_count = "VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-06179";
307 dynamic_rendering_color_formats = "VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-06180";
308 dynamic_rendering_depth_format = "VUID-vkCmdDrawMultiIndexedEXT-pDepthAttachment-06181";
309 dynamic_rendering_stencil_format = "VUID-vkCmdDrawMultiIndexedEXT-pStencilAttachment-06182";
310 dynamic_rendering_fsr = "VUID-vkCmdDrawMultiIndexedEXT-imageView-06183";
311 dynamic_rendering_fdm = "VUID-vkCmdDrawMultiIndexedEXT-imageView-06184";
312 dynamic_rendering_color_sample = "VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-06185";
313 dynamic_rendering_depth_sample = "VUID-vkCmdDrawMultiIndexedEXT-pDepthAttachment-06186";
314 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawMultiIndexedEXT-pStencilAttachment-06187";
315 dynamic_rendering_multi_sample = "VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-06188";
Mike Schuchardt0e558a52022-08-18 15:14:51 -0700316 dynamic_rendering_06189 = "VUID-vkCmdDrawMultiIndexedEXT-pDepthAttachment-06189";
317 dynamic_rendering_06190 = "VUID-vkCmdDrawMultiIndexedEXT-pStencilAttachment-06190";
318 dynamic_rendering_06198 = "VUID-vkCmdDrawMultiIndexedEXT-renderPass-06198";
319 storage_image_read_without_format = "VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-07028";
320 storage_image_write_without_format = "VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-07027";
321 storage_texel_buffer_read_without_format = "VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-07030";
322 storage_texel_buffer_write_without_format = "VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-07029";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200323 depth_compare_sample = "VUID-vkCmdDrawMultiIndexedEXT-None-06479";
ziga-lunarg50188622022-03-26 01:18:32 +0100324 dynamic_sample_locations = "VUID-vkCmdDrawMultiIndexedEXT-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +0200325 primitives_generated = "VUID-vkCmdDrawMultiIndexedEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708";
ziga-lunargf4068b12022-04-05 13:58:59 +0200326 primitives_generated_streams = "VUID-vkCmdDrawMultiIndexedEXT-primitivesGeneratedQueryWithNonZeroStreams-06709";
Tony-LunarG4490de42021-06-21 15:49:19 -0600327 }
328};
329
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700330struct DispatchVuidsCmdDrawIndirect : DrawDispatchVuid {
331 DispatchVuidsCmdDrawIndirect() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700332 pipeline_bound = "VUID-vkCmdDrawIndirect-None-02700";
333 dynamic_state = "VUID-vkCmdDrawIndirect-commandBuffer-02701";
334 vertex_binding = "VUID-vkCmdDrawIndirect-None-04007";
335 vertex_binding_null = "VUID-vkCmdDrawIndirect-None-04008";
336 compatible_pipeline = "VUID-vkCmdDrawIndirect-None-02697";
337 render_pass_compatible = "VUID-vkCmdDrawIndirect-renderPass-02684";
338 subpass_index = "VUID-vkCmdDrawIndirect-subpass-02685";
339 sample_location = "VUID-vkCmdDrawIndirect-sampleLocationsEnable-02689";
340 linear_sampler = "VUID-vkCmdDrawIndirect-magFilter-04553";
341 cubic_sampler = "VUID-vkCmdDrawIndirect-None-02692";
342 indirect_protected_cb = "VUID-vkCmdDrawIndirect-commandBuffer-02711";
343 indirect_contiguous_memory = "VUID-vkCmdDrawIndirect-buffer-02708";
344 indirect_buffer_bit = "VUID-vkCmdDrawIndirect-buffer-02709";
345 viewport_count = "VUID-vkCmdDrawIndirect-viewportCount-03417";
346 scissor_count = "VUID-vkCmdDrawIndirect-scissorCount-03418";
347 viewport_scissor_count = "VUID-vkCmdDrawIndirect-viewportCount-03419";
348 primitive_topology = "VUID-vkCmdDrawIndirect-primitiveTopology-03420";
349 corner_sampled_address_mode = "VUID-vkCmdDrawIndirect-flags-02696";
350 subpass_input = "VUID-vkCmdDrawIndirect-None-02686";
351 imageview_atomic = "VUID-vkCmdDrawIndirect-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700352 push_constants_set = "VUID-vkCmdDrawIndirect-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100353 image_subresources_render_pass_write = "VUID-vkCmdDrawIndirect-None-06537";
354 image_subresources_subpass_read = "VUID-vkCmdDrawIndirect-None-06538";
355 image_subresources_subpass_write = "VUID-vkCmdDrawIndirect-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700356 descriptor_valid = "VUID-vkCmdDrawIndirect-None-02699";
357 sampler_imageview_type = "VUID-vkCmdDrawIndirect-None-02702";
358 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawIndirect-None-02703";
359 sampler_bias_offset = "VUID-vkCmdDrawIndirect-None-02704";
360 vertex_binding_attribute = "VUID-vkCmdDrawIndirect-None-02721";
361 dynamic_state_setting_commands = "VUID-vkCmdDrawIndirect-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700362 rasterization_samples = "VUID-vkCmdDrawIndirect-rasterizationSamples-04740";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700363 unprotected_command_buffer = "VUID-vkCmdDrawIndirect-commandBuffer-02707";
364 max_multiview_instance_index = "VUID-vkCmdDrawIndirect-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700365 img_filter_cubic = "VUID-vkCmdDrawIndirect-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700366 filter_cubic = "VUID-vkCmdDrawIndirect-filterCubic-02694";
367 filter_cubic_min_max = "VUID-vkCmdDrawIndirect-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000368 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawIndirect-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600369 patch_control_points = "VUID-vkCmdDrawIndirect-None-04875";
370 rasterizer_discard_enable = "VUID-vkCmdDrawIndirect-None-04876";
371 depth_bias_enable = "VUID-vkCmdDrawIndirect-None-04877";
372 logic_op = "VUID-vkCmdDrawIndirect-logicOp-04878";
373 primitive_restart_enable = "VUID-vkCmdDrawIndirect-None-04879";
374 vertex_input_binding_stride = "VUID-vkCmdDrawIndirect-pStrides-04884";
375 vertex_input = kVUID_Core_CmdDrawIndirect_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200376 blend_enable = "VUID-vkCmdDrawIndirect-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100377 color_write_enable = "VUID-vkCmdDrawIndirect-attachmentCount-06667";
Aaron Hagan92a44f82021-11-19 09:34:56 -0500378 dynamic_rendering_view_mask = "VUID-vkCmdDrawIndirect-viewMask-06178";
379 dynamic_rendering_color_count = "VUID-vkCmdDrawIndirect-colorAttachmentCount-06179";
380 dynamic_rendering_color_formats = "VUID-vkCmdDrawIndirect-colorAttachmentCount-06180";
381 dynamic_rendering_depth_format = "VUID-vkCmdDrawIndirect-pDepthAttachment-06181";
382 dynamic_rendering_stencil_format = "VUID-vkCmdDrawIndirect-pStencilAttachment-06182";
383 dynamic_rendering_fsr = "VUID-vkCmdDrawIndirect-imageView-06183";
384 dynamic_rendering_fdm = "VUID-vkCmdDrawIndirect-imageView-06184";
Aaron Hagan09a0e172021-11-19 21:18:33 -0500385 dynamic_rendering_color_sample = "VUID-vkCmdDrawIndirect-colorAttachmentCount-06185";
386 dynamic_rendering_depth_sample = "VUID-vkCmdDrawIndirect-pDepthAttachment-06186";
387 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawIndirect-pStencilAttachment-06187";
388 dynamic_rendering_multi_sample = "VUID-vkCmdDrawIndirect-colorAttachmentCount-06188";
Aaron Haganaca50442021-12-07 22:26:29 -0500389 dynamic_rendering_06189 = "VUID-vkCmdDrawIndirect-pDepthAttachment-06189";
390 dynamic_rendering_06190 = "VUID-vkCmdDrawIndirect-pStencilAttachment-06190";
391 dynamic_rendering_06198 = "VUID-vkCmdDrawIndirect-renderPass-06198";
Mike Schuchardt0e558a52022-08-18 15:14:51 -0700392 storage_image_read_without_format = "VUID-vkCmdDrawIndirect-OpTypeImage-07028";
393 storage_image_write_without_format = "VUID-vkCmdDrawIndirect-OpTypeImage-07027";
394 storage_texel_buffer_read_without_format = "VUID-vkCmdDrawIndirect-OpTypeImage-07030";
395 storage_texel_buffer_write_without_format = "VUID-vkCmdDrawIndirect-OpTypeImage-07029";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200396 depth_compare_sample = "VUID-vkCmdDrawIndirect-None-06479";
ziga-lunarg50188622022-03-26 01:18:32 +0100397 dynamic_sample_locations = "VUID-vkCmdDrawIndirect-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +0200398 primitives_generated = "VUID-vkCmdDrawIndirect-primitivesGeneratedQueryWithRasterizerDiscard-06708";
ziga-lunargf4068b12022-04-05 13:58:59 +0200399 primitives_generated_streams = "VUID-vkCmdDrawIndirect-primitivesGeneratedQueryWithNonZeroStreams-06709";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700400 }
401};
402
403struct DispatchVuidsCmdDrawIndexedIndirect : DrawDispatchVuid {
404 DispatchVuidsCmdDrawIndexedIndirect() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700405 pipeline_bound = "VUID-vkCmdDrawIndexedIndirect-None-02700";
406 dynamic_state = "VUID-vkCmdDrawIndexedIndirect-commandBuffer-02701";
407 vertex_binding = "VUID-vkCmdDrawIndexedIndirect-None-04007";
408 vertex_binding_null = "VUID-vkCmdDrawIndexedIndirect-None-04008";
409 compatible_pipeline = "VUID-vkCmdDrawIndexedIndirect-None-02697";
410 render_pass_compatible = "VUID-vkCmdDrawIndexedIndirect-renderPass-02684";
411 subpass_index = "VUID-vkCmdDrawIndexedIndirect-subpass-02685";
412 sample_location = "VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-02689";
413 linear_sampler = "VUID-vkCmdDrawIndexedIndirect-magFilter-04553";
414 cubic_sampler = "VUID-vkCmdDrawIndexedIndirect-None-02692";
415 indirect_protected_cb = "VUID-vkCmdDrawIndexedIndirect-commandBuffer-02711";
416 indirect_contiguous_memory = "VUID-vkCmdDrawIndexedIndirect-buffer-02708";
417 indirect_buffer_bit = "VUID-vkCmdDrawIndexedIndirect-buffer-02709";
418 viewport_count = "VUID-vkCmdDrawIndexedIndirect-viewportCount-03417";
419 scissor_count = "VUID-vkCmdDrawIndexedIndirect-scissorCount-03418";
420 viewport_scissor_count = "VUID-vkCmdDrawIndexedIndirect-viewportCount-03419";
421 primitive_topology = "VUID-vkCmdDrawIndexedIndirect-primitiveTopology-03420";
422 corner_sampled_address_mode = "VUID-vkCmdDrawIndexedIndirect-flags-02696";
423 subpass_input = "VUID-vkCmdDrawIndexedIndirect-None-02686";
424 imageview_atomic = "VUID-vkCmdDrawIndexedIndirect-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700425 push_constants_set = "VUID-vkCmdDrawIndexedIndirect-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100426 image_subresources_render_pass_write = "VUID-vkCmdDrawIndexedIndirect-None-06537";
427 image_subresources_subpass_read = "VUID-vkCmdDrawIndexedIndirect-None-06538";
428 image_subresources_subpass_write = "VUID-vkCmdDrawIndexedIndirect-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700429 descriptor_valid = "VUID-vkCmdDrawIndexedIndirect-None-02699";
430 sampler_imageview_type = "VUID-vkCmdDrawIndexedIndirect-None-02702";
431 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawIndexedIndirect-None-02703";
432 sampler_bias_offset = "VUID-vkCmdDrawIndexedIndirect-None-02704";
433 vertex_binding_attribute = "VUID-vkCmdDrawIndexedIndirect-None-02721";
434 dynamic_state_setting_commands = "VUID-vkCmdDrawIndexedIndirect-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700435 rasterization_samples = "VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-04740";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700436 unprotected_command_buffer = "VUID-vkCmdDrawIndexedIndirect-commandBuffer-02707";
437 max_multiview_instance_index = "VUID-vkCmdDrawIndexedIndirect-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700438 img_filter_cubic = "VUID-vkCmdDrawIndexedIndirect-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700439 filter_cubic = "VUID-vkCmdDrawIndexedIndirect-filterCubic-02694";
440 filter_cubic_min_max = "VUID-vkCmdDrawIndexedIndirect-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000441 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawIndexedIndirect-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600442 patch_control_points = "VUID-vkCmdDrawIndexedIndirect-None-04875";
443 rasterizer_discard_enable = "VUID-vkCmdDrawIndexedIndirect-None-04876";
444 depth_bias_enable = "VUID-vkCmdDrawIndexedIndirect-None-04877";
445 logic_op = "VUID-vkCmdDrawIndexedIndirect-logicOp-04878";
446 primitive_restart_enable = "VUID-vkCmdDrawIndexedIndirect-None-04879";
447 vertex_input_binding_stride = "VUID-vkCmdDrawIndexedIndirect-pStrides-04884";
448 vertex_input = kVUID_Core_CmdDrawIndexedIndirect_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200449 blend_enable = "VUID-vkCmdDrawIndexedIndirect-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100450 color_write_enable = "VUID-vkCmdDrawIndexedIndirect-attachmentCount-06667";
Aaron Hagan92a44f82021-11-19 09:34:56 -0500451 dynamic_rendering_view_mask = "VUID-vkCmdDrawIndexedIndirect-viewMask-06178";
452 dynamic_rendering_color_count = "VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06179";
453 dynamic_rendering_color_formats = "VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06180";
454 dynamic_rendering_depth_format = "VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-06181";
455 dynamic_rendering_stencil_format = "VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-06182";
456 dynamic_rendering_fsr = "VUID-vkCmdDrawIndexedIndirect-imageView-06183";
457 dynamic_rendering_fdm = "VUID-vkCmdDrawIndexedIndirect-imageView-06184";
Aaron Hagan09a0e172021-11-19 21:18:33 -0500458 dynamic_rendering_color_sample = "VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06185";
459 dynamic_rendering_depth_sample = "VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-06186";
460 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-06187";
461 dynamic_rendering_multi_sample = "VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06188";
Aaron Haganaca50442021-12-07 22:26:29 -0500462 dynamic_rendering_06189 = "VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-06189";
463 dynamic_rendering_06190 = "VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-06190";
464 dynamic_rendering_06198 = "VUID-vkCmdDrawIndexedIndirect-renderPass-06198";
Mike Schuchardt0e558a52022-08-18 15:14:51 -0700465 storage_image_read_without_format = "VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07028";
466 storage_image_write_without_format = "VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07027";
467 storage_texel_buffer_read_without_format = "VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07030";
468 storage_texel_buffer_write_without_format = "VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07029";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200469 depth_compare_sample = "VUID-vkCmdDrawIndexedIndirect-None-06479";
ziga-lunarg50188622022-03-26 01:18:32 +0100470 dynamic_sample_locations = "VUID-vkCmdDrawIndexedIndirect-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +0200471 primitives_generated = "VUID-vkCmdDrawIndexedIndirect-primitivesGeneratedQueryWithRasterizerDiscard-06708";
ziga-lunargf4068b12022-04-05 13:58:59 +0200472 primitives_generated_streams = "VUID-vkCmdDrawIndexedIndirect-primitivesGeneratedQueryWithNonZeroStreams-06709";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700473 }
474};
475
476struct DispatchVuidsCmdDispatch : DrawDispatchVuid {
477 DispatchVuidsCmdDispatch() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700478 pipeline_bound = "VUID-vkCmdDispatch-None-02700";
Mark Lobodzinski02d37552020-12-28 13:29:46 -0700479 dynamic_state = "VUID-vkCmdDispatch-commandBuffer-02701";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700480 compatible_pipeline = "VUID-vkCmdDispatch-None-02697";
481 linear_sampler = "VUID-vkCmdDispatch-magFilter-04553";
482 cubic_sampler = "VUID-vkCmdDispatch-None-02692";
483 corner_sampled_address_mode = "VUID-vkCmdDispatch-flags-02696";
484 imageview_atomic = "VUID-vkCmdDispatch-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700485 push_constants_set = "VUID-vkCmdDispatch-maintenance4-06425";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700486 descriptor_valid = "VUID-vkCmdDispatch-None-02699";
487 sampler_imageview_type = "VUID-vkCmdDispatch-None-02702";
488 sampler_implicitLod_dref_proj = "VUID-vkCmdDispatch-None-02703";
489 sampler_bias_offset = "VUID-vkCmdDispatch-None-02704";
490 dynamic_state_setting_commands = "VUID-vkCmdDispatch-None-02859";
491 unprotected_command_buffer = "VUID-vkCmdDispatch-commandBuffer-02707";
492 protected_command_buffer = "VUID-vkCmdDispatch-commandBuffer-02712";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700493 img_filter_cubic = "VUID-vkCmdDispatch-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700494 filter_cubic = "VUID-vkCmdDispatch-filterCubic-02694";
495 filter_cubic_min_max = "VUID-vkCmdDispatch-filterCubicMinmax-02695";
Mike Schuchardt0e558a52022-08-18 15:14:51 -0700496 storage_image_read_without_format = "VUID-vkCmdDispatch-OpTypeImage-07028";
497 storage_image_write_without_format = "VUID-vkCmdDispatch-OpTypeImage-07027";
498 storage_texel_buffer_read_without_format = "VUID-vkCmdDispatch-OpTypeImage-07030";
499 storage_texel_buffer_write_without_format = "VUID-vkCmdDispatch-OpTypeImage-07029";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200500 depth_compare_sample = "VUID-vkCmdDispatch-None-06479";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700501 }
502};
503
504struct DispatchVuidsCmdDispatchIndirect : DrawDispatchVuid {
505 DispatchVuidsCmdDispatchIndirect() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700506 pipeline_bound = "VUID-vkCmdDispatchIndirect-None-02700";
Mark Lobodzinski02d37552020-12-28 13:29:46 -0700507 dynamic_state = "VUID-vkCmdDispatchIndirect-commandBuffer-02701";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700508 compatible_pipeline = "VUID-vkCmdDispatchIndirect-None-02697";
509 linear_sampler = "VUID-vkCmdDispatchIndirect-magFilter-04553";
510 cubic_sampler = "VUID-vkCmdDispatchIndirect-None-02692";
511 indirect_protected_cb = "VUID-vkCmdDispatchIndirect-commandBuffer-02711";
512 indirect_contiguous_memory = "VUID-vkCmdDispatchIndirect-buffer-02708";
513 indirect_buffer_bit = "VUID-vkCmdDispatchIndirect-buffer-02709";
514 corner_sampled_address_mode = "VUID-vkCmdDispatchIndirect-flags-02696";
515 imageview_atomic = "VUID-vkCmdDispatchIndirect-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700516 push_constants_set = "VUID-vkCmdDispatchIndirect-maintenance4-06425";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700517 descriptor_valid = "VUID-vkCmdDispatchIndirect-None-02699";
518 sampler_imageview_type = "VUID-vkCmdDispatchIndirect-None-02702";
519 sampler_implicitLod_dref_proj = "VUID-vkCmdDispatchIndirect-None-02703";
520 sampler_bias_offset = "VUID-vkCmdDispatchIndirect-None-02704";
521 dynamic_state_setting_commands = "VUID-vkCmdDispatchIndirect-None-02859";
522 unprotected_command_buffer = "VUID-vkCmdDispatchIndirect-commandBuffer-02707";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700523 img_filter_cubic = "VUID-vkCmdDispatchIndirect-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700524 filter_cubic = "VUID-vkCmdDispatchIndirect-filterCubic-02694";
525 filter_cubic_min_max = "VUID-vkCmdDispatchIndirect-filterCubicMinmax-02695";
Mike Schuchardt0e558a52022-08-18 15:14:51 -0700526 storage_image_read_without_format = "VUID-vkCmdDispatchIndirect-OpTypeImage-07028";
527 storage_image_write_without_format = "VUID-vkCmdDispatchIndirect-OpTypeImage-07027";
528 storage_texel_buffer_read_without_format = "VUID-vkCmdDispatchIndirect-OpTypeImage-07030";
529 storage_texel_buffer_write_without_format = "VUID-vkCmdDispatchIndirect-OpTypeImage-07029";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200530 depth_compare_sample = "VUID-vkCmdDispatchIndirect-None-06479";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700531 }
532};
533
534struct DispatchVuidsCmdDrawIndirectCount : DrawDispatchVuid {
535 DispatchVuidsCmdDrawIndirectCount() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700536 pipeline_bound = "VUID-vkCmdDrawIndirectCount-None-02700";
537 dynamic_state = "VUID-vkCmdDrawIndirectCount-commandBuffer-02701";
538 vertex_binding = "VUID-vkCmdDrawIndirectCount-None-04007";
539 vertex_binding_null = "VUID-vkCmdDrawIndirectCount-None-04008";
540 compatible_pipeline = "VUID-vkCmdDrawIndirectCount-None-02697";
541 render_pass_compatible = "VUID-vkCmdDrawIndirectCount-renderPass-02684";
542 subpass_index = "VUID-vkCmdDrawIndirectCount-subpass-02685";
543 sample_location = "VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-02689";
544 linear_sampler = "VUID-vkCmdDrawIndirectCount-magFilter-04553";
545 cubic_sampler = "VUID-vkCmdDrawIndirectCount-None-02692";
546 indirect_protected_cb = "VUID-vkCmdDrawIndirectCount-commandBuffer-02711";
547 indirect_contiguous_memory = "VUID-vkCmdDrawIndirectCount-buffer-02708";
sjfricke177bbb62022-06-02 17:37:03 +0900548 indirect_count_contiguous_memory = "VUID-vkCmdDrawIndirectCount-countBuffer-02714";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700549 indirect_buffer_bit = "VUID-vkCmdDrawIndirectCount-buffer-02709";
sjfricke177bbb62022-06-02 17:37:03 +0900550 indirect_count_buffer_bit = "VUID-vkCmdDrawIndirectCount-countBuffer-02715";
551 indirect_count_offset = "VUID-vkCmdDrawIndirectCount-countBufferOffset-04129";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700552 viewport_count = "VUID-vkCmdDrawIndirectCount-viewportCount-03417";
553 scissor_count = "VUID-vkCmdDrawIndirectCount-scissorCount-03418";
554 viewport_scissor_count = "VUID-vkCmdDrawIndirectCount-viewportCount-03419";
555 primitive_topology = "VUID-vkCmdDrawIndirectCount-primitiveTopology-03420";
556 corner_sampled_address_mode = "VUID-vkCmdDrawIndirectCount-flags-02696";
557 subpass_input = "VUID-vkCmdDrawIndirectCount-None-02686";
558 imageview_atomic = "VUID-vkCmdDrawIndirectCount-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700559 push_constants_set = "VUID-vkCmdDrawIndirectCount-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100560 image_subresources_render_pass_write = "VUID-vkCmdDrawIndirectCount-None-06537";
561 image_subresources_subpass_read = "VUID-vkCmdDrawIndirectCount-None-06538";
562 image_subresources_subpass_write = "VUID-vkCmdDrawIndirectCount-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700563 descriptor_valid = "VUID-vkCmdDrawIndirectCount-None-02699";
564 sampler_imageview_type = "VUID-vkCmdDrawIndirectCount-None-02702";
565 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawIndirectCount-None-02703";
566 sampler_bias_offset = "VUID-vkCmdDrawIndirectCount-None-02704";
567 vertex_binding_attribute = "VUID-vkCmdDrawIndirectCount-None-02721";
568 dynamic_state_setting_commands = "VUID-vkCmdDrawIndirectCount-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700569 rasterization_samples = "VUID-vkCmdDrawIndirectCount-rasterizationSamples-04740";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700570 unprotected_command_buffer = "VUID-vkCmdDrawIndirectCount-commandBuffer-02707";
571 max_multiview_instance_index = "VUID-vkCmdDrawIndirectCount-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700572 img_filter_cubic = "VUID-vkCmdDrawIndirectCount-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700573 filter_cubic = "VUID-vkCmdDrawIndirectCount-filterCubic-02694";
574 filter_cubic_min_max = "VUID-vkCmdDrawIndirectCount-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000575 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawIndirectCount-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600576 patch_control_points = "VUID-vkCmdDrawIndirectCount-None-04875";
577 rasterizer_discard_enable = "VUID-vkCmdDrawIndirectCount-None-04876";
578 depth_bias_enable = "VUID-vkCmdDrawIndirectCount-None-04877";
579 logic_op = "VUID-vkCmdDrawIndirectCount-logicOp-04878";
580 primitive_restart_enable = "VUID-vkCmdDrawIndirectCount-None-04879";
581 vertex_input_binding_stride = "VUID-vkCmdDrawIndirectCount-pStrides-04884";
582 vertex_input = kVUID_Core_CmdDrawIndirectCount_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200583 blend_enable = "VUID-vkCmdDrawIndirectCount-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100584 color_write_enable = "VUID-vkCmdDrawIndirectCount-attachmentCount-06667";
stusmithedc4e392021-12-24 15:22:16 +0000585 dynamic_rendering_view_mask = "VUID-vkCmdDrawIndirectCount-viewMask-06178";
586 dynamic_rendering_color_count = "VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06179";
587 dynamic_rendering_color_formats = "VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06180";
588 dynamic_rendering_depth_format = "VUID-vkCmdDrawIndirectCount-pDepthAttachment-06181";
589 dynamic_rendering_stencil_format = "VUID-vkCmdDrawIndirectCount-pStencilAttachment-06182";
590 dynamic_rendering_fsr = "VUID-vkCmdDrawIndirectCount-imageView-06183";
591 dynamic_rendering_fdm = "VUID-vkCmdDrawIndirectCount-imageView-06184";
592 dynamic_rendering_color_sample = "VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06185";
593 dynamic_rendering_depth_sample = "VUID-vkCmdDrawIndirectCount-pDepthAttachment-06186";
594 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawIndirectCount-pStencilAttachment-06187";
595 dynamic_rendering_multi_sample = "VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06188";
596 dynamic_rendering_06189 = "VUID-vkCmdDrawIndirectCount-pDepthAttachment-06189";
597 dynamic_rendering_06190 = "VUID-vkCmdDrawIndirectCount-pStencilAttachment-06190";
598 dynamic_rendering_06198 = "VUID-vkCmdDrawIndirectCount-renderPass-06198";
Mike Schuchardt0e558a52022-08-18 15:14:51 -0700599 storage_image_read_without_format = "VUID-vkCmdDrawIndirectCount-OpTypeImage-07028";
600 storage_image_write_without_format = "VUID-vkCmdDrawIndirectCount-OpTypeImage-07027";
601 storage_texel_buffer_read_without_format = "VUID-vkCmdDrawIndirectCount-OpTypeImage-07030";
602 storage_texel_buffer_write_without_format = "VUID-vkCmdDrawIndirectCount-OpTypeImage-07029";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200603 depth_compare_sample = "VUID-vkCmdDrawIndirectCount-None-06479";
ziga-lunarg50188622022-03-26 01:18:32 +0100604 dynamic_sample_locations = "VUID-vkCmdDrawIndirectCount-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +0200605 primitives_generated = "VUID-vkCmdDrawIndirectCount-primitivesGeneratedQueryWithRasterizerDiscard-06708";
ziga-lunargf4068b12022-04-05 13:58:59 +0200606 primitives_generated_streams = "VUID-vkCmdDrawIndirectCount-primitivesGeneratedQueryWithNonZeroStreams-06709";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700607 }
608};
609
610struct DispatchVuidsCmdDrawIndexedIndirectCount : DrawDispatchVuid {
611 DispatchVuidsCmdDrawIndexedIndirectCount() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700612 pipeline_bound = "VUID-vkCmdDrawIndexedIndirectCount-None-02700";
613 dynamic_state = "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02701";
614 vertex_binding = "VUID-vkCmdDrawIndexedIndirectCount-None-04007";
615 vertex_binding_null = "VUID-vkCmdDrawIndexedIndirectCount-None-04008";
616 compatible_pipeline = "VUID-vkCmdDrawIndexedIndirectCount-None-02697";
617 render_pass_compatible = "VUID-vkCmdDrawIndexedIndirectCount-renderPass-02684";
618 subpass_index = "VUID-vkCmdDrawIndexedIndirectCount-subpass-02685";
619 sample_location = "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-02689";
620 linear_sampler = "VUID-vkCmdDrawIndexedIndirectCount-magFilter-04553";
621 cubic_sampler = "VUID-vkCmdDrawIndexedIndirectCount-None-02692";
622 indirect_protected_cb = "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02711";
623 indirect_contiguous_memory = "VUID-vkCmdDrawIndexedIndirectCount-buffer-02708";
sjfricke177bbb62022-06-02 17:37:03 +0900624 indirect_count_contiguous_memory = "VUID-vkCmdDrawIndexedIndirectCount-countBuffer-02714";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700625 indirect_buffer_bit = "VUID-vkCmdDrawIndexedIndirectCount-buffer-02709";
sjfricke177bbb62022-06-02 17:37:03 +0900626 indirect_count_buffer_bit = "VUID-vkCmdDrawIndexedIndirectCount-countBuffer-02715";
627 indirect_count_offset = "VUID-vkCmdDrawIndexedIndirectCount-countBufferOffset-04129";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700628 viewport_count = "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-03417";
629 scissor_count = "VUID-vkCmdDrawIndexedIndirectCount-scissorCount-03418";
630 viewport_scissor_count = "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-03419";
631 primitive_topology = "VUID-vkCmdDrawIndexedIndirectCount-primitiveTopology-03420";
632 corner_sampled_address_mode = "VUID-vkCmdDrawIndexedIndirectCount-flags-02696";
633 subpass_input = "VUID-vkCmdDrawIndexedIndirectCount-None-02686";
634 imageview_atomic = "VUID-vkCmdDrawIndexedIndirectCount-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700635 push_constants_set = "VUID-vkCmdDrawIndexedIndirectCount-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100636 image_subresources_render_pass_write = "VUID-vkCmdDrawIndexedIndirectCount-None-06537";
637 image_subresources_subpass_read = "VUID-vkCmdDrawIndexedIndirectCount-None-06538";
638 image_subresources_subpass_write = "VUID-vkCmdDrawIndexedIndirectCount-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700639 descriptor_valid = "VUID-vkCmdDrawIndexedIndirectCount-None-02699";
640 sampler_imageview_type = "VUID-vkCmdDrawIndexedIndirectCount-None-02702";
641 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawIndexedIndirectCount-None-02703";
642 sampler_bias_offset = "VUID-vkCmdDrawIndexedIndirectCount-None-02704";
643 vertex_binding_attribute = "VUID-vkCmdDrawIndexedIndirectCount-None-02721";
644 dynamic_state_setting_commands = "VUID-vkCmdDrawIndexedIndirectCount-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700645 rasterization_samples = "VUID-vkCmdDrawIndexedIndirectCount-rasterizationSamples-04740";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700646 unprotected_command_buffer = "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02707";
647 max_multiview_instance_index = "VUID-vkCmdDrawIndexedIndirectCount-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700648 img_filter_cubic = "VUID-vkCmdDrawIndexedIndirectCount-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700649 filter_cubic = "VUID-vkCmdDrawIndexedIndirectCount-filterCubic-02694";
650 filter_cubic_min_max = "VUID-vkCmdDrawIndexedIndirectCount-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000651 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawIndexedIndirectCount-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600652 patch_control_points = "VUID-vkCmdDrawIndexedIndirectCount-None-04875";
653 rasterizer_discard_enable = "VUID-vkCmdDrawIndexedIndirectCount-None-04876";
654 depth_bias_enable = "VUID-vkCmdDrawIndexedIndirectCount-None-04877";
655 logic_op = "VUID-vkCmdDrawIndexedIndirectCount-logicOp-04878";
656 primitive_restart_enable = "VUID-vkCmdDrawIndexedIndirectCount-None-04879";
657 vertex_input_binding_stride = "VUID-vkCmdDrawIndexedIndirectCount-pStrides-04884";
658 vertex_input = kVUID_Core_CmdDrawIndexedIndirectCount_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200659 blend_enable = "VUID-vkCmdDrawIndexedIndirectCount-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100660 color_write_enable = "VUID-vkCmdDrawIndexedIndirectCount-attachmentCount-06667";
Aaron Haganaca50442021-12-07 22:26:29 -0500661 dynamic_rendering_view_mask = "VUID-vkCmdDrawIndexedIndirectCount-viewMask-06178";
662 dynamic_rendering_color_count = "VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06179";
663 dynamic_rendering_color_formats = "VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06180";
664 dynamic_rendering_depth_format = "VUID-vkCmdDrawIndexedIndirectCount-pDepthAttachment-06181";
665 dynamic_rendering_stencil_format = "VUID-vkCmdDrawIndexedIndirectCount-pStencilAttachment-06182";
666 dynamic_rendering_fsr = "VUID-vkCmdDrawIndexedIndirectCount-imageView-06183";
667 dynamic_rendering_fdm = "VUID-vkCmdDrawIndexedIndirectCount-imageView-06184";
668 dynamic_rendering_color_sample = "VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06185";
669 dynamic_rendering_depth_sample = "VUID-vkCmdDrawIndexedIndirectCount-pDepthAttachment-06186";
670 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawIndexedIndirectCount-pStencilAttachment-06187";
671 dynamic_rendering_multi_sample = "VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06188";
672 dynamic_rendering_06189 = "VUID-vkCmdDrawIndexedIndirectCount-pDepthAttachment-06189";
673 dynamic_rendering_06190 = "VUID-vkCmdDrawIndexedIndirectCount-pStencilAttachment-06190";
674 dynamic_rendering_06198 = "VUID-vkCmdDrawIndexedIndirectCount-renderPass-06198";
Mike Schuchardt0e558a52022-08-18 15:14:51 -0700675 storage_image_read_without_format = "VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-07028";
676 storage_image_write_without_format = "VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-07027";
677 storage_texel_buffer_read_without_format = "VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-07030";
678 storage_texel_buffer_write_without_format = "VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-07029";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200679 depth_compare_sample = "VUID-vkCmdDrawIndexedIndirectCount-None-06479";
ziga-lunarg50188622022-03-26 01:18:32 +0100680 dynamic_sample_locations = "VUID-vkCmdDrawIndexedIndirectCount-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +0200681 primitives_generated = "VUID-vkCmdDrawIndexedIndirectCount-primitivesGeneratedQueryWithRasterizerDiscard-06708";
ziga-lunargf4068b12022-04-05 13:58:59 +0200682 primitives_generated_streams = "VUID-vkCmdDrawIndexedIndirectCount-primitivesGeneratedQueryWithNonZeroStreams-06709";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700683 }
684};
685
686struct DispatchVuidsCmdTraceRaysNV: DrawDispatchVuid {
687 DispatchVuidsCmdTraceRaysNV() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700688 pipeline_bound = "VUID-vkCmdTraceRaysNV-None-02700";
689 dynamic_state = "VUID-vkCmdTraceRaysNV-commandBuffer-02701";
690 compatible_pipeline = "VUID-vkCmdTraceRaysNV-None-02697";
691 linear_sampler = "VUID-vkCmdTraceRaysNV-magFilter-04553";
692 cubic_sampler = "VUID-vkCmdTraceRaysNV-None-02692";
693 corner_sampled_address_mode = "VUID-vkCmdTraceRaysNV-flags-02696";
694 imageview_atomic = "VUID-vkCmdTraceRaysNV-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700695 push_constants_set = "VUID-vkCmdTraceRaysNV-maintenance4-06425";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700696 descriptor_valid = "VUID-vkCmdTraceRaysNV-None-02699";
697 sampler_imageview_type = "VUID-vkCmdTraceRaysNV-None-02702";
698 sampler_implicitLod_dref_proj = "VUID-vkCmdTraceRaysNV-None-02703";
699 sampler_bias_offset = "VUID-vkCmdTraceRaysNV-None-02704";
700 dynamic_state_setting_commands = "VUID-vkCmdTraceRaysNV-None-02859";
701 unprotected_command_buffer = "VUID-vkCmdTraceRaysNV-commandBuffer-02707";
sfricke-samsunga3c47d12021-09-30 13:34:54 -0700702 ray_query_protected_cb = "VUID-vkCmdTraceRaysNV-commandBuffer-04624";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700703 img_filter_cubic = "VUID-vkCmdTraceRaysNV-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700704 filter_cubic = "VUID-vkCmdTraceRaysNV-filterCubic-02694";
705 filter_cubic_min_max = "VUID-vkCmdTraceRaysNV-filterCubicMinmax-02695";
Mike Schuchardt0e558a52022-08-18 15:14:51 -0700706 storage_image_read_without_format = "VUID-vkCmdTraceRaysNV-OpTypeImage-07028";
707 storage_image_write_without_format = "VUID-vkCmdTraceRaysNV-OpTypeImage-07027";
708 storage_texel_buffer_read_without_format = "VUID-vkCmdTraceRaysNV-OpTypeImage-07030";
709 storage_texel_buffer_write_without_format = "VUID-vkCmdTraceRaysNV-OpTypeImage-07029";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200710 depth_compare_sample = "VUID-vkCmdTraceRaysNV-None-06479";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700711 }
712};
713
714struct DispatchVuidsCmdTraceRaysKHR: DrawDispatchVuid {
715 DispatchVuidsCmdTraceRaysKHR() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700716 pipeline_bound = "VUID-vkCmdTraceRaysKHR-None-02700";
717 dynamic_state = "VUID-vkCmdTraceRaysKHR-commandBuffer-02701";
718 compatible_pipeline = "VUID-vkCmdTraceRaysKHR-None-02697";
719 linear_sampler = "VUID-vkCmdTraceRaysKHR-magFilter-04553";
720 cubic_sampler = "VUID-vkCmdTraceRaysKHR-None-02692";
721 corner_sampled_address_mode = "VUID-vkCmdTraceRaysKHR-flags-02696";
722 imageview_atomic = "VUID-vkCmdTraceRaysKHR-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700723 push_constants_set = "VUID-vkCmdTraceRaysKHR-maintenance4-06425";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700724 descriptor_valid = "VUID-vkCmdTraceRaysKHR-None-02699";
725 sampler_imageview_type = "VUID-vkCmdTraceRaysKHR-None-02702";
726 sampler_implicitLod_dref_proj = "VUID-vkCmdTraceRaysKHR-None-02703";
727 sampler_bias_offset = "VUID-vkCmdTraceRaysKHR-None-02704";
728 dynamic_state_setting_commands = "VUID-vkCmdTraceRaysKHR-None-02859";
729 unprotected_command_buffer = "VUID-vkCmdTraceRaysKHR-commandBuffer-02707";
Mike Schuchardt840f1252022-05-11 11:31:25 -0700730 ray_query_protected_cb = "VUID-vkCmdTraceRaysKHR-commandBuffer-03635";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700731 img_filter_cubic = "VUID-vkCmdTraceRaysKHR-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700732 filter_cubic = "VUID-vkCmdTraceRaysKHR-filterCubic-02694";
733 filter_cubic_min_max = "VUID-vkCmdTraceRaysKHR-filterCubicMinmax-02695";
Mike Schuchardt0e558a52022-08-18 15:14:51 -0700734 storage_image_read_without_format = "VUID-vkCmdTraceRaysKHR-OpTypeImage-07028";
735 storage_image_write_without_format = "VUID-vkCmdTraceRaysKHR-OpTypeImage-07027";
736 storage_texel_buffer_read_without_format = "VUID-vkCmdTraceRaysKHR-OpTypeImage-07030";
737 storage_texel_buffer_write_without_format = "VUID-vkCmdTraceRaysKHR-OpTypeImage-07029";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200738 depth_compare_sample = "VUID-vkCmdTraceRaysKHR-None-06479";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700739 }
740};
741
742struct DispatchVuidsCmdTraceRaysIndirectKHR: DrawDispatchVuid {
743 DispatchVuidsCmdTraceRaysIndirectKHR() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700744 pipeline_bound = "VUID-vkCmdTraceRaysIndirectKHR-None-02700";
745 dynamic_state = "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-02701";
746 compatible_pipeline = "VUID-vkCmdTraceRaysIndirectKHR-None-02697";
747 linear_sampler = "VUID-vkCmdTraceRaysIndirectKHR-magFilter-04553";
748 cubic_sampler = "VUID-vkCmdTraceRaysIndirectKHR-None-02692";
Shannon McPherson57255a62020-12-23 16:00:54 -0700749 indirect_contiguous_memory = "VUID-vkCmdTraceRaysIndirectKHR-indirectDeviceAddress-03632";
750 indirect_buffer_bit = "VUID-vkCmdTraceRaysIndirectKHR-indirectDeviceAddress-03633";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700751 corner_sampled_address_mode = "VUID-vkCmdTraceRaysIndirectKHR-flags-02696";
752 imageview_atomic = "VUID-vkCmdTraceRaysIndirectKHR-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700753 push_constants_set = "VUID-vkCmdTraceRaysIndirectKHR-maintenance4-06425";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700754 descriptor_valid = "VUID-vkCmdTraceRaysIndirectKHR-None-02699";
755 sampler_imageview_type = "VUID-vkCmdTraceRaysIndirectKHR-None-02702";
756 sampler_implicitLod_dref_proj = "VUID-vkCmdTraceRaysIndirectKHR-None-02703";
757 sampler_bias_offset = "VUID-vkCmdTraceRaysIndirectKHR-None-02704";
758 dynamic_state_setting_commands = "VUID-vkCmdTraceRaysIndirectKHR-None-02859";
759 unprotected_command_buffer = "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-02707";
sfricke-samsunga3c47d12021-09-30 13:34:54 -0700760 ray_query_protected_cb = "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-03635";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700761 img_filter_cubic = "VUID-vkCmdTraceRaysIndirectKHR-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700762 filter_cubic = "VUID-vkCmdTraceRaysIndirectKHR-filterCubic-02694";
763 filter_cubic_min_max = "VUID-vkCmdTraceRaysIndirectKHR-filterCubicMinmax-02695";
Mike Schuchardt0e558a52022-08-18 15:14:51 -0700764 storage_image_read_without_format = "VUID-vkCmdTraceRaysIndirectKHR-OpTypeImage-07028";
765 storage_image_write_without_format = "VUID-vkCmdTraceRaysIndirectKHR-OpTypeImage-07027";
766 storage_texel_buffer_read_without_format = "VUID-vkCmdTraceRaysIndirectKHR-OpTypeImage-07030";
767 storage_texel_buffer_write_without_format = "VUID-vkCmdTraceRaysIndirectKHR-OpTypeImage-07029";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200768 depth_compare_sample = "VUID-vkCmdTraceRaysIndirectKHR-None-06479";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700769 }
770};
771
sfricke-samsungf91881c2022-03-31 01:12:00 -0500772struct DispatchVuidsCmdTraceRaysIndirect2KHR: DrawDispatchVuid {
773 DispatchVuidsCmdTraceRaysIndirect2KHR() : DrawDispatchVuid() {
774 pipeline_bound = "VUID-vkCmdTraceRaysIndirect2KHR-None-02700";
775 dynamic_state = "VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-02701";
776 compatible_pipeline = "VUID-vkCmdTraceRaysIndirect2KHR-None-02697";
777 linear_sampler = "VUID-vkCmdTraceRaysIndirect2KHR-magFilter-04553";
778 cubic_sampler = "VUID-vkCmdTraceRaysIndirect2KHR-None-02692";
779 indirect_contiguous_memory = "VUID-vkCmdTraceRaysIndirect2KHR-indirectDeviceAddress-03632";
780 indirect_buffer_bit = "VUID-vkCmdTraceRaysIndirect2KHR-indirectDeviceAddress-03633";
781 corner_sampled_address_mode = "VUID-vkCmdTraceRaysIndirect2KHR-flags-02696";
782 imageview_atomic = "VUID-vkCmdTraceRaysIndirect2KHR-None-02691";
783 push_constants_set = "VUID-vkCmdTraceRaysIndirect2KHR-maintenance4-06425";
784 descriptor_valid = "VUID-vkCmdTraceRaysIndirect2KHR-None-02699";
785 sampler_imageview_type = "VUID-vkCmdTraceRaysIndirect2KHR-None-02702";
786 sampler_implicitLod_dref_proj = "VUID-vkCmdTraceRaysIndirect2KHR-None-02703";
787 sampler_bias_offset = "VUID-vkCmdTraceRaysIndirect2KHR-None-02704";
788 dynamic_state_setting_commands = "VUID-vkCmdTraceRaysIndirect2KHR-None-02859";
789 unprotected_command_buffer = "VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-02707";
790 ray_query_protected_cb = "VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-03635";
791 img_filter_cubic = "VUID-vkCmdTraceRaysIndirect2KHR-None-02693";
792 filter_cubic = "VUID-vkCmdTraceRaysIndirect2KHR-filterCubic-02694";
793 filter_cubic_min_max = "VUID-vkCmdTraceRaysIndirect2KHR-filterCubicMinmax-02695";
Mike Schuchardt0e558a52022-08-18 15:14:51 -0700794 storage_image_read_without_format = "VUID-vkCmdTraceRaysIndirect2KHR-OpTypeImage-07028";
795 storage_image_write_without_format = "VUID-vkCmdTraceRaysIndirect2KHR-OpTypeImage-07027";
796 storage_texel_buffer_read_without_format = "VUID-vkCmdTraceRaysIndirect2KHR-OpTypeImage-07030";
797 storage_texel_buffer_write_without_format = "VUID-vkCmdTraceRaysIndirect2KHR-OpTypeImage-07029";
sfricke-samsungf91881c2022-03-31 01:12:00 -0500798 depth_compare_sample = "VUID-vkCmdTraceRaysIndirect2KHR-None-06479";
799 }
800};
801
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700802struct DispatchVuidsCmdDrawMeshTasksNV: DrawDispatchVuid {
803 DispatchVuidsCmdDrawMeshTasksNV() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700804 pipeline_bound = "VUID-vkCmdDrawMeshTasksNV-None-02700";
805 dynamic_state = "VUID-vkCmdDrawMeshTasksNV-commandBuffer-02701";
806 compatible_pipeline = "VUID-vkCmdDrawMeshTasksNV-None-02697";
807 render_pass_compatible = "VUID-vkCmdDrawMeshTasksNV-renderPass-02684";
808 subpass_index = "VUID-vkCmdDrawMeshTasksNV-subpass-02685";
809 sample_location = "VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-02689";
810 linear_sampler = "VUID-vkCmdDrawMeshTasksNV-magFilter-04553";
811 cubic_sampler = "VUID-vkCmdDrawMeshTasksNV-None-02692";
812 viewport_count = "VUID-vkCmdDrawMeshTasksNV-viewportCount-03417";
813 scissor_count = "VUID-vkCmdDrawMeshTasksNV-scissorCount-03418";
814 viewport_scissor_count = "VUID-vkCmdDrawMeshTasksNV-viewportCount-03419";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700815 corner_sampled_address_mode = "VUID-vkCmdDrawMeshTasksNV-flags-02696";
816 subpass_input = "VUID-vkCmdDrawMeshTasksNV-None-02686";
817 imageview_atomic = "VUID-vkCmdDrawMeshTasksNV-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700818 push_constants_set = "VUID-vkCmdDrawMeshTasksNV-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100819 image_subresources_render_pass_write = "VUID-vkCmdDrawMeshTasksNV-None-06537";
820 image_subresources_subpass_read = "VUID-vkCmdDrawMeshTasksNV-None-06538";
821 image_subresources_subpass_write = "VUID-vkCmdDrawMeshTasksNV-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700822 descriptor_valid = "VUID-vkCmdDrawMeshTasksNV-None-02699";
823 sampler_imageview_type = "VUID-vkCmdDrawMeshTasksNV-None-02702";
824 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawMeshTasksNV-None-02703";
825 sampler_bias_offset = "VUID-vkCmdDrawMeshTasksNV-None-02704";
826 dynamic_state_setting_commands = "VUID-vkCmdDrawMeshTasksNV-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700827 rasterization_samples = "VUID-vkCmdDrawMeshTasksNV-rasterizationSamples-04740";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700828 unprotected_command_buffer = "VUID-vkCmdDrawMeshTasksNV-commandBuffer-02707";
829 max_multiview_instance_index = "VUID-vkCmdDrawMeshTasksNV-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700830 img_filter_cubic = "VUID-vkCmdDrawMeshTasksNV-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700831 filter_cubic = "VUID-vkCmdDrawMeshTasksNV-filterCubic-02694";
832 filter_cubic_min_max = "VUID-vkCmdDrawMeshTasksNV-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000833 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawMeshTasksNV-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600834 rasterizer_discard_enable = "VUID-vkCmdDrawMeshTasksNV-None-04876";
835 depth_bias_enable = "VUID-vkCmdDrawMeshTasksNV-None-04877";
836 logic_op = "VUID-vkCmdDrawMeshTasksNV-logicOp-04878";
Piers Daniell924cd832021-05-18 13:48:47 -0600837 vertex_input = kVUID_Core_CmdDrawMeshTasksNV_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200838 blend_enable = "VUID-vkCmdDrawMeshTasksNV-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100839 color_write_enable = "VUID-vkCmdDrawMeshTasksNV-attachmentCount-06667";
stusmithedc4e392021-12-24 15:22:16 +0000840 dynamic_rendering_view_mask = "VUID-vkCmdDrawMeshTasksNV-viewMask-06178";
841 dynamic_rendering_color_count = "VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06179";
842 dynamic_rendering_color_formats = "VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06180";
843 dynamic_rendering_depth_format = "VUID-vkCmdDrawMeshTasksNV-pDepthAttachment-06181";
844 dynamic_rendering_stencil_format = "VUID-vkCmdDrawMeshTasksNV-pStencilAttachment-06182";
845 dynamic_rendering_fsr = "VUID-vkCmdDrawMeshTasksNV-imageView-06183";
846 dynamic_rendering_fdm = "VUID-vkCmdDrawMeshTasksNV-imageView-06184";
847 dynamic_rendering_color_sample = "VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06185";
848 dynamic_rendering_depth_sample = "VUID-vkCmdDrawMeshTasksNV-pDepthAttachment-06186";
849 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawMeshTasksNV-pStencilAttachment-06187";
850 dynamic_rendering_multi_sample = "VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06188";
851 dynamic_rendering_06189 = "VUID-vkCmdDrawMeshTasksNV-pDepthAttachment-06189";
852 dynamic_rendering_06190 = "VUID-vkCmdDrawMeshTasksNV-pStencilAttachment-06190";
853 dynamic_rendering_06198 = "VUID-vkCmdDrawMeshTasksNV-renderPass-06198";
Mike Schuchardt0e558a52022-08-18 15:14:51 -0700854 storage_image_read_without_format = "VUID-vkCmdDrawMeshTasksNV-OpTypeImage-07028";
855 storage_image_write_without_format = "VUID-vkCmdDrawMeshTasksNV-OpTypeImage-07027";
856 storage_texel_buffer_read_without_format = "VUID-vkCmdDrawMeshTasksNV-OpTypeImage-07030";
857 storage_texel_buffer_write_without_format = "VUID-vkCmdDrawMeshTasksNV-OpTypeImage-07029";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200858 depth_compare_sample = "VUID-vkCmdDrawMeshTasksNV-None-06479";
ziga-lunarg50188622022-03-26 01:18:32 +0100859 dynamic_sample_locations = "VUID-vkCmdDrawMeshTasksNV-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +0200860 primitives_generated = "VUID-vkCmdDrawMeshTasksNV-primitivesGeneratedQueryWithRasterizerDiscard-06708";
ziga-lunargf4068b12022-04-05 13:58:59 +0200861 primitives_generated_streams = "VUID-vkCmdDrawMeshTasksNV-primitivesGeneratedQueryWithNonZeroStreams-06709";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700862 }
863};
864
865struct DispatchVuidsCmdDrawMeshTasksIndirectNV: DrawDispatchVuid {
866 DispatchVuidsCmdDrawMeshTasksIndirectNV() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700867 pipeline_bound = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02700";
868 dynamic_state = "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02701";
869 compatible_pipeline = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02697";
870 render_pass_compatible = "VUID-vkCmdDrawMeshTasksIndirectNV-renderPass-02684";
871 subpass_index = "VUID-vkCmdDrawMeshTasksIndirectNV-subpass-02685";
872 sample_location = "VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-02689";
873 linear_sampler = "VUID-vkCmdDrawMeshTasksIndirectNV-magFilter-04553";
874 cubic_sampler = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02692";
875 indirect_protected_cb = "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02711";
876 indirect_contiguous_memory = "VUID-vkCmdDrawMeshTasksIndirectNV-buffer-02708";
877 indirect_buffer_bit = "VUID-vkCmdDrawMeshTasksIndirectNV-buffer-02709";
878 viewport_count = "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-03417";
879 scissor_count = "VUID-vkCmdDrawMeshTasksIndirectNV-scissorCount-03418";
880 viewport_scissor_count = "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-03419";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700881 corner_sampled_address_mode = "VUID-vkCmdDrawMeshTasksIndirectNV-flags-02696";
882 subpass_input = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02686";
883 imageview_atomic = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700884 push_constants_set = "VUID-vkCmdDrawMeshTasksIndirectNV-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100885 image_subresources_render_pass_write = "VUID-vkCmdDrawMeshTasksIndirectNV-None-06537";
886 image_subresources_subpass_read = "VUID-vkCmdDrawMeshTasksIndirectNV-None-06538";
887 image_subresources_subpass_write = "VUID-vkCmdDrawMeshTasksIndirectNV-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700888 descriptor_valid = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02699";
889 sampler_imageview_type = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02702";
890 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02703";
891 sampler_bias_offset = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02704";
892 dynamic_state_setting_commands = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700893 rasterization_samples = "VUID-vkCmdDrawMeshTasksIndirectNV-rasterizationSamples-04740";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700894 unprotected_command_buffer = "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02707";
895 max_multiview_instance_index = "VUID-vkCmdDrawMeshTasksIndirectNV-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700896 img_filter_cubic = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700897 filter_cubic = "VUID-vkCmdDrawMeshTasksIndirectNV-filterCubic-02694";
898 filter_cubic_min_max = "VUID-vkCmdDrawMeshTasksIndirectNV-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000899 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawMeshTasksIndirectNV-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600900 rasterizer_discard_enable = "VUID-vkCmdDrawMeshTasksIndirectNV-None-04876";
901 depth_bias_enable = "VUID-vkCmdDrawMeshTasksIndirectNV-None-04877";
902 logic_op = "VUID-vkCmdDrawMeshTasksIndirectNV-logicOp-04878";
Piers Daniell924cd832021-05-18 13:48:47 -0600903 vertex_input = kVUID_Core_CmdDrawMeshTasksIndirectNV_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200904 blend_enable = "VUID-vkCmdDrawMeshTasksIndirectNV-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100905 color_write_enable = "VUID-vkCmdDrawMeshTasksIndirectNV-attachmentCount-06667";
stusmithedc4e392021-12-24 15:22:16 +0000906 dynamic_rendering_view_mask = "VUID-vkCmdDrawMeshTasksIndirectNV-viewMask-06178";
907 dynamic_rendering_color_count = "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06179";
908 dynamic_rendering_color_formats = "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06180";
909 dynamic_rendering_depth_format = "VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06181";
910 dynamic_rendering_stencil_format = "VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06182";
911 dynamic_rendering_fsr = "VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06183";
912 dynamic_rendering_fdm = "VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06184";
913 dynamic_rendering_color_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06185";
914 dynamic_rendering_depth_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06186";
915 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06187";
916 dynamic_rendering_multi_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06188";
917 dynamic_rendering_06189 = "VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06189";
918 dynamic_rendering_06190 = "VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06190";
919 dynamic_rendering_06198 = "VUID-vkCmdDrawMeshTasksIndirectNV-renderPass-06198";
Mike Schuchardt0e558a52022-08-18 15:14:51 -0700920 storage_image_read_without_format = "VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-07028";
921 storage_image_write_without_format = "VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-07027";
922 storage_texel_buffer_read_without_format = "VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-07030";
923 storage_texel_buffer_write_without_format = "VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-07029";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200924 depth_compare_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-None-06479";
Aaron Hagan80034ea2021-12-23 11:24:09 -0500925 dynamic_rendering_view_mask = "VUID-vkCmdDrawMeshTasksIndirectNV-viewMask-06178";
926 dynamic_rendering_color_count = "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06179";
927 dynamic_rendering_color_formats = "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06180";
928 dynamic_rendering_depth_format = "VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06181";
929 dynamic_rendering_stencil_format = "VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06182";
930 dynamic_rendering_fsr = "VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06183";
931 dynamic_rendering_fdm = "VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06184";
932 dynamic_rendering_color_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06185";
933 dynamic_rendering_depth_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06186";
934 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06187";
Jeremy Gebben09c1a072022-02-08 09:42:47 -0700935 dynamic_rendering_multi_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06188";
Aaron Hagan80034ea2021-12-23 11:24:09 -0500936 dynamic_rendering_06189 = "VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06189";
937 dynamic_rendering_06190 = "VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06190";
938 dynamic_rendering_06198 = "VUID-vkCmdDrawMeshTasksIndirectNV-renderPass-06198";
ziga-lunarg50188622022-03-26 01:18:32 +0100939 dynamic_sample_locations = "VUID-vkCmdDrawMeshTasksIndirectNV-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +0200940 primitives_generated = "VUID-vkCmdDrawMeshTasksIndirectNV-primitivesGeneratedQueryWithRasterizerDiscard-06708";
ziga-lunargf4068b12022-04-05 13:58:59 +0200941 primitives_generated_streams = "VUID-vkCmdDrawMeshTasksIndirectNV-primitivesGeneratedQueryWithNonZeroStreams-06709";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700942 }
943};
944
945struct DispatchVuidsCmdDrawMeshTasksIndirectCountNV : DrawDispatchVuid {
946 DispatchVuidsCmdDrawMeshTasksIndirectCountNV() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700947 pipeline_bound = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02700";
948 dynamic_state = "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02701";
949 compatible_pipeline = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02697";
950 render_pass_compatible = "VUID-vkCmdDrawMeshTasksIndirectCountNV-renderPass-02684";
951 subpass_index = "VUID-vkCmdDrawMeshTasksIndirectCountNV-subpass-02685";
952 sample_location = "VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-02689";
953 linear_sampler = "VUID-vkCmdDrawMeshTasksIndirectCountNV-magFilter-04553";
954 cubic_sampler = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02692";
955 indirect_protected_cb = "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02711";
956 indirect_contiguous_memory = "VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-02708";
957 indirect_buffer_bit = "VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-02709";
Mike Schuchardtfe17d6c2022-06-13 14:54:01 -0700958 indirect_count_contiguous_memory = "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02714";
959 indirect_count_buffer_bit = "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02715";
960 indirect_count_offset = "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBufferOffset-04129";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700961 viewport_count = "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-03417";
962 scissor_count = "VUID-vkCmdDrawMeshTasksIndirectCountNV-scissorCount-03418";
963 viewport_scissor_count = "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-03419";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700964 corner_sampled_address_mode = "VUID-vkCmdDrawMeshTasksIndirectCountNV-flags-02696";
965 subpass_input = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02686";
966 imageview_atomic = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700967 push_constants_set = "VUID-vkCmdDrawMeshTasksIndirectCountNV-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100968 image_subresources_render_pass_write = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06537";
969 image_subresources_subpass_read = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06538";
970 image_subresources_subpass_write = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700971 descriptor_valid = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02699";
972 sampler_imageview_type = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02702";
973 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02703";
974 sampler_bias_offset = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02704";
975 dynamic_state_setting_commands = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700976 rasterization_samples = "VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizationSamples-04740";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700977 unprotected_command_buffer = "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02707";
978 max_multiview_instance_index = "VUID-vkCmdDrawMeshTasksIndirectCountNV-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700979 img_filter_cubic = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700980 filter_cubic = "VUID-vkCmdDrawMeshTasksIndirectCountNV-filterCubic-02694";
981 filter_cubic_min_max = "VUID-vkCmdDrawMeshTasksIndirectCountNV-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000982 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawMeshTasksIndirectCountNV-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600983 rasterizer_discard_enable = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04876";
984 depth_bias_enable = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04877";
985 logic_op = "VUID-vkCmdDrawMeshTasksIndirectCountNV-logicOp-04878";
Piers Daniell924cd832021-05-18 13:48:47 -0600986 vertex_input = kVUID_Core_CmdDrawMeshTasksIndirectCountNV_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200987 blend_enable = "VUID-vkCmdDrawMeshTasksIndirectCountNV-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100988 color_write_enable = "VUID-vkCmdDrawMeshTasksIndirectCountNV-attachmentCount-06667";
stusmithedc4e392021-12-24 15:22:16 +0000989 dynamic_rendering_view_mask = "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewMask-06178";
990 dynamic_rendering_color_count = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06179";
991 dynamic_rendering_color_formats = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06180";
992 dynamic_rendering_depth_format = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06181";
993 dynamic_rendering_stencil_format = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06182";
994 dynamic_rendering_fsr = "VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06183";
995 dynamic_rendering_fdm = "VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06184";
996 dynamic_rendering_color_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06185";
997 dynamic_rendering_depth_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06186";
998 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06187";
999 dynamic_rendering_multi_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06188";
1000 dynamic_rendering_06189 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06189";
1001 dynamic_rendering_06190 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06190";
1002 dynamic_rendering_06198 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-renderPass-06198";
Mike Schuchardt0e558a52022-08-18 15:14:51 -07001003 storage_image_read_without_format = "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-07028";
1004 storage_image_write_without_format = "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-07027";
1005 storage_texel_buffer_read_without_format = "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-07030";
1006 storage_texel_buffer_write_without_format = "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-07029";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +02001007 depth_compare_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06479";
Aaron Hagan80034ea2021-12-23 11:24:09 -05001008 dynamic_rendering_view_mask = "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewMask-06178";
1009 dynamic_rendering_color_count = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06179";
1010 dynamic_rendering_color_formats = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06180";
1011 dynamic_rendering_depth_format = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06181";
1012 dynamic_rendering_stencil_format = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06182";
1013 dynamic_rendering_fsr = "VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06183";
1014 dynamic_rendering_fdm = "VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06184";
1015 dynamic_rendering_color_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06185";
1016 dynamic_rendering_depth_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06186";
1017 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06187";
Jeremy Gebben09c1a072022-02-08 09:42:47 -07001018 dynamic_rendering_multi_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06188";
Aaron Hagan80034ea2021-12-23 11:24:09 -05001019 dynamic_rendering_06189 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06189";
1020 dynamic_rendering_06190 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06190";
1021 dynamic_rendering_06198 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-renderPass-06198";
ziga-lunarg50188622022-03-26 01:18:32 +01001022 dynamic_sample_locations = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +02001023 primitives_generated = "VUID-vkCmdDrawMeshTasksIndirectCountNV-primitivesGeneratedQueryWithRasterizerDiscard-06708";
ziga-lunargf4068b12022-04-05 13:58:59 +02001024 primitives_generated_streams = "VUID-vkCmdDrawMeshTasksIndirectCountNV-primitivesGeneratedQueryWithNonZeroStreams-06709";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001025 }
1026};
1027
1028struct DispatchVuidsCmdDrawIndirectByteCountEXT: DrawDispatchVuid {
1029 DispatchVuidsCmdDrawIndirectByteCountEXT() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001030 pipeline_bound = "VUID-vkCmdDrawIndirectByteCountEXT-None-02700";
1031 dynamic_state = "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02701";
1032 vertex_binding = "VUID-vkCmdDrawIndirectByteCountEXT-None-04007";
1033 vertex_binding_null = "VUID-vkCmdDrawIndirectByteCountEXT-None-04008";
1034 compatible_pipeline = "VUID-vkCmdDrawIndirectByteCountEXT-None-02697";
1035 render_pass_compatible = "VUID-vkCmdDrawIndirectByteCountEXT-renderPass-02684";
1036 subpass_index = "VUID-vkCmdDrawIndirectByteCountEXT-subpass-02685";
1037 sample_location = "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-02689";
1038 linear_sampler = "VUID-vkCmdDrawIndirectByteCountEXT-magFilter-04553";
1039 cubic_sampler = "VUID-vkCmdDrawIndirectByteCountEXT-None-02692";
1040 indirect_protected_cb = "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02646";
sfricke-samsungb091d4e2021-04-18 23:15:59 -07001041 indirect_contiguous_memory = "VUID-vkCmdDrawIndirectByteCountEXT-counterBuffer-04567",
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001042 indirect_buffer_bit = "VUID-vkCmdDrawIndirectByteCountEXT-counterBuffer-02290";
1043 viewport_count = "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-03417";
1044 scissor_count = "VUID-vkCmdDrawIndirectByteCountEXT-scissorCount-03418";
1045 viewport_scissor_count = "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-03419";
1046 primitive_topology = "VUID-vkCmdDrawIndirectByteCountEXT-primitiveTopology-03420";
1047 corner_sampled_address_mode = "VUID-vkCmdDrawIndirectByteCountEXT-flags-02696";
1048 subpass_input = "VUID-vkCmdDrawIndirectByteCountEXT-None-02686";
1049 imageview_atomic = "VUID-vkCmdDrawIndirectByteCountEXT-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -07001050 push_constants_set = "VUID-vkCmdDrawIndirectByteCountEXT-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +01001051 image_subresources_render_pass_write = "VUID-vkCmdDrawIndirectByteCountEXT-None-06537";
1052 image_subresources_subpass_read = "VUID-vkCmdDrawIndirectByteCountEXT-None-06538";
1053 image_subresources_subpass_write = "VUID-vkCmdDrawIndirectByteCountEXT-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001054 descriptor_valid = "VUID-vkCmdDrawIndirectByteCountEXT-None-02699";
1055 sampler_imageview_type = "VUID-vkCmdDrawIndirectByteCountEXT-None-02702";
1056 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawIndirectByteCountEXT-None-02703";
1057 sampler_bias_offset = "VUID-vkCmdDrawIndirectByteCountEXT-None-02704";
1058 vertex_binding_attribute = "VUID-vkCmdDrawIndirectByteCountEXT-None-02721";
1059 dynamic_state_setting_commands = "VUID-vkCmdDrawIndirectByteCountEXT-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -07001060 rasterization_samples = "VUID-vkCmdDrawIndirectByteCountEXT-rasterizationSamples-04740";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001061 unprotected_command_buffer = "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02707";
1062 max_multiview_instance_index = "VUID-vkCmdDrawIndirectByteCountEXT-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -07001063 img_filter_cubic = "VUID-vkCmdDrawIndirectByteCountEXT-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001064 filter_cubic = "VUID-vkCmdDrawIndirectByteCountEXT-filterCubic-02694";
1065 filter_cubic_min_max = "VUID-vkCmdDrawIndirectByteCountEXT-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +00001066 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawIndirectByteCountEXT-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -06001067 patch_control_points = "VUID-vkCmdDrawIndirectByteCountEXT-None-04875";
1068 rasterizer_discard_enable = "VUID-vkCmdDrawIndirectByteCountEXT-None-04876";
1069 depth_bias_enable = "VUID-vkCmdDrawIndirectByteCountEXT-None-04877";
1070 logic_op = "VUID-vkCmdDrawIndirectByteCountEXT-logicOp-04878";
1071 primitive_restart_enable = "VUID-vkCmdDrawIndirectByteCountEXT-None-04879";
1072 vertex_input_binding_stride = "VUID-vkCmdDrawIndirectByteCountEXT-pStrides-04884";
1073 vertex_input = kVUID_Core_CmdDrawIndirectByteCountEXT_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +02001074 blend_enable = "VUID-vkCmdDrawIndirectByteCountEXT-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +01001075 color_write_enable = "VUID-vkCmdDrawIndirectByteCountEXT-attachmentCount-06667";
stusmithedc4e392021-12-24 15:22:16 +00001076 dynamic_rendering_view_mask = "VUID-vkCmdDrawIndirectByteCountEXT-viewMask-06178";
1077 dynamic_rendering_color_count = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06179";
1078 dynamic_rendering_color_formats = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06180";
1079 dynamic_rendering_depth_format = "VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06181";
1080 dynamic_rendering_stencil_format = "VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06182";
1081 dynamic_rendering_fsr = "VUID-vkCmdDrawIndirectByteCountEXT-imageView-06183";
1082 dynamic_rendering_fdm = "VUID-vkCmdDrawIndirectByteCountEXT-imageView-06184";
1083 dynamic_rendering_color_sample = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06185";
1084 dynamic_rendering_depth_sample = "VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06186";
1085 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06187";
1086 dynamic_rendering_multi_sample = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06188";
1087 dynamic_rendering_06189 = "VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06189";
1088 dynamic_rendering_06190 = "VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06190";
1089 dynamic_rendering_06198 = "VUID-vkCmdDrawIndirectByteCountEXT-renderPass-06198";
Mike Schuchardt0e558a52022-08-18 15:14:51 -07001090 storage_image_read_without_format = "VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-07028";
1091 storage_image_write_without_format = "VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-07027";
1092 storage_texel_buffer_read_without_format = "VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-07030";
1093 storage_texel_buffer_write_without_format = "VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-07029";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +02001094 depth_compare_sample = "VUID-vkCmdDrawIndirectByteCountEXT-None-06479";
Aaron Hagan80034ea2021-12-23 11:24:09 -05001095 dynamic_rendering_view_mask = "VUID-vkCmdDrawIndirectByteCountEXT-viewMask-06178";
1096 dynamic_rendering_color_count = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06179";
1097 dynamic_rendering_color_formats = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06180";
1098 dynamic_rendering_depth_format = "VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06181";
1099 dynamic_rendering_stencil_format = "VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06182";
1100 dynamic_rendering_fsr = "VUID-vkCmdDrawIndirectByteCountEXT-imageView-06183";
1101 dynamic_rendering_fdm = "VUID-vkCmdDrawIndirectByteCountEXT-imageView-06184";
1102 dynamic_rendering_color_sample = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06185";
1103 dynamic_rendering_depth_sample = "VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06186";
1104 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06187";
Jeremy Gebben09c1a072022-02-08 09:42:47 -07001105 dynamic_rendering_multi_sample = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06188";
Aaron Hagan80034ea2021-12-23 11:24:09 -05001106 dynamic_rendering_06189 = "VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06189";
1107 dynamic_rendering_06190 = "VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06190";
1108 dynamic_rendering_06198 = "VUID-vkCmdDrawIndirectByteCountEXT-renderPass-06198";
ziga-lunarg50188622022-03-26 01:18:32 +01001109 dynamic_sample_locations = "VUID-vkCmdDrawIndirectByteCountEXT-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +02001110 primitives_generated = "VUID-vkCmdDrawIndirectByteCountEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708";
ziga-lunargf4068b12022-04-05 13:58:59 +02001111 primitives_generated_streams = "VUID-vkCmdDrawIndirectByteCountEXT-primitivesGeneratedQueryWithNonZeroStreams-06709";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001112 }
1113};
1114
1115struct DispatchVuidsCmdDispatchBase: DrawDispatchVuid {
1116 DispatchVuidsCmdDispatchBase() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001117 pipeline_bound = "VUID-vkCmdDispatchBase-None-02700";
Mark Lobodzinski02d37552020-12-28 13:29:46 -07001118 dynamic_state = "VUID-vkCmdDispatchBase-commandBuffer-02701";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001119 compatible_pipeline = "VUID-vkCmdDispatchBase-None-02697";
1120 linear_sampler = "VUID-vkCmdDispatchBase-magFilter-04553";
1121 cubic_sampler = "VUID-vkCmdDispatchBase-None-02692";
1122 corner_sampled_address_mode = "VUID-vkCmdDispatchBase-flags-02696";
1123 imageview_atomic = "VUID-vkCmdDispatchBase-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -07001124 push_constants_set = "VUID-vkCmdDispatchBase-maintenance4-06425";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001125 descriptor_valid = "VUID-vkCmdDispatchBase-None-02699";
1126 sampler_imageview_type = "VUID-vkCmdDispatchBase-None-02702";
1127 sampler_implicitLod_dref_proj = "VUID-vkCmdDispatchBase-None-02703";
1128 sampler_bias_offset = "VUID-vkCmdDispatchBase-None-02704";
1129 dynamic_state_setting_commands = "VUID-vkCmdDispatchBase-None-02859";
1130 unprotected_command_buffer = "VUID-vkCmdDispatchBase-commandBuffer-02707";
sfricke-samsunge79d0892021-06-17 08:56:22 -07001131 protected_command_buffer = "VUID-vkCmdDispatchBase-commandBuffer-02712";
Mark Lobodzinskif786b412020-11-30 12:16:17 -07001132 img_filter_cubic = "VUID-vkCmdDispatchBase-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001133 filter_cubic = "VUID-vkCmdDispatchBase-filterCubic-02694";
1134 filter_cubic_min_max = "VUID-vkCmdDispatchBase-filterCubicMinmax-02695";
Mike Schuchardt0e558a52022-08-18 15:14:51 -07001135 storage_image_read_without_format = "VUID-vkCmdDispatchBase-OpTypeImage-07028";
1136 storage_image_write_without_format = "VUID-vkCmdDispatchBase-OpTypeImage-07027";
1137 storage_texel_buffer_read_without_format = "VUID-vkCmdDispatchBase-OpTypeImage-07030";
1138 storage_texel_buffer_write_without_format = "VUID-vkCmdDispatchBase-OpTypeImage-07029";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +02001139 depth_compare_sample = "VUID-vkCmdDispatchBase-None-06479";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001140 }
1141};
1142
1143// 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 -07001144static const std::map<CMD_TYPE, DrawDispatchVuid> kDrawdispatchVuid = {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001145 {CMD_DRAW, DispatchVuidsCmdDraw()},
Tony-LunarG4490de42021-06-21 15:49:19 -06001146 {CMD_DRAWMULTIEXT, DispatchVuidsCmdDrawMultiEXT()},
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001147 {CMD_DRAWINDEXED, DispatchVuidsCmdDrawIndexed()},
Tony-LunarG4490de42021-06-21 15:49:19 -06001148 {CMD_DRAWMULTIINDEXEDEXT, DispatchVuidsCmdDrawMultiIndexedEXT()},
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001149 {CMD_DRAWINDIRECT, DispatchVuidsCmdDrawIndirect()},
1150 {CMD_DRAWINDEXEDINDIRECT, DispatchVuidsCmdDrawIndexedIndirect()},
1151 {CMD_DISPATCH, DispatchVuidsCmdDispatch()},
1152 {CMD_DISPATCHINDIRECT, DispatchVuidsCmdDispatchIndirect()},
1153 {CMD_DRAWINDIRECTCOUNT, DispatchVuidsCmdDrawIndirectCount()},
sfricke-samsung85584a72021-09-30 21:43:38 -07001154 {CMD_DRAWINDIRECTCOUNTKHR, DispatchVuidsCmdDrawIndirectCount()},
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001155 {CMD_DRAWINDEXEDINDIRECTCOUNT, DispatchVuidsCmdDrawIndexedIndirectCount()},
sfricke-samsung85584a72021-09-30 21:43:38 -07001156 {CMD_DRAWINDEXEDINDIRECTCOUNTKHR, DispatchVuidsCmdDrawIndexedIndirectCount()},
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001157 {CMD_TRACERAYSNV, DispatchVuidsCmdTraceRaysNV()},
1158 {CMD_TRACERAYSKHR, DispatchVuidsCmdTraceRaysKHR()},
1159 {CMD_TRACERAYSINDIRECTKHR, DispatchVuidsCmdTraceRaysIndirectKHR()},
sfricke-samsungf91881c2022-03-31 01:12:00 -05001160 {CMD_TRACERAYSINDIRECT2KHR, DispatchVuidsCmdTraceRaysIndirect2KHR()},
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001161 {CMD_DRAWMESHTASKSNV, DispatchVuidsCmdDrawMeshTasksNV()},
1162 {CMD_DRAWMESHTASKSINDIRECTNV, DispatchVuidsCmdDrawMeshTasksIndirectNV()},
1163 {CMD_DRAWMESHTASKSINDIRECTCOUNTNV, DispatchVuidsCmdDrawMeshTasksIndirectCountNV()},
1164 {CMD_DRAWINDIRECTBYTECOUNTEXT, DispatchVuidsCmdDrawIndirectByteCountEXT()},
1165 {CMD_DISPATCHBASE, DispatchVuidsCmdDispatchBase()},
sfricke-samsung85584a72021-09-30 21:43:38 -07001166 {CMD_DISPATCHBASEKHR, DispatchVuidsCmdDispatchBase()},
Spencer Fricke507600b2020-03-22 13:23:06 -07001167 // Used if invalid cmd_type is used
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001168 {CMD_NONE, DrawDispatchVuid()}
Spencer Fricke507600b2020-03-22 13:23:06 -07001169};
1170// clang-format on
1171
1172// Getter function to provide kVUIDUndefined in case an invalid cmd_type is passed in
1173const DrawDispatchVuid &CoreChecks::GetDrawDispatchVuid(CMD_TYPE cmd_type) const {
Nathaniel Cesarioce9b4812020-12-17 08:55:28 -07001174 if (kDrawdispatchVuid.find(cmd_type) != kDrawdispatchVuid.cend()) {
1175 return kDrawdispatchVuid.at(cmd_type);
Spencer Fricke507600b2020-03-22 13:23:06 -07001176 } else {
Nathaniel Cesarioce9b4812020-12-17 08:55:28 -07001177 return kDrawdispatchVuid.at(CMD_NONE);
Spencer Fricke507600b2020-03-22 13:23:06 -07001178 }
1179}
1180
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001181// Generic function to handle validation for all CmdDraw* type functions
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001182bool CoreChecks::ValidateCmdDrawType(const CMD_BUFFER_STATE &cb_state, bool indexed, VkPipelineBindPoint bind_point,
sfricke-samsung85584a72021-09-30 21:43:38 -07001183 CMD_TYPE cmd_type) const {
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001184 bool skip = false;
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001185 skip |= ValidateCmd(&cb_state, cmd_type);
1186 skip |= ValidateCmdBufDrawState(&cb_state, cmd_type, indexed, bind_point);
1187 skip |= ValidateCmdRayQueryState(&cb_state, cmd_type, bind_point);
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001188 return skip;
1189}
1190
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001191bool CoreChecks::ValidateCmdDrawInstance(const CMD_BUFFER_STATE &cb_node, uint32_t instanceCount, uint32_t firstInstance,
sfricke-samsung85584a72021-09-30 21:43:38 -07001192 CMD_TYPE cmd_type) const {
locke-lunarg3fa463a2020-10-23 16:39:04 -06001193 bool skip = false;
1194 const DrawDispatchVuid vuid = GetDrawDispatchVuid(cmd_type);
sfricke-samsung85584a72021-09-30 21:43:38 -07001195 const char *caller = CommandTypeString(cmd_type);
locke-lunarg3fa463a2020-10-23 16:39:04 -06001196
1197 // Verify maxMultiviewInstanceIndex
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001198 if (cb_node.activeRenderPass && cb_node.activeRenderPass->renderPass() && enabled_features.multiview_features.multiview &&
locke-lunarg3fa463a2020-10-23 16:39:04 -06001199 ((instanceCount + firstInstance) > phys_dev_ext_props.multiview_props.maxMultiviewInstanceIndex)) {
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001200 LogObjectList objlist(cb_node.Handle());
1201 objlist.add(cb_node.activeRenderPass->Handle());
locke-lunarg3fa463a2020-10-23 16:39:04 -06001202 skip |= LogError(objlist, vuid.max_multiview_instance_index,
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001203 "%s: renderpass %s multiview is enabled, and maxMultiviewInstanceIndex: %" PRIu32
1204 ", but instanceCount: %" PRIu32 "and firstInstance: %" PRIu32 ".",
1205 caller, report_data->FormatHandle(cb_node.activeRenderPass->Handle()).c_str(),
locke-lunarg3fa463a2020-10-23 16:39:04 -06001206 phys_dev_ext_props.multiview_props.maxMultiviewInstanceIndex, instanceCount, firstInstance);
1207 }
1208 return skip;
1209}
1210
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001211bool CoreChecks::PreCallValidateCmdDraw(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount,
Jeff Bolz5c801d12019-10-09 10:38:45 -05001212 uint32_t firstVertex, uint32_t firstInstance) const {
locke-lunarg3fa463a2020-10-23 16:39:04 -06001213 bool skip = false;
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001214 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001215 skip |= ValidateCmdDrawInstance(*cb_state, instanceCount, firstInstance, CMD_DRAW);
1216 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAW);
locke-lunarg3fa463a2020-10-23 16:39:04 -06001217 return skip;
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001218}
1219
Tony-LunarG4490de42021-06-21 15:49:19 -06001220bool CoreChecks::PreCallValidateCmdDrawMultiEXT(VkCommandBuffer commandBuffer, uint32_t drawCount,
1221 const VkMultiDrawInfoEXT *pVertexInfo, uint32_t instanceCount,
1222 uint32_t firstInstance, uint32_t stride) const {
1223 bool skip = false;
1224 if (!enabled_features.multi_draw_features.multiDraw) {
1225 skip |= LogError(commandBuffer, "VUID-vkCmdDrawMultiEXT-None-04933",
1226 "vkCmdDrawMultiEXT(): The multiDraw feature must be enabled to "
1227 "call this command.");
1228 }
1229 if (drawCount > phys_dev_ext_props.multi_draw_props.maxMultiDrawCount) {
1230 skip |= LogError(commandBuffer, "VUID-vkCmdDrawMultiEXT-drawCount-04934",
1231 "vkCmdDrawMultiEXT(): parameter, uint32_t drawCount (%" PRIu32
1232 ") must be less than VkPhysicalDeviceMultiDrawPropertiesEXT::maxMultiDrawCount (%" PRIu32 ").",
1233 drawCount, phys_dev_ext_props.multi_draw_props.maxMultiDrawCount);
1234 }
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001235 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001236 skip |= ValidateCmdDrawInstance(*cb_state, instanceCount, firstInstance, CMD_DRAWMULTIEXT);
1237 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWMULTIEXT);
Tony-LunarG4490de42021-06-21 15:49:19 -06001238 return skip;
1239}
1240
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001241bool CoreChecks::ValidateCmdDrawIndexedBufferSize(const CMD_BUFFER_STATE &cb_state, uint32_t indexCount, uint32_t firstIndex,
1242 const char *caller, const char *first_index_vuid) const {
Tony-LunarG4490de42021-06-21 15:49:19 -06001243 bool skip = false;
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001244 if (cb_state.status & CBSTATUS_INDEX_BUFFER_BOUND) {
Tony-LunarG4490de42021-06-21 15:49:19 -06001245 unsigned int index_size = 0;
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001246 const auto &index_buffer_binding = cb_state.index_buffer_binding;
Tony-LunarG4490de42021-06-21 15:49:19 -06001247 if (index_buffer_binding.index_type == VK_INDEX_TYPE_UINT16) {
1248 index_size = 2;
1249 }
1250 else if (index_buffer_binding.index_type == VK_INDEX_TYPE_UINT32) {
1251 index_size = 4;
1252 }
1253 else if (index_buffer_binding.index_type == VK_INDEX_TYPE_UINT8_EXT) {
1254 index_size = 1;
1255 }
1256 VkDeviceSize end_offset = (index_size * (static_cast<VkDeviceSize>(firstIndex) + indexCount)) + index_buffer_binding.offset;
1257 if (end_offset > index_buffer_binding.size) {
1258 skip |= LogError(index_buffer_binding.buffer_state->buffer(), first_index_vuid,
1259 "%s: index size (%u) * (firstIndex (%u) + indexCount (%u)) "
1260 "+ binding offset (%" PRIuLEAST64 ") = an ending offset of %" PRIuLEAST64
1261 " bytes, which is greater than the index buffer size (%" PRIuLEAST64 ").",
1262 caller, index_size, firstIndex, indexCount, index_buffer_binding.offset, end_offset,
1263 index_buffer_binding.size);
1264 }
1265 }
1266 return skip;
1267}
1268
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001269bool CoreChecks::PreCallValidateCmdDrawIndexed(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount,
Jeff Bolz5c801d12019-10-09 10:38:45 -05001270 uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance) const {
locke-lunarg3fa463a2020-10-23 16:39:04 -06001271 bool skip = false;
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001272 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001273 skip |= ValidateCmdDrawInstance(*cb_state, instanceCount, firstInstance, CMD_DRAWINDEXED);
1274 skip |= ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWINDEXED);
1275 skip |= ValidateCmdDrawIndexedBufferSize(*cb_state, indexCount, firstIndex, "vkCmdDrawIndexed()",
Tony-LunarG4490de42021-06-21 15:49:19 -06001276 "VUID-vkCmdDrawIndexed-firstIndex-04932");
1277 return skip;
1278}
1279
1280bool CoreChecks::PreCallValidateCmdDrawMultiIndexedEXT(VkCommandBuffer commandBuffer, uint32_t drawCount,
1281 const VkMultiDrawIndexedInfoEXT *pIndexInfo, uint32_t instanceCount,
1282 uint32_t firstInstance, uint32_t stride,
1283 const int32_t *pVertexOffset) const {
1284 bool skip = false;
1285 if (!enabled_features.multi_draw_features.multiDraw) {
1286 skip |= LogError(commandBuffer, "VUID-vkCmdDrawMultiIndexedEXT-None-04937",
1287 "vkCmdDrawMultiIndexedEXT(): The multiDraw feature must be enabled to "
1288 "call this command.");
1289 }
1290 if (drawCount > phys_dev_ext_props.multi_draw_props.maxMultiDrawCount) {
1291 skip |= LogError(commandBuffer, "VUID-vkCmdDrawMultiIndexedEXT-drawCount-04939",
1292 "vkCmdDrawMultiIndexedEXT(): parameter, uint32_t drawCount (0x%" PRIu32
1293 ") must be less than VkPhysicalDeviceMultiDrawPropertiesEXT::maxMultiDrawCount (0x%" PRIu32 ").",
1294 drawCount, phys_dev_ext_props.multi_draw_props.maxMultiDrawCount);
1295 }
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001296 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001297 skip |= ValidateCmdDrawInstance(*cb_state, instanceCount, firstInstance, CMD_DRAWMULTIINDEXEDEXT);
1298 skip |= ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWMULTIINDEXEDEXT);
Ricardo Garcia27a26f52021-07-13 15:52:14 +02001299 const auto info_bytes = reinterpret_cast<const char *>(pIndexInfo);
Tony-LunarG4490de42021-06-21 15:49:19 -06001300 for (uint32_t i = 0; i < drawCount; i++) {
Ricardo Garcia27a26f52021-07-13 15:52:14 +02001301 const auto info_ptr = reinterpret_cast<const VkMultiDrawIndexedInfoEXT *>(info_bytes + i * stride);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001302 skip |= ValidateCmdDrawIndexedBufferSize(*cb_state, info_ptr->indexCount, info_ptr->firstIndex,
Tony-LunarG4490de42021-06-21 15:49:19 -06001303 "vkCmdDrawMultiIndexedEXT()", "VUID-vkCmdDrawMultiIndexedEXT-firstIndex-04938");
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001304 }
1305 return skip;
1306}
1307
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001308bool CoreChecks::PreCallValidateCmdDrawIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1309 uint32_t drawCount, uint32_t stride) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001310 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001311 bool skip = ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWINDIRECT);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001312 auto buffer_state = Get<BUFFER_STATE>(buffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001313 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, CMD_DRAWINDIRECT);
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001314 if (drawCount > 1) {
Lockee68ac652019-05-06 10:17:33 -06001315 skip |= ValidateCmdDrawStrideWithStruct(commandBuffer, "VUID-vkCmdDrawIndirect-drawCount-00476", stride,
1316 "VkDrawIndirectCommand", sizeof(VkDrawIndirectCommand));
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001317 skip |= ValidateCmdDrawStrideWithBuffer(commandBuffer, "VUID-vkCmdDrawIndirect-drawCount-00488", stride,
1318 "VkDrawIndirectCommand", sizeof(VkDrawIndirectCommand), drawCount, offset,
Jeremy Gebben9f537102021-10-05 16:37:12 -06001319 buffer_state.get());
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001320 } else if ((drawCount == 1) && (offset + sizeof(VkDrawIndirectCommand)) > buffer_state->createInfo.size) {
1321 skip |= LogError(commandBuffer, "VUID-vkCmdDrawIndirect-drawCount-00487",
Jeremy Gebbenda6b48f2021-05-13 10:46:18 -06001322 "CmdDrawIndirect: drawCount equals 1 and (offset + sizeof(VkDrawIndirectCommand)) (%" PRIu64 ") is not less than "
1323 "or equal to the size of buffer (%" PRIu64 ").",
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001324 (offset + sizeof(VkDrawIndirectCommand)), buffer_state->createInfo.size);
Lockee68ac652019-05-06 10:17:33 -06001325 }
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001326 // TODO: If the drawIndirectFirstInstance feature is not enabled, all the firstInstance members of the
1327 // VkDrawIndirectCommand structures accessed by this command must be 0, which will require access to the contents of 'buffer'.
1328 return skip;
1329}
1330
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001331bool CoreChecks::PreCallValidateCmdDrawIndexedIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001332 uint32_t drawCount, uint32_t stride) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001333 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001334 bool skip = ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWINDEXEDINDIRECT);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001335 auto buffer_state = Get<BUFFER_STATE>(buffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001336 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, CMD_DRAWINDEXEDINDIRECT);
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001337 if (drawCount > 1) {
Lockee68ac652019-05-06 10:17:33 -06001338 skip |= ValidateCmdDrawStrideWithStruct(commandBuffer, "VUID-vkCmdDrawIndexedIndirect-drawCount-00528", stride,
1339 "VkDrawIndexedIndirectCommand", sizeof(VkDrawIndexedIndirectCommand));
1340 skip |= ValidateCmdDrawStrideWithBuffer(commandBuffer, "VUID-vkCmdDrawIndexedIndirect-drawCount-00540", stride,
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001341 "VkDrawIndexedIndirectCommand", sizeof(VkDrawIndexedIndirectCommand), drawCount,
Jeremy Gebben9f537102021-10-05 16:37:12 -06001342 offset, buffer_state.get());
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001343 } else if ((drawCount == 1) && (offset + sizeof(VkDrawIndexedIndirectCommand)) > buffer_state->createInfo.size) {
1344 skip |= LogError(
1345 commandBuffer, "VUID-vkCmdDrawIndexedIndirect-drawCount-00539",
Jeremy Gebbenda6b48f2021-05-13 10:46:18 -06001346 "CmdDrawIndexedIndirect: drawCount equals 1 and (offset + sizeof(VkDrawIndexedIndirectCommand)) (%" PRIu64 ") is not less than "
1347 "or equal to the size of buffer (%" PRIu64 ").",
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001348 (offset + sizeof(VkDrawIndexedIndirectCommand)), buffer_state->createInfo.size);
Lockee68ac652019-05-06 10:17:33 -06001349 }
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001350 // TODO: If the drawIndirectFirstInstance feature is not enabled, all the firstInstance members of the
1351 // VkDrawIndexedIndirectCommand structures accessed by this command must be 0, which will require access to the contents of
1352 // 'buffer'.
1353 return skip;
1354}
1355
Jeff Bolz5c801d12019-10-09 10:38:45 -05001356bool CoreChecks::PreCallValidateCmdDispatch(VkCommandBuffer commandBuffer, uint32_t x, uint32_t y, uint32_t z) const {
Lockef39c0772019-04-03 14:40:02 -06001357 bool skip = false;
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001358 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001359 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_COMPUTE, CMD_DISPATCH);
Lockef39c0772019-04-03 14:40:02 -06001360 return skip;
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001361}
1362
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001363bool CoreChecks::ValidateBaseGroups(const CMD_BUFFER_STATE &cb_state, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ,
Tony-LunarGf825e6d2020-12-16 13:05:17 -07001364 const char *apiName) const {
1365 bool skip = false;
1366 if (baseGroupX || baseGroupY || baseGroupZ) {
Tony-LunarGf825e6d2020-12-16 13:05:17 -07001367 const auto lv_bind_point = ConvertToLvlBindPoint(VK_PIPELINE_BIND_POINT_COMPUTE);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001368 const auto *pipeline_state = cb_state.lastBound[lv_bind_point].pipeline_state;
Jeremy Gebben11af9792021-08-20 10:20:09 -06001369 if (pipeline_state && !(pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_DISPATCH_BASE)) {
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001370 skip |= LogError(cb_state.Handle(), "VUID-vkCmdDispatchBase-baseGroupX-00427",
Tony-LunarGf825e6d2020-12-16 13:05:17 -07001371 "%s(): If any of baseGroupX, baseGroupY, or baseGroupZ are not zero, then the bound compute pipeline "
1372 "must have been created with the VK_PIPELINE_CREATE_DISPATCH_BASE flag",
1373 apiName);
1374 }
1375 }
1376 return skip;
1377}
1378
locke-lunarg25b6c352020-08-06 17:44:18 -06001379bool CoreChecks::PreCallValidateCmdDispatchBase(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY,
1380 uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY,
1381 uint32_t groupCountZ) const {
1382 bool skip = false;
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001383 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001384 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_COMPUTE, CMD_DISPATCHBASE);
1385 skip |= ValidateBaseGroups(*cb_state, baseGroupX, baseGroupY, baseGroupZ, "vkCmdDispatchBase()");
locke-lunarg25b6c352020-08-06 17:44:18 -06001386 return skip;
1387}
1388
1389bool CoreChecks::PreCallValidateCmdDispatchBaseKHR(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY,
1390 uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY,
1391 uint32_t groupCountZ) const {
1392 bool skip = false;
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001393 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001394 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_COMPUTE, CMD_DISPATCHBASEKHR);
1395 skip |= ValidateBaseGroups(*cb_state, baseGroupX, baseGroupY, baseGroupZ, "vkCmdDispatchBaseKHR()");
locke-lunarg25b6c352020-08-06 17:44:18 -06001396 return skip;
1397}
1398
Jeff Bolz5c801d12019-10-09 10:38:45 -05001399bool CoreChecks::PreCallValidateCmdDispatchIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001400 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001401 bool skip = ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_COMPUTE, CMD_DISPATCHINDIRECT);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001402 auto buffer_state = Get<BUFFER_STATE>(buffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001403 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, CMD_DISPATCHINDIRECT);
Tony-LunarGda555b52021-01-06 13:43:49 -07001404 if ((offset + sizeof(VkDispatchIndirectCommand)) > buffer_state->createInfo.size) {
1405 skip |= LogError(commandBuffer, "VUID-vkCmdDispatchIndirect-offset-00407",
1406 "vkCmdDispatchIndirect(): The sum of offset and the size of VkDispatchIndirectCommand is greater than the "
1407 "size of the buffer");
1408 }
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001409 return skip;
1410}
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001411bool CoreChecks::ValidateCmdDrawIndirectCount(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-vkCmdDrawIndirectCount-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-vkCmdDrawIndirectCount-stride-03110", stride,
1424 "VkDrawIndirectCommand", sizeof(VkDrawIndirectCommand));
Lockee68ac652019-05-06 10:17:33 -06001425 if (maxDrawCount > 1) {
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001426 auto buffer_state = Get<BUFFER_STATE>(buffer);
AndreyVK_D3Db2753e12021-07-21 12:24:03 +03001427 skip |= ValidateCmdDrawStrideWithBuffer(commandBuffer, "VUID-vkCmdDrawIndirectCount-maxDrawCount-03111", stride,
1428 "VkDrawIndirectCommand", sizeof(VkDrawIndirectCommand), maxDrawCount, offset,
Jeremy Gebben9f537102021-10-05 16:37:12 -06001429 buffer_state.get());
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001430 }
1431
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001432 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001433 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, cmd_type);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001434 auto buffer_state = Get<BUFFER_STATE>(buffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001435 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, cmd_type);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001436 auto count_buffer_state = Get<BUFFER_STATE>(countBuffer);
sjfricke177bbb62022-06-02 17:37:03 +09001437 skip |= ValidateIndirectCountCmd(*count_buffer_state, countBufferOffset, cmd_type);
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001438 return skip;
1439}
1440
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001441bool CoreChecks::PreCallValidateCmdDrawIndirectCountKHR(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1442 VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount,
1443 uint32_t stride) const {
Tony-LunarG83544c72020-01-17 12:30:19 -07001444 return ValidateCmdDrawIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride,
sfricke-samsung85584a72021-09-30 21:43:38 -07001445 CMD_DRAWINDIRECTCOUNTKHR);
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001446}
1447
1448bool CoreChecks::PreCallValidateCmdDrawIndirectCount(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1449 VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount,
1450 uint32_t stride) const {
Tony-LunarG83544c72020-01-17 12:30:19 -07001451 return ValidateCmdDrawIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride,
sfricke-samsung85584a72021-09-30 21:43:38 -07001452 CMD_DRAWINDIRECTCOUNT);
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001453}
1454
1455bool CoreChecks::ValidateCmdDrawIndexedIndirectCount(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1456 VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount,
sfricke-samsung85584a72021-09-30 21:43:38 -07001457 uint32_t stride, CMD_TYPE cmd_type) const {
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001458 bool skip = false;
sfricke-samsung85584a72021-09-30 21:43:38 -07001459 const char *apiName = CommandTypeString(cmd_type);
Nathaniel Cesario7f231f12021-03-25 12:10:58 -06001460 if ((device_extensions.vk_khr_draw_indirect_count != kEnabledByCreateinfo) &&
1461 ((api_version >= VK_API_VERSION_1_2) && (enabled_features.core12.drawIndirectCount == VK_FALSE))) {
Shannon McPherson2c793ba2020-08-28 12:13:24 -06001462 skip |= LogError(commandBuffer, "VUID-vkCmdDrawIndexedIndirectCount-None-04445",
sfricke-samsung27c70722020-05-02 08:42:39 -07001463 "%s(): Starting in Vulkan 1.2 the VkPhysicalDeviceVulkan12Features::drawIndirectCount must be enabled to "
1464 "call this command.",
1465 apiName);
1466 }
AndreyVK_D3Db2753e12021-07-21 12:24:03 +03001467 skip |= ValidateCmdDrawStrideWithStruct(commandBuffer, "VUID-vkCmdDrawIndexedIndirectCount-stride-03142", stride,
1468 "VkDrawIndexedIndirectCommand", sizeof(VkDrawIndexedIndirectCommand));
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001469 auto buffer_state = Get<BUFFER_STATE>(buffer);
Lockee68ac652019-05-06 10:17:33 -06001470 if (maxDrawCount > 1) {
Mike Schuchardt65847d92019-12-20 13:50:47 -08001471 skip |= ValidateCmdDrawStrideWithBuffer(commandBuffer, "VUID-vkCmdDrawIndexedIndirectCount-maxDrawCount-03143", stride,
AndreyVK_D3Db2753e12021-07-21 12:24:03 +03001472 "VkDrawIndexedIndirectCommand", sizeof(VkDrawIndexedIndirectCommand), maxDrawCount,
Jeremy Gebben9f537102021-10-05 16:37:12 -06001473 offset, buffer_state.get());
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001474 }
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001475 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001476 skip |= ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_GRAPHICS, cmd_type);
1477 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, cmd_type);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001478 auto count_buffer_state = Get<BUFFER_STATE>(countBuffer);
sjfricke177bbb62022-06-02 17:37:03 +09001479 skip |= ValidateIndirectCountCmd(*count_buffer_state, countBufferOffset, cmd_type);
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001480 return skip;
1481}
1482
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001483bool CoreChecks::PreCallValidateCmdDrawIndexedIndirectCountKHR(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1484 VkBuffer countBuffer, VkDeviceSize countBufferOffset,
1485 uint32_t maxDrawCount, uint32_t stride) const {
sfricke-samsungf692b972020-05-02 08:00:45 -07001486 return ValidateCmdDrawIndexedIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride,
sfricke-samsung85584a72021-09-30 21:43:38 -07001487 CMD_DRAWINDEXEDINDIRECTCOUNTKHR);
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001488}
1489
1490bool CoreChecks::PreCallValidateCmdDrawIndexedIndirectCount(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1491 VkBuffer countBuffer, VkDeviceSize countBufferOffset,
1492 uint32_t maxDrawCount, uint32_t stride) const {
sfricke-samsungf692b972020-05-02 08:00:45 -07001493 return ValidateCmdDrawIndexedIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride,
sfricke-samsung85584a72021-09-30 21:43:38 -07001494 CMD_DRAWINDEXEDINDIRECTCOUNT);
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001495}
1496
locke-lunarg9a16ebb2020-07-30 16:56:33 -06001497bool CoreChecks::PreCallValidateCmdDrawIndirectByteCountEXT(VkCommandBuffer commandBuffer, uint32_t instanceCount,
1498 uint32_t firstInstance, VkBuffer counterBuffer,
1499 VkDeviceSize counterBufferOffset, uint32_t counterOffset,
1500 uint32_t vertexStride) const {
sfricke-samsungd5e9adb2020-10-26 03:59:29 -07001501 bool skip = false;
Tony-LunarG2c94ba82020-11-05 14:21:40 -07001502 if (!enabled_features.transform_feedback_features.transformFeedback) {
1503 skip |= LogError(commandBuffer, "VUID-vkCmdDrawIndirectByteCountEXT-transformFeedback-02287",
1504 "%s: transformFeedback feature is not enabled.", "vkCmdDrawIndirectByteCountEXT()");
1505 }
sfricke-samsung45996a42021-09-16 13:45:27 -07001506 if (IsExtEnabled(device_extensions.vk_ext_transform_feedback) &&
1507 !phys_dev_ext_props.transform_feedback_props.transformFeedbackDraw) {
sfricke-samsungba459bd2020-12-06 23:20:04 -08001508 skip |= LogError(commandBuffer, "VUID-vkCmdDrawIndirectByteCountEXT-transformFeedbackDraw-02288",
Tony-LunarG2c94ba82020-11-05 14:21:40 -07001509 "%s: VkPhysicalDeviceTransformFeedbackPropertiesEXT::transformFeedbackDraw is not supported",
1510 "vkCmdDrawIndirectByteCountEXT()");
1511 }
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001512 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001513 skip |= ValidateCmdDrawInstance(*cb_state, instanceCount, firstInstance, CMD_DRAWINDIRECTBYTECOUNTEXT);
1514 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWINDIRECTBYTECOUNTEXT);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001515 auto counter_buffer_state = Get<BUFFER_STATE>(counterBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001516 skip |= ValidateIndirectCmd(*cb_state, *counter_buffer_state, CMD_DRAWINDIRECTBYTECOUNTEXT);
sfricke-samsungd5e9adb2020-10-26 03:59:29 -07001517 return skip;
locke-lunarg9a16ebb2020-07-30 16:56:33 -06001518}
1519
Jeff Bolzf6e872c2019-10-22 12:17:28 -05001520bool CoreChecks::PreCallValidateCmdTraceRaysNV(VkCommandBuffer commandBuffer, VkBuffer raygenShaderBindingTableBuffer,
1521 VkDeviceSize raygenShaderBindingOffset, VkBuffer missShaderBindingTableBuffer,
1522 VkDeviceSize missShaderBindingOffset, VkDeviceSize missShaderBindingStride,
1523 VkBuffer hitShaderBindingTableBuffer, VkDeviceSize hitShaderBindingOffset,
1524 VkDeviceSize hitShaderBindingStride, VkBuffer callableShaderBindingTableBuffer,
1525 VkDeviceSize callableShaderBindingOffset, VkDeviceSize callableShaderBindingStride,
1526 uint32_t width, uint32_t height, uint32_t depth) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001527 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001528 bool skip = ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_RAY_TRACING_NV, CMD_TRACERAYSNV);
Jeremy Gebbenb20a8242021-11-05 15:14:43 -06001529 auto callable_shader_buffer_state = Get<BUFFER_STATE>(callableShaderBindingTableBuffer);
sourav parmard1521802020-06-07 21:49:02 -07001530 if (callable_shader_buffer_state && callableShaderBindingOffset >= callable_shader_buffer_state->createInfo.size) {
1531 skip |= LogError(commandBuffer, "VUID-vkCmdTraceRaysNV-callableShaderBindingOffset-02461",
1532 "vkCmdTraceRaysNV: callableShaderBindingOffset %" PRIu64
1533 " must be less than the size of callableShaderBindingTableBuffer %" PRIu64 " .",
1534 callableShaderBindingOffset, callable_shader_buffer_state->createInfo.size);
1535 }
Jeremy Gebbenb20a8242021-11-05 15:14:43 -06001536 auto hit_shader_buffer_state = Get<BUFFER_STATE>(hitShaderBindingTableBuffer);
sourav parmard1521802020-06-07 21:49:02 -07001537 if (hit_shader_buffer_state && hitShaderBindingOffset >= hit_shader_buffer_state->createInfo.size) {
1538 skip |= LogError(commandBuffer, "VUID-vkCmdTraceRaysNV-hitShaderBindingOffset-02459",
1539 "vkCmdTraceRaysNV: hitShaderBindingOffset %" PRIu64
1540 " must be less than the size of hitShaderBindingTableBuffer %" PRIu64 " .",
1541 hitShaderBindingOffset, hit_shader_buffer_state->createInfo.size);
1542 }
Jeremy Gebbenb20a8242021-11-05 15:14:43 -06001543 auto miss_shader_buffer_state = Get<BUFFER_STATE>(missShaderBindingTableBuffer);
sourav parmard1521802020-06-07 21:49:02 -07001544 if (miss_shader_buffer_state && missShaderBindingOffset >= miss_shader_buffer_state->createInfo.size) {
1545 skip |= LogError(commandBuffer, "VUID-vkCmdTraceRaysNV-missShaderBindingOffset-02457",
1546 "vkCmdTraceRaysNV: missShaderBindingOffset %" PRIu64
baldurk751594b2020-09-09 09:41:02 +01001547 " must be less than the size of missShaderBindingTableBuffer %" PRIu64 " .",
sourav parmard1521802020-06-07 21:49:02 -07001548 missShaderBindingOffset, miss_shader_buffer_state->createInfo.size);
1549 }
Jeremy Gebbenb20a8242021-11-05 15:14:43 -06001550 auto raygen_shader_buffer_state = Get<BUFFER_STATE>(raygenShaderBindingTableBuffer);
sourav parmard1521802020-06-07 21:49:02 -07001551 if (raygenShaderBindingOffset >= raygen_shader_buffer_state->createInfo.size) {
1552 skip |= LogError(commandBuffer, "VUID-vkCmdTraceRaysNV-raygenShaderBindingOffset-02455",
1553 "vkCmdTraceRaysNV: raygenShaderBindingOffset %" PRIu64
baldurk751594b2020-09-09 09:41:02 +01001554 " must be less than the size of raygenShaderBindingTableBuffer %" PRIu64 " .",
sourav parmard1521802020-06-07 21:49:02 -07001555 raygenShaderBindingOffset, raygen_shader_buffer_state->createInfo.size);
1556 }
sourav parmarcd5fb182020-07-17 12:58:44 -07001557
sourav parmar30e19392020-12-02 16:57:21 -08001558 const auto lv_bind_point = ConvertToLvlBindPoint(VK_PIPELINE_BIND_POINT_RAY_TRACING_NV);
1559 const PIPELINE_STATE *pipeline_state = cb_state->lastBound[lv_bind_point].pipeline_state;
Jeremy Gebben14b0d1a2021-05-15 20:15:41 -06001560 if (!pipeline_state || (pipeline_state && !pipeline_state->pipeline())) {
sourav parmar30e19392020-12-02 16:57:21 -08001561 skip |= LogError(device, "VUID-vkCmdTraceRaysNV-None-02700",
1562 "vkCmdTraceRaysKHR: A valid pipeline must be bound to the pipeline bind point used by this command.");
sourav parmarcd5fb182020-07-17 12:58:44 -07001563 }
Jeff Bolzf6e872c2019-10-22 12:17:28 -05001564 return skip;
1565}
1566
Jeff Bolz443c2ca2020-03-19 12:11:51 -05001567bool CoreChecks::PreCallValidateCmdTraceRaysKHR(VkCommandBuffer commandBuffer,
sourav parmarcd5fb182020-07-17 12:58:44 -07001568 const VkStridedDeviceAddressRegionKHR *pRaygenShaderBindingTable,
1569 const VkStridedDeviceAddressRegionKHR *pMissShaderBindingTable,
1570 const VkStridedDeviceAddressRegionKHR *pHitShaderBindingTable,
1571 const VkStridedDeviceAddressRegionKHR *pCallableShaderBindingTable, uint32_t width,
Jeff Bolz443c2ca2020-03-19 12:11:51 -05001572 uint32_t height, uint32_t depth) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001573 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001574 bool skip = ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR, CMD_TRACERAYSKHR);
Shannon McPherson9caca052020-11-25 11:34:38 -07001575 const auto lv_bind_point = ConvertToLvlBindPoint(VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR);
1576 const PIPELINE_STATE *pipeline_state = cb_state->lastBound[lv_bind_point].pipeline_state;
Jeremy Gebben14b0d1a2021-05-15 20:15:41 -06001577 if (!pipeline_state || (pipeline_state && !pipeline_state->pipeline())) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001578 skip |= LogError(device, "VUID-vkCmdTraceRaysKHR-None-02700",
1579 "vkCmdTraceRaysKHR: A valid pipeline must be bound to the pipeline bind point used by this command.");
1580 } else { // bound to valid RT pipeline
Jeremy Gebben11af9792021-08-20 10:20:09 -06001581 if (pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001582 if (!pHitShaderBindingTable->deviceAddress) {
1583 skip |= LogError(device, "VUID-vkCmdTraceRaysKHR-flags-03697",
1584 "vkCmdTraceRaysKHR: If the currently bound ray tracing pipeline was created with flags "
1585 "that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, the "
1586 "deviceAddress member of pHitShaderBindingTable must not be zero.");
1587 }
1588 if (!pHitShaderBindingTable || pHitShaderBindingTable->size == 0 || pHitShaderBindingTable->stride == 0) {
1589 skip |= LogError(device, "VUID-vkCmdTraceRaysKHR-flags-03514",
1590 "vkCmdTraceRaysKHR: If the currently bound ray tracing pipeline was created with "
1591 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, "
1592 "entries in pHitShaderBindingTable accessed as a result of this command in order to "
1593 "execute an intersection shader must not be set to zero.");
1594 }
1595 }
Jeremy Gebben11af9792021-08-20 10:20:09 -06001596 if (pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001597 if (!pHitShaderBindingTable->deviceAddress) {
1598 skip |= LogError(device, "VUID-vkCmdTraceRaysKHR-flags-03696",
1599 "vkCmdTraceRaysKHR: If the currently bound ray tracing pipeline was created with flags "
1600 "that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, the "
1601 "deviceAddress member of pHitShaderBindingTable must not be zero.");
1602 }
1603 if (!pHitShaderBindingTable || pHitShaderBindingTable->size == 0 || pHitShaderBindingTable->stride == 0) {
1604 skip |= LogError(device, "VUID-vkCmdTraceRaysKHR-flags-03513",
1605 "vkCmdTraceRaysKHR: If the currently bound ray tracing pipeline was created with "
1606 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, "
1607 "entries in pHitShaderBindingTable accessed as a result of this command in order to "
1608 "execute a closest hit shader must not be set to zero.");
1609 }
1610 }
Jeremy Gebben11af9792021-08-20 10:20:09 -06001611 if (pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001612 if (!pHitShaderBindingTable || pHitShaderBindingTable->size == 0 || pHitShaderBindingTable->stride == 0) {
1613 skip |= LogError(device, "VUID-vkCmdTraceRaysKHR-flags-03512",
1614 "vkCmdTraceRaysKHR: If the currently bound ray tracing pipeline was created with "
1615 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR, "
1616 "entries in pHitShaderBindingTable accessed as a result of this command in order to "
1617 "execute an any hit shader must not be set to zero.");
1618 }
1619 }
1620 }
Jeff Bolz443c2ca2020-03-19 12:11:51 -05001621 return skip;
1622}
1623
Jeff Bolz443c2ca2020-03-19 12:11:51 -05001624bool CoreChecks::PreCallValidateCmdTraceRaysIndirectKHR(VkCommandBuffer commandBuffer,
sourav parmarcd5fb182020-07-17 12:58:44 -07001625 const VkStridedDeviceAddressRegionKHR *pRaygenShaderBindingTable,
1626 const VkStridedDeviceAddressRegionKHR *pMissShaderBindingTable,
1627 const VkStridedDeviceAddressRegionKHR *pHitShaderBindingTable,
1628 const VkStridedDeviceAddressRegionKHR *pCallableShaderBindingTable,
1629 VkDeviceAddress indirectDeviceAddress) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001630 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001631 bool skip = ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR, CMD_TRACERAYSINDIRECTKHR);
Shannon McPherson9caca052020-11-25 11:34:38 -07001632 const auto lv_bind_point = ConvertToLvlBindPoint(VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR);
Jeremy Gebbenb20a8242021-11-05 15:14:43 -06001633 const auto *pipeline_state = cb_state->lastBound[lv_bind_point].pipeline_state;
Jeremy Gebben14b0d1a2021-05-15 20:15:41 -06001634 if (!pipeline_state || (pipeline_state && !pipeline_state->pipeline())) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001635 skip |=
1636 LogError(device, "VUID-vkCmdTraceRaysIndirectKHR-None-02700",
1637 "vkCmdTraceRaysIndirectKHR: A valid pipeline must be bound to the pipeline bind point used by this command.");
1638 } else { // valid bind point
Jeremy Gebben11af9792021-08-20 10:20:09 -06001639 if (pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001640 if (!pHitShaderBindingTable || pHitShaderBindingTable->deviceAddress == 0) {
1641 skip |= LogError(device, "VUID-vkCmdTraceRaysIndirectKHR-flags-03697",
1642 "vkCmdTraceRaysIndirectKHR: If the currently bound ray tracing pipeline was created with "
1643 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, the "
1644 "deviceAddress member of pHitShaderBindingTable must not be zero.");
1645 }
1646 if (!pHitShaderBindingTable || pHitShaderBindingTable->size == 0 || pHitShaderBindingTable->stride == 0) {
1647 skip |= LogError(device, "VUID-vkCmdTraceRaysIndirectKHR-flags-03514",
1648 "vkCmdTraceRaysIndirectKHR: If the currently bound ray tracing pipeline was created with "
1649 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, "
1650 "entries in pHitShaderBindingTable accessed as a result of this command in order to "
1651 "execute an intersection shader must not be set to zero.");
1652 }
1653 }
Jeremy Gebben11af9792021-08-20 10:20:09 -06001654 if (pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001655 if (!pHitShaderBindingTable || pHitShaderBindingTable->deviceAddress == 0) {
1656 skip |= LogError(device, "VUID-vkCmdTraceRaysIndirectKHR-flags-03696",
1657 "vkCmdTraceRaysIndirectKHR:If the currently bound ray tracing pipeline was created with "
1658 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, "
1659 "the deviceAddress member of pHitShaderBindingTable must not be zero.");
1660 }
1661 if (!pHitShaderBindingTable || pHitShaderBindingTable->size == 0 || pHitShaderBindingTable->stride == 0) {
1662 skip |= LogError(device, "VUID-vkCmdTraceRaysIndirectKHR-flags-03513",
1663 "vkCmdTraceRaysIndirectKHR: If the currently bound ray tracing pipeline was created with "
1664 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, "
1665 "entries in pHitShaderBindingTable accessed as a result of this command in order to "
1666 "execute a closest hit shader must not be set to zero.");
1667 }
1668 }
Jeremy Gebben11af9792021-08-20 10:20:09 -06001669 if (pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001670 if (!pHitShaderBindingTable || pHitShaderBindingTable->size == 0 || pHitShaderBindingTable->stride == 0) {
1671 skip |= LogError(device, "VUID-vkCmdTraceRaysIndirectKHR-flags-03512",
1672 "vkCmdTraceRaysIndirectKHR: If the currently bound ray tracing pipeline was created with "
1673 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR, "
1674 "entries in pHitShaderBindingTable accessed as a result of this command in order to "
1675 "execute an any hit shader must not be set to zero.");
1676 }
1677 }
1678 }
Jeff Bolz443c2ca2020-03-19 12:11:51 -05001679 return skip;
1680}
1681
sfricke-samsungf91881c2022-03-31 01:12:00 -05001682bool CoreChecks::PreCallValidateCmdTraceRaysIndirect2KHR(VkCommandBuffer commandBuffer,
1683 VkDeviceAddress indirectDeviceAddress) const {
1684 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
1685 bool skip = ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR, CMD_TRACERAYSINDIRECTKHR);
1686 return skip;
1687}
1688
Jeff Bolz5c801d12019-10-09 10:38:45 -05001689bool CoreChecks::PreCallValidateCmdDrawMeshTasksNV(VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001690 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001691 bool skip = ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWMESHTASKSNV);
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001692 return skip;
1693}
1694
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001695bool CoreChecks::PreCallValidateCmdDrawMeshTasksIndirectNV(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
Jeff Bolz5c801d12019-10-09 10:38:45 -05001696 uint32_t drawCount, uint32_t stride) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001697 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001698 bool skip = ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWMESHTASKSINDIRECTNV);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001699 auto buffer_state = Get<BUFFER_STATE>(buffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001700 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, CMD_DRAWMESHTASKSINDIRECTNV);
Lockee68ac652019-05-06 10:17:33 -06001701 if (drawCount > 1) {
Lockee68ac652019-05-06 10:17:33 -06001702 skip |= ValidateCmdDrawStrideWithBuffer(commandBuffer, "VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02157", stride,
1703 "VkDrawMeshTasksIndirectCommandNV", sizeof(VkDrawMeshTasksIndirectCommandNV),
Jeremy Gebben9f537102021-10-05 16:37:12 -06001704 drawCount, offset, buffer_state.get());
Lockee68ac652019-05-06 10:17:33 -06001705 }
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001706 return skip;
1707}
1708
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001709bool CoreChecks::PreCallValidateCmdDrawMeshTasksIndirectCountNV(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1710 VkBuffer countBuffer, VkDeviceSize countBufferOffset,
Jeff Bolz5c801d12019-10-09 10:38:45 -05001711 uint32_t maxDrawCount, uint32_t stride) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001712 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001713 bool skip = ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWMESHTASKSINDIRECTCOUNTNV);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001714 auto buffer_state = Get<BUFFER_STATE>(buffer);
1715 auto count_buffer_state = Get<BUFFER_STATE>(countBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001716 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, CMD_DRAWMESHTASKSINDIRECTCOUNTNV);
sjfricke177bbb62022-06-02 17:37:03 +09001717 skip |= ValidateIndirectCountCmd(*count_buffer_state, countBufferOffset, CMD_DRAWMESHTASKSINDIRECTCOUNTNV);
Lockee68ac652019-05-06 10:17:33 -06001718 skip |= ValidateCmdDrawStrideWithStruct(commandBuffer, "VUID-vkCmdDrawMeshTasksIndirectCountNV-stride-02182", stride,
1719 "VkDrawMeshTasksIndirectCommandNV", sizeof(VkDrawMeshTasksIndirectCommandNV));
1720 if (maxDrawCount > 1) {
1721 skip |= ValidateCmdDrawStrideWithBuffer(commandBuffer, "VUID-vkCmdDrawMeshTasksIndirectCountNV-maxDrawCount-02183", stride,
1722 "VkDrawMeshTasksIndirectCommandNV", sizeof(VkDrawMeshTasksIndirectCommandNV),
Jeremy Gebben9f537102021-10-05 16:37:12 -06001723 maxDrawCount, offset, buffer_state.get());
Lockee68ac652019-05-06 10:17:33 -06001724 }
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001725 return skip;
1726}