blob: c6f52bcc654eca836fc8a1f3fbe5a828ca9a9e7e [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";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -070066 image_subresources = "VUID-vkCmdDraw-None-04584";
67 descriptor_valid = "VUID-vkCmdDraw-None-02699";
68 sampler_imageview_type = "VUID-vkCmdDraw-None-02702";
69 sampler_implicitLod_dref_proj = "VUID-vkCmdDraw-None-02703";
70 sampler_bias_offset = "VUID-vkCmdDraw-None-02704";
71 vertex_binding_attribute = "VUID-vkCmdDraw-None-02721";
72 dynamic_state_setting_commands = "VUID-vkCmdDraw-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -070073 rasterization_samples = "VUID-vkCmdDraw-rasterizationSamples-04740";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -070074 unprotected_command_buffer = "VUID-vkCmdDraw-commandBuffer-02707";
75 protected_command_buffer = "VUID-vkCmdDraw-commandBuffer-02712";
76 max_multiview_instance_index = "VUID-vkCmdDraw-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -070077 img_filter_cubic = "VUID-vkCmdDraw-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -070078 filter_cubic = "VUID-vkCmdDraw-filterCubic-02694";
79 filter_cubic_min_max = "VUID-vkCmdDraw-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +000080 viewport_count_primitive_shading_rate = "VUID-vkCmdDraw-primitiveFragmentShadingRateWithMultipleViewports-04552";
Vikram Kushwahaa57b0c32021-04-19 12:21:46 -070081 patch_control_points = "VUID-vkCmdDraw-None-04875";
82 rasterizer_discard_enable = "VUID-vkCmdDraw-None-04876";
83 depth_bias_enable = "VUID-vkCmdDraw-None-04877";
84 logic_op = "VUID-vkCmdDraw-logicOp-04878";
85 primitive_restart_enable = "VUID-vkCmdDraw-None-04879";
Piers Daniell924cd832021-05-18 13:48:47 -060086 vertex_input_binding_stride = "VUID-vkCmdDraw-pStrides-04884";
87 vertex_input = kVUID_Core_CmdDraw_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +020088 blend_enable = "VUID-vkCmdDraw-blendEnable-04727";
Aaron Hagan92a44f82021-11-19 09:34:56 -050089 dynamic_rendering_view_mask = "VUID-vkCmdDraw-viewMask-06178";
90 dynamic_rendering_color_count = "VUID-vkCmdDraw-colorAttachmentCount-06179";
91 dynamic_rendering_color_formats = "VUID-vkCmdDraw-colorAttachmentCount-06180";
92 dynamic_rendering_depth_format = "VUID-vkCmdDraw-pDepthAttachment-06181";
93 dynamic_rendering_stencil_format = "VUID-vkCmdDraw-pStencilAttachment-06182";
94 dynamic_rendering_fsr = "VUID-vkCmdDraw-imageView-06183";
95 dynamic_rendering_fdm = "VUID-vkCmdDraw-imageView-06184";
Aaron Hagan09a0e172021-11-19 21:18:33 -050096 dynamic_rendering_color_sample = "VUID-vkCmdDraw-colorAttachmentCount-06185";
97 dynamic_rendering_depth_sample = "VUID-vkCmdDraw-pDepthAttachment-06186";
98 dynamic_rendering_stencil_sample = "VUID-vkCmdDraw-pStencilAttachment-06187";
99 dynamic_rendering_multi_sample = "VUID-vkCmdDraw-colorAttachmentCount-06188";
Aaron Haganaca50442021-12-07 22:26:29 -0500100 dynamic_rendering_06189 = "VUID-vkCmdDraw-pDepthAttachment-06189";
101 dynamic_rendering_06190 = "VUID-vkCmdDraw-pStencilAttachment-06190";
102 dynamic_rendering_06198 = "VUID-vkCmdDraw-renderPass-06198";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200103 storage_image_read_without_format = "VUID-vkCmdDraw-OpTypeImage-06424";
104 storage_image_write_without_format = "VUID-vkCmdDraw-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200105 depth_compare_sample = "VUID-vkCmdDraw-None-06479";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700106 }
107};
108
Tony-LunarG4490de42021-06-21 15:49:19 -0600109struct DispatchVuidsCmdDrawMultiEXT : DrawDispatchVuid {
110 DispatchVuidsCmdDrawMultiEXT() : DrawDispatchVuid() {
111 pipeline_bound = "VUID-vkCmdDrawMultiEXT-None-02700";
112 dynamic_state = "VUID-vkCmdDrawMultiEXT-commandBuffer-02701";
113 vertex_binding = "VUID-vkCmdDrawMultiEXT-None-04007";
114 vertex_binding_null = "VUID-vkCmdDrawMultiEXT-None-04008";
115 compatible_pipeline = "VUID-vkCmdDrawMultiEXT-None-02697";
116 render_pass_compatible = "VUID-vkCmdDrawMultiEXT-renderPass-02684";
117 subpass_index = "VUID-vkCmdDrawMultiEXT-subpass-02685";
118 sample_location = "VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-02689";
119 linear_sampler = "VUID-vkCmdDrawMultiEXT-magFilter-04553";
120 cubic_sampler = "VUID-vkCmdDrawMultiEXT-None-02692";
121 viewport_count = "VUID-vkCmdDrawMultiEXT-viewportCount-03417";
122 scissor_count = "VUID-vkCmdDrawMultiEXT-scissorCount-03418";
123 viewport_scissor_count = "VUID-vkCmdDrawMultiEXT-viewportCount-03419";
124 primitive_topology = "VUID-vkCmdDrawMultiEXT-primitiveTopology-03420";
125 corner_sampled_address_mode = "VUID-vkCmdDrawMultiEXT-flags-02696";
126 subpass_input = "VUID-vkCmdDrawMultiEXT-None-02686";
127 imageview_atomic = "VUID-vkCmdDrawMultiEXT-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700128 push_constants_set = "VUID-vkCmdDrawMultiEXT-maintenance4-06425";
Tony-LunarG4490de42021-06-21 15:49:19 -0600129 image_subresources = "VUID-vkCmdDrawMultiEXT-None-04584";
130 descriptor_valid = "VUID-vkCmdDrawMultiEXT-None-02699";
131 sampler_imageview_type = "VUID-vkCmdDrawMultiEXT-None-02702";
132 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawMultiEXT-None-02703";
133 sampler_bias_offset = "VUID-vkCmdDrawMultiEXT-None-02704";
134 vertex_binding_attribute = "VUID-vkCmdDrawMultiEXT-None-02721";
135 dynamic_state_setting_commands = "VUID-vkCmdDrawMultiEXT-None-02859";
136 rasterization_samples = "VUID-vkCmdDrawMultiEXT-rasterizationSamples-04740";
137 unprotected_command_buffer = "VUID-vkCmdDrawMultiEXT-commandBuffer-02707";
138 protected_command_buffer = "VUID-vkCmdDrawMultiEXT-commandBuffer-02712";
139 max_multiview_instance_index = "VUID-vkCmdDrawMultiEXT-maxMultiviewInstanceIndex-02688";
140 img_filter_cubic = "VUID-vkCmdDrawMultiEXT-None-02693";
141 filter_cubic = "VUID-vkCmdDrawMultiEXT-filterCubic-02694";
142 filter_cubic_min_max = "VUID-vkCmdDrawMultiEXT-filterCubicMinmax-02695";
143 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawMultiEXT-primitiveFragmentShadingRateWithMultipleViewports-04552";
144 patch_control_points = "VUID-vkCmdDrawMultiEXT-None-04875";
145 rasterizer_discard_enable = "VUID-vkCmdDrawMultiEXT-None-04876";
146 depth_bias_enable = "VUID-vkCmdDrawMultiEXT-None-04877";
147 logic_op = "VUID-vkCmdDrawMultiEXT-logicOp-04878";
148 primitive_restart_enable = "VUID-vkCmdDrawMultiEXT-None-04879";
149 vertex_input_binding_stride = "VUID-vkCmdDrawMultiEXT-pStrides-04884";
150 vertex_input = kVUID_Core_CmdDrawMultiEXT_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200151 blend_enable = "VUID-vkCmdDrawMultiEXT-blendEnable-04727";
Aaron Hagan92a44f82021-11-19 09:34:56 -0500152 dynamic_rendering_view_mask = "VUID-vkCmdDrawMultiEXT-viewMask-06178";
153 dynamic_rendering_color_count = "VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06179";
154 dynamic_rendering_color_formats = "VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06180";
155 dynamic_rendering_depth_format = "VUID-vkCmdDrawMultiEXT-pDepthAttachment-06181";
156 dynamic_rendering_stencil_format = "VUID-vkCmdDrawMultiEXT-pStencilAttachment-06182";
157 dynamic_rendering_fsr = "VUID-vkCmdDrawMultiEXT-imageView-06183";
158 dynamic_rendering_fdm = "VUID-vkCmdDrawMultiEXT-imageView-06184";
Aaron Hagan09a0e172021-11-19 21:18:33 -0500159 dynamic_rendering_color_sample = "VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06185";
160 dynamic_rendering_depth_sample = "VUID-vkCmdDrawMultiEXT-pDepthAttachment-06186";
161 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawMultiEXT-pStencilAttachment-06187";
162 dynamic_rendering_multi_sample = "VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06188";
Aaron Haganaca50442021-12-07 22:26:29 -0500163 dynamic_rendering_06189 = "VUID-vkCmdDrawMultiEXT-pDepthAttachment-06189";
164 dynamic_rendering_06190 = "VUID-vkCmdDrawMultiEXT-pStencilAttachment-06190";
165 dynamic_rendering_06198 = "VUID-vkCmdDrawMultiEXT-renderPass-06198";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200166 storage_image_read_without_format = "VUID-vkCmdDrawMultiEXT-OpTypeImage-06424";
167 storage_image_write_without_format = "VUID-vkCmdDrawMultiEXT-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200168 depth_compare_sample = "VUID-vkCmdDrawMultiEXT-None-06479";
Tony-LunarG4490de42021-06-21 15:49:19 -0600169 }
170};
171
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700172struct DispatchVuidsCmdDrawIndexed : DrawDispatchVuid {
173 DispatchVuidsCmdDrawIndexed() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700174 pipeline_bound = "VUID-vkCmdDrawIndexed-None-02700";
175 dynamic_state = "VUID-vkCmdDrawIndexed-commandBuffer-02701";
176 vertex_binding = "VUID-vkCmdDrawIndexed-None-04007";
177 vertex_binding_null = "VUID-vkCmdDrawIndexed-None-04008";
178 compatible_pipeline = "VUID-vkCmdDrawIndexed-None-02697";
179 render_pass_compatible = "VUID-vkCmdDrawIndexed-renderPass-02684";
180 subpass_index = "VUID-vkCmdDrawIndexed-subpass-02685";
181 sample_location = "VUID-vkCmdDrawIndexed-sampleLocationsEnable-02689";
182 linear_sampler = "VUID-vkCmdDrawIndexed-magFilter-04553";
183 cubic_sampler = "VUID-vkCmdDrawIndexed-None-02692";
184 viewport_count = "VUID-vkCmdDrawIndexed-viewportCount-03417";
185 scissor_count = "VUID-vkCmdDrawIndexed-scissorCount-03418";
186 viewport_scissor_count = "VUID-vkCmdDrawIndexed-viewportCount-03419";
187 primitive_topology = "VUID-vkCmdDrawIndexed-primitiveTopology-03420";
188 corner_sampled_address_mode = "VUID-vkCmdDrawIndexed-flags-02696";
189 subpass_input = "VUID-vkCmdDrawIndexed-None-02686";
190 imageview_atomic = "VUID-vkCmdDrawIndexed-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700191 push_constants_set = "VUID-vkCmdDrawIndexed-maintenance4-06425";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700192 image_subresources = "VUID-vkCmdDrawIndexed-None-04584";
193 descriptor_valid = "VUID-vkCmdDrawIndexed-None-02699";
194 sampler_imageview_type = "VUID-vkCmdDrawIndexed-None-02702";
195 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawIndexed-None-02703";
196 sampler_bias_offset = "VUID-vkCmdDrawIndexed-None-02704";
197 vertex_binding_attribute = "VUID-vkCmdDrawIndexed-None-02721";
198 dynamic_state_setting_commands = "VUID-vkCmdDrawIndexed-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700199 rasterization_samples = "VUID-vkCmdDrawIndexed-rasterizationSamples-04740";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700200 unprotected_command_buffer = "VUID-vkCmdDrawIndexed-commandBuffer-02707";
201 protected_command_buffer = "VUID-vkCmdDrawIndexed-commandBuffer-02712";
202 max_multiview_instance_index = "VUID-vkCmdDrawIndexed-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700203 img_filter_cubic = "VUID-vkCmdDrawIndexed-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700204 filter_cubic = "VUID-vkCmdDrawIndexed-filterCubic-02694";
205 filter_cubic_min_max = "VUID-vkCmdDrawIndexed-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000206 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawIndexed-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600207 patch_control_points = "VUID-vkCmdDrawIndexed-None-04875";
208 rasterizer_discard_enable = "VUID-vkCmdDrawIndexed-None-04876";
209 depth_bias_enable = "VUID-vkCmdDrawIndexed-None-04877";
210 logic_op = "VUID-vkCmdDrawIndexed-logicOp-04878";
211 primitive_restart_enable = "VUID-vkCmdDrawIndexed-None-04879";
212 vertex_input_binding_stride = "VUID-vkCmdDrawIndexed-pStrides-04884";
213 vertex_input = kVUID_Core_CmdDrawIndexed_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200214 blend_enable = "VUID-vkCmdDrawIndexed-blendEnable-04727";
Aaron Hagan92a44f82021-11-19 09:34:56 -0500215 dynamic_rendering_view_mask = "VUID-vkCmdDrawIndexed-viewMask-06178";
216 dynamic_rendering_color_count = "VUID-vkCmdDrawIndexed-colorAttachmentCount-06179";
217 dynamic_rendering_color_formats = "VUID-vkCmdDrawIndexed-colorAttachmentCount-06180";
218 dynamic_rendering_depth_format = "VUID-vkCmdDrawIndexed-pDepthAttachment-06181";
219 dynamic_rendering_stencil_format = "VUID-vkCmdDrawIndexed-pStencilAttachment-06182";
220 dynamic_rendering_fsr = "VUID-vkCmdDrawIndexed-imageView-06183";
221 dynamic_rendering_fdm = "VUID-vkCmdDrawIndexed-imageView-06184";
Aaron Hagan09a0e172021-11-19 21:18:33 -0500222 dynamic_rendering_color_sample = "VUID-vkCmdDrawIndexed-colorAttachmentCount-06185";
223 dynamic_rendering_depth_sample = "VUID-vkCmdDrawIndexed-pDepthAttachment-06186";
224 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawIndexed-pStencilAttachment-06187";
225 dynamic_rendering_multi_sample = "VUID-vkCmdDrawIndexed-colorAttachmentCount-06188";
Aaron Haganaca50442021-12-07 22:26:29 -0500226 dynamic_rendering_06189 = "VUID-vkCmdDrawIndexed-pDepthAttachment-06189";
227 dynamic_rendering_06190 = "VUID-vkCmdDrawIndexed-pStencilAttachment-06190";
228 dynamic_rendering_06198 = "VUID-vkCmdDrawIndexed-renderPass-06198";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200229 storage_image_read_without_format = "VUID-vkCmdDrawIndexed-OpTypeImage-06424";
230 storage_image_write_without_format = "VUID-vkCmdDrawIndexed-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200231 depth_compare_sample = "VUID-vkCmdDrawIndexed-None-06479";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700232 }
233};
234
Tony-LunarG4490de42021-06-21 15:49:19 -0600235struct DispatchVuidsCmdDrawMultiIndexedEXT : DrawDispatchVuid {
236 DispatchVuidsCmdDrawMultiIndexedEXT() : DrawDispatchVuid() {
Lionel Landwerlin45e981c2021-12-07 15:29:40 +0200237 pipeline_bound = "VUID-vkCmdDrawMultiIndexedEXT-None-02700";
238 dynamic_state = "VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02701";
239 vertex_binding = "VUID-vkCmdDrawMultiIndexedEXT-None-04007";
240 vertex_binding_null = "VUID-vkCmdDrawMultiIndexedEXT-None-04008";
241 compatible_pipeline = "VUID-vkCmdDrawMultiIndexedEXT-None-02697";
242 render_pass_compatible = "VUID-vkCmdDrawMultiIndexedEXT-renderPass-02684";
243 subpass_index = "VUID-vkCmdDrawMultiIndexedEXT-subpass-02685";
244 sample_location = "VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-02689";
245 linear_sampler = "VUID-vkCmdDrawMultiIndexedEXT-magFilter-04553";
246 cubic_sampler = "VUID-vkCmdDrawMultiIndexedEXT-None-02692";
247 viewport_count = "VUID-vkCmdDrawMultiIndexedEXT-viewportCount-03417";
248 scissor_count = "VUID-vkCmdDrawMultiIndexedEXT-scissorCount-03418";
249 viewport_scissor_count = "VUID-vkCmdDrawMultiIndexedEXT-viewportCount-03419";
250 primitive_topology = "VUID-vkCmdDrawMultiIndexedEXT-primitiveTopology-03420";
251 corner_sampled_address_mode = "VUID-vkCmdDrawMultiIndexedEXT-flags-02696";
252 subpass_input = "VUID-vkCmdDrawMultiIndexedEXT-None-02686";
253 imageview_atomic = "VUID-vkCmdDrawMultiIndexedEXT-None-02691";
254 push_constants_set = "VUID-vkCmdDrawMultiIndexedEXT-maintenance4-06425";
255 image_subresources = "VUID-vkCmdDrawMultiIndexedEXT-None-04584";
256 descriptor_valid = "VUID-vkCmdDrawMultiIndexedEXT-None-02699";
257 sampler_imageview_type = "VUID-vkCmdDrawMultiIndexedEXT-None-02702";
258 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawMultiIndexedEXT-None-02703";
259 sampler_bias_offset = "VUID-vkCmdDrawMultiIndexedEXT-None-02704";
260 vertex_binding_attribute = "VUID-vkCmdDrawMultiIndexedEXT-None-02721";
261 dynamic_state_setting_commands = "VUID-vkCmdDrawMultiIndexedEXT-None-02859";
262 rasterization_samples = "VUID-vkCmdDrawMultiIndexedEXT-rasterizationSamples-04740";
263 unprotected_command_buffer = "VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02707";
264 protected_command_buffer = "VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02712";
265 max_multiview_instance_index = "VUID-vkCmdDrawMultiIndexedEXT-maxMultiviewInstanceIndex-02688";
266 img_filter_cubic = "VUID-vkCmdDrawMultiIndexedEXT-None-02693";
267 filter_cubic = "VUID-vkCmdDrawMultiIndexedEXT-filterCubic-02694";
268 filter_cubic_min_max = "VUID-vkCmdDrawMultiIndexedEXT-filterCubicMinmax-02695";
Tony-LunarG4490de42021-06-21 15:49:19 -0600269 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawMultiIndexedEXT-primitiveFragmentShadingRateWithMultipleViewports-04552";
Lionel Landwerlin45e981c2021-12-07 15:29:40 +0200270 patch_control_points = "VUID-vkCmdDrawMultiIndexedEXT-None-04875";
271 rasterizer_discard_enable = "VUID-vkCmdDrawMultiIndexedEXT-None-04876";
272 depth_bias_enable = "VUID-vkCmdDrawMultiIndexedEXT-None-04877";
273 logic_op = "VUID-vkCmdDrawMultiIndexedEXT-logicOp-04878";
274 primitive_restart_enable = "VUID-vkCmdDrawMultiIndexedEXT-None-04879";
275 vertex_input_binding_stride = "VUID-vkCmdDrawMultiIndexedEXT-pStrides-04884";
276 vertex_input = kVUID_Core_CmdDrawMultiIndexedEXT_VertexInput;
277 blend_enable = "VUID-vkCmdDrawMultiIndexedEXT-blendEnable-04727";
278 dynamic_rendering_view_mask = "VUID-vkCmdDrawMultiIndexedEXT-viewMask-06178";
279 dynamic_rendering_color_count = "VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-06179";
280 dynamic_rendering_color_formats = "VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-06180";
281 dynamic_rendering_depth_format = "VUID-vkCmdDrawMultiIndexedEXT-pDepthAttachment-06181";
282 dynamic_rendering_stencil_format = "VUID-vkCmdDrawMultiIndexedEXT-pStencilAttachment-06182";
283 dynamic_rendering_fsr = "VUID-vkCmdDrawMultiIndexedEXT-imageView-06183";
284 dynamic_rendering_fdm = "VUID-vkCmdDrawMultiIndexedEXT-imageView-06184";
285 dynamic_rendering_color_sample = "VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-06185";
286 dynamic_rendering_depth_sample = "VUID-vkCmdDrawMultiIndexedEXT-pDepthAttachment-06186";
287 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawMultiIndexedEXT-pStencilAttachment-06187";
288 dynamic_rendering_multi_sample = "VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-06188";
289 dynamic_rendering_06189 = "VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-06189";
290 dynamic_rendering_06190 = "VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-06190";
291 dynamic_rendering_06198 = "VUID-vkCmdDrawIndexedIndirect-renderPass-06198";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200292 storage_image_read_without_format = "VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-06424";
293 storage_image_write_without_format = "VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200294 depth_compare_sample = "VUID-vkCmdDrawMultiIndexedEXT-None-06479";
Tony-LunarG4490de42021-06-21 15:49:19 -0600295 }
296};
297
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700298struct DispatchVuidsCmdDrawIndirect : DrawDispatchVuid {
299 DispatchVuidsCmdDrawIndirect() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700300 pipeline_bound = "VUID-vkCmdDrawIndirect-None-02700";
301 dynamic_state = "VUID-vkCmdDrawIndirect-commandBuffer-02701";
302 vertex_binding = "VUID-vkCmdDrawIndirect-None-04007";
303 vertex_binding_null = "VUID-vkCmdDrawIndirect-None-04008";
304 compatible_pipeline = "VUID-vkCmdDrawIndirect-None-02697";
305 render_pass_compatible = "VUID-vkCmdDrawIndirect-renderPass-02684";
306 subpass_index = "VUID-vkCmdDrawIndirect-subpass-02685";
307 sample_location = "VUID-vkCmdDrawIndirect-sampleLocationsEnable-02689";
308 linear_sampler = "VUID-vkCmdDrawIndirect-magFilter-04553";
309 cubic_sampler = "VUID-vkCmdDrawIndirect-None-02692";
310 indirect_protected_cb = "VUID-vkCmdDrawIndirect-commandBuffer-02711";
311 indirect_contiguous_memory = "VUID-vkCmdDrawIndirect-buffer-02708";
312 indirect_buffer_bit = "VUID-vkCmdDrawIndirect-buffer-02709";
313 viewport_count = "VUID-vkCmdDrawIndirect-viewportCount-03417";
314 scissor_count = "VUID-vkCmdDrawIndirect-scissorCount-03418";
315 viewport_scissor_count = "VUID-vkCmdDrawIndirect-viewportCount-03419";
316 primitive_topology = "VUID-vkCmdDrawIndirect-primitiveTopology-03420";
317 corner_sampled_address_mode = "VUID-vkCmdDrawIndirect-flags-02696";
318 subpass_input = "VUID-vkCmdDrawIndirect-None-02686";
319 imageview_atomic = "VUID-vkCmdDrawIndirect-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700320 push_constants_set = "VUID-vkCmdDrawIndirect-maintenance4-06425";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700321 image_subresources = "VUID-vkCmdDrawIndirect-None-04584";
322 descriptor_valid = "VUID-vkCmdDrawIndirect-None-02699";
323 sampler_imageview_type = "VUID-vkCmdDrawIndirect-None-02702";
324 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawIndirect-None-02703";
325 sampler_bias_offset = "VUID-vkCmdDrawIndirect-None-02704";
326 vertex_binding_attribute = "VUID-vkCmdDrawIndirect-None-02721";
327 dynamic_state_setting_commands = "VUID-vkCmdDrawIndirect-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700328 rasterization_samples = "VUID-vkCmdDrawIndirect-rasterizationSamples-04740";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700329 unprotected_command_buffer = "VUID-vkCmdDrawIndirect-commandBuffer-02707";
330 max_multiview_instance_index = "VUID-vkCmdDrawIndirect-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700331 img_filter_cubic = "VUID-vkCmdDrawIndirect-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700332 filter_cubic = "VUID-vkCmdDrawIndirect-filterCubic-02694";
333 filter_cubic_min_max = "VUID-vkCmdDrawIndirect-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000334 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawIndirect-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600335 patch_control_points = "VUID-vkCmdDrawIndirect-None-04875";
336 rasterizer_discard_enable = "VUID-vkCmdDrawIndirect-None-04876";
337 depth_bias_enable = "VUID-vkCmdDrawIndirect-None-04877";
338 logic_op = "VUID-vkCmdDrawIndirect-logicOp-04878";
339 primitive_restart_enable = "VUID-vkCmdDrawIndirect-None-04879";
340 vertex_input_binding_stride = "VUID-vkCmdDrawIndirect-pStrides-04884";
341 vertex_input = kVUID_Core_CmdDrawIndirect_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200342 blend_enable = "VUID-vkCmdDrawIndirect-blendEnable-04727";
Aaron Hagan92a44f82021-11-19 09:34:56 -0500343 dynamic_rendering_view_mask = "VUID-vkCmdDrawIndirect-viewMask-06178";
344 dynamic_rendering_color_count = "VUID-vkCmdDrawIndirect-colorAttachmentCount-06179";
345 dynamic_rendering_color_formats = "VUID-vkCmdDrawIndirect-colorAttachmentCount-06180";
346 dynamic_rendering_depth_format = "VUID-vkCmdDrawIndirect-pDepthAttachment-06181";
347 dynamic_rendering_stencil_format = "VUID-vkCmdDrawIndirect-pStencilAttachment-06182";
348 dynamic_rendering_fsr = "VUID-vkCmdDrawIndirect-imageView-06183";
349 dynamic_rendering_fdm = "VUID-vkCmdDrawIndirect-imageView-06184";
Aaron Hagan09a0e172021-11-19 21:18:33 -0500350 dynamic_rendering_color_sample = "VUID-vkCmdDrawIndirect-colorAttachmentCount-06185";
351 dynamic_rendering_depth_sample = "VUID-vkCmdDrawIndirect-pDepthAttachment-06186";
352 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawIndirect-pStencilAttachment-06187";
353 dynamic_rendering_multi_sample = "VUID-vkCmdDrawIndirect-colorAttachmentCount-06188";
Aaron Haganaca50442021-12-07 22:26:29 -0500354 dynamic_rendering_06189 = "VUID-vkCmdDrawIndirect-pDepthAttachment-06189";
355 dynamic_rendering_06190 = "VUID-vkCmdDrawIndirect-pStencilAttachment-06190";
356 dynamic_rendering_06198 = "VUID-vkCmdDrawIndirect-renderPass-06198";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200357 storage_image_read_without_format = "VUID-vkCmdDrawIndirect-OpTypeImage-06424";
358 storage_image_write_without_format = "VUID-vkCmdDrawIndirect-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200359 depth_compare_sample = "VUID-vkCmdDrawIndirect-None-06479";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700360 }
361};
362
363struct DispatchVuidsCmdDrawIndexedIndirect : DrawDispatchVuid {
364 DispatchVuidsCmdDrawIndexedIndirect() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700365 pipeline_bound = "VUID-vkCmdDrawIndexedIndirect-None-02700";
366 dynamic_state = "VUID-vkCmdDrawIndexedIndirect-commandBuffer-02701";
367 vertex_binding = "VUID-vkCmdDrawIndexedIndirect-None-04007";
368 vertex_binding_null = "VUID-vkCmdDrawIndexedIndirect-None-04008";
369 compatible_pipeline = "VUID-vkCmdDrawIndexedIndirect-None-02697";
370 render_pass_compatible = "VUID-vkCmdDrawIndexedIndirect-renderPass-02684";
371 subpass_index = "VUID-vkCmdDrawIndexedIndirect-subpass-02685";
372 sample_location = "VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-02689";
373 linear_sampler = "VUID-vkCmdDrawIndexedIndirect-magFilter-04553";
374 cubic_sampler = "VUID-vkCmdDrawIndexedIndirect-None-02692";
375 indirect_protected_cb = "VUID-vkCmdDrawIndexedIndirect-commandBuffer-02711";
376 indirect_contiguous_memory = "VUID-vkCmdDrawIndexedIndirect-buffer-02708";
377 indirect_buffer_bit = "VUID-vkCmdDrawIndexedIndirect-buffer-02709";
378 viewport_count = "VUID-vkCmdDrawIndexedIndirect-viewportCount-03417";
379 scissor_count = "VUID-vkCmdDrawIndexedIndirect-scissorCount-03418";
380 viewport_scissor_count = "VUID-vkCmdDrawIndexedIndirect-viewportCount-03419";
381 primitive_topology = "VUID-vkCmdDrawIndexedIndirect-primitiveTopology-03420";
382 corner_sampled_address_mode = "VUID-vkCmdDrawIndexedIndirect-flags-02696";
383 subpass_input = "VUID-vkCmdDrawIndexedIndirect-None-02686";
384 imageview_atomic = "VUID-vkCmdDrawIndexedIndirect-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700385 push_constants_set = "VUID-vkCmdDrawIndexedIndirect-maintenance4-06425";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700386 image_subresources = "VUID-vkCmdDrawIndexedIndirect-None-04584";
387 descriptor_valid = "VUID-vkCmdDrawIndexedIndirect-None-02699";
388 sampler_imageview_type = "VUID-vkCmdDrawIndexedIndirect-None-02702";
389 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawIndexedIndirect-None-02703";
390 sampler_bias_offset = "VUID-vkCmdDrawIndexedIndirect-None-02704";
391 vertex_binding_attribute = "VUID-vkCmdDrawIndexedIndirect-None-02721";
392 dynamic_state_setting_commands = "VUID-vkCmdDrawIndexedIndirect-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700393 rasterization_samples = "VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-04740";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700394 unprotected_command_buffer = "VUID-vkCmdDrawIndexedIndirect-commandBuffer-02707";
395 max_multiview_instance_index = "VUID-vkCmdDrawIndexedIndirect-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700396 img_filter_cubic = "VUID-vkCmdDrawIndexedIndirect-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700397 filter_cubic = "VUID-vkCmdDrawIndexedIndirect-filterCubic-02694";
398 filter_cubic_min_max = "VUID-vkCmdDrawIndexedIndirect-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000399 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawIndexedIndirect-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600400 patch_control_points = "VUID-vkCmdDrawIndexedIndirect-None-04875";
401 rasterizer_discard_enable = "VUID-vkCmdDrawIndexedIndirect-None-04876";
402 depth_bias_enable = "VUID-vkCmdDrawIndexedIndirect-None-04877";
403 logic_op = "VUID-vkCmdDrawIndexedIndirect-logicOp-04878";
404 primitive_restart_enable = "VUID-vkCmdDrawIndexedIndirect-None-04879";
405 vertex_input_binding_stride = "VUID-vkCmdDrawIndexedIndirect-pStrides-04884";
406 vertex_input = kVUID_Core_CmdDrawIndexedIndirect_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200407 blend_enable = "VUID-vkCmdDrawIndexedIndirect-blendEnable-04727";
Aaron Hagan92a44f82021-11-19 09:34:56 -0500408 dynamic_rendering_view_mask = "VUID-vkCmdDrawIndexedIndirect-viewMask-06178";
409 dynamic_rendering_color_count = "VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06179";
410 dynamic_rendering_color_formats = "VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06180";
411 dynamic_rendering_depth_format = "VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-06181";
412 dynamic_rendering_stencil_format = "VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-06182";
413 dynamic_rendering_fsr = "VUID-vkCmdDrawIndexedIndirect-imageView-06183";
414 dynamic_rendering_fdm = "VUID-vkCmdDrawIndexedIndirect-imageView-06184";
Aaron Hagan09a0e172021-11-19 21:18:33 -0500415 dynamic_rendering_color_sample = "VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06185";
416 dynamic_rendering_depth_sample = "VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-06186";
417 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-06187";
418 dynamic_rendering_multi_sample = "VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06188";
Aaron Haganaca50442021-12-07 22:26:29 -0500419 dynamic_rendering_06189 = "VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-06189";
420 dynamic_rendering_06190 = "VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-06190";
421 dynamic_rendering_06198 = "VUID-vkCmdDrawIndexedIndirect-renderPass-06198";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200422 storage_image_read_without_format = "VUID-vkCmdDrawIndexedIndirect-OpTypeImage-06424";
423 storage_image_write_without_format = "VUID-vkCmdDrawIndexedIndirect-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200424 depth_compare_sample = "VUID-vkCmdDrawIndexedIndirect-None-06479";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700425 }
426};
427
428struct DispatchVuidsCmdDispatch : DrawDispatchVuid {
429 DispatchVuidsCmdDispatch() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700430 pipeline_bound = "VUID-vkCmdDispatch-None-02700";
Mark Lobodzinski02d37552020-12-28 13:29:46 -0700431 dynamic_state = "VUID-vkCmdDispatch-commandBuffer-02701";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700432 compatible_pipeline = "VUID-vkCmdDispatch-None-02697";
433 linear_sampler = "VUID-vkCmdDispatch-magFilter-04553";
434 cubic_sampler = "VUID-vkCmdDispatch-None-02692";
435 corner_sampled_address_mode = "VUID-vkCmdDispatch-flags-02696";
436 imageview_atomic = "VUID-vkCmdDispatch-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700437 push_constants_set = "VUID-vkCmdDispatch-maintenance4-06425";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700438 descriptor_valid = "VUID-vkCmdDispatch-None-02699";
439 sampler_imageview_type = "VUID-vkCmdDispatch-None-02702";
440 sampler_implicitLod_dref_proj = "VUID-vkCmdDispatch-None-02703";
441 sampler_bias_offset = "VUID-vkCmdDispatch-None-02704";
442 dynamic_state_setting_commands = "VUID-vkCmdDispatch-None-02859";
443 unprotected_command_buffer = "VUID-vkCmdDispatch-commandBuffer-02707";
444 protected_command_buffer = "VUID-vkCmdDispatch-commandBuffer-02712";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700445 img_filter_cubic = "VUID-vkCmdDispatch-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700446 filter_cubic = "VUID-vkCmdDispatch-filterCubic-02694";
447 filter_cubic_min_max = "VUID-vkCmdDispatch-filterCubicMinmax-02695";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200448 storage_image_read_without_format = "VUID-vkCmdDispatch-OpTypeImage-06424";
449 storage_image_write_without_format = "VUID-vkCmdDispatch-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200450 depth_compare_sample = "VUID-vkCmdDispatch-None-06479";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700451 }
452};
453
454struct DispatchVuidsCmdDispatchIndirect : DrawDispatchVuid {
455 DispatchVuidsCmdDispatchIndirect() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700456 pipeline_bound = "VUID-vkCmdDispatchIndirect-None-02700";
Mark Lobodzinski02d37552020-12-28 13:29:46 -0700457 dynamic_state = "VUID-vkCmdDispatchIndirect-commandBuffer-02701";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700458 compatible_pipeline = "VUID-vkCmdDispatchIndirect-None-02697";
459 linear_sampler = "VUID-vkCmdDispatchIndirect-magFilter-04553";
460 cubic_sampler = "VUID-vkCmdDispatchIndirect-None-02692";
461 indirect_protected_cb = "VUID-vkCmdDispatchIndirect-commandBuffer-02711";
462 indirect_contiguous_memory = "VUID-vkCmdDispatchIndirect-buffer-02708";
463 indirect_buffer_bit = "VUID-vkCmdDispatchIndirect-buffer-02709";
464 corner_sampled_address_mode = "VUID-vkCmdDispatchIndirect-flags-02696";
465 imageview_atomic = "VUID-vkCmdDispatchIndirect-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700466 push_constants_set = "VUID-vkCmdDispatchIndirect-maintenance4-06425";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700467 descriptor_valid = "VUID-vkCmdDispatchIndirect-None-02699";
468 sampler_imageview_type = "VUID-vkCmdDispatchIndirect-None-02702";
469 sampler_implicitLod_dref_proj = "VUID-vkCmdDispatchIndirect-None-02703";
470 sampler_bias_offset = "VUID-vkCmdDispatchIndirect-None-02704";
471 dynamic_state_setting_commands = "VUID-vkCmdDispatchIndirect-None-02859";
472 unprotected_command_buffer = "VUID-vkCmdDispatchIndirect-commandBuffer-02707";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700473 img_filter_cubic = "VUID-vkCmdDispatchIndirect-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700474 filter_cubic = "VUID-vkCmdDispatchIndirect-filterCubic-02694";
475 filter_cubic_min_max = "VUID-vkCmdDispatchIndirect-filterCubicMinmax-02695";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200476 storage_image_read_without_format = "VUID-vkCmdDispatchIndirect-OpTypeImage-06424";
477 storage_image_write_without_format = "VUID-vkCmdDispatchIndirect-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200478 depth_compare_sample = "VUID-vkCmdDispatchIndirect-None-06479";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700479 }
480};
481
482struct DispatchVuidsCmdDrawIndirectCount : DrawDispatchVuid {
483 DispatchVuidsCmdDrawIndirectCount() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700484 pipeline_bound = "VUID-vkCmdDrawIndirectCount-None-02700";
485 dynamic_state = "VUID-vkCmdDrawIndirectCount-commandBuffer-02701";
486 vertex_binding = "VUID-vkCmdDrawIndirectCount-None-04007";
487 vertex_binding_null = "VUID-vkCmdDrawIndirectCount-None-04008";
488 compatible_pipeline = "VUID-vkCmdDrawIndirectCount-None-02697";
489 render_pass_compatible = "VUID-vkCmdDrawIndirectCount-renderPass-02684";
490 subpass_index = "VUID-vkCmdDrawIndirectCount-subpass-02685";
491 sample_location = "VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-02689";
492 linear_sampler = "VUID-vkCmdDrawIndirectCount-magFilter-04553";
493 cubic_sampler = "VUID-vkCmdDrawIndirectCount-None-02692";
494 indirect_protected_cb = "VUID-vkCmdDrawIndirectCount-commandBuffer-02711";
495 indirect_contiguous_memory = "VUID-vkCmdDrawIndirectCount-buffer-02708";
496 indirect_buffer_bit = "VUID-vkCmdDrawIndirectCount-buffer-02709";
497 viewport_count = "VUID-vkCmdDrawIndirectCount-viewportCount-03417";
498 scissor_count = "VUID-vkCmdDrawIndirectCount-scissorCount-03418";
499 viewport_scissor_count = "VUID-vkCmdDrawIndirectCount-viewportCount-03419";
500 primitive_topology = "VUID-vkCmdDrawIndirectCount-primitiveTopology-03420";
501 corner_sampled_address_mode = "VUID-vkCmdDrawIndirectCount-flags-02696";
502 subpass_input = "VUID-vkCmdDrawIndirectCount-None-02686";
503 imageview_atomic = "VUID-vkCmdDrawIndirectCount-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700504 push_constants_set = "VUID-vkCmdDrawIndirectCount-maintenance4-06425";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700505 image_subresources = "VUID-vkCmdDrawIndirectCount-None-04584";
506 descriptor_valid = "VUID-vkCmdDrawIndirectCount-None-02699";
507 sampler_imageview_type = "VUID-vkCmdDrawIndirectCount-None-02702";
508 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawIndirectCount-None-02703";
509 sampler_bias_offset = "VUID-vkCmdDrawIndirectCount-None-02704";
510 vertex_binding_attribute = "VUID-vkCmdDrawIndirectCount-None-02721";
511 dynamic_state_setting_commands = "VUID-vkCmdDrawIndirectCount-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700512 rasterization_samples = "VUID-vkCmdDrawIndirectCount-rasterizationSamples-04740";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700513 unprotected_command_buffer = "VUID-vkCmdDrawIndirectCount-commandBuffer-02707";
514 max_multiview_instance_index = "VUID-vkCmdDrawIndirectCount-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700515 img_filter_cubic = "VUID-vkCmdDrawIndirectCount-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700516 filter_cubic = "VUID-vkCmdDrawIndirectCount-filterCubic-02694";
517 filter_cubic_min_max = "VUID-vkCmdDrawIndirectCount-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000518 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawIndirectCount-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600519 patch_control_points = "VUID-vkCmdDrawIndirectCount-None-04875";
520 rasterizer_discard_enable = "VUID-vkCmdDrawIndirectCount-None-04876";
521 depth_bias_enable = "VUID-vkCmdDrawIndirectCount-None-04877";
522 logic_op = "VUID-vkCmdDrawIndirectCount-logicOp-04878";
523 primitive_restart_enable = "VUID-vkCmdDrawIndirectCount-None-04879";
524 vertex_input_binding_stride = "VUID-vkCmdDrawIndirectCount-pStrides-04884";
525 vertex_input = kVUID_Core_CmdDrawIndirectCount_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200526 blend_enable = "VUID-vkCmdDrawIndirectCount-blendEnable-04727";
stusmithedc4e392021-12-24 15:22:16 +0000527 dynamic_rendering_view_mask = "VUID-vkCmdDrawIndirectCount-viewMask-06178";
528 dynamic_rendering_color_count = "VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06179";
529 dynamic_rendering_color_formats = "VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06180";
530 dynamic_rendering_depth_format = "VUID-vkCmdDrawIndirectCount-pDepthAttachment-06181";
531 dynamic_rendering_stencil_format = "VUID-vkCmdDrawIndirectCount-pStencilAttachment-06182";
532 dynamic_rendering_fsr = "VUID-vkCmdDrawIndirectCount-imageView-06183";
533 dynamic_rendering_fdm = "VUID-vkCmdDrawIndirectCount-imageView-06184";
534 dynamic_rendering_color_sample = "VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06185";
535 dynamic_rendering_depth_sample = "VUID-vkCmdDrawIndirectCount-pDepthAttachment-06186";
536 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawIndirectCount-pStencilAttachment-06187";
537 dynamic_rendering_multi_sample = "VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06188";
538 dynamic_rendering_06189 = "VUID-vkCmdDrawIndirectCount-pDepthAttachment-06189";
539 dynamic_rendering_06190 = "VUID-vkCmdDrawIndirectCount-pStencilAttachment-06190";
540 dynamic_rendering_06198 = "VUID-vkCmdDrawIndirectCount-renderPass-06198";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200541 storage_image_read_without_format = "VUID-vkCmdDrawIndirectCount-OpTypeImage-06424";
542 storage_image_write_without_format = "VUID-vkCmdDrawIndirectCount-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200543 depth_compare_sample = "VUID-vkCmdDrawIndirectCount-None-06479";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700544 }
545};
546
547struct DispatchVuidsCmdDrawIndexedIndirectCount : DrawDispatchVuid {
548 DispatchVuidsCmdDrawIndexedIndirectCount() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700549 pipeline_bound = "VUID-vkCmdDrawIndexedIndirectCount-None-02700";
550 dynamic_state = "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02701";
551 vertex_binding = "VUID-vkCmdDrawIndexedIndirectCount-None-04007";
552 vertex_binding_null = "VUID-vkCmdDrawIndexedIndirectCount-None-04008";
553 compatible_pipeline = "VUID-vkCmdDrawIndexedIndirectCount-None-02697";
554 render_pass_compatible = "VUID-vkCmdDrawIndexedIndirectCount-renderPass-02684";
555 subpass_index = "VUID-vkCmdDrawIndexedIndirectCount-subpass-02685";
556 sample_location = "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-02689";
557 linear_sampler = "VUID-vkCmdDrawIndexedIndirectCount-magFilter-04553";
558 cubic_sampler = "VUID-vkCmdDrawIndexedIndirectCount-None-02692";
559 indirect_protected_cb = "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02711";
560 indirect_contiguous_memory = "VUID-vkCmdDrawIndexedIndirectCount-buffer-02708";
561 indirect_buffer_bit = "VUID-vkCmdDrawIndexedIndirectCount-buffer-02709";
562 viewport_count = "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-03417";
563 scissor_count = "VUID-vkCmdDrawIndexedIndirectCount-scissorCount-03418";
564 viewport_scissor_count = "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-03419";
565 primitive_topology = "VUID-vkCmdDrawIndexedIndirectCount-primitiveTopology-03420";
566 corner_sampled_address_mode = "VUID-vkCmdDrawIndexedIndirectCount-flags-02696";
567 subpass_input = "VUID-vkCmdDrawIndexedIndirectCount-None-02686";
568 imageview_atomic = "VUID-vkCmdDrawIndexedIndirectCount-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700569 push_constants_set = "VUID-vkCmdDrawIndexedIndirectCount-maintenance4-06425";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700570 image_subresources = "VUID-vkCmdDrawIndexedIndirectCount-None-04584";
571 descriptor_valid = "VUID-vkCmdDrawIndexedIndirectCount-None-02699";
572 sampler_imageview_type = "VUID-vkCmdDrawIndexedIndirectCount-None-02702";
573 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawIndexedIndirectCount-None-02703";
574 sampler_bias_offset = "VUID-vkCmdDrawIndexedIndirectCount-None-02704";
575 vertex_binding_attribute = "VUID-vkCmdDrawIndexedIndirectCount-None-02721";
576 dynamic_state_setting_commands = "VUID-vkCmdDrawIndexedIndirectCount-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700577 rasterization_samples = "VUID-vkCmdDrawIndexedIndirectCount-rasterizationSamples-04740";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700578 unprotected_command_buffer = "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02707";
579 max_multiview_instance_index = "VUID-vkCmdDrawIndexedIndirectCount-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700580 img_filter_cubic = "VUID-vkCmdDrawIndexedIndirectCount-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700581 filter_cubic = "VUID-vkCmdDrawIndexedIndirectCount-filterCubic-02694";
582 filter_cubic_min_max = "VUID-vkCmdDrawIndexedIndirectCount-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000583 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawIndexedIndirectCount-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600584 patch_control_points = "VUID-vkCmdDrawIndexedIndirectCount-None-04875";
585 rasterizer_discard_enable = "VUID-vkCmdDrawIndexedIndirectCount-None-04876";
586 depth_bias_enable = "VUID-vkCmdDrawIndexedIndirectCount-None-04877";
587 logic_op = "VUID-vkCmdDrawIndexedIndirectCount-logicOp-04878";
588 primitive_restart_enable = "VUID-vkCmdDrawIndexedIndirectCount-None-04879";
589 vertex_input_binding_stride = "VUID-vkCmdDrawIndexedIndirectCount-pStrides-04884";
590 vertex_input = kVUID_Core_CmdDrawIndexedIndirectCount_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200591 blend_enable = "VUID-vkCmdDrawIndexedIndirectCount-blendEnable-04727";
Aaron Haganaca50442021-12-07 22:26:29 -0500592 dynamic_rendering_view_mask = "VUID-vkCmdDrawIndexedIndirectCount-viewMask-06178";
593 dynamic_rendering_color_count = "VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06179";
594 dynamic_rendering_color_formats = "VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06180";
595 dynamic_rendering_depth_format = "VUID-vkCmdDrawIndexedIndirectCount-pDepthAttachment-06181";
596 dynamic_rendering_stencil_format = "VUID-vkCmdDrawIndexedIndirectCount-pStencilAttachment-06182";
597 dynamic_rendering_fsr = "VUID-vkCmdDrawIndexedIndirectCount-imageView-06183";
598 dynamic_rendering_fdm = "VUID-vkCmdDrawIndexedIndirectCount-imageView-06184";
599 dynamic_rendering_color_sample = "VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06185";
600 dynamic_rendering_depth_sample = "VUID-vkCmdDrawIndexedIndirectCount-pDepthAttachment-06186";
601 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawIndexedIndirectCount-pStencilAttachment-06187";
602 dynamic_rendering_multi_sample = "VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06188";
603 dynamic_rendering_06189 = "VUID-vkCmdDrawIndexedIndirectCount-pDepthAttachment-06189";
604 dynamic_rendering_06190 = "VUID-vkCmdDrawIndexedIndirectCount-pStencilAttachment-06190";
605 dynamic_rendering_06198 = "VUID-vkCmdDrawIndexedIndirectCount-renderPass-06198";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200606 storage_image_read_without_format = "VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-06424";
607 storage_image_write_without_format = "VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200608 depth_compare_sample = "VUID-vkCmdDrawIndexedIndirectCount-None-06479";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700609 }
610};
611
612struct DispatchVuidsCmdTraceRaysNV: DrawDispatchVuid {
613 DispatchVuidsCmdTraceRaysNV() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700614 pipeline_bound = "VUID-vkCmdTraceRaysNV-None-02700";
615 dynamic_state = "VUID-vkCmdTraceRaysNV-commandBuffer-02701";
616 compatible_pipeline = "VUID-vkCmdTraceRaysNV-None-02697";
617 linear_sampler = "VUID-vkCmdTraceRaysNV-magFilter-04553";
618 cubic_sampler = "VUID-vkCmdTraceRaysNV-None-02692";
619 corner_sampled_address_mode = "VUID-vkCmdTraceRaysNV-flags-02696";
620 imageview_atomic = "VUID-vkCmdTraceRaysNV-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700621 push_constants_set = "VUID-vkCmdTraceRaysNV-maintenance4-06425";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700622 descriptor_valid = "VUID-vkCmdTraceRaysNV-None-02699";
623 sampler_imageview_type = "VUID-vkCmdTraceRaysNV-None-02702";
624 sampler_implicitLod_dref_proj = "VUID-vkCmdTraceRaysNV-None-02703";
625 sampler_bias_offset = "VUID-vkCmdTraceRaysNV-None-02704";
626 dynamic_state_setting_commands = "VUID-vkCmdTraceRaysNV-None-02859";
627 unprotected_command_buffer = "VUID-vkCmdTraceRaysNV-commandBuffer-02707";
sfricke-samsunga3c47d12021-09-30 13:34:54 -0700628 ray_query_protected_cb = "VUID-vkCmdTraceRaysNV-commandBuffer-04624";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700629 img_filter_cubic = "VUID-vkCmdTraceRaysNV-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700630 filter_cubic = "VUID-vkCmdTraceRaysNV-filterCubic-02694";
631 filter_cubic_min_max = "VUID-vkCmdTraceRaysNV-filterCubicMinmax-02695";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200632 storage_image_read_without_format = "VUID-vkCmdTraceRaysNV-OpTypeImage-06424";
633 storage_image_write_without_format = "VUID-vkCmdTraceRaysNV-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200634 depth_compare_sample = "VUID-vkCmdTraceRaysNV-None-06479";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700635 }
636};
637
638struct DispatchVuidsCmdTraceRaysKHR: DrawDispatchVuid {
639 DispatchVuidsCmdTraceRaysKHR() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700640 pipeline_bound = "VUID-vkCmdTraceRaysKHR-None-02700";
641 dynamic_state = "VUID-vkCmdTraceRaysKHR-commandBuffer-02701";
642 compatible_pipeline = "VUID-vkCmdTraceRaysKHR-None-02697";
643 linear_sampler = "VUID-vkCmdTraceRaysKHR-magFilter-04553";
644 cubic_sampler = "VUID-vkCmdTraceRaysKHR-None-02692";
645 corner_sampled_address_mode = "VUID-vkCmdTraceRaysKHR-flags-02696";
646 imageview_atomic = "VUID-vkCmdTraceRaysKHR-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700647 push_constants_set = "VUID-vkCmdTraceRaysKHR-maintenance4-06425";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700648 descriptor_valid = "VUID-vkCmdTraceRaysKHR-None-02699";
649 sampler_imageview_type = "VUID-vkCmdTraceRaysKHR-None-02702";
650 sampler_implicitLod_dref_proj = "VUID-vkCmdTraceRaysKHR-None-02703";
651 sampler_bias_offset = "VUID-vkCmdTraceRaysKHR-None-02704";
652 dynamic_state_setting_commands = "VUID-vkCmdTraceRaysKHR-None-02859";
653 unprotected_command_buffer = "VUID-vkCmdTraceRaysKHR-commandBuffer-02707";
sfricke-samsunga3c47d12021-09-30 13:34:54 -0700654 ray_query_protected_cb = "VUID-vkCmdTraceRaysKHR-commandBuffer-04625";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700655 img_filter_cubic = "VUID-vkCmdTraceRaysKHR-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700656 filter_cubic = "VUID-vkCmdTraceRaysKHR-filterCubic-02694";
657 filter_cubic_min_max = "VUID-vkCmdTraceRaysKHR-filterCubicMinmax-02695";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200658 storage_image_read_without_format = "VUID-vkCmdTraceRaysKHR-OpTypeImage-06424";
659 storage_image_write_without_format = "VUID-vkCmdTraceRaysKHR-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200660 depth_compare_sample = "VUID-vkCmdTraceRaysKHR-None-06479";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700661 }
662};
663
664struct DispatchVuidsCmdTraceRaysIndirectKHR: DrawDispatchVuid {
665 DispatchVuidsCmdTraceRaysIndirectKHR() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700666 pipeline_bound = "VUID-vkCmdTraceRaysIndirectKHR-None-02700";
667 dynamic_state = "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-02701";
668 compatible_pipeline = "VUID-vkCmdTraceRaysIndirectKHR-None-02697";
669 linear_sampler = "VUID-vkCmdTraceRaysIndirectKHR-magFilter-04553";
670 cubic_sampler = "VUID-vkCmdTraceRaysIndirectKHR-None-02692";
Shannon McPherson57255a62020-12-23 16:00:54 -0700671 indirect_contiguous_memory = "VUID-vkCmdTraceRaysIndirectKHR-indirectDeviceAddress-03632";
672 indirect_buffer_bit = "VUID-vkCmdTraceRaysIndirectKHR-indirectDeviceAddress-03633";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700673 corner_sampled_address_mode = "VUID-vkCmdTraceRaysIndirectKHR-flags-02696";
674 imageview_atomic = "VUID-vkCmdTraceRaysIndirectKHR-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700675 push_constants_set = "VUID-vkCmdTraceRaysIndirectKHR-maintenance4-06425";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700676 descriptor_valid = "VUID-vkCmdTraceRaysIndirectKHR-None-02699";
677 sampler_imageview_type = "VUID-vkCmdTraceRaysIndirectKHR-None-02702";
678 sampler_implicitLod_dref_proj = "VUID-vkCmdTraceRaysIndirectKHR-None-02703";
679 sampler_bias_offset = "VUID-vkCmdTraceRaysIndirectKHR-None-02704";
680 dynamic_state_setting_commands = "VUID-vkCmdTraceRaysIndirectKHR-None-02859";
681 unprotected_command_buffer = "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-02707";
sfricke-samsunga3c47d12021-09-30 13:34:54 -0700682 ray_query_protected_cb = "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-03635";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700683 img_filter_cubic = "VUID-vkCmdTraceRaysIndirectKHR-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700684 filter_cubic = "VUID-vkCmdTraceRaysIndirectKHR-filterCubic-02694";
685 filter_cubic_min_max = "VUID-vkCmdTraceRaysIndirectKHR-filterCubicMinmax-02695";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200686 storage_image_read_without_format = "VUID-vkCmdTraceRaysIndirectKHR-OpTypeImage-06424";
687 storage_image_write_without_format = "VUID-vkCmdTraceRaysIndirectKHR-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200688 depth_compare_sample = "VUID-vkCmdTraceRaysIndirectKHR-None-06479";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700689 }
690};
691
692struct DispatchVuidsCmdDrawMeshTasksNV: DrawDispatchVuid {
693 DispatchVuidsCmdDrawMeshTasksNV() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700694 pipeline_bound = "VUID-vkCmdDrawMeshTasksNV-None-02700";
695 dynamic_state = "VUID-vkCmdDrawMeshTasksNV-commandBuffer-02701";
696 compatible_pipeline = "VUID-vkCmdDrawMeshTasksNV-None-02697";
697 render_pass_compatible = "VUID-vkCmdDrawMeshTasksNV-renderPass-02684";
698 subpass_index = "VUID-vkCmdDrawMeshTasksNV-subpass-02685";
699 sample_location = "VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-02689";
700 linear_sampler = "VUID-vkCmdDrawMeshTasksNV-magFilter-04553";
701 cubic_sampler = "VUID-vkCmdDrawMeshTasksNV-None-02692";
702 viewport_count = "VUID-vkCmdDrawMeshTasksNV-viewportCount-03417";
703 scissor_count = "VUID-vkCmdDrawMeshTasksNV-scissorCount-03418";
704 viewport_scissor_count = "VUID-vkCmdDrawMeshTasksNV-viewportCount-03419";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700705 corner_sampled_address_mode = "VUID-vkCmdDrawMeshTasksNV-flags-02696";
706 subpass_input = "VUID-vkCmdDrawMeshTasksNV-None-02686";
707 imageview_atomic = "VUID-vkCmdDrawMeshTasksNV-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700708 push_constants_set = "VUID-vkCmdDrawMeshTasksNV-maintenance4-06425";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700709 image_subresources = "VUID-vkCmdDrawMeshTasksNV-None-04584";
710 descriptor_valid = "VUID-vkCmdDrawMeshTasksNV-None-02699";
711 sampler_imageview_type = "VUID-vkCmdDrawMeshTasksNV-None-02702";
712 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawMeshTasksNV-None-02703";
713 sampler_bias_offset = "VUID-vkCmdDrawMeshTasksNV-None-02704";
714 dynamic_state_setting_commands = "VUID-vkCmdDrawMeshTasksNV-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700715 rasterization_samples = "VUID-vkCmdDrawMeshTasksNV-rasterizationSamples-04740";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700716 unprotected_command_buffer = "VUID-vkCmdDrawMeshTasksNV-commandBuffer-02707";
717 max_multiview_instance_index = "VUID-vkCmdDrawMeshTasksNV-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700718 img_filter_cubic = "VUID-vkCmdDrawMeshTasksNV-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700719 filter_cubic = "VUID-vkCmdDrawMeshTasksNV-filterCubic-02694";
720 filter_cubic_min_max = "VUID-vkCmdDrawMeshTasksNV-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000721 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawMeshTasksNV-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600722 rasterizer_discard_enable = "VUID-vkCmdDrawMeshTasksNV-None-04876";
723 depth_bias_enable = "VUID-vkCmdDrawMeshTasksNV-None-04877";
724 logic_op = "VUID-vkCmdDrawMeshTasksNV-logicOp-04878";
Piers Daniell924cd832021-05-18 13:48:47 -0600725 vertex_input = kVUID_Core_CmdDrawMeshTasksNV_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200726 blend_enable = "VUID-vkCmdDrawMeshTasksNV-blendEnable-04727";
stusmithedc4e392021-12-24 15:22:16 +0000727 dynamic_rendering_view_mask = "VUID-vkCmdDrawMeshTasksNV-viewMask-06178";
728 dynamic_rendering_color_count = "VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06179";
729 dynamic_rendering_color_formats = "VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06180";
730 dynamic_rendering_depth_format = "VUID-vkCmdDrawMeshTasksNV-pDepthAttachment-06181";
731 dynamic_rendering_stencil_format = "VUID-vkCmdDrawMeshTasksNV-pStencilAttachment-06182";
732 dynamic_rendering_fsr = "VUID-vkCmdDrawMeshTasksNV-imageView-06183";
733 dynamic_rendering_fdm = "VUID-vkCmdDrawMeshTasksNV-imageView-06184";
734 dynamic_rendering_color_sample = "VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06185";
735 dynamic_rendering_depth_sample = "VUID-vkCmdDrawMeshTasksNV-pDepthAttachment-06186";
736 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawMeshTasksNV-pStencilAttachment-06187";
737 dynamic_rendering_multi_sample = "VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06188";
738 dynamic_rendering_06189 = "VUID-vkCmdDrawMeshTasksNV-pDepthAttachment-06189";
739 dynamic_rendering_06190 = "VUID-vkCmdDrawMeshTasksNV-pStencilAttachment-06190";
740 dynamic_rendering_06198 = "VUID-vkCmdDrawMeshTasksNV-renderPass-06198";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200741 storage_image_read_without_format = "VUID-vkCmdDrawMeshTasksNV-OpTypeImage-06424";
742 storage_image_write_without_format = "VUID-vkCmdDrawMeshTasksNV-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200743 depth_compare_sample = "VUID-vkCmdDrawMeshTasksNV-None-06479";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700744 }
745};
746
747struct DispatchVuidsCmdDrawMeshTasksIndirectNV: DrawDispatchVuid {
748 DispatchVuidsCmdDrawMeshTasksIndirectNV() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700749 pipeline_bound = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02700";
750 dynamic_state = "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02701";
751 compatible_pipeline = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02697";
752 render_pass_compatible = "VUID-vkCmdDrawMeshTasksIndirectNV-renderPass-02684";
753 subpass_index = "VUID-vkCmdDrawMeshTasksIndirectNV-subpass-02685";
754 sample_location = "VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-02689";
755 linear_sampler = "VUID-vkCmdDrawMeshTasksIndirectNV-magFilter-04553";
756 cubic_sampler = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02692";
757 indirect_protected_cb = "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02711";
758 indirect_contiguous_memory = "VUID-vkCmdDrawMeshTasksIndirectNV-buffer-02708";
759 indirect_buffer_bit = "VUID-vkCmdDrawMeshTasksIndirectNV-buffer-02709";
760 viewport_count = "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-03417";
761 scissor_count = "VUID-vkCmdDrawMeshTasksIndirectNV-scissorCount-03418";
762 viewport_scissor_count = "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-03419";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700763 corner_sampled_address_mode = "VUID-vkCmdDrawMeshTasksIndirectNV-flags-02696";
764 subpass_input = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02686";
765 imageview_atomic = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700766 push_constants_set = "VUID-vkCmdDrawMeshTasksIndirectNV-maintenance4-06425";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700767 image_subresources = "VUID-vkCmdDrawMeshTasksIndirectNV-None-04584";
768 descriptor_valid = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02699";
769 sampler_imageview_type = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02702";
770 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02703";
771 sampler_bias_offset = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02704";
772 dynamic_state_setting_commands = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700773 rasterization_samples = "VUID-vkCmdDrawMeshTasksIndirectNV-rasterizationSamples-04740";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700774 unprotected_command_buffer = "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02707";
775 max_multiview_instance_index = "VUID-vkCmdDrawMeshTasksIndirectNV-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700776 img_filter_cubic = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700777 filter_cubic = "VUID-vkCmdDrawMeshTasksIndirectNV-filterCubic-02694";
778 filter_cubic_min_max = "VUID-vkCmdDrawMeshTasksIndirectNV-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000779 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawMeshTasksIndirectNV-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600780 rasterizer_discard_enable = "VUID-vkCmdDrawMeshTasksIndirectNV-None-04876";
781 depth_bias_enable = "VUID-vkCmdDrawMeshTasksIndirectNV-None-04877";
782 logic_op = "VUID-vkCmdDrawMeshTasksIndirectNV-logicOp-04878";
Piers Daniell924cd832021-05-18 13:48:47 -0600783 vertex_input = kVUID_Core_CmdDrawMeshTasksIndirectNV_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200784 blend_enable = "VUID-vkCmdDrawMeshTasksIndirectNV-blendEnable-04727";
stusmithedc4e392021-12-24 15:22:16 +0000785 dynamic_rendering_view_mask = "VUID-vkCmdDrawMeshTasksIndirectNV-viewMask-06178";
786 dynamic_rendering_color_count = "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06179";
787 dynamic_rendering_color_formats = "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06180";
788 dynamic_rendering_depth_format = "VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06181";
789 dynamic_rendering_stencil_format = "VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06182";
790 dynamic_rendering_fsr = "VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06183";
791 dynamic_rendering_fdm = "VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06184";
792 dynamic_rendering_color_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06185";
793 dynamic_rendering_depth_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06186";
794 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06187";
795 dynamic_rendering_multi_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06188";
796 dynamic_rendering_06189 = "VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06189";
797 dynamic_rendering_06190 = "VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06190";
798 dynamic_rendering_06198 = "VUID-vkCmdDrawMeshTasksIndirectNV-renderPass-06198";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200799 storage_image_read_without_format = "VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-06424";
800 storage_image_write_without_format = "VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200801 depth_compare_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-None-06479";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700802 }
803};
804
805struct DispatchVuidsCmdDrawMeshTasksIndirectCountNV : DrawDispatchVuid {
806 DispatchVuidsCmdDrawMeshTasksIndirectCountNV() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700807 pipeline_bound = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02700";
808 dynamic_state = "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02701";
809 compatible_pipeline = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02697";
810 render_pass_compatible = "VUID-vkCmdDrawMeshTasksIndirectCountNV-renderPass-02684";
811 subpass_index = "VUID-vkCmdDrawMeshTasksIndirectCountNV-subpass-02685";
812 sample_location = "VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-02689";
813 linear_sampler = "VUID-vkCmdDrawMeshTasksIndirectCountNV-magFilter-04553";
814 cubic_sampler = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02692";
815 indirect_protected_cb = "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02711";
816 indirect_contiguous_memory = "VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-02708";
817 indirect_buffer_bit = "VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-02709";
818 viewport_count = "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-03417";
819 scissor_count = "VUID-vkCmdDrawMeshTasksIndirectCountNV-scissorCount-03418";
820 viewport_scissor_count = "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-03419";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700821 corner_sampled_address_mode = "VUID-vkCmdDrawMeshTasksIndirectCountNV-flags-02696";
822 subpass_input = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02686";
823 imageview_atomic = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700824 push_constants_set = "VUID-vkCmdDrawMeshTasksIndirectCountNV-maintenance4-06425";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700825 image_subresources = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04584";
826 descriptor_valid = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02699";
827 sampler_imageview_type = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02702";
828 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02703";
829 sampler_bias_offset = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02704";
830 dynamic_state_setting_commands = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700831 rasterization_samples = "VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizationSamples-04740";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700832 unprotected_command_buffer = "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02707";
833 max_multiview_instance_index = "VUID-vkCmdDrawMeshTasksIndirectCountNV-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700834 img_filter_cubic = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700835 filter_cubic = "VUID-vkCmdDrawMeshTasksIndirectCountNV-filterCubic-02694";
836 filter_cubic_min_max = "VUID-vkCmdDrawMeshTasksIndirectCountNV-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000837 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawMeshTasksIndirectCountNV-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600838 rasterizer_discard_enable = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04876";
839 depth_bias_enable = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04877";
840 logic_op = "VUID-vkCmdDrawMeshTasksIndirectCountNV-logicOp-04878";
Piers Daniell924cd832021-05-18 13:48:47 -0600841 vertex_input = kVUID_Core_CmdDrawMeshTasksIndirectCountNV_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200842 blend_enable = "VUID-vkCmdDrawMeshTasksIndirectCountNV-blendEnable-04727";
stusmithedc4e392021-12-24 15:22:16 +0000843 dynamic_rendering_view_mask = "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewMask-06178";
844 dynamic_rendering_color_count = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06179";
845 dynamic_rendering_color_formats = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06180";
846 dynamic_rendering_depth_format = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06181";
847 dynamic_rendering_stencil_format = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06182";
848 dynamic_rendering_fsr = "VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06183";
849 dynamic_rendering_fdm = "VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06184";
850 dynamic_rendering_color_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06185";
851 dynamic_rendering_depth_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06186";
852 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06187";
853 dynamic_rendering_multi_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06188";
854 dynamic_rendering_06189 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06189";
855 dynamic_rendering_06190 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06190";
856 dynamic_rendering_06198 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-renderPass-06198";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200857 storage_image_read_without_format = "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-06424";
858 storage_image_write_without_format = "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200859 depth_compare_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06479";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700860 }
861};
862
863struct DispatchVuidsCmdDrawIndirectByteCountEXT: DrawDispatchVuid {
864 DispatchVuidsCmdDrawIndirectByteCountEXT() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700865 pipeline_bound = "VUID-vkCmdDrawIndirectByteCountEXT-None-02700";
866 dynamic_state = "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02701";
867 vertex_binding = "VUID-vkCmdDrawIndirectByteCountEXT-None-04007";
868 vertex_binding_null = "VUID-vkCmdDrawIndirectByteCountEXT-None-04008";
869 compatible_pipeline = "VUID-vkCmdDrawIndirectByteCountEXT-None-02697";
870 render_pass_compatible = "VUID-vkCmdDrawIndirectByteCountEXT-renderPass-02684";
871 subpass_index = "VUID-vkCmdDrawIndirectByteCountEXT-subpass-02685";
872 sample_location = "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-02689";
873 linear_sampler = "VUID-vkCmdDrawIndirectByteCountEXT-magFilter-04553";
874 cubic_sampler = "VUID-vkCmdDrawIndirectByteCountEXT-None-02692";
875 indirect_protected_cb = "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02646";
sfricke-samsungb091d4e2021-04-18 23:15:59 -0700876 indirect_contiguous_memory = "VUID-vkCmdDrawIndirectByteCountEXT-counterBuffer-04567",
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700877 indirect_buffer_bit = "VUID-vkCmdDrawIndirectByteCountEXT-counterBuffer-02290";
878 viewport_count = "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-03417";
879 scissor_count = "VUID-vkCmdDrawIndirectByteCountEXT-scissorCount-03418";
880 viewport_scissor_count = "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-03419";
881 primitive_topology = "VUID-vkCmdDrawIndirectByteCountEXT-primitiveTopology-03420";
882 corner_sampled_address_mode = "VUID-vkCmdDrawIndirectByteCountEXT-flags-02696";
883 subpass_input = "VUID-vkCmdDrawIndirectByteCountEXT-None-02686";
884 imageview_atomic = "VUID-vkCmdDrawIndirectByteCountEXT-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700885 push_constants_set = "VUID-vkCmdDrawIndirectByteCountEXT-maintenance4-06425";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700886 image_subresources = "VUID-vkCmdDrawIndirectByteCountEXT-None-04584";
887 descriptor_valid = "VUID-vkCmdDrawIndirectByteCountEXT-None-02699";
888 sampler_imageview_type = "VUID-vkCmdDrawIndirectByteCountEXT-None-02702";
889 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawIndirectByteCountEXT-None-02703";
890 sampler_bias_offset = "VUID-vkCmdDrawIndirectByteCountEXT-None-02704";
891 vertex_binding_attribute = "VUID-vkCmdDrawIndirectByteCountEXT-None-02721";
892 dynamic_state_setting_commands = "VUID-vkCmdDrawIndirectByteCountEXT-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700893 rasterization_samples = "VUID-vkCmdDrawIndirectByteCountEXT-rasterizationSamples-04740";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700894 unprotected_command_buffer = "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02707";
895 max_multiview_instance_index = "VUID-vkCmdDrawIndirectByteCountEXT-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700896 img_filter_cubic = "VUID-vkCmdDrawIndirectByteCountEXT-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700897 filter_cubic = "VUID-vkCmdDrawIndirectByteCountEXT-filterCubic-02694";
898 filter_cubic_min_max = "VUID-vkCmdDrawIndirectByteCountEXT-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000899 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawIndirectByteCountEXT-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600900 patch_control_points = "VUID-vkCmdDrawIndirectByteCountEXT-None-04875";
901 rasterizer_discard_enable = "VUID-vkCmdDrawIndirectByteCountEXT-None-04876";
902 depth_bias_enable = "VUID-vkCmdDrawIndirectByteCountEXT-None-04877";
903 logic_op = "VUID-vkCmdDrawIndirectByteCountEXT-logicOp-04878";
904 primitive_restart_enable = "VUID-vkCmdDrawIndirectByteCountEXT-None-04879";
905 vertex_input_binding_stride = "VUID-vkCmdDrawIndirectByteCountEXT-pStrides-04884";
906 vertex_input = kVUID_Core_CmdDrawIndirectByteCountEXT_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200907 blend_enable = "VUID-vkCmdDrawIndirectByteCountEXT-blendEnable-04727";
stusmithedc4e392021-12-24 15:22:16 +0000908 dynamic_rendering_view_mask = "VUID-vkCmdDrawIndirectByteCountEXT-viewMask-06178";
909 dynamic_rendering_color_count = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06179";
910 dynamic_rendering_color_formats = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06180";
911 dynamic_rendering_depth_format = "VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06181";
912 dynamic_rendering_stencil_format = "VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06182";
913 dynamic_rendering_fsr = "VUID-vkCmdDrawIndirectByteCountEXT-imageView-06183";
914 dynamic_rendering_fdm = "VUID-vkCmdDrawIndirectByteCountEXT-imageView-06184";
915 dynamic_rendering_color_sample = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06185";
916 dynamic_rendering_depth_sample = "VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06186";
917 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06187";
918 dynamic_rendering_multi_sample = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06188";
919 dynamic_rendering_06189 = "VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06189";
920 dynamic_rendering_06190 = "VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06190";
921 dynamic_rendering_06198 = "VUID-vkCmdDrawIndirectByteCountEXT-renderPass-06198";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200922 storage_image_read_without_format = "VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-06424";
923 storage_image_write_without_format = "VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200924 depth_compare_sample = "VUID-vkCmdDrawIndirectByteCountEXT-None-06479";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700925 }
926};
927
928struct DispatchVuidsCmdDispatchBase: DrawDispatchVuid {
929 DispatchVuidsCmdDispatchBase() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700930 pipeline_bound = "VUID-vkCmdDispatchBase-None-02700";
Mark Lobodzinski02d37552020-12-28 13:29:46 -0700931 dynamic_state = "VUID-vkCmdDispatchBase-commandBuffer-02701";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700932 compatible_pipeline = "VUID-vkCmdDispatchBase-None-02697";
933 linear_sampler = "VUID-vkCmdDispatchBase-magFilter-04553";
934 cubic_sampler = "VUID-vkCmdDispatchBase-None-02692";
935 corner_sampled_address_mode = "VUID-vkCmdDispatchBase-flags-02696";
936 imageview_atomic = "VUID-vkCmdDispatchBase-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700937 push_constants_set = "VUID-vkCmdDispatchBase-maintenance4-06425";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700938 descriptor_valid = "VUID-vkCmdDispatchBase-None-02699";
939 sampler_imageview_type = "VUID-vkCmdDispatchBase-None-02702";
940 sampler_implicitLod_dref_proj = "VUID-vkCmdDispatchBase-None-02703";
941 sampler_bias_offset = "VUID-vkCmdDispatchBase-None-02704";
942 dynamic_state_setting_commands = "VUID-vkCmdDispatchBase-None-02859";
943 unprotected_command_buffer = "VUID-vkCmdDispatchBase-commandBuffer-02707";
sfricke-samsunge79d0892021-06-17 08:56:22 -0700944 protected_command_buffer = "VUID-vkCmdDispatchBase-commandBuffer-02712";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700945 img_filter_cubic = "VUID-vkCmdDispatchBase-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700946 filter_cubic = "VUID-vkCmdDispatchBase-filterCubic-02694";
947 filter_cubic_min_max = "VUID-vkCmdDispatchBase-filterCubicMinmax-02695";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200948 storage_image_read_without_format = "VUID-vkCmdDispatchBase-OpTypeImage-06424";
949 storage_image_write_without_format = "VUID-vkCmdDispatchBase-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200950 depth_compare_sample = "VUID-vkCmdDispatchBase-None-06479";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700951 }
952};
953
954// 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 -0700955static const std::map<CMD_TYPE, DrawDispatchVuid> kDrawdispatchVuid = {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700956 {CMD_DRAW, DispatchVuidsCmdDraw()},
Tony-LunarG4490de42021-06-21 15:49:19 -0600957 {CMD_DRAWMULTIEXT, DispatchVuidsCmdDrawMultiEXT()},
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700958 {CMD_DRAWINDEXED, DispatchVuidsCmdDrawIndexed()},
Tony-LunarG4490de42021-06-21 15:49:19 -0600959 {CMD_DRAWMULTIINDEXEDEXT, DispatchVuidsCmdDrawMultiIndexedEXT()},
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700960 {CMD_DRAWINDIRECT, DispatchVuidsCmdDrawIndirect()},
961 {CMD_DRAWINDEXEDINDIRECT, DispatchVuidsCmdDrawIndexedIndirect()},
962 {CMD_DISPATCH, DispatchVuidsCmdDispatch()},
963 {CMD_DISPATCHINDIRECT, DispatchVuidsCmdDispatchIndirect()},
964 {CMD_DRAWINDIRECTCOUNT, DispatchVuidsCmdDrawIndirectCount()},
sfricke-samsung85584a72021-09-30 21:43:38 -0700965 {CMD_DRAWINDIRECTCOUNTKHR, DispatchVuidsCmdDrawIndirectCount()},
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700966 {CMD_DRAWINDEXEDINDIRECTCOUNT, DispatchVuidsCmdDrawIndexedIndirectCount()},
sfricke-samsung85584a72021-09-30 21:43:38 -0700967 {CMD_DRAWINDEXEDINDIRECTCOUNTKHR, DispatchVuidsCmdDrawIndexedIndirectCount()},
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700968 {CMD_TRACERAYSNV, DispatchVuidsCmdTraceRaysNV()},
969 {CMD_TRACERAYSKHR, DispatchVuidsCmdTraceRaysKHR()},
970 {CMD_TRACERAYSINDIRECTKHR, DispatchVuidsCmdTraceRaysIndirectKHR()},
971 {CMD_DRAWMESHTASKSNV, DispatchVuidsCmdDrawMeshTasksNV()},
972 {CMD_DRAWMESHTASKSINDIRECTNV, DispatchVuidsCmdDrawMeshTasksIndirectNV()},
973 {CMD_DRAWMESHTASKSINDIRECTCOUNTNV, DispatchVuidsCmdDrawMeshTasksIndirectCountNV()},
974 {CMD_DRAWINDIRECTBYTECOUNTEXT, DispatchVuidsCmdDrawIndirectByteCountEXT()},
975 {CMD_DISPATCHBASE, DispatchVuidsCmdDispatchBase()},
sfricke-samsung85584a72021-09-30 21:43:38 -0700976 {CMD_DISPATCHBASEKHR, DispatchVuidsCmdDispatchBase()},
Spencer Fricke507600b2020-03-22 13:23:06 -0700977 // Used if invalid cmd_type is used
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700978 {CMD_NONE, DrawDispatchVuid()}
Spencer Fricke507600b2020-03-22 13:23:06 -0700979};
980// clang-format on
981
982// Getter function to provide kVUIDUndefined in case an invalid cmd_type is passed in
983const DrawDispatchVuid &CoreChecks::GetDrawDispatchVuid(CMD_TYPE cmd_type) const {
Nathaniel Cesarioce9b4812020-12-17 08:55:28 -0700984 if (kDrawdispatchVuid.find(cmd_type) != kDrawdispatchVuid.cend()) {
985 return kDrawdispatchVuid.at(cmd_type);
Spencer Fricke507600b2020-03-22 13:23:06 -0700986 } else {
Nathaniel Cesarioce9b4812020-12-17 08:55:28 -0700987 return kDrawdispatchVuid.at(CMD_NONE);
Spencer Fricke507600b2020-03-22 13:23:06 -0700988 }
989}
990
Jasper St. Pierre512613a2019-04-08 16:25:23 -0700991// Generic function to handle validation for all CmdDraw* type functions
Jeremy Gebbene5361dd2021-11-18 14:23:56 -0700992bool CoreChecks::ValidateCmdDrawType(const CMD_BUFFER_STATE &cb_state, bool indexed, VkPipelineBindPoint bind_point,
sfricke-samsung85584a72021-09-30 21:43:38 -0700993 CMD_TYPE cmd_type) const {
Jasper St. Pierre512613a2019-04-08 16:25:23 -0700994 bool skip = false;
Jeremy Gebbene5361dd2021-11-18 14:23:56 -0700995 skip |= ValidateCmd(&cb_state, cmd_type);
996 skip |= ValidateCmdBufDrawState(&cb_state, cmd_type, indexed, bind_point);
997 skip |= ValidateCmdRayQueryState(&cb_state, cmd_type, bind_point);
Jasper St. Pierre512613a2019-04-08 16:25:23 -0700998 return skip;
999}
1000
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001001bool CoreChecks::ValidateCmdDrawInstance(const CMD_BUFFER_STATE &cb_node, uint32_t instanceCount, uint32_t firstInstance,
sfricke-samsung85584a72021-09-30 21:43:38 -07001002 CMD_TYPE cmd_type) const {
locke-lunarg3fa463a2020-10-23 16:39:04 -06001003 bool skip = false;
1004 const DrawDispatchVuid vuid = GetDrawDispatchVuid(cmd_type);
sfricke-samsung85584a72021-09-30 21:43:38 -07001005 const char *caller = CommandTypeString(cmd_type);
locke-lunarg3fa463a2020-10-23 16:39:04 -06001006
1007 // Verify maxMultiviewInstanceIndex
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001008 if (cb_node.activeRenderPass && cb_node.activeRenderPass->renderPass() && enabled_features.multiview_features.multiview &&
locke-lunarg3fa463a2020-10-23 16:39:04 -06001009 ((instanceCount + firstInstance) > phys_dev_ext_props.multiview_props.maxMultiviewInstanceIndex)) {
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001010 LogObjectList objlist(cb_node.Handle());
1011 objlist.add(cb_node.activeRenderPass->Handle());
locke-lunarg3fa463a2020-10-23 16:39:04 -06001012 skip |= LogError(objlist, vuid.max_multiview_instance_index,
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001013 "%s: renderpass %s multiview is enabled, and maxMultiviewInstanceIndex: %" PRIu32
1014 ", but instanceCount: %" PRIu32 "and firstInstance: %" PRIu32 ".",
1015 caller, report_data->FormatHandle(cb_node.activeRenderPass->Handle()).c_str(),
locke-lunarg3fa463a2020-10-23 16:39:04 -06001016 phys_dev_ext_props.multiview_props.maxMultiviewInstanceIndex, instanceCount, firstInstance);
1017 }
1018 return skip;
1019}
1020
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001021bool CoreChecks::PreCallValidateCmdDraw(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount,
Jeff Bolz5c801d12019-10-09 10:38:45 -05001022 uint32_t firstVertex, uint32_t firstInstance) const {
locke-lunarg3fa463a2020-10-23 16:39:04 -06001023 bool skip = false;
Jeremy Gebben332d4dd2022-01-01 12:40:02 -07001024 const auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001025 skip |= ValidateCmdDrawInstance(*cb_state, instanceCount, firstInstance, CMD_DRAW);
1026 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAW);
locke-lunarg3fa463a2020-10-23 16:39:04 -06001027 return skip;
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001028}
1029
Tony-LunarG4490de42021-06-21 15:49:19 -06001030bool CoreChecks::PreCallValidateCmdDrawMultiEXT(VkCommandBuffer commandBuffer, uint32_t drawCount,
1031 const VkMultiDrawInfoEXT *pVertexInfo, uint32_t instanceCount,
1032 uint32_t firstInstance, uint32_t stride) const {
1033 bool skip = false;
1034 if (!enabled_features.multi_draw_features.multiDraw) {
1035 skip |= LogError(commandBuffer, "VUID-vkCmdDrawMultiEXT-None-04933",
1036 "vkCmdDrawMultiEXT(): The multiDraw feature must be enabled to "
1037 "call this command.");
1038 }
1039 if (drawCount > phys_dev_ext_props.multi_draw_props.maxMultiDrawCount) {
1040 skip |= LogError(commandBuffer, "VUID-vkCmdDrawMultiEXT-drawCount-04934",
1041 "vkCmdDrawMultiEXT(): parameter, uint32_t drawCount (%" PRIu32
1042 ") must be less than VkPhysicalDeviceMultiDrawPropertiesEXT::maxMultiDrawCount (%" PRIu32 ").",
1043 drawCount, phys_dev_ext_props.multi_draw_props.maxMultiDrawCount);
1044 }
Jeremy Gebben332d4dd2022-01-01 12:40:02 -07001045 const auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001046 skip |= ValidateCmdDrawInstance(*cb_state, instanceCount, firstInstance, CMD_DRAWMULTIEXT);
1047 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWMULTIEXT);
Tony-LunarG4490de42021-06-21 15:49:19 -06001048 return skip;
1049}
1050
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001051bool CoreChecks::ValidateCmdDrawIndexedBufferSize(const CMD_BUFFER_STATE &cb_state, uint32_t indexCount, uint32_t firstIndex,
1052 const char *caller, const char *first_index_vuid) const {
Tony-LunarG4490de42021-06-21 15:49:19 -06001053 bool skip = false;
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001054 if (cb_state.status & CBSTATUS_INDEX_BUFFER_BOUND) {
Tony-LunarG4490de42021-06-21 15:49:19 -06001055 unsigned int index_size = 0;
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001056 const auto &index_buffer_binding = cb_state.index_buffer_binding;
Tony-LunarG4490de42021-06-21 15:49:19 -06001057 if (index_buffer_binding.index_type == VK_INDEX_TYPE_UINT16) {
1058 index_size = 2;
1059 }
1060 else if (index_buffer_binding.index_type == VK_INDEX_TYPE_UINT32) {
1061 index_size = 4;
1062 }
1063 else if (index_buffer_binding.index_type == VK_INDEX_TYPE_UINT8_EXT) {
1064 index_size = 1;
1065 }
1066 VkDeviceSize end_offset = (index_size * (static_cast<VkDeviceSize>(firstIndex) + indexCount)) + index_buffer_binding.offset;
1067 if (end_offset > index_buffer_binding.size) {
1068 skip |= LogError(index_buffer_binding.buffer_state->buffer(), first_index_vuid,
1069 "%s: index size (%u) * (firstIndex (%u) + indexCount (%u)) "
1070 "+ binding offset (%" PRIuLEAST64 ") = an ending offset of %" PRIuLEAST64
1071 " bytes, which is greater than the index buffer size (%" PRIuLEAST64 ").",
1072 caller, index_size, firstIndex, indexCount, index_buffer_binding.offset, end_offset,
1073 index_buffer_binding.size);
1074 }
1075 }
1076 return skip;
1077}
1078
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001079bool CoreChecks::PreCallValidateCmdDrawIndexed(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount,
Jeff Bolz5c801d12019-10-09 10:38:45 -05001080 uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance) const {
locke-lunarg3fa463a2020-10-23 16:39:04 -06001081 bool skip = false;
Jeremy Gebben332d4dd2022-01-01 12:40:02 -07001082 const auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001083 skip |= ValidateCmdDrawInstance(*cb_state, instanceCount, firstInstance, CMD_DRAWINDEXED);
1084 skip |= ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWINDEXED);
1085 skip |= ValidateCmdDrawIndexedBufferSize(*cb_state, indexCount, firstIndex, "vkCmdDrawIndexed()",
Tony-LunarG4490de42021-06-21 15:49:19 -06001086 "VUID-vkCmdDrawIndexed-firstIndex-04932");
1087 return skip;
1088}
1089
1090bool CoreChecks::PreCallValidateCmdDrawMultiIndexedEXT(VkCommandBuffer commandBuffer, uint32_t drawCount,
1091 const VkMultiDrawIndexedInfoEXT *pIndexInfo, uint32_t instanceCount,
1092 uint32_t firstInstance, uint32_t stride,
1093 const int32_t *pVertexOffset) const {
1094 bool skip = false;
1095 if (!enabled_features.multi_draw_features.multiDraw) {
1096 skip |= LogError(commandBuffer, "VUID-vkCmdDrawMultiIndexedEXT-None-04937",
1097 "vkCmdDrawMultiIndexedEXT(): The multiDraw feature must be enabled to "
1098 "call this command.");
1099 }
1100 if (drawCount > phys_dev_ext_props.multi_draw_props.maxMultiDrawCount) {
1101 skip |= LogError(commandBuffer, "VUID-vkCmdDrawMultiIndexedEXT-drawCount-04939",
1102 "vkCmdDrawMultiIndexedEXT(): parameter, uint32_t drawCount (0x%" PRIu32
1103 ") must be less than VkPhysicalDeviceMultiDrawPropertiesEXT::maxMultiDrawCount (0x%" PRIu32 ").",
1104 drawCount, phys_dev_ext_props.multi_draw_props.maxMultiDrawCount);
1105 }
Jeremy Gebben332d4dd2022-01-01 12:40:02 -07001106 const auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001107 skip |= ValidateCmdDrawInstance(*cb_state, instanceCount, firstInstance, CMD_DRAWMULTIINDEXEDEXT);
1108 skip |= ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWMULTIINDEXEDEXT);
Ricardo Garcia27a26f52021-07-13 15:52:14 +02001109 const auto info_bytes = reinterpret_cast<const char *>(pIndexInfo);
Tony-LunarG4490de42021-06-21 15:49:19 -06001110 for (uint32_t i = 0; i < drawCount; i++) {
Ricardo Garcia27a26f52021-07-13 15:52:14 +02001111 const auto info_ptr = reinterpret_cast<const VkMultiDrawIndexedInfoEXT *>(info_bytes + i * stride);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001112 skip |= ValidateCmdDrawIndexedBufferSize(*cb_state, info_ptr->indexCount, info_ptr->firstIndex,
Tony-LunarG4490de42021-06-21 15:49:19 -06001113 "vkCmdDrawMultiIndexedEXT()", "VUID-vkCmdDrawMultiIndexedEXT-firstIndex-04938");
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001114 }
1115 return skip;
1116}
1117
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001118bool CoreChecks::PreCallValidateCmdDrawIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1119 uint32_t drawCount, uint32_t stride) const {
Jeremy Gebben332d4dd2022-01-01 12:40:02 -07001120 const auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001121 bool skip = ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWINDIRECT);
Jeremy Gebbenb20a8242021-11-05 15:14:43 -06001122 const auto buffer_state = Get<BUFFER_STATE>(buffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001123 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, CMD_DRAWINDIRECT);
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001124 if (drawCount > 1) {
Lockee68ac652019-05-06 10:17:33 -06001125 skip |= ValidateCmdDrawStrideWithStruct(commandBuffer, "VUID-vkCmdDrawIndirect-drawCount-00476", stride,
1126 "VkDrawIndirectCommand", sizeof(VkDrawIndirectCommand));
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001127 skip |= ValidateCmdDrawStrideWithBuffer(commandBuffer, "VUID-vkCmdDrawIndirect-drawCount-00488", stride,
1128 "VkDrawIndirectCommand", sizeof(VkDrawIndirectCommand), drawCount, offset,
Jeremy Gebben9f537102021-10-05 16:37:12 -06001129 buffer_state.get());
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001130 } else if ((drawCount == 1) && (offset + sizeof(VkDrawIndirectCommand)) > buffer_state->createInfo.size) {
1131 skip |= LogError(commandBuffer, "VUID-vkCmdDrawIndirect-drawCount-00487",
Jeremy Gebbenda6b48f2021-05-13 10:46:18 -06001132 "CmdDrawIndirect: drawCount equals 1 and (offset + sizeof(VkDrawIndirectCommand)) (%" PRIu64 ") is not less than "
1133 "or equal to the size of buffer (%" PRIu64 ").",
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001134 (offset + sizeof(VkDrawIndirectCommand)), buffer_state->createInfo.size);
Lockee68ac652019-05-06 10:17:33 -06001135 }
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001136 // TODO: If the drawIndirectFirstInstance feature is not enabled, all the firstInstance members of the
1137 // VkDrawIndirectCommand structures accessed by this command must be 0, which will require access to the contents of 'buffer'.
1138 return skip;
1139}
1140
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001141bool CoreChecks::PreCallValidateCmdDrawIndexedIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001142 uint32_t drawCount, uint32_t stride) const {
Jeremy Gebben332d4dd2022-01-01 12:40:02 -07001143 const auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001144 bool skip = ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWINDEXEDINDIRECT);
Jeremy Gebbenb20a8242021-11-05 15:14:43 -06001145 const auto buffer_state = Get<BUFFER_STATE>(buffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001146 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, CMD_DRAWINDEXEDINDIRECT);
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001147 if (drawCount > 1) {
Lockee68ac652019-05-06 10:17:33 -06001148 skip |= ValidateCmdDrawStrideWithStruct(commandBuffer, "VUID-vkCmdDrawIndexedIndirect-drawCount-00528", stride,
1149 "VkDrawIndexedIndirectCommand", sizeof(VkDrawIndexedIndirectCommand));
1150 skip |= ValidateCmdDrawStrideWithBuffer(commandBuffer, "VUID-vkCmdDrawIndexedIndirect-drawCount-00540", stride,
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001151 "VkDrawIndexedIndirectCommand", sizeof(VkDrawIndexedIndirectCommand), drawCount,
Jeremy Gebben9f537102021-10-05 16:37:12 -06001152 offset, buffer_state.get());
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001153 } else if ((drawCount == 1) && (offset + sizeof(VkDrawIndexedIndirectCommand)) > buffer_state->createInfo.size) {
1154 skip |= LogError(
1155 commandBuffer, "VUID-vkCmdDrawIndexedIndirect-drawCount-00539",
Jeremy Gebbenda6b48f2021-05-13 10:46:18 -06001156 "CmdDrawIndexedIndirect: drawCount equals 1 and (offset + sizeof(VkDrawIndexedIndirectCommand)) (%" PRIu64 ") is not less than "
1157 "or equal to the size of buffer (%" PRIu64 ").",
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001158 (offset + sizeof(VkDrawIndexedIndirectCommand)), buffer_state->createInfo.size);
Lockee68ac652019-05-06 10:17:33 -06001159 }
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001160 // TODO: If the drawIndirectFirstInstance feature is not enabled, all the firstInstance members of the
1161 // VkDrawIndexedIndirectCommand structures accessed by this command must be 0, which will require access to the contents of
1162 // 'buffer'.
1163 return skip;
1164}
1165
Jeff Bolz5c801d12019-10-09 10:38:45 -05001166bool CoreChecks::PreCallValidateCmdDispatch(VkCommandBuffer commandBuffer, uint32_t x, uint32_t y, uint32_t z) const {
Lockef39c0772019-04-03 14:40:02 -06001167 bool skip = false;
Jeremy Gebben332d4dd2022-01-01 12:40:02 -07001168 const auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001169 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_COMPUTE, CMD_DISPATCH);
Lockef39c0772019-04-03 14:40:02 -06001170 return skip;
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001171}
1172
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001173bool CoreChecks::ValidateBaseGroups(const CMD_BUFFER_STATE &cb_state, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ,
Tony-LunarGf825e6d2020-12-16 13:05:17 -07001174 const char *apiName) const {
1175 bool skip = false;
1176 if (baseGroupX || baseGroupY || baseGroupZ) {
Tony-LunarGf825e6d2020-12-16 13:05:17 -07001177 const auto lv_bind_point = ConvertToLvlBindPoint(VK_PIPELINE_BIND_POINT_COMPUTE);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001178 const auto *pipeline_state = cb_state.lastBound[lv_bind_point].pipeline_state;
Jeremy Gebben11af9792021-08-20 10:20:09 -06001179 if (pipeline_state && !(pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_DISPATCH_BASE)) {
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001180 skip |= LogError(cb_state.Handle(), "VUID-vkCmdDispatchBase-baseGroupX-00427",
Tony-LunarGf825e6d2020-12-16 13:05:17 -07001181 "%s(): If any of baseGroupX, baseGroupY, or baseGroupZ are not zero, then the bound compute pipeline "
1182 "must have been created with the VK_PIPELINE_CREATE_DISPATCH_BASE flag",
1183 apiName);
1184 }
1185 }
1186 return skip;
1187}
1188
locke-lunarg25b6c352020-08-06 17:44:18 -06001189bool CoreChecks::PreCallValidateCmdDispatchBase(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY,
1190 uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY,
1191 uint32_t groupCountZ) const {
1192 bool skip = false;
Jeremy Gebben332d4dd2022-01-01 12:40:02 -07001193 const auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001194 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_COMPUTE, CMD_DISPATCHBASE);
1195 skip |= ValidateBaseGroups(*cb_state, baseGroupX, baseGroupY, baseGroupZ, "vkCmdDispatchBase()");
locke-lunarg25b6c352020-08-06 17:44:18 -06001196 return skip;
1197}
1198
1199bool CoreChecks::PreCallValidateCmdDispatchBaseKHR(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY,
1200 uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY,
1201 uint32_t groupCountZ) const {
1202 bool skip = false;
Jeremy Gebben332d4dd2022-01-01 12:40:02 -07001203 const auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001204 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_COMPUTE, CMD_DISPATCHBASEKHR);
1205 skip |= ValidateBaseGroups(*cb_state, baseGroupX, baseGroupY, baseGroupZ, "vkCmdDispatchBaseKHR()");
locke-lunarg25b6c352020-08-06 17:44:18 -06001206 return skip;
1207}
1208
Jeff Bolz5c801d12019-10-09 10:38:45 -05001209bool CoreChecks::PreCallValidateCmdDispatchIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset) const {
Jeremy Gebben332d4dd2022-01-01 12:40:02 -07001210 const auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001211 bool skip = ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_COMPUTE, CMD_DISPATCHINDIRECT);
Jeremy Gebbenb20a8242021-11-05 15:14:43 -06001212 const auto buffer_state = Get<BUFFER_STATE>(buffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001213 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, CMD_DISPATCHINDIRECT);
Tony-LunarGda555b52021-01-06 13:43:49 -07001214 if ((offset + sizeof(VkDispatchIndirectCommand)) > buffer_state->createInfo.size) {
1215 skip |= LogError(commandBuffer, "VUID-vkCmdDispatchIndirect-offset-00407",
1216 "vkCmdDispatchIndirect(): The sum of offset and the size of VkDispatchIndirectCommand is greater than the "
1217 "size of the buffer");
1218 }
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001219 return skip;
1220}
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001221bool CoreChecks::ValidateCmdDrawIndirectCount(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1222 VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount,
sfricke-samsung85584a72021-09-30 21:43:38 -07001223 uint32_t stride, CMD_TYPE cmd_type) const {
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001224 bool skip = false;
sfricke-samsung85584a72021-09-30 21:43:38 -07001225 const char *apiName = CommandTypeString(cmd_type);
Nathaniel Cesario7f231f12021-03-25 12:10:58 -06001226 if ((device_extensions.vk_khr_draw_indirect_count != kEnabledByCreateinfo) &&
1227 ((api_version >= VK_API_VERSION_1_2) && (enabled_features.core12.drawIndirectCount == VK_FALSE))) {
Shannon McPherson2c793ba2020-08-28 12:13:24 -06001228 skip |= LogError(commandBuffer, "VUID-vkCmdDrawIndirectCount-None-04445",
sfricke-samsung27c70722020-05-02 08:42:39 -07001229 "%s(): Starting in Vulkan 1.2 the VkPhysicalDeviceVulkan12Features::drawIndirectCount must be enabled to "
1230 "call this command.",
1231 apiName);
1232 }
AndreyVK_D3Db2753e12021-07-21 12:24:03 +03001233 skip |= ValidateCmdDrawStrideWithStruct(commandBuffer, "VUID-vkCmdDrawIndirectCount-stride-03110", stride,
1234 "VkDrawIndirectCommand", sizeof(VkDrawIndirectCommand));
Lockee68ac652019-05-06 10:17:33 -06001235 if (maxDrawCount > 1) {
Jeremy Gebbenb20a8242021-11-05 15:14:43 -06001236 const auto buffer_state = Get<BUFFER_STATE>(buffer);
AndreyVK_D3Db2753e12021-07-21 12:24:03 +03001237 skip |= ValidateCmdDrawStrideWithBuffer(commandBuffer, "VUID-vkCmdDrawIndirectCount-maxDrawCount-03111", stride,
1238 "VkDrawIndirectCommand", sizeof(VkDrawIndirectCommand), maxDrawCount, offset,
Jeremy Gebben9f537102021-10-05 16:37:12 -06001239 buffer_state.get());
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001240 }
1241
Jeremy Gebben332d4dd2022-01-01 12:40:02 -07001242 const auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001243 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, cmd_type);
1244 const auto buffer_state = Get<BUFFER_STATE>(buffer);
1245 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, cmd_type);
Jeremy Gebbenb20a8242021-11-05 15:14:43 -06001246 const auto count_buffer_state = Get<BUFFER_STATE>(countBuffer);
Jeremy Gebben9f537102021-10-05 16:37:12 -06001247 skip |= ValidateMemoryIsBoundToBuffer(count_buffer_state.get(), apiName, "VUID-vkCmdDrawIndirectCount-countBuffer-02714");
Tony-LunarG83544c72020-01-17 12:30:19 -07001248 skip |=
Jeremy Gebben9f537102021-10-05 16:37:12 -06001249 ValidateBufferUsageFlags(count_buffer_state.get(), VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT, true,
Tony-LunarG83544c72020-01-17 12:30:19 -07001250 "VUID-vkCmdDrawIndirectCount-countBuffer-02715", apiName, "VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT");
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001251 return skip;
1252}
1253
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001254bool CoreChecks::PreCallValidateCmdDrawIndirectCountKHR(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1255 VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount,
1256 uint32_t stride) const {
Tony-LunarG83544c72020-01-17 12:30:19 -07001257 return ValidateCmdDrawIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride,
sfricke-samsung85584a72021-09-30 21:43:38 -07001258 CMD_DRAWINDIRECTCOUNTKHR);
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001259}
1260
1261bool CoreChecks::PreCallValidateCmdDrawIndirectCount(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1262 VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount,
1263 uint32_t stride) const {
Tony-LunarG83544c72020-01-17 12:30:19 -07001264 return ValidateCmdDrawIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride,
sfricke-samsung85584a72021-09-30 21:43:38 -07001265 CMD_DRAWINDIRECTCOUNT);
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001266}
1267
1268bool CoreChecks::ValidateCmdDrawIndexedIndirectCount(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1269 VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount,
sfricke-samsung85584a72021-09-30 21:43:38 -07001270 uint32_t stride, CMD_TYPE cmd_type) const {
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001271 bool skip = false;
sfricke-samsung85584a72021-09-30 21:43:38 -07001272 const char *apiName = CommandTypeString(cmd_type);
Nathaniel Cesario7f231f12021-03-25 12:10:58 -06001273 if ((device_extensions.vk_khr_draw_indirect_count != kEnabledByCreateinfo) &&
1274 ((api_version >= VK_API_VERSION_1_2) && (enabled_features.core12.drawIndirectCount == VK_FALSE))) {
Shannon McPherson2c793ba2020-08-28 12:13:24 -06001275 skip |= LogError(commandBuffer, "VUID-vkCmdDrawIndexedIndirectCount-None-04445",
sfricke-samsung27c70722020-05-02 08:42:39 -07001276 "%s(): Starting in Vulkan 1.2 the VkPhysicalDeviceVulkan12Features::drawIndirectCount must be enabled to "
1277 "call this command.",
1278 apiName);
1279 }
AndreyVK_D3Db2753e12021-07-21 12:24:03 +03001280 skip |= ValidateCmdDrawStrideWithStruct(commandBuffer, "VUID-vkCmdDrawIndexedIndirectCount-stride-03142", stride,
1281 "VkDrawIndexedIndirectCommand", sizeof(VkDrawIndexedIndirectCommand));
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001282 const auto buffer_state = Get<BUFFER_STATE>(buffer);
Lockee68ac652019-05-06 10:17:33 -06001283 if (maxDrawCount > 1) {
Mike Schuchardt65847d92019-12-20 13:50:47 -08001284 skip |= ValidateCmdDrawStrideWithBuffer(commandBuffer, "VUID-vkCmdDrawIndexedIndirectCount-maxDrawCount-03143", stride,
AndreyVK_D3Db2753e12021-07-21 12:24:03 +03001285 "VkDrawIndexedIndirectCommand", sizeof(VkDrawIndexedIndirectCommand), maxDrawCount,
Jeremy Gebben9f537102021-10-05 16:37:12 -06001286 offset, buffer_state.get());
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001287 }
Jeremy Gebben332d4dd2022-01-01 12:40:02 -07001288 const auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001289 skip |= ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_GRAPHICS, cmd_type);
1290 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, cmd_type);
Jeremy Gebbenb20a8242021-11-05 15:14:43 -06001291 const auto count_buffer_state = Get<BUFFER_STATE>(countBuffer);
Jeremy Gebben9f537102021-10-05 16:37:12 -06001292 skip |=
1293 ValidateMemoryIsBoundToBuffer(count_buffer_state.get(), apiName, "VUID-vkCmdDrawIndexedIndirectCount-countBuffer-02714");
1294 skip |= ValidateBufferUsageFlags(count_buffer_state.get(), VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT, true,
sfricke-samsungf692b972020-05-02 08:00:45 -07001295 "VUID-vkCmdDrawIndexedIndirectCount-countBuffer-02715", apiName,
Mike Schuchardt65847d92019-12-20 13:50:47 -08001296 "VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT");
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001297 return skip;
1298}
1299
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001300bool CoreChecks::PreCallValidateCmdDrawIndexedIndirectCountKHR(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1301 VkBuffer countBuffer, VkDeviceSize countBufferOffset,
1302 uint32_t maxDrawCount, uint32_t stride) const {
sfricke-samsungf692b972020-05-02 08:00:45 -07001303 return ValidateCmdDrawIndexedIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride,
sfricke-samsung85584a72021-09-30 21:43:38 -07001304 CMD_DRAWINDEXEDINDIRECTCOUNTKHR);
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001305}
1306
1307bool CoreChecks::PreCallValidateCmdDrawIndexedIndirectCount(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1308 VkBuffer countBuffer, VkDeviceSize countBufferOffset,
1309 uint32_t maxDrawCount, uint32_t stride) const {
sfricke-samsungf692b972020-05-02 08:00:45 -07001310 return ValidateCmdDrawIndexedIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride,
sfricke-samsung85584a72021-09-30 21:43:38 -07001311 CMD_DRAWINDEXEDINDIRECTCOUNT);
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001312}
1313
locke-lunarg9a16ebb2020-07-30 16:56:33 -06001314bool CoreChecks::PreCallValidateCmdDrawIndirectByteCountEXT(VkCommandBuffer commandBuffer, uint32_t instanceCount,
1315 uint32_t firstInstance, VkBuffer counterBuffer,
1316 VkDeviceSize counterBufferOffset, uint32_t counterOffset,
1317 uint32_t vertexStride) const {
sfricke-samsungd5e9adb2020-10-26 03:59:29 -07001318 bool skip = false;
Tony-LunarG2c94ba82020-11-05 14:21:40 -07001319 if (!enabled_features.transform_feedback_features.transformFeedback) {
1320 skip |= LogError(commandBuffer, "VUID-vkCmdDrawIndirectByteCountEXT-transformFeedback-02287",
1321 "%s: transformFeedback feature is not enabled.", "vkCmdDrawIndirectByteCountEXT()");
1322 }
sfricke-samsung45996a42021-09-16 13:45:27 -07001323 if (IsExtEnabled(device_extensions.vk_ext_transform_feedback) &&
1324 !phys_dev_ext_props.transform_feedback_props.transformFeedbackDraw) {
sfricke-samsungba459bd2020-12-06 23:20:04 -08001325 skip |= LogError(commandBuffer, "VUID-vkCmdDrawIndirectByteCountEXT-transformFeedbackDraw-02288",
Tony-LunarG2c94ba82020-11-05 14:21:40 -07001326 "%s: VkPhysicalDeviceTransformFeedbackPropertiesEXT::transformFeedbackDraw is not supported",
1327 "vkCmdDrawIndirectByteCountEXT()");
1328 }
Jeremy Gebben332d4dd2022-01-01 12:40:02 -07001329 const auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001330 skip |= ValidateCmdDrawInstance(*cb_state, instanceCount, firstInstance, CMD_DRAWINDIRECTBYTECOUNTEXT);
1331 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWINDIRECTBYTECOUNTEXT);
1332 const auto counter_buffer_state = Get<BUFFER_STATE>(counterBuffer);
1333 skip |= ValidateIndirectCmd(*cb_state, *counter_buffer_state, CMD_DRAWINDIRECTBYTECOUNTEXT);
sfricke-samsungd5e9adb2020-10-26 03:59:29 -07001334 return skip;
locke-lunarg9a16ebb2020-07-30 16:56:33 -06001335}
1336
Jeff Bolzf6e872c2019-10-22 12:17:28 -05001337bool CoreChecks::PreCallValidateCmdTraceRaysNV(VkCommandBuffer commandBuffer, VkBuffer raygenShaderBindingTableBuffer,
1338 VkDeviceSize raygenShaderBindingOffset, VkBuffer missShaderBindingTableBuffer,
1339 VkDeviceSize missShaderBindingOffset, VkDeviceSize missShaderBindingStride,
1340 VkBuffer hitShaderBindingTableBuffer, VkDeviceSize hitShaderBindingOffset,
1341 VkDeviceSize hitShaderBindingStride, VkBuffer callableShaderBindingTableBuffer,
1342 VkDeviceSize callableShaderBindingOffset, VkDeviceSize callableShaderBindingStride,
1343 uint32_t width, uint32_t height, uint32_t depth) const {
Jeremy Gebben332d4dd2022-01-01 12:40:02 -07001344 const auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001345 bool skip = ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_RAY_TRACING_NV, CMD_TRACERAYSNV);
Jeremy Gebbenb20a8242021-11-05 15:14:43 -06001346 auto callable_shader_buffer_state = Get<BUFFER_STATE>(callableShaderBindingTableBuffer);
sourav parmard1521802020-06-07 21:49:02 -07001347 if (callable_shader_buffer_state && callableShaderBindingOffset >= callable_shader_buffer_state->createInfo.size) {
1348 skip |= LogError(commandBuffer, "VUID-vkCmdTraceRaysNV-callableShaderBindingOffset-02461",
1349 "vkCmdTraceRaysNV: callableShaderBindingOffset %" PRIu64
1350 " must be less than the size of callableShaderBindingTableBuffer %" PRIu64 " .",
1351 callableShaderBindingOffset, callable_shader_buffer_state->createInfo.size);
1352 }
Jeremy Gebbenb20a8242021-11-05 15:14:43 -06001353 auto hit_shader_buffer_state = Get<BUFFER_STATE>(hitShaderBindingTableBuffer);
sourav parmard1521802020-06-07 21:49:02 -07001354 if (hit_shader_buffer_state && hitShaderBindingOffset >= hit_shader_buffer_state->createInfo.size) {
1355 skip |= LogError(commandBuffer, "VUID-vkCmdTraceRaysNV-hitShaderBindingOffset-02459",
1356 "vkCmdTraceRaysNV: hitShaderBindingOffset %" PRIu64
1357 " must be less than the size of hitShaderBindingTableBuffer %" PRIu64 " .",
1358 hitShaderBindingOffset, hit_shader_buffer_state->createInfo.size);
1359 }
Jeremy Gebbenb20a8242021-11-05 15:14:43 -06001360 auto miss_shader_buffer_state = Get<BUFFER_STATE>(missShaderBindingTableBuffer);
sourav parmard1521802020-06-07 21:49:02 -07001361 if (miss_shader_buffer_state && missShaderBindingOffset >= miss_shader_buffer_state->createInfo.size) {
1362 skip |= LogError(commandBuffer, "VUID-vkCmdTraceRaysNV-missShaderBindingOffset-02457",
1363 "vkCmdTraceRaysNV: missShaderBindingOffset %" PRIu64
baldurk751594b2020-09-09 09:41:02 +01001364 " must be less than the size of missShaderBindingTableBuffer %" PRIu64 " .",
sourav parmard1521802020-06-07 21:49:02 -07001365 missShaderBindingOffset, miss_shader_buffer_state->createInfo.size);
1366 }
Jeremy Gebbenb20a8242021-11-05 15:14:43 -06001367 auto raygen_shader_buffer_state = Get<BUFFER_STATE>(raygenShaderBindingTableBuffer);
sourav parmard1521802020-06-07 21:49:02 -07001368 if (raygenShaderBindingOffset >= raygen_shader_buffer_state->createInfo.size) {
1369 skip |= LogError(commandBuffer, "VUID-vkCmdTraceRaysNV-raygenShaderBindingOffset-02455",
1370 "vkCmdTraceRaysNV: raygenShaderBindingOffset %" PRIu64
baldurk751594b2020-09-09 09:41:02 +01001371 " must be less than the size of raygenShaderBindingTableBuffer %" PRIu64 " .",
sourav parmard1521802020-06-07 21:49:02 -07001372 raygenShaderBindingOffset, raygen_shader_buffer_state->createInfo.size);
1373 }
sourav parmarcd5fb182020-07-17 12:58:44 -07001374
sourav parmar30e19392020-12-02 16:57:21 -08001375 const auto lv_bind_point = ConvertToLvlBindPoint(VK_PIPELINE_BIND_POINT_RAY_TRACING_NV);
1376 const PIPELINE_STATE *pipeline_state = cb_state->lastBound[lv_bind_point].pipeline_state;
Jeremy Gebben14b0d1a2021-05-15 20:15:41 -06001377 if (!pipeline_state || (pipeline_state && !pipeline_state->pipeline())) {
sourav parmar30e19392020-12-02 16:57:21 -08001378 skip |= LogError(device, "VUID-vkCmdTraceRaysNV-None-02700",
1379 "vkCmdTraceRaysKHR: A valid pipeline must be bound to the pipeline bind point used by this command.");
sourav parmarcd5fb182020-07-17 12:58:44 -07001380 }
Jeff Bolzf6e872c2019-10-22 12:17:28 -05001381 return skip;
1382}
1383
Jeff Bolz443c2ca2020-03-19 12:11:51 -05001384bool CoreChecks::PreCallValidateCmdTraceRaysKHR(VkCommandBuffer commandBuffer,
sourav parmarcd5fb182020-07-17 12:58:44 -07001385 const VkStridedDeviceAddressRegionKHR *pRaygenShaderBindingTable,
1386 const VkStridedDeviceAddressRegionKHR *pMissShaderBindingTable,
1387 const VkStridedDeviceAddressRegionKHR *pHitShaderBindingTable,
1388 const VkStridedDeviceAddressRegionKHR *pCallableShaderBindingTable, uint32_t width,
Jeff Bolz443c2ca2020-03-19 12:11:51 -05001389 uint32_t height, uint32_t depth) const {
Jeremy Gebben332d4dd2022-01-01 12:40:02 -07001390 const auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001391 bool skip = ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR, CMD_TRACERAYSKHR);
Shannon McPherson9caca052020-11-25 11:34:38 -07001392 const auto lv_bind_point = ConvertToLvlBindPoint(VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR);
1393 const PIPELINE_STATE *pipeline_state = cb_state->lastBound[lv_bind_point].pipeline_state;
Jeremy Gebben14b0d1a2021-05-15 20:15:41 -06001394 if (!pipeline_state || (pipeline_state && !pipeline_state->pipeline())) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001395 skip |= LogError(device, "VUID-vkCmdTraceRaysKHR-None-02700",
1396 "vkCmdTraceRaysKHR: A valid pipeline must be bound to the pipeline bind point used by this command.");
1397 } else { // bound to valid RT pipeline
Jeremy Gebben11af9792021-08-20 10:20:09 -06001398 if (pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001399 if (!pHitShaderBindingTable->deviceAddress) {
1400 skip |= LogError(device, "VUID-vkCmdTraceRaysKHR-flags-03697",
1401 "vkCmdTraceRaysKHR: If the currently bound ray tracing pipeline was created with flags "
1402 "that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, the "
1403 "deviceAddress member of pHitShaderBindingTable must not be zero.");
1404 }
1405 if (!pHitShaderBindingTable || pHitShaderBindingTable->size == 0 || pHitShaderBindingTable->stride == 0) {
1406 skip |= LogError(device, "VUID-vkCmdTraceRaysKHR-flags-03514",
1407 "vkCmdTraceRaysKHR: If the currently bound ray tracing pipeline was created with "
1408 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, "
1409 "entries in pHitShaderBindingTable accessed as a result of this command in order to "
1410 "execute an intersection shader must not be set to zero.");
1411 }
1412 }
Jeremy Gebben11af9792021-08-20 10:20:09 -06001413 if (pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001414 if (!pHitShaderBindingTable->deviceAddress) {
1415 skip |= LogError(device, "VUID-vkCmdTraceRaysKHR-flags-03696",
1416 "vkCmdTraceRaysKHR: If the currently bound ray tracing pipeline was created with flags "
1417 "that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, the "
1418 "deviceAddress member of pHitShaderBindingTable must not be zero.");
1419 }
1420 if (!pHitShaderBindingTable || pHitShaderBindingTable->size == 0 || pHitShaderBindingTable->stride == 0) {
1421 skip |= LogError(device, "VUID-vkCmdTraceRaysKHR-flags-03513",
1422 "vkCmdTraceRaysKHR: If the currently bound ray tracing pipeline was created with "
1423 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, "
1424 "entries in pHitShaderBindingTable accessed as a result of this command in order to "
1425 "execute a closest hit shader must not be set to zero.");
1426 }
1427 }
Jeremy Gebben11af9792021-08-20 10:20:09 -06001428 if (pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001429 if (!pHitShaderBindingTable || pHitShaderBindingTable->size == 0 || pHitShaderBindingTable->stride == 0) {
1430 skip |= LogError(device, "VUID-vkCmdTraceRaysKHR-flags-03512",
1431 "vkCmdTraceRaysKHR: If the currently bound ray tracing pipeline was created with "
1432 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR, "
1433 "entries in pHitShaderBindingTable accessed as a result of this command in order to "
1434 "execute an any hit shader must not be set to zero.");
1435 }
1436 }
1437 }
Jeff Bolz443c2ca2020-03-19 12:11:51 -05001438 return skip;
1439}
1440
Jeff Bolz443c2ca2020-03-19 12:11:51 -05001441bool CoreChecks::PreCallValidateCmdTraceRaysIndirectKHR(VkCommandBuffer commandBuffer,
sourav parmarcd5fb182020-07-17 12:58:44 -07001442 const VkStridedDeviceAddressRegionKHR *pRaygenShaderBindingTable,
1443 const VkStridedDeviceAddressRegionKHR *pMissShaderBindingTable,
1444 const VkStridedDeviceAddressRegionKHR *pHitShaderBindingTable,
1445 const VkStridedDeviceAddressRegionKHR *pCallableShaderBindingTable,
1446 VkDeviceAddress indirectDeviceAddress) const {
Jeremy Gebben332d4dd2022-01-01 12:40:02 -07001447 const auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001448 bool skip = ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR, CMD_TRACERAYSINDIRECTKHR);
Shannon McPherson9caca052020-11-25 11:34:38 -07001449 const auto lv_bind_point = ConvertToLvlBindPoint(VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR);
Jeremy Gebbenb20a8242021-11-05 15:14:43 -06001450 const auto *pipeline_state = cb_state->lastBound[lv_bind_point].pipeline_state;
Jeremy Gebben14b0d1a2021-05-15 20:15:41 -06001451 if (!pipeline_state || (pipeline_state && !pipeline_state->pipeline())) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001452 skip |=
1453 LogError(device, "VUID-vkCmdTraceRaysIndirectKHR-None-02700",
1454 "vkCmdTraceRaysIndirectKHR: A valid pipeline must be bound to the pipeline bind point used by this command.");
1455 } else { // valid bind point
Jeremy Gebben11af9792021-08-20 10:20:09 -06001456 if (pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001457 if (!pHitShaderBindingTable || pHitShaderBindingTable->deviceAddress == 0) {
1458 skip |= LogError(device, "VUID-vkCmdTraceRaysIndirectKHR-flags-03697",
1459 "vkCmdTraceRaysIndirectKHR: If the currently bound ray tracing pipeline was created with "
1460 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, the "
1461 "deviceAddress member of pHitShaderBindingTable must not be zero.");
1462 }
1463 if (!pHitShaderBindingTable || pHitShaderBindingTable->size == 0 || pHitShaderBindingTable->stride == 0) {
1464 skip |= LogError(device, "VUID-vkCmdTraceRaysIndirectKHR-flags-03514",
1465 "vkCmdTraceRaysIndirectKHR: If the currently bound ray tracing pipeline was created with "
1466 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, "
1467 "entries in pHitShaderBindingTable accessed as a result of this command in order to "
1468 "execute an intersection shader must not be set to zero.");
1469 }
1470 }
Jeremy Gebben11af9792021-08-20 10:20:09 -06001471 if (pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001472 if (!pHitShaderBindingTable || pHitShaderBindingTable->deviceAddress == 0) {
1473 skip |= LogError(device, "VUID-vkCmdTraceRaysIndirectKHR-flags-03696",
1474 "vkCmdTraceRaysIndirectKHR:If the currently bound ray tracing pipeline was created with "
1475 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, "
1476 "the deviceAddress member of pHitShaderBindingTable must not be zero.");
1477 }
1478 if (!pHitShaderBindingTable || pHitShaderBindingTable->size == 0 || pHitShaderBindingTable->stride == 0) {
1479 skip |= LogError(device, "VUID-vkCmdTraceRaysIndirectKHR-flags-03513",
1480 "vkCmdTraceRaysIndirectKHR: If the currently bound ray tracing pipeline was created with "
1481 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, "
1482 "entries in pHitShaderBindingTable accessed as a result of this command in order to "
1483 "execute a closest hit shader must not be set to zero.");
1484 }
1485 }
Jeremy Gebben11af9792021-08-20 10:20:09 -06001486 if (pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001487 if (!pHitShaderBindingTable || pHitShaderBindingTable->size == 0 || pHitShaderBindingTable->stride == 0) {
1488 skip |= LogError(device, "VUID-vkCmdTraceRaysIndirectKHR-flags-03512",
1489 "vkCmdTraceRaysIndirectKHR: If the currently bound ray tracing pipeline was created with "
1490 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR, "
1491 "entries in pHitShaderBindingTable accessed as a result of this command in order to "
1492 "execute an any hit shader must not be set to zero.");
1493 }
1494 }
1495 }
Jeff Bolz443c2ca2020-03-19 12:11:51 -05001496 return skip;
1497}
1498
Jeff Bolz5c801d12019-10-09 10:38:45 -05001499bool CoreChecks::PreCallValidateCmdDrawMeshTasksNV(VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask) const {
Jeremy Gebben332d4dd2022-01-01 12:40:02 -07001500 const auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001501 bool skip = ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWMESHTASKSNV);
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001502 return skip;
1503}
1504
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001505bool CoreChecks::PreCallValidateCmdDrawMeshTasksIndirectNV(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
Jeff Bolz5c801d12019-10-09 10:38:45 -05001506 uint32_t drawCount, uint32_t stride) const {
Jeremy Gebben332d4dd2022-01-01 12:40:02 -07001507 const auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001508 bool skip = ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWMESHTASKSINDIRECTNV);
Jeremy Gebbenb20a8242021-11-05 15:14:43 -06001509 const auto buffer_state = Get<BUFFER_STATE>(buffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001510 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, CMD_DRAWMESHTASKSINDIRECTNV);
Lockee68ac652019-05-06 10:17:33 -06001511 if (drawCount > 1) {
Lockee68ac652019-05-06 10:17:33 -06001512 skip |= ValidateCmdDrawStrideWithBuffer(commandBuffer, "VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02157", stride,
1513 "VkDrawMeshTasksIndirectCommandNV", sizeof(VkDrawMeshTasksIndirectCommandNV),
Jeremy Gebben9f537102021-10-05 16:37:12 -06001514 drawCount, offset, buffer_state.get());
Lockee68ac652019-05-06 10:17:33 -06001515 }
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001516 return skip;
1517}
1518
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001519bool CoreChecks::PreCallValidateCmdDrawMeshTasksIndirectCountNV(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1520 VkBuffer countBuffer, VkDeviceSize countBufferOffset,
Jeff Bolz5c801d12019-10-09 10:38:45 -05001521 uint32_t maxDrawCount, uint32_t stride) const {
Jeremy Gebben332d4dd2022-01-01 12:40:02 -07001522 const auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001523 bool skip = ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWMESHTASKSINDIRECTCOUNTNV);
Jeremy Gebbenb20a8242021-11-05 15:14:43 -06001524 const auto buffer_state = Get<BUFFER_STATE>(buffer);
1525 const auto count_buffer_state = Get<BUFFER_STATE>(countBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001526 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, CMD_DRAWMESHTASKSINDIRECTCOUNTNV);
Jeremy Gebben9f537102021-10-05 16:37:12 -06001527 skip |= ValidateMemoryIsBoundToBuffer(count_buffer_state.get(), "vkCmdDrawMeshTasksIndirectCountNV()",
Shannon McPhersonde3eeba2019-04-30 16:53:59 -06001528 "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02714");
Jeremy Gebben9f537102021-10-05 16:37:12 -06001529 skip |= ValidateBufferUsageFlags(count_buffer_state.get(), VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT, true,
sfricke-samsungf692b972020-05-02 08:00:45 -07001530 "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02715",
1531 "vkCmdDrawMeshTasksIndirectCountNV()", "VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT");
Lockee68ac652019-05-06 10:17:33 -06001532 skip |= ValidateCmdDrawStrideWithStruct(commandBuffer, "VUID-vkCmdDrawMeshTasksIndirectCountNV-stride-02182", stride,
1533 "VkDrawMeshTasksIndirectCommandNV", sizeof(VkDrawMeshTasksIndirectCommandNV));
1534 if (maxDrawCount > 1) {
1535 skip |= ValidateCmdDrawStrideWithBuffer(commandBuffer, "VUID-vkCmdDrawMeshTasksIndirectCountNV-maxDrawCount-02183", stride,
1536 "VkDrawMeshTasksIndirectCommandNV", sizeof(VkDrawMeshTasksIndirectCommandNV),
Jeremy Gebben9f537102021-10-05 16:37:12 -06001537 maxDrawCount, offset, buffer_state.get());
Lockee68ac652019-05-06 10:17:33 -06001538 }
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001539 return skip;
1540}