blob: d293297dc7f47f382abf368f8f4c537d77ac15f6 [file] [log] [blame]
Lionel Landwerlin2d9f5632022-01-08 01:12:47 +02001/* Copyright (c) 2015-2022 The Khronos Group Inc.
2 * Copyright (c) 2015-2022 Valve Corporation
3 * Copyright (c) 2015-2022 LunarG, Inc.
4 * Copyright (C) 2015-2022 Google Inc.
stusmithedc4e392021-12-24 15:22:16 +00005 * Modifications Copyright (C) 2020-2022 Advanced Micro Devices, Inc. All rights reserved.
Jasper St. Pierre512613a2019-04-08 16:25:23 -07006 *
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
10 *
11 * http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 *
19 * Author: Cody Northrop <cnorthrop@google.com>
20 * Author: Michael Lentine <mlentine@google.com>
21 * Author: Tobin Ehlis <tobine@google.com>
22 * Author: Chia-I Wu <olv@google.com>
23 * Author: Chris Forbes <chrisf@ijw.co.nz>
24 * Author: Mark Lobodzinski <mark@lunarg.com>
25 * Author: Ian Elliott <ianelliott@google.com>
26 * Author: Dave Houlton <daveh@lunarg.com>
27 * Author: Dustin Graves <dustin@lunarg.com>
28 * Author: Jeremy Hayes <jeremy@lunarg.com>
29 * Author: Jon Ashburn <jon@lunarg.com>
30 * Author: Karl Schultz <karl@lunarg.com>
31 * Author: Mark Young <marky@lunarg.com>
32 * Author: Mike Schuchardt <mikes@lunarg.com>
33 * Author: Mike Weiblen <mikew@lunarg.com>
34 * Author: Tony Barbour <tony@LunarG.com>
35 * Author: John Zulauf <jzulauf@lunarg.com>
36 * Author: Shannon McPherson <shannon@lunarg.com>
Jeremy Kniagere6827432020-04-01 09:05:56 -060037 * Author: Jeremy Kniager <jeremyk@lunarg.com>
Mark Lobodzinskiddf43612020-11-17 11:28:02 -070038 * Author: Nathaniel Cesario <nathaniel@lunarg.com>
Tobias Hector6663c9b2020-11-05 10:18:02 +000039 * Author: Tobias Hector <tobias.hector@amd.com>
Jasper St. Pierre512613a2019-04-08 16:25:23 -070040 */
41
Jasper St. Pierre512613a2019-04-08 16:25:23 -070042#include "chassis.h"
43#include "core_validation.h"
44
Spencer Fricke507600b2020-03-22 13:23:06 -070045// clang-format off
Mark Lobodzinskiddf43612020-11-17 11:28:02 -070046struct DispatchVuidsCmdDraw : DrawDispatchVuid {
47 DispatchVuidsCmdDraw() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -070048 pipeline_bound = "VUID-vkCmdDraw-None-02700";
49 dynamic_state = "VUID-vkCmdDraw-commandBuffer-02701";
50 vertex_binding = "VUID-vkCmdDraw-None-04007";
51 vertex_binding_null = "VUID-vkCmdDraw-None-04008";
52 compatible_pipeline = "VUID-vkCmdDraw-None-02697";
53 render_pass_compatible = "VUID-vkCmdDraw-renderPass-02684";
54 subpass_index = "VUID-vkCmdDraw-subpass-02685";
55 sample_location = "VUID-vkCmdDraw-sampleLocationsEnable-02689";
56 linear_sampler = "VUID-vkCmdDraw-magFilter-04553";
57 cubic_sampler = "VUID-vkCmdDraw-None-02692";
58 viewport_count = "VUID-vkCmdDraw-viewportCount-03417";
59 scissor_count = "VUID-vkCmdDraw-scissorCount-03418";
60 viewport_scissor_count = "VUID-vkCmdDraw-viewportCount-03419";
61 primitive_topology = "VUID-vkCmdDraw-primitiveTopology-03420";
62 corner_sampled_address_mode = "VUID-vkCmdDraw-flags-02696";
63 subpass_input = "VUID-vkCmdDraw-None-02686";
64 imageview_atomic = "VUID-vkCmdDraw-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -070065 push_constants_set = "VUID-vkCmdDraw-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +010066 image_subresources_render_pass_write = "VUID-vkCmdDraw-None-06537";
67 image_subresources_subpass_read = "VUID-vkCmdDraw-None-06538";
68 image_subresources_subpass_write = "VUID-vkCmdDraw-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -070069 descriptor_valid = "VUID-vkCmdDraw-None-02699";
70 sampler_imageview_type = "VUID-vkCmdDraw-None-02702";
71 sampler_implicitLod_dref_proj = "VUID-vkCmdDraw-None-02703";
72 sampler_bias_offset = "VUID-vkCmdDraw-None-02704";
73 vertex_binding_attribute = "VUID-vkCmdDraw-None-02721";
74 dynamic_state_setting_commands = "VUID-vkCmdDraw-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -070075 rasterization_samples = "VUID-vkCmdDraw-rasterizationSamples-04740";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -070076 unprotected_command_buffer = "VUID-vkCmdDraw-commandBuffer-02707";
77 protected_command_buffer = "VUID-vkCmdDraw-commandBuffer-02712";
78 max_multiview_instance_index = "VUID-vkCmdDraw-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -070079 img_filter_cubic = "VUID-vkCmdDraw-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -070080 filter_cubic = "VUID-vkCmdDraw-filterCubic-02694";
81 filter_cubic_min_max = "VUID-vkCmdDraw-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +000082 viewport_count_primitive_shading_rate = "VUID-vkCmdDraw-primitiveFragmentShadingRateWithMultipleViewports-04552";
Vikram Kushwahaa57b0c32021-04-19 12:21:46 -070083 patch_control_points = "VUID-vkCmdDraw-None-04875";
84 rasterizer_discard_enable = "VUID-vkCmdDraw-None-04876";
85 depth_bias_enable = "VUID-vkCmdDraw-None-04877";
86 logic_op = "VUID-vkCmdDraw-logicOp-04878";
87 primitive_restart_enable = "VUID-vkCmdDraw-None-04879";
Piers Daniell924cd832021-05-18 13:48:47 -060088 vertex_input_binding_stride = "VUID-vkCmdDraw-pStrides-04884";
89 vertex_input = kVUID_Core_CmdDraw_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +020090 blend_enable = "VUID-vkCmdDraw-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +010091 color_write_enable = "VUID-vkCmdDraw-attachmentCount-06667";
Aaron Hagan92a44f82021-11-19 09:34:56 -050092 dynamic_rendering_view_mask = "VUID-vkCmdDraw-viewMask-06178";
93 dynamic_rendering_color_count = "VUID-vkCmdDraw-colorAttachmentCount-06179";
94 dynamic_rendering_color_formats = "VUID-vkCmdDraw-colorAttachmentCount-06180";
95 dynamic_rendering_depth_format = "VUID-vkCmdDraw-pDepthAttachment-06181";
96 dynamic_rendering_stencil_format = "VUID-vkCmdDraw-pStencilAttachment-06182";
97 dynamic_rendering_fsr = "VUID-vkCmdDraw-imageView-06183";
98 dynamic_rendering_fdm = "VUID-vkCmdDraw-imageView-06184";
Aaron Hagan09a0e172021-11-19 21:18:33 -050099 dynamic_rendering_color_sample = "VUID-vkCmdDraw-colorAttachmentCount-06185";
100 dynamic_rendering_depth_sample = "VUID-vkCmdDraw-pDepthAttachment-06186";
101 dynamic_rendering_stencil_sample = "VUID-vkCmdDraw-pStencilAttachment-06187";
102 dynamic_rendering_multi_sample = "VUID-vkCmdDraw-colorAttachmentCount-06188";
Aaron Haganaca50442021-12-07 22:26:29 -0500103 dynamic_rendering_06189 = "VUID-vkCmdDraw-pDepthAttachment-06189";
104 dynamic_rendering_06190 = "VUID-vkCmdDraw-pStencilAttachment-06190";
105 dynamic_rendering_06198 = "VUID-vkCmdDraw-renderPass-06198";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200106 storage_image_read_without_format = "VUID-vkCmdDraw-OpTypeImage-06424";
107 storage_image_write_without_format = "VUID-vkCmdDraw-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200108 depth_compare_sample = "VUID-vkCmdDraw-None-06479";
ziga-lunarg50188622022-03-26 01:18:32 +0100109 dynamic_sample_locations = "VUID-vkCmdDraw-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +0200110 primitives_generated = "VUID-vkCmdDraw-primitivesGeneratedQueryWithRasterizerDiscard-06708";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700111 }
112};
113
Tony-LunarG4490de42021-06-21 15:49:19 -0600114struct DispatchVuidsCmdDrawMultiEXT : DrawDispatchVuid {
115 DispatchVuidsCmdDrawMultiEXT() : DrawDispatchVuid() {
116 pipeline_bound = "VUID-vkCmdDrawMultiEXT-None-02700";
117 dynamic_state = "VUID-vkCmdDrawMultiEXT-commandBuffer-02701";
118 vertex_binding = "VUID-vkCmdDrawMultiEXT-None-04007";
119 vertex_binding_null = "VUID-vkCmdDrawMultiEXT-None-04008";
120 compatible_pipeline = "VUID-vkCmdDrawMultiEXT-None-02697";
121 render_pass_compatible = "VUID-vkCmdDrawMultiEXT-renderPass-02684";
122 subpass_index = "VUID-vkCmdDrawMultiEXT-subpass-02685";
123 sample_location = "VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-02689";
124 linear_sampler = "VUID-vkCmdDrawMultiEXT-magFilter-04553";
125 cubic_sampler = "VUID-vkCmdDrawMultiEXT-None-02692";
126 viewport_count = "VUID-vkCmdDrawMultiEXT-viewportCount-03417";
127 scissor_count = "VUID-vkCmdDrawMultiEXT-scissorCount-03418";
128 viewport_scissor_count = "VUID-vkCmdDrawMultiEXT-viewportCount-03419";
129 primitive_topology = "VUID-vkCmdDrawMultiEXT-primitiveTopology-03420";
130 corner_sampled_address_mode = "VUID-vkCmdDrawMultiEXT-flags-02696";
131 subpass_input = "VUID-vkCmdDrawMultiEXT-None-02686";
132 imageview_atomic = "VUID-vkCmdDrawMultiEXT-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700133 push_constants_set = "VUID-vkCmdDrawMultiEXT-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100134 image_subresources_render_pass_write = "VUID-vkCmdDrawMultiEXT-None-06537";
135 image_subresources_subpass_read = "VUID-vkCmdDrawMultiEXT-None-06538";
136 image_subresources_subpass_write = "VUID-vkCmdDrawMultiEXT-None-06539";
Tony-LunarG4490de42021-06-21 15:49:19 -0600137 descriptor_valid = "VUID-vkCmdDrawMultiEXT-None-02699";
138 sampler_imageview_type = "VUID-vkCmdDrawMultiEXT-None-02702";
139 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawMultiEXT-None-02703";
140 sampler_bias_offset = "VUID-vkCmdDrawMultiEXT-None-02704";
141 vertex_binding_attribute = "VUID-vkCmdDrawMultiEXT-None-02721";
142 dynamic_state_setting_commands = "VUID-vkCmdDrawMultiEXT-None-02859";
143 rasterization_samples = "VUID-vkCmdDrawMultiEXT-rasterizationSamples-04740";
144 unprotected_command_buffer = "VUID-vkCmdDrawMultiEXT-commandBuffer-02707";
145 protected_command_buffer = "VUID-vkCmdDrawMultiEXT-commandBuffer-02712";
146 max_multiview_instance_index = "VUID-vkCmdDrawMultiEXT-maxMultiviewInstanceIndex-02688";
147 img_filter_cubic = "VUID-vkCmdDrawMultiEXT-None-02693";
148 filter_cubic = "VUID-vkCmdDrawMultiEXT-filterCubic-02694";
149 filter_cubic_min_max = "VUID-vkCmdDrawMultiEXT-filterCubicMinmax-02695";
150 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawMultiEXT-primitiveFragmentShadingRateWithMultipleViewports-04552";
151 patch_control_points = "VUID-vkCmdDrawMultiEXT-None-04875";
152 rasterizer_discard_enable = "VUID-vkCmdDrawMultiEXT-None-04876";
153 depth_bias_enable = "VUID-vkCmdDrawMultiEXT-None-04877";
154 logic_op = "VUID-vkCmdDrawMultiEXT-logicOp-04878";
155 primitive_restart_enable = "VUID-vkCmdDrawMultiEXT-None-04879";
156 vertex_input_binding_stride = "VUID-vkCmdDrawMultiEXT-pStrides-04884";
157 vertex_input = kVUID_Core_CmdDrawMultiEXT_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200158 blend_enable = "VUID-vkCmdDrawMultiEXT-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100159 color_write_enable = "VUID-vkCmdDrawMultiEXT-attachmentCount-06667";
Aaron Hagan92a44f82021-11-19 09:34:56 -0500160 dynamic_rendering_view_mask = "VUID-vkCmdDrawMultiEXT-viewMask-06178";
161 dynamic_rendering_color_count = "VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06179";
162 dynamic_rendering_color_formats = "VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06180";
163 dynamic_rendering_depth_format = "VUID-vkCmdDrawMultiEXT-pDepthAttachment-06181";
164 dynamic_rendering_stencil_format = "VUID-vkCmdDrawMultiEXT-pStencilAttachment-06182";
165 dynamic_rendering_fsr = "VUID-vkCmdDrawMultiEXT-imageView-06183";
166 dynamic_rendering_fdm = "VUID-vkCmdDrawMultiEXT-imageView-06184";
Aaron Hagan09a0e172021-11-19 21:18:33 -0500167 dynamic_rendering_color_sample = "VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06185";
168 dynamic_rendering_depth_sample = "VUID-vkCmdDrawMultiEXT-pDepthAttachment-06186";
169 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawMultiEXT-pStencilAttachment-06187";
170 dynamic_rendering_multi_sample = "VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06188";
Aaron Haganaca50442021-12-07 22:26:29 -0500171 dynamic_rendering_06189 = "VUID-vkCmdDrawMultiEXT-pDepthAttachment-06189";
172 dynamic_rendering_06190 = "VUID-vkCmdDrawMultiEXT-pStencilAttachment-06190";
173 dynamic_rendering_06198 = "VUID-vkCmdDrawMultiEXT-renderPass-06198";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200174 storage_image_read_without_format = "VUID-vkCmdDrawMultiEXT-OpTypeImage-06424";
175 storage_image_write_without_format = "VUID-vkCmdDrawMultiEXT-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200176 depth_compare_sample = "VUID-vkCmdDrawMultiEXT-None-06479";
ziga-lunarg50188622022-03-26 01:18:32 +0100177 dynamic_sample_locations = "VUID-vkCmdDrawMultiEXT-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +0200178 primitives_generated = "VUID-vkCmdDrawMultiEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708";
Tony-LunarG4490de42021-06-21 15:49:19 -0600179 }
180};
181
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700182struct DispatchVuidsCmdDrawIndexed : DrawDispatchVuid {
183 DispatchVuidsCmdDrawIndexed() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700184 pipeline_bound = "VUID-vkCmdDrawIndexed-None-02700";
185 dynamic_state = "VUID-vkCmdDrawIndexed-commandBuffer-02701";
186 vertex_binding = "VUID-vkCmdDrawIndexed-None-04007";
187 vertex_binding_null = "VUID-vkCmdDrawIndexed-None-04008";
188 compatible_pipeline = "VUID-vkCmdDrawIndexed-None-02697";
189 render_pass_compatible = "VUID-vkCmdDrawIndexed-renderPass-02684";
190 subpass_index = "VUID-vkCmdDrawIndexed-subpass-02685";
191 sample_location = "VUID-vkCmdDrawIndexed-sampleLocationsEnable-02689";
192 linear_sampler = "VUID-vkCmdDrawIndexed-magFilter-04553";
193 cubic_sampler = "VUID-vkCmdDrawIndexed-None-02692";
194 viewport_count = "VUID-vkCmdDrawIndexed-viewportCount-03417";
195 scissor_count = "VUID-vkCmdDrawIndexed-scissorCount-03418";
196 viewport_scissor_count = "VUID-vkCmdDrawIndexed-viewportCount-03419";
197 primitive_topology = "VUID-vkCmdDrawIndexed-primitiveTopology-03420";
198 corner_sampled_address_mode = "VUID-vkCmdDrawIndexed-flags-02696";
199 subpass_input = "VUID-vkCmdDrawIndexed-None-02686";
200 imageview_atomic = "VUID-vkCmdDrawIndexed-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700201 push_constants_set = "VUID-vkCmdDrawIndexed-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100202 image_subresources_render_pass_write = "VUID-vkCmdDrawIndexed-None-06537";
203 image_subresources_subpass_read = "VUID-vkCmdDrawIndexed-None-06538";
204 image_subresources_subpass_write = "VUID-vkCmdDrawIndexed-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700205 descriptor_valid = "VUID-vkCmdDrawIndexed-None-02699";
206 sampler_imageview_type = "VUID-vkCmdDrawIndexed-None-02702";
207 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawIndexed-None-02703";
208 sampler_bias_offset = "VUID-vkCmdDrawIndexed-None-02704";
209 vertex_binding_attribute = "VUID-vkCmdDrawIndexed-None-02721";
210 dynamic_state_setting_commands = "VUID-vkCmdDrawIndexed-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700211 rasterization_samples = "VUID-vkCmdDrawIndexed-rasterizationSamples-04740";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700212 unprotected_command_buffer = "VUID-vkCmdDrawIndexed-commandBuffer-02707";
213 protected_command_buffer = "VUID-vkCmdDrawIndexed-commandBuffer-02712";
214 max_multiview_instance_index = "VUID-vkCmdDrawIndexed-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700215 img_filter_cubic = "VUID-vkCmdDrawIndexed-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700216 filter_cubic = "VUID-vkCmdDrawIndexed-filterCubic-02694";
217 filter_cubic_min_max = "VUID-vkCmdDrawIndexed-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000218 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawIndexed-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600219 patch_control_points = "VUID-vkCmdDrawIndexed-None-04875";
220 rasterizer_discard_enable = "VUID-vkCmdDrawIndexed-None-04876";
221 depth_bias_enable = "VUID-vkCmdDrawIndexed-None-04877";
222 logic_op = "VUID-vkCmdDrawIndexed-logicOp-04878";
223 primitive_restart_enable = "VUID-vkCmdDrawIndexed-None-04879";
224 vertex_input_binding_stride = "VUID-vkCmdDrawIndexed-pStrides-04884";
225 vertex_input = kVUID_Core_CmdDrawIndexed_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200226 blend_enable = "VUID-vkCmdDrawIndexed-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100227 color_write_enable = "VUID-vkCmdDrawIndexed-attachmentCount-06667";
Aaron Hagan92a44f82021-11-19 09:34:56 -0500228 dynamic_rendering_view_mask = "VUID-vkCmdDrawIndexed-viewMask-06178";
229 dynamic_rendering_color_count = "VUID-vkCmdDrawIndexed-colorAttachmentCount-06179";
230 dynamic_rendering_color_formats = "VUID-vkCmdDrawIndexed-colorAttachmentCount-06180";
231 dynamic_rendering_depth_format = "VUID-vkCmdDrawIndexed-pDepthAttachment-06181";
232 dynamic_rendering_stencil_format = "VUID-vkCmdDrawIndexed-pStencilAttachment-06182";
233 dynamic_rendering_fsr = "VUID-vkCmdDrawIndexed-imageView-06183";
234 dynamic_rendering_fdm = "VUID-vkCmdDrawIndexed-imageView-06184";
Aaron Hagan09a0e172021-11-19 21:18:33 -0500235 dynamic_rendering_color_sample = "VUID-vkCmdDrawIndexed-colorAttachmentCount-06185";
236 dynamic_rendering_depth_sample = "VUID-vkCmdDrawIndexed-pDepthAttachment-06186";
237 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawIndexed-pStencilAttachment-06187";
238 dynamic_rendering_multi_sample = "VUID-vkCmdDrawIndexed-colorAttachmentCount-06188";
Aaron Haganaca50442021-12-07 22:26:29 -0500239 dynamic_rendering_06189 = "VUID-vkCmdDrawIndexed-pDepthAttachment-06189";
240 dynamic_rendering_06190 = "VUID-vkCmdDrawIndexed-pStencilAttachment-06190";
241 dynamic_rendering_06198 = "VUID-vkCmdDrawIndexed-renderPass-06198";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200242 storage_image_read_without_format = "VUID-vkCmdDrawIndexed-OpTypeImage-06424";
243 storage_image_write_without_format = "VUID-vkCmdDrawIndexed-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200244 depth_compare_sample = "VUID-vkCmdDrawIndexed-None-06479";
ziga-lunarg50188622022-03-26 01:18:32 +0100245 dynamic_sample_locations = "VUID-vkCmdDrawIndexed-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +0200246 primitives_generated = "VUID-vkCmdDrawIndexed-primitivesGeneratedQueryWithRasterizerDiscard-06708";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700247 }
248};
249
Tony-LunarG4490de42021-06-21 15:49:19 -0600250struct DispatchVuidsCmdDrawMultiIndexedEXT : DrawDispatchVuid {
251 DispatchVuidsCmdDrawMultiIndexedEXT() : DrawDispatchVuid() {
Lionel Landwerlin45e981c2021-12-07 15:29:40 +0200252 pipeline_bound = "VUID-vkCmdDrawMultiIndexedEXT-None-02700";
253 dynamic_state = "VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02701";
254 vertex_binding = "VUID-vkCmdDrawMultiIndexedEXT-None-04007";
255 vertex_binding_null = "VUID-vkCmdDrawMultiIndexedEXT-None-04008";
256 compatible_pipeline = "VUID-vkCmdDrawMultiIndexedEXT-None-02697";
257 render_pass_compatible = "VUID-vkCmdDrawMultiIndexedEXT-renderPass-02684";
258 subpass_index = "VUID-vkCmdDrawMultiIndexedEXT-subpass-02685";
259 sample_location = "VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-02689";
260 linear_sampler = "VUID-vkCmdDrawMultiIndexedEXT-magFilter-04553";
261 cubic_sampler = "VUID-vkCmdDrawMultiIndexedEXT-None-02692";
262 viewport_count = "VUID-vkCmdDrawMultiIndexedEXT-viewportCount-03417";
263 scissor_count = "VUID-vkCmdDrawMultiIndexedEXT-scissorCount-03418";
264 viewport_scissor_count = "VUID-vkCmdDrawMultiIndexedEXT-viewportCount-03419";
265 primitive_topology = "VUID-vkCmdDrawMultiIndexedEXT-primitiveTopology-03420";
266 corner_sampled_address_mode = "VUID-vkCmdDrawMultiIndexedEXT-flags-02696";
267 subpass_input = "VUID-vkCmdDrawMultiIndexedEXT-None-02686";
268 imageview_atomic = "VUID-vkCmdDrawMultiIndexedEXT-None-02691";
269 push_constants_set = "VUID-vkCmdDrawMultiIndexedEXT-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100270 image_subresources_render_pass_write = "VUID-vkCmdDrawMultiIndexedEXT-None-06537";
271 image_subresources_subpass_read = "VUID-vkCmdDrawMultiIndexedEXT-None-06538";
272 image_subresources_subpass_write = "VUID-vkCmdDrawMultiIndexedEXT-None-06539";
Lionel Landwerlin45e981c2021-12-07 15:29:40 +0200273 descriptor_valid = "VUID-vkCmdDrawMultiIndexedEXT-None-02699";
274 sampler_imageview_type = "VUID-vkCmdDrawMultiIndexedEXT-None-02702";
275 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawMultiIndexedEXT-None-02703";
276 sampler_bias_offset = "VUID-vkCmdDrawMultiIndexedEXT-None-02704";
277 vertex_binding_attribute = "VUID-vkCmdDrawMultiIndexedEXT-None-02721";
278 dynamic_state_setting_commands = "VUID-vkCmdDrawMultiIndexedEXT-None-02859";
279 rasterization_samples = "VUID-vkCmdDrawMultiIndexedEXT-rasterizationSamples-04740";
280 unprotected_command_buffer = "VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02707";
281 protected_command_buffer = "VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02712";
282 max_multiview_instance_index = "VUID-vkCmdDrawMultiIndexedEXT-maxMultiviewInstanceIndex-02688";
283 img_filter_cubic = "VUID-vkCmdDrawMultiIndexedEXT-None-02693";
284 filter_cubic = "VUID-vkCmdDrawMultiIndexedEXT-filterCubic-02694";
285 filter_cubic_min_max = "VUID-vkCmdDrawMultiIndexedEXT-filterCubicMinmax-02695";
Tony-LunarG4490de42021-06-21 15:49:19 -0600286 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawMultiIndexedEXT-primitiveFragmentShadingRateWithMultipleViewports-04552";
Lionel Landwerlin45e981c2021-12-07 15:29:40 +0200287 patch_control_points = "VUID-vkCmdDrawMultiIndexedEXT-None-04875";
288 rasterizer_discard_enable = "VUID-vkCmdDrawMultiIndexedEXT-None-04876";
289 depth_bias_enable = "VUID-vkCmdDrawMultiIndexedEXT-None-04877";
290 logic_op = "VUID-vkCmdDrawMultiIndexedEXT-logicOp-04878";
291 primitive_restart_enable = "VUID-vkCmdDrawMultiIndexedEXT-None-04879";
292 vertex_input_binding_stride = "VUID-vkCmdDrawMultiIndexedEXT-pStrides-04884";
293 vertex_input = kVUID_Core_CmdDrawMultiIndexedEXT_VertexInput;
294 blend_enable = "VUID-vkCmdDrawMultiIndexedEXT-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100295 color_write_enable = "VUID-vkCmdDrawMultiIndexedEXT-attachmentCount-06667";
Lionel Landwerlin45e981c2021-12-07 15:29:40 +0200296 dynamic_rendering_view_mask = "VUID-vkCmdDrawMultiIndexedEXT-viewMask-06178";
297 dynamic_rendering_color_count = "VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-06179";
298 dynamic_rendering_color_formats = "VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-06180";
299 dynamic_rendering_depth_format = "VUID-vkCmdDrawMultiIndexedEXT-pDepthAttachment-06181";
300 dynamic_rendering_stencil_format = "VUID-vkCmdDrawMultiIndexedEXT-pStencilAttachment-06182";
301 dynamic_rendering_fsr = "VUID-vkCmdDrawMultiIndexedEXT-imageView-06183";
302 dynamic_rendering_fdm = "VUID-vkCmdDrawMultiIndexedEXT-imageView-06184";
303 dynamic_rendering_color_sample = "VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-06185";
304 dynamic_rendering_depth_sample = "VUID-vkCmdDrawMultiIndexedEXT-pDepthAttachment-06186";
305 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawMultiIndexedEXT-pStencilAttachment-06187";
306 dynamic_rendering_multi_sample = "VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-06188";
307 dynamic_rendering_06189 = "VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-06189";
308 dynamic_rendering_06190 = "VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-06190";
309 dynamic_rendering_06198 = "VUID-vkCmdDrawIndexedIndirect-renderPass-06198";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200310 storage_image_read_without_format = "VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-06424";
311 storage_image_write_without_format = "VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200312 depth_compare_sample = "VUID-vkCmdDrawMultiIndexedEXT-None-06479";
ziga-lunarg50188622022-03-26 01:18:32 +0100313 dynamic_sample_locations = "VUID-vkCmdDrawMultiIndexedEXT-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +0200314 primitives_generated = "VUID-vkCmdDrawMultiIndexedEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708";
Tony-LunarG4490de42021-06-21 15:49:19 -0600315 }
316};
317
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700318struct DispatchVuidsCmdDrawIndirect : DrawDispatchVuid {
319 DispatchVuidsCmdDrawIndirect() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700320 pipeline_bound = "VUID-vkCmdDrawIndirect-None-02700";
321 dynamic_state = "VUID-vkCmdDrawIndirect-commandBuffer-02701";
322 vertex_binding = "VUID-vkCmdDrawIndirect-None-04007";
323 vertex_binding_null = "VUID-vkCmdDrawIndirect-None-04008";
324 compatible_pipeline = "VUID-vkCmdDrawIndirect-None-02697";
325 render_pass_compatible = "VUID-vkCmdDrawIndirect-renderPass-02684";
326 subpass_index = "VUID-vkCmdDrawIndirect-subpass-02685";
327 sample_location = "VUID-vkCmdDrawIndirect-sampleLocationsEnable-02689";
328 linear_sampler = "VUID-vkCmdDrawIndirect-magFilter-04553";
329 cubic_sampler = "VUID-vkCmdDrawIndirect-None-02692";
330 indirect_protected_cb = "VUID-vkCmdDrawIndirect-commandBuffer-02711";
331 indirect_contiguous_memory = "VUID-vkCmdDrawIndirect-buffer-02708";
332 indirect_buffer_bit = "VUID-vkCmdDrawIndirect-buffer-02709";
333 viewport_count = "VUID-vkCmdDrawIndirect-viewportCount-03417";
334 scissor_count = "VUID-vkCmdDrawIndirect-scissorCount-03418";
335 viewport_scissor_count = "VUID-vkCmdDrawIndirect-viewportCount-03419";
336 primitive_topology = "VUID-vkCmdDrawIndirect-primitiveTopology-03420";
337 corner_sampled_address_mode = "VUID-vkCmdDrawIndirect-flags-02696";
338 subpass_input = "VUID-vkCmdDrawIndirect-None-02686";
339 imageview_atomic = "VUID-vkCmdDrawIndirect-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700340 push_constants_set = "VUID-vkCmdDrawIndirect-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100341 image_subresources_render_pass_write = "VUID-vkCmdDrawIndirect-None-06537";
342 image_subresources_subpass_read = "VUID-vkCmdDrawIndirect-None-06538";
343 image_subresources_subpass_write = "VUID-vkCmdDrawIndirect-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700344 descriptor_valid = "VUID-vkCmdDrawIndirect-None-02699";
345 sampler_imageview_type = "VUID-vkCmdDrawIndirect-None-02702";
346 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawIndirect-None-02703";
347 sampler_bias_offset = "VUID-vkCmdDrawIndirect-None-02704";
348 vertex_binding_attribute = "VUID-vkCmdDrawIndirect-None-02721";
349 dynamic_state_setting_commands = "VUID-vkCmdDrawIndirect-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700350 rasterization_samples = "VUID-vkCmdDrawIndirect-rasterizationSamples-04740";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700351 unprotected_command_buffer = "VUID-vkCmdDrawIndirect-commandBuffer-02707";
352 max_multiview_instance_index = "VUID-vkCmdDrawIndirect-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700353 img_filter_cubic = "VUID-vkCmdDrawIndirect-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700354 filter_cubic = "VUID-vkCmdDrawIndirect-filterCubic-02694";
355 filter_cubic_min_max = "VUID-vkCmdDrawIndirect-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000356 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawIndirect-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600357 patch_control_points = "VUID-vkCmdDrawIndirect-None-04875";
358 rasterizer_discard_enable = "VUID-vkCmdDrawIndirect-None-04876";
359 depth_bias_enable = "VUID-vkCmdDrawIndirect-None-04877";
360 logic_op = "VUID-vkCmdDrawIndirect-logicOp-04878";
361 primitive_restart_enable = "VUID-vkCmdDrawIndirect-None-04879";
362 vertex_input_binding_stride = "VUID-vkCmdDrawIndirect-pStrides-04884";
363 vertex_input = kVUID_Core_CmdDrawIndirect_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200364 blend_enable = "VUID-vkCmdDrawIndirect-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100365 color_write_enable = "VUID-vkCmdDrawIndirect-attachmentCount-06667";
Aaron Hagan92a44f82021-11-19 09:34:56 -0500366 dynamic_rendering_view_mask = "VUID-vkCmdDrawIndirect-viewMask-06178";
367 dynamic_rendering_color_count = "VUID-vkCmdDrawIndirect-colorAttachmentCount-06179";
368 dynamic_rendering_color_formats = "VUID-vkCmdDrawIndirect-colorAttachmentCount-06180";
369 dynamic_rendering_depth_format = "VUID-vkCmdDrawIndirect-pDepthAttachment-06181";
370 dynamic_rendering_stencil_format = "VUID-vkCmdDrawIndirect-pStencilAttachment-06182";
371 dynamic_rendering_fsr = "VUID-vkCmdDrawIndirect-imageView-06183";
372 dynamic_rendering_fdm = "VUID-vkCmdDrawIndirect-imageView-06184";
Aaron Hagan09a0e172021-11-19 21:18:33 -0500373 dynamic_rendering_color_sample = "VUID-vkCmdDrawIndirect-colorAttachmentCount-06185";
374 dynamic_rendering_depth_sample = "VUID-vkCmdDrawIndirect-pDepthAttachment-06186";
375 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawIndirect-pStencilAttachment-06187";
376 dynamic_rendering_multi_sample = "VUID-vkCmdDrawIndirect-colorAttachmentCount-06188";
Aaron Haganaca50442021-12-07 22:26:29 -0500377 dynamic_rendering_06189 = "VUID-vkCmdDrawIndirect-pDepthAttachment-06189";
378 dynamic_rendering_06190 = "VUID-vkCmdDrawIndirect-pStencilAttachment-06190";
379 dynamic_rendering_06198 = "VUID-vkCmdDrawIndirect-renderPass-06198";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200380 storage_image_read_without_format = "VUID-vkCmdDrawIndirect-OpTypeImage-06424";
381 storage_image_write_without_format = "VUID-vkCmdDrawIndirect-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200382 depth_compare_sample = "VUID-vkCmdDrawIndirect-None-06479";
ziga-lunarg50188622022-03-26 01:18:32 +0100383 dynamic_sample_locations = "VUID-vkCmdDrawIndirect-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +0200384 primitives_generated = "VUID-vkCmdDrawIndirect-primitivesGeneratedQueryWithRasterizerDiscard-06708";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700385 }
386};
387
388struct DispatchVuidsCmdDrawIndexedIndirect : DrawDispatchVuid {
389 DispatchVuidsCmdDrawIndexedIndirect() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700390 pipeline_bound = "VUID-vkCmdDrawIndexedIndirect-None-02700";
391 dynamic_state = "VUID-vkCmdDrawIndexedIndirect-commandBuffer-02701";
392 vertex_binding = "VUID-vkCmdDrawIndexedIndirect-None-04007";
393 vertex_binding_null = "VUID-vkCmdDrawIndexedIndirect-None-04008";
394 compatible_pipeline = "VUID-vkCmdDrawIndexedIndirect-None-02697";
395 render_pass_compatible = "VUID-vkCmdDrawIndexedIndirect-renderPass-02684";
396 subpass_index = "VUID-vkCmdDrawIndexedIndirect-subpass-02685";
397 sample_location = "VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-02689";
398 linear_sampler = "VUID-vkCmdDrawIndexedIndirect-magFilter-04553";
399 cubic_sampler = "VUID-vkCmdDrawIndexedIndirect-None-02692";
400 indirect_protected_cb = "VUID-vkCmdDrawIndexedIndirect-commandBuffer-02711";
401 indirect_contiguous_memory = "VUID-vkCmdDrawIndexedIndirect-buffer-02708";
402 indirect_buffer_bit = "VUID-vkCmdDrawIndexedIndirect-buffer-02709";
403 viewport_count = "VUID-vkCmdDrawIndexedIndirect-viewportCount-03417";
404 scissor_count = "VUID-vkCmdDrawIndexedIndirect-scissorCount-03418";
405 viewport_scissor_count = "VUID-vkCmdDrawIndexedIndirect-viewportCount-03419";
406 primitive_topology = "VUID-vkCmdDrawIndexedIndirect-primitiveTopology-03420";
407 corner_sampled_address_mode = "VUID-vkCmdDrawIndexedIndirect-flags-02696";
408 subpass_input = "VUID-vkCmdDrawIndexedIndirect-None-02686";
409 imageview_atomic = "VUID-vkCmdDrawIndexedIndirect-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700410 push_constants_set = "VUID-vkCmdDrawIndexedIndirect-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100411 image_subresources_render_pass_write = "VUID-vkCmdDrawIndexedIndirect-None-06537";
412 image_subresources_subpass_read = "VUID-vkCmdDrawIndexedIndirect-None-06538";
413 image_subresources_subpass_write = "VUID-vkCmdDrawIndexedIndirect-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700414 descriptor_valid = "VUID-vkCmdDrawIndexedIndirect-None-02699";
415 sampler_imageview_type = "VUID-vkCmdDrawIndexedIndirect-None-02702";
416 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawIndexedIndirect-None-02703";
417 sampler_bias_offset = "VUID-vkCmdDrawIndexedIndirect-None-02704";
418 vertex_binding_attribute = "VUID-vkCmdDrawIndexedIndirect-None-02721";
419 dynamic_state_setting_commands = "VUID-vkCmdDrawIndexedIndirect-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700420 rasterization_samples = "VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-04740";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700421 unprotected_command_buffer = "VUID-vkCmdDrawIndexedIndirect-commandBuffer-02707";
422 max_multiview_instance_index = "VUID-vkCmdDrawIndexedIndirect-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700423 img_filter_cubic = "VUID-vkCmdDrawIndexedIndirect-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700424 filter_cubic = "VUID-vkCmdDrawIndexedIndirect-filterCubic-02694";
425 filter_cubic_min_max = "VUID-vkCmdDrawIndexedIndirect-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000426 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawIndexedIndirect-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600427 patch_control_points = "VUID-vkCmdDrawIndexedIndirect-None-04875";
428 rasterizer_discard_enable = "VUID-vkCmdDrawIndexedIndirect-None-04876";
429 depth_bias_enable = "VUID-vkCmdDrawIndexedIndirect-None-04877";
430 logic_op = "VUID-vkCmdDrawIndexedIndirect-logicOp-04878";
431 primitive_restart_enable = "VUID-vkCmdDrawIndexedIndirect-None-04879";
432 vertex_input_binding_stride = "VUID-vkCmdDrawIndexedIndirect-pStrides-04884";
433 vertex_input = kVUID_Core_CmdDrawIndexedIndirect_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200434 blend_enable = "VUID-vkCmdDrawIndexedIndirect-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100435 color_write_enable = "VUID-vkCmdDrawIndexedIndirect-attachmentCount-06667";
Aaron Hagan92a44f82021-11-19 09:34:56 -0500436 dynamic_rendering_view_mask = "VUID-vkCmdDrawIndexedIndirect-viewMask-06178";
437 dynamic_rendering_color_count = "VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06179";
438 dynamic_rendering_color_formats = "VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06180";
439 dynamic_rendering_depth_format = "VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-06181";
440 dynamic_rendering_stencil_format = "VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-06182";
441 dynamic_rendering_fsr = "VUID-vkCmdDrawIndexedIndirect-imageView-06183";
442 dynamic_rendering_fdm = "VUID-vkCmdDrawIndexedIndirect-imageView-06184";
Aaron Hagan09a0e172021-11-19 21:18:33 -0500443 dynamic_rendering_color_sample = "VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06185";
444 dynamic_rendering_depth_sample = "VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-06186";
445 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-06187";
446 dynamic_rendering_multi_sample = "VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06188";
Aaron Haganaca50442021-12-07 22:26:29 -0500447 dynamic_rendering_06189 = "VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-06189";
448 dynamic_rendering_06190 = "VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-06190";
449 dynamic_rendering_06198 = "VUID-vkCmdDrawIndexedIndirect-renderPass-06198";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200450 storage_image_read_without_format = "VUID-vkCmdDrawIndexedIndirect-OpTypeImage-06424";
451 storage_image_write_without_format = "VUID-vkCmdDrawIndexedIndirect-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200452 depth_compare_sample = "VUID-vkCmdDrawIndexedIndirect-None-06479";
ziga-lunarg50188622022-03-26 01:18:32 +0100453 dynamic_sample_locations = "VUID-vkCmdDrawIndexedIndirect-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +0200454 primitives_generated = "VUID-vkCmdDrawIndexedIndirect-primitivesGeneratedQueryWithRasterizerDiscard-06708";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700455 }
456};
457
458struct DispatchVuidsCmdDispatch : DrawDispatchVuid {
459 DispatchVuidsCmdDispatch() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700460 pipeline_bound = "VUID-vkCmdDispatch-None-02700";
Mark Lobodzinski02d37552020-12-28 13:29:46 -0700461 dynamic_state = "VUID-vkCmdDispatch-commandBuffer-02701";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700462 compatible_pipeline = "VUID-vkCmdDispatch-None-02697";
463 linear_sampler = "VUID-vkCmdDispatch-magFilter-04553";
464 cubic_sampler = "VUID-vkCmdDispatch-None-02692";
465 corner_sampled_address_mode = "VUID-vkCmdDispatch-flags-02696";
466 imageview_atomic = "VUID-vkCmdDispatch-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700467 push_constants_set = "VUID-vkCmdDispatch-maintenance4-06425";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700468 descriptor_valid = "VUID-vkCmdDispatch-None-02699";
469 sampler_imageview_type = "VUID-vkCmdDispatch-None-02702";
470 sampler_implicitLod_dref_proj = "VUID-vkCmdDispatch-None-02703";
471 sampler_bias_offset = "VUID-vkCmdDispatch-None-02704";
472 dynamic_state_setting_commands = "VUID-vkCmdDispatch-None-02859";
473 unprotected_command_buffer = "VUID-vkCmdDispatch-commandBuffer-02707";
474 protected_command_buffer = "VUID-vkCmdDispatch-commandBuffer-02712";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700475 img_filter_cubic = "VUID-vkCmdDispatch-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700476 filter_cubic = "VUID-vkCmdDispatch-filterCubic-02694";
477 filter_cubic_min_max = "VUID-vkCmdDispatch-filterCubicMinmax-02695";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200478 storage_image_read_without_format = "VUID-vkCmdDispatch-OpTypeImage-06424";
479 storage_image_write_without_format = "VUID-vkCmdDispatch-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200480 depth_compare_sample = "VUID-vkCmdDispatch-None-06479";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700481 }
482};
483
484struct DispatchVuidsCmdDispatchIndirect : DrawDispatchVuid {
485 DispatchVuidsCmdDispatchIndirect() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700486 pipeline_bound = "VUID-vkCmdDispatchIndirect-None-02700";
Mark Lobodzinski02d37552020-12-28 13:29:46 -0700487 dynamic_state = "VUID-vkCmdDispatchIndirect-commandBuffer-02701";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700488 compatible_pipeline = "VUID-vkCmdDispatchIndirect-None-02697";
489 linear_sampler = "VUID-vkCmdDispatchIndirect-magFilter-04553";
490 cubic_sampler = "VUID-vkCmdDispatchIndirect-None-02692";
491 indirect_protected_cb = "VUID-vkCmdDispatchIndirect-commandBuffer-02711";
492 indirect_contiguous_memory = "VUID-vkCmdDispatchIndirect-buffer-02708";
493 indirect_buffer_bit = "VUID-vkCmdDispatchIndirect-buffer-02709";
494 corner_sampled_address_mode = "VUID-vkCmdDispatchIndirect-flags-02696";
495 imageview_atomic = "VUID-vkCmdDispatchIndirect-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700496 push_constants_set = "VUID-vkCmdDispatchIndirect-maintenance4-06425";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700497 descriptor_valid = "VUID-vkCmdDispatchIndirect-None-02699";
498 sampler_imageview_type = "VUID-vkCmdDispatchIndirect-None-02702";
499 sampler_implicitLod_dref_proj = "VUID-vkCmdDispatchIndirect-None-02703";
500 sampler_bias_offset = "VUID-vkCmdDispatchIndirect-None-02704";
501 dynamic_state_setting_commands = "VUID-vkCmdDispatchIndirect-None-02859";
502 unprotected_command_buffer = "VUID-vkCmdDispatchIndirect-commandBuffer-02707";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700503 img_filter_cubic = "VUID-vkCmdDispatchIndirect-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700504 filter_cubic = "VUID-vkCmdDispatchIndirect-filterCubic-02694";
505 filter_cubic_min_max = "VUID-vkCmdDispatchIndirect-filterCubicMinmax-02695";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200506 storage_image_read_without_format = "VUID-vkCmdDispatchIndirect-OpTypeImage-06424";
507 storage_image_write_without_format = "VUID-vkCmdDispatchIndirect-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200508 depth_compare_sample = "VUID-vkCmdDispatchIndirect-None-06479";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700509 }
510};
511
512struct DispatchVuidsCmdDrawIndirectCount : DrawDispatchVuid {
513 DispatchVuidsCmdDrawIndirectCount() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700514 pipeline_bound = "VUID-vkCmdDrawIndirectCount-None-02700";
515 dynamic_state = "VUID-vkCmdDrawIndirectCount-commandBuffer-02701";
516 vertex_binding = "VUID-vkCmdDrawIndirectCount-None-04007";
517 vertex_binding_null = "VUID-vkCmdDrawIndirectCount-None-04008";
518 compatible_pipeline = "VUID-vkCmdDrawIndirectCount-None-02697";
519 render_pass_compatible = "VUID-vkCmdDrawIndirectCount-renderPass-02684";
520 subpass_index = "VUID-vkCmdDrawIndirectCount-subpass-02685";
521 sample_location = "VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-02689";
522 linear_sampler = "VUID-vkCmdDrawIndirectCount-magFilter-04553";
523 cubic_sampler = "VUID-vkCmdDrawIndirectCount-None-02692";
524 indirect_protected_cb = "VUID-vkCmdDrawIndirectCount-commandBuffer-02711";
525 indirect_contiguous_memory = "VUID-vkCmdDrawIndirectCount-buffer-02708";
526 indirect_buffer_bit = "VUID-vkCmdDrawIndirectCount-buffer-02709";
527 viewport_count = "VUID-vkCmdDrawIndirectCount-viewportCount-03417";
528 scissor_count = "VUID-vkCmdDrawIndirectCount-scissorCount-03418";
529 viewport_scissor_count = "VUID-vkCmdDrawIndirectCount-viewportCount-03419";
530 primitive_topology = "VUID-vkCmdDrawIndirectCount-primitiveTopology-03420";
531 corner_sampled_address_mode = "VUID-vkCmdDrawIndirectCount-flags-02696";
532 subpass_input = "VUID-vkCmdDrawIndirectCount-None-02686";
533 imageview_atomic = "VUID-vkCmdDrawIndirectCount-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700534 push_constants_set = "VUID-vkCmdDrawIndirectCount-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100535 image_subresources_render_pass_write = "VUID-vkCmdDrawIndirectCount-None-06537";
536 image_subresources_subpass_read = "VUID-vkCmdDrawIndirectCount-None-06538";
537 image_subresources_subpass_write = "VUID-vkCmdDrawIndirectCount-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700538 descriptor_valid = "VUID-vkCmdDrawIndirectCount-None-02699";
539 sampler_imageview_type = "VUID-vkCmdDrawIndirectCount-None-02702";
540 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawIndirectCount-None-02703";
541 sampler_bias_offset = "VUID-vkCmdDrawIndirectCount-None-02704";
542 vertex_binding_attribute = "VUID-vkCmdDrawIndirectCount-None-02721";
543 dynamic_state_setting_commands = "VUID-vkCmdDrawIndirectCount-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700544 rasterization_samples = "VUID-vkCmdDrawIndirectCount-rasterizationSamples-04740";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700545 unprotected_command_buffer = "VUID-vkCmdDrawIndirectCount-commandBuffer-02707";
546 max_multiview_instance_index = "VUID-vkCmdDrawIndirectCount-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700547 img_filter_cubic = "VUID-vkCmdDrawIndirectCount-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700548 filter_cubic = "VUID-vkCmdDrawIndirectCount-filterCubic-02694";
549 filter_cubic_min_max = "VUID-vkCmdDrawIndirectCount-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000550 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawIndirectCount-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600551 patch_control_points = "VUID-vkCmdDrawIndirectCount-None-04875";
552 rasterizer_discard_enable = "VUID-vkCmdDrawIndirectCount-None-04876";
553 depth_bias_enable = "VUID-vkCmdDrawIndirectCount-None-04877";
554 logic_op = "VUID-vkCmdDrawIndirectCount-logicOp-04878";
555 primitive_restart_enable = "VUID-vkCmdDrawIndirectCount-None-04879";
556 vertex_input_binding_stride = "VUID-vkCmdDrawIndirectCount-pStrides-04884";
557 vertex_input = kVUID_Core_CmdDrawIndirectCount_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200558 blend_enable = "VUID-vkCmdDrawIndirectCount-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100559 color_write_enable = "VUID-vkCmdDrawIndirectCount-attachmentCount-06667";
stusmithedc4e392021-12-24 15:22:16 +0000560 dynamic_rendering_view_mask = "VUID-vkCmdDrawIndirectCount-viewMask-06178";
561 dynamic_rendering_color_count = "VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06179";
562 dynamic_rendering_color_formats = "VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06180";
563 dynamic_rendering_depth_format = "VUID-vkCmdDrawIndirectCount-pDepthAttachment-06181";
564 dynamic_rendering_stencil_format = "VUID-vkCmdDrawIndirectCount-pStencilAttachment-06182";
565 dynamic_rendering_fsr = "VUID-vkCmdDrawIndirectCount-imageView-06183";
566 dynamic_rendering_fdm = "VUID-vkCmdDrawIndirectCount-imageView-06184";
567 dynamic_rendering_color_sample = "VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06185";
568 dynamic_rendering_depth_sample = "VUID-vkCmdDrawIndirectCount-pDepthAttachment-06186";
569 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawIndirectCount-pStencilAttachment-06187";
570 dynamic_rendering_multi_sample = "VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06188";
571 dynamic_rendering_06189 = "VUID-vkCmdDrawIndirectCount-pDepthAttachment-06189";
572 dynamic_rendering_06190 = "VUID-vkCmdDrawIndirectCount-pStencilAttachment-06190";
573 dynamic_rendering_06198 = "VUID-vkCmdDrawIndirectCount-renderPass-06198";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200574 storage_image_read_without_format = "VUID-vkCmdDrawIndirectCount-OpTypeImage-06424";
575 storage_image_write_without_format = "VUID-vkCmdDrawIndirectCount-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200576 depth_compare_sample = "VUID-vkCmdDrawIndirectCount-None-06479";
ziga-lunarg50188622022-03-26 01:18:32 +0100577 dynamic_sample_locations = "VUID-vkCmdDrawIndirectCount-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +0200578 primitives_generated = "VUID-vkCmdDrawIndirectCount-primitivesGeneratedQueryWithRasterizerDiscard-06708";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700579 }
580};
581
582struct DispatchVuidsCmdDrawIndexedIndirectCount : DrawDispatchVuid {
583 DispatchVuidsCmdDrawIndexedIndirectCount() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700584 pipeline_bound = "VUID-vkCmdDrawIndexedIndirectCount-None-02700";
585 dynamic_state = "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02701";
586 vertex_binding = "VUID-vkCmdDrawIndexedIndirectCount-None-04007";
587 vertex_binding_null = "VUID-vkCmdDrawIndexedIndirectCount-None-04008";
588 compatible_pipeline = "VUID-vkCmdDrawIndexedIndirectCount-None-02697";
589 render_pass_compatible = "VUID-vkCmdDrawIndexedIndirectCount-renderPass-02684";
590 subpass_index = "VUID-vkCmdDrawIndexedIndirectCount-subpass-02685";
591 sample_location = "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-02689";
592 linear_sampler = "VUID-vkCmdDrawIndexedIndirectCount-magFilter-04553";
593 cubic_sampler = "VUID-vkCmdDrawIndexedIndirectCount-None-02692";
594 indirect_protected_cb = "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02711";
595 indirect_contiguous_memory = "VUID-vkCmdDrawIndexedIndirectCount-buffer-02708";
596 indirect_buffer_bit = "VUID-vkCmdDrawIndexedIndirectCount-buffer-02709";
597 viewport_count = "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-03417";
598 scissor_count = "VUID-vkCmdDrawIndexedIndirectCount-scissorCount-03418";
599 viewport_scissor_count = "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-03419";
600 primitive_topology = "VUID-vkCmdDrawIndexedIndirectCount-primitiveTopology-03420";
601 corner_sampled_address_mode = "VUID-vkCmdDrawIndexedIndirectCount-flags-02696";
602 subpass_input = "VUID-vkCmdDrawIndexedIndirectCount-None-02686";
603 imageview_atomic = "VUID-vkCmdDrawIndexedIndirectCount-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700604 push_constants_set = "VUID-vkCmdDrawIndexedIndirectCount-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100605 image_subresources_render_pass_write = "VUID-vkCmdDrawIndexedIndirectCount-None-06537";
606 image_subresources_subpass_read = "VUID-vkCmdDrawIndexedIndirectCount-None-06538";
607 image_subresources_subpass_write = "VUID-vkCmdDrawIndexedIndirectCount-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700608 descriptor_valid = "VUID-vkCmdDrawIndexedIndirectCount-None-02699";
609 sampler_imageview_type = "VUID-vkCmdDrawIndexedIndirectCount-None-02702";
610 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawIndexedIndirectCount-None-02703";
611 sampler_bias_offset = "VUID-vkCmdDrawIndexedIndirectCount-None-02704";
612 vertex_binding_attribute = "VUID-vkCmdDrawIndexedIndirectCount-None-02721";
613 dynamic_state_setting_commands = "VUID-vkCmdDrawIndexedIndirectCount-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700614 rasterization_samples = "VUID-vkCmdDrawIndexedIndirectCount-rasterizationSamples-04740";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700615 unprotected_command_buffer = "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02707";
616 max_multiview_instance_index = "VUID-vkCmdDrawIndexedIndirectCount-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700617 img_filter_cubic = "VUID-vkCmdDrawIndexedIndirectCount-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700618 filter_cubic = "VUID-vkCmdDrawIndexedIndirectCount-filterCubic-02694";
619 filter_cubic_min_max = "VUID-vkCmdDrawIndexedIndirectCount-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000620 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawIndexedIndirectCount-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600621 patch_control_points = "VUID-vkCmdDrawIndexedIndirectCount-None-04875";
622 rasterizer_discard_enable = "VUID-vkCmdDrawIndexedIndirectCount-None-04876";
623 depth_bias_enable = "VUID-vkCmdDrawIndexedIndirectCount-None-04877";
624 logic_op = "VUID-vkCmdDrawIndexedIndirectCount-logicOp-04878";
625 primitive_restart_enable = "VUID-vkCmdDrawIndexedIndirectCount-None-04879";
626 vertex_input_binding_stride = "VUID-vkCmdDrawIndexedIndirectCount-pStrides-04884";
627 vertex_input = kVUID_Core_CmdDrawIndexedIndirectCount_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200628 blend_enable = "VUID-vkCmdDrawIndexedIndirectCount-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100629 color_write_enable = "VUID-vkCmdDrawIndexedIndirectCount-attachmentCount-06667";
Aaron Haganaca50442021-12-07 22:26:29 -0500630 dynamic_rendering_view_mask = "VUID-vkCmdDrawIndexedIndirectCount-viewMask-06178";
631 dynamic_rendering_color_count = "VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06179";
632 dynamic_rendering_color_formats = "VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06180";
633 dynamic_rendering_depth_format = "VUID-vkCmdDrawIndexedIndirectCount-pDepthAttachment-06181";
634 dynamic_rendering_stencil_format = "VUID-vkCmdDrawIndexedIndirectCount-pStencilAttachment-06182";
635 dynamic_rendering_fsr = "VUID-vkCmdDrawIndexedIndirectCount-imageView-06183";
636 dynamic_rendering_fdm = "VUID-vkCmdDrawIndexedIndirectCount-imageView-06184";
637 dynamic_rendering_color_sample = "VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06185";
638 dynamic_rendering_depth_sample = "VUID-vkCmdDrawIndexedIndirectCount-pDepthAttachment-06186";
639 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawIndexedIndirectCount-pStencilAttachment-06187";
640 dynamic_rendering_multi_sample = "VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06188";
641 dynamic_rendering_06189 = "VUID-vkCmdDrawIndexedIndirectCount-pDepthAttachment-06189";
642 dynamic_rendering_06190 = "VUID-vkCmdDrawIndexedIndirectCount-pStencilAttachment-06190";
643 dynamic_rendering_06198 = "VUID-vkCmdDrawIndexedIndirectCount-renderPass-06198";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200644 storage_image_read_without_format = "VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-06424";
645 storage_image_write_without_format = "VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200646 depth_compare_sample = "VUID-vkCmdDrawIndexedIndirectCount-None-06479";
ziga-lunarg50188622022-03-26 01:18:32 +0100647 dynamic_sample_locations = "VUID-vkCmdDrawIndexedIndirectCount-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +0200648 primitives_generated = "VUID-vkCmdDrawIndexedIndirectCount-primitivesGeneratedQueryWithRasterizerDiscard-06708";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700649 }
650};
651
652struct DispatchVuidsCmdTraceRaysNV: DrawDispatchVuid {
653 DispatchVuidsCmdTraceRaysNV() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700654 pipeline_bound = "VUID-vkCmdTraceRaysNV-None-02700";
655 dynamic_state = "VUID-vkCmdTraceRaysNV-commandBuffer-02701";
656 compatible_pipeline = "VUID-vkCmdTraceRaysNV-None-02697";
657 linear_sampler = "VUID-vkCmdTraceRaysNV-magFilter-04553";
658 cubic_sampler = "VUID-vkCmdTraceRaysNV-None-02692";
659 corner_sampled_address_mode = "VUID-vkCmdTraceRaysNV-flags-02696";
660 imageview_atomic = "VUID-vkCmdTraceRaysNV-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700661 push_constants_set = "VUID-vkCmdTraceRaysNV-maintenance4-06425";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700662 descriptor_valid = "VUID-vkCmdTraceRaysNV-None-02699";
663 sampler_imageview_type = "VUID-vkCmdTraceRaysNV-None-02702";
664 sampler_implicitLod_dref_proj = "VUID-vkCmdTraceRaysNV-None-02703";
665 sampler_bias_offset = "VUID-vkCmdTraceRaysNV-None-02704";
666 dynamic_state_setting_commands = "VUID-vkCmdTraceRaysNV-None-02859";
667 unprotected_command_buffer = "VUID-vkCmdTraceRaysNV-commandBuffer-02707";
sfricke-samsunga3c47d12021-09-30 13:34:54 -0700668 ray_query_protected_cb = "VUID-vkCmdTraceRaysNV-commandBuffer-04624";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700669 img_filter_cubic = "VUID-vkCmdTraceRaysNV-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700670 filter_cubic = "VUID-vkCmdTraceRaysNV-filterCubic-02694";
671 filter_cubic_min_max = "VUID-vkCmdTraceRaysNV-filterCubicMinmax-02695";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200672 storage_image_read_without_format = "VUID-vkCmdTraceRaysNV-OpTypeImage-06424";
673 storage_image_write_without_format = "VUID-vkCmdTraceRaysNV-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200674 depth_compare_sample = "VUID-vkCmdTraceRaysNV-None-06479";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700675 }
676};
677
678struct DispatchVuidsCmdTraceRaysKHR: DrawDispatchVuid {
679 DispatchVuidsCmdTraceRaysKHR() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700680 pipeline_bound = "VUID-vkCmdTraceRaysKHR-None-02700";
681 dynamic_state = "VUID-vkCmdTraceRaysKHR-commandBuffer-02701";
682 compatible_pipeline = "VUID-vkCmdTraceRaysKHR-None-02697";
683 linear_sampler = "VUID-vkCmdTraceRaysKHR-magFilter-04553";
684 cubic_sampler = "VUID-vkCmdTraceRaysKHR-None-02692";
685 corner_sampled_address_mode = "VUID-vkCmdTraceRaysKHR-flags-02696";
686 imageview_atomic = "VUID-vkCmdTraceRaysKHR-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700687 push_constants_set = "VUID-vkCmdTraceRaysKHR-maintenance4-06425";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700688 descriptor_valid = "VUID-vkCmdTraceRaysKHR-None-02699";
689 sampler_imageview_type = "VUID-vkCmdTraceRaysKHR-None-02702";
690 sampler_implicitLod_dref_proj = "VUID-vkCmdTraceRaysKHR-None-02703";
691 sampler_bias_offset = "VUID-vkCmdTraceRaysKHR-None-02704";
692 dynamic_state_setting_commands = "VUID-vkCmdTraceRaysKHR-None-02859";
693 unprotected_command_buffer = "VUID-vkCmdTraceRaysKHR-commandBuffer-02707";
sfricke-samsunga3c47d12021-09-30 13:34:54 -0700694 ray_query_protected_cb = "VUID-vkCmdTraceRaysKHR-commandBuffer-04625";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700695 img_filter_cubic = "VUID-vkCmdTraceRaysKHR-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700696 filter_cubic = "VUID-vkCmdTraceRaysKHR-filterCubic-02694";
697 filter_cubic_min_max = "VUID-vkCmdTraceRaysKHR-filterCubicMinmax-02695";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200698 storage_image_read_without_format = "VUID-vkCmdTraceRaysKHR-OpTypeImage-06424";
699 storage_image_write_without_format = "VUID-vkCmdTraceRaysKHR-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200700 depth_compare_sample = "VUID-vkCmdTraceRaysKHR-None-06479";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700701 }
702};
703
704struct DispatchVuidsCmdTraceRaysIndirectKHR: DrawDispatchVuid {
705 DispatchVuidsCmdTraceRaysIndirectKHR() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700706 pipeline_bound = "VUID-vkCmdTraceRaysIndirectKHR-None-02700";
707 dynamic_state = "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-02701";
708 compatible_pipeline = "VUID-vkCmdTraceRaysIndirectKHR-None-02697";
709 linear_sampler = "VUID-vkCmdTraceRaysIndirectKHR-magFilter-04553";
710 cubic_sampler = "VUID-vkCmdTraceRaysIndirectKHR-None-02692";
Shannon McPherson57255a62020-12-23 16:00:54 -0700711 indirect_contiguous_memory = "VUID-vkCmdTraceRaysIndirectKHR-indirectDeviceAddress-03632";
712 indirect_buffer_bit = "VUID-vkCmdTraceRaysIndirectKHR-indirectDeviceAddress-03633";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700713 corner_sampled_address_mode = "VUID-vkCmdTraceRaysIndirectKHR-flags-02696";
714 imageview_atomic = "VUID-vkCmdTraceRaysIndirectKHR-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700715 push_constants_set = "VUID-vkCmdTraceRaysIndirectKHR-maintenance4-06425";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700716 descriptor_valid = "VUID-vkCmdTraceRaysIndirectKHR-None-02699";
717 sampler_imageview_type = "VUID-vkCmdTraceRaysIndirectKHR-None-02702";
718 sampler_implicitLod_dref_proj = "VUID-vkCmdTraceRaysIndirectKHR-None-02703";
719 sampler_bias_offset = "VUID-vkCmdTraceRaysIndirectKHR-None-02704";
720 dynamic_state_setting_commands = "VUID-vkCmdTraceRaysIndirectKHR-None-02859";
721 unprotected_command_buffer = "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-02707";
sfricke-samsunga3c47d12021-09-30 13:34:54 -0700722 ray_query_protected_cb = "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-03635";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700723 img_filter_cubic = "VUID-vkCmdTraceRaysIndirectKHR-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700724 filter_cubic = "VUID-vkCmdTraceRaysIndirectKHR-filterCubic-02694";
725 filter_cubic_min_max = "VUID-vkCmdTraceRaysIndirectKHR-filterCubicMinmax-02695";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200726 storage_image_read_without_format = "VUID-vkCmdTraceRaysIndirectKHR-OpTypeImage-06424";
727 storage_image_write_without_format = "VUID-vkCmdTraceRaysIndirectKHR-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200728 depth_compare_sample = "VUID-vkCmdTraceRaysIndirectKHR-None-06479";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700729 }
730};
731
732struct DispatchVuidsCmdDrawMeshTasksNV: DrawDispatchVuid {
733 DispatchVuidsCmdDrawMeshTasksNV() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700734 pipeline_bound = "VUID-vkCmdDrawMeshTasksNV-None-02700";
735 dynamic_state = "VUID-vkCmdDrawMeshTasksNV-commandBuffer-02701";
736 compatible_pipeline = "VUID-vkCmdDrawMeshTasksNV-None-02697";
737 render_pass_compatible = "VUID-vkCmdDrawMeshTasksNV-renderPass-02684";
738 subpass_index = "VUID-vkCmdDrawMeshTasksNV-subpass-02685";
739 sample_location = "VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-02689";
740 linear_sampler = "VUID-vkCmdDrawMeshTasksNV-magFilter-04553";
741 cubic_sampler = "VUID-vkCmdDrawMeshTasksNV-None-02692";
742 viewport_count = "VUID-vkCmdDrawMeshTasksNV-viewportCount-03417";
743 scissor_count = "VUID-vkCmdDrawMeshTasksNV-scissorCount-03418";
744 viewport_scissor_count = "VUID-vkCmdDrawMeshTasksNV-viewportCount-03419";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700745 corner_sampled_address_mode = "VUID-vkCmdDrawMeshTasksNV-flags-02696";
746 subpass_input = "VUID-vkCmdDrawMeshTasksNV-None-02686";
747 imageview_atomic = "VUID-vkCmdDrawMeshTasksNV-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700748 push_constants_set = "VUID-vkCmdDrawMeshTasksNV-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100749 image_subresources_render_pass_write = "VUID-vkCmdDrawMeshTasksNV-None-06537";
750 image_subresources_subpass_read = "VUID-vkCmdDrawMeshTasksNV-None-06538";
751 image_subresources_subpass_write = "VUID-vkCmdDrawMeshTasksNV-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700752 descriptor_valid = "VUID-vkCmdDrawMeshTasksNV-None-02699";
753 sampler_imageview_type = "VUID-vkCmdDrawMeshTasksNV-None-02702";
754 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawMeshTasksNV-None-02703";
755 sampler_bias_offset = "VUID-vkCmdDrawMeshTasksNV-None-02704";
756 dynamic_state_setting_commands = "VUID-vkCmdDrawMeshTasksNV-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700757 rasterization_samples = "VUID-vkCmdDrawMeshTasksNV-rasterizationSamples-04740";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700758 unprotected_command_buffer = "VUID-vkCmdDrawMeshTasksNV-commandBuffer-02707";
759 max_multiview_instance_index = "VUID-vkCmdDrawMeshTasksNV-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700760 img_filter_cubic = "VUID-vkCmdDrawMeshTasksNV-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700761 filter_cubic = "VUID-vkCmdDrawMeshTasksNV-filterCubic-02694";
762 filter_cubic_min_max = "VUID-vkCmdDrawMeshTasksNV-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000763 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawMeshTasksNV-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600764 rasterizer_discard_enable = "VUID-vkCmdDrawMeshTasksNV-None-04876";
765 depth_bias_enable = "VUID-vkCmdDrawMeshTasksNV-None-04877";
766 logic_op = "VUID-vkCmdDrawMeshTasksNV-logicOp-04878";
Piers Daniell924cd832021-05-18 13:48:47 -0600767 vertex_input = kVUID_Core_CmdDrawMeshTasksNV_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200768 blend_enable = "VUID-vkCmdDrawMeshTasksNV-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100769 color_write_enable = "VUID-vkCmdDrawMeshTasksNV-attachmentCount-06667";
stusmithedc4e392021-12-24 15:22:16 +0000770 dynamic_rendering_view_mask = "VUID-vkCmdDrawMeshTasksNV-viewMask-06178";
771 dynamic_rendering_color_count = "VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06179";
772 dynamic_rendering_color_formats = "VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06180";
773 dynamic_rendering_depth_format = "VUID-vkCmdDrawMeshTasksNV-pDepthAttachment-06181";
774 dynamic_rendering_stencil_format = "VUID-vkCmdDrawMeshTasksNV-pStencilAttachment-06182";
775 dynamic_rendering_fsr = "VUID-vkCmdDrawMeshTasksNV-imageView-06183";
776 dynamic_rendering_fdm = "VUID-vkCmdDrawMeshTasksNV-imageView-06184";
777 dynamic_rendering_color_sample = "VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06185";
778 dynamic_rendering_depth_sample = "VUID-vkCmdDrawMeshTasksNV-pDepthAttachment-06186";
779 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawMeshTasksNV-pStencilAttachment-06187";
780 dynamic_rendering_multi_sample = "VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06188";
781 dynamic_rendering_06189 = "VUID-vkCmdDrawMeshTasksNV-pDepthAttachment-06189";
782 dynamic_rendering_06190 = "VUID-vkCmdDrawMeshTasksNV-pStencilAttachment-06190";
783 dynamic_rendering_06198 = "VUID-vkCmdDrawMeshTasksNV-renderPass-06198";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200784 storage_image_read_without_format = "VUID-vkCmdDrawMeshTasksNV-OpTypeImage-06424";
785 storage_image_write_without_format = "VUID-vkCmdDrawMeshTasksNV-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200786 depth_compare_sample = "VUID-vkCmdDrawMeshTasksNV-None-06479";
ziga-lunarg50188622022-03-26 01:18:32 +0100787 dynamic_sample_locations = "VUID-vkCmdDrawMeshTasksNV-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +0200788 primitives_generated = "VUID-vkCmdDrawMeshTasksNV-primitivesGeneratedQueryWithRasterizerDiscard-06708";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700789 }
790};
791
792struct DispatchVuidsCmdDrawMeshTasksIndirectNV: DrawDispatchVuid {
793 DispatchVuidsCmdDrawMeshTasksIndirectNV() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700794 pipeline_bound = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02700";
795 dynamic_state = "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02701";
796 compatible_pipeline = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02697";
797 render_pass_compatible = "VUID-vkCmdDrawMeshTasksIndirectNV-renderPass-02684";
798 subpass_index = "VUID-vkCmdDrawMeshTasksIndirectNV-subpass-02685";
799 sample_location = "VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-02689";
800 linear_sampler = "VUID-vkCmdDrawMeshTasksIndirectNV-magFilter-04553";
801 cubic_sampler = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02692";
802 indirect_protected_cb = "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02711";
803 indirect_contiguous_memory = "VUID-vkCmdDrawMeshTasksIndirectNV-buffer-02708";
804 indirect_buffer_bit = "VUID-vkCmdDrawMeshTasksIndirectNV-buffer-02709";
805 viewport_count = "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-03417";
806 scissor_count = "VUID-vkCmdDrawMeshTasksIndirectNV-scissorCount-03418";
807 viewport_scissor_count = "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-03419";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700808 corner_sampled_address_mode = "VUID-vkCmdDrawMeshTasksIndirectNV-flags-02696";
809 subpass_input = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02686";
810 imageview_atomic = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700811 push_constants_set = "VUID-vkCmdDrawMeshTasksIndirectNV-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100812 image_subresources_render_pass_write = "VUID-vkCmdDrawMeshTasksIndirectNV-None-06537";
813 image_subresources_subpass_read = "VUID-vkCmdDrawMeshTasksIndirectNV-None-06538";
814 image_subresources_subpass_write = "VUID-vkCmdDrawMeshTasksIndirectNV-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700815 descriptor_valid = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02699";
816 sampler_imageview_type = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02702";
817 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02703";
818 sampler_bias_offset = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02704";
819 dynamic_state_setting_commands = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700820 rasterization_samples = "VUID-vkCmdDrawMeshTasksIndirectNV-rasterizationSamples-04740";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700821 unprotected_command_buffer = "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02707";
822 max_multiview_instance_index = "VUID-vkCmdDrawMeshTasksIndirectNV-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700823 img_filter_cubic = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700824 filter_cubic = "VUID-vkCmdDrawMeshTasksIndirectNV-filterCubic-02694";
825 filter_cubic_min_max = "VUID-vkCmdDrawMeshTasksIndirectNV-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000826 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawMeshTasksIndirectNV-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600827 rasterizer_discard_enable = "VUID-vkCmdDrawMeshTasksIndirectNV-None-04876";
828 depth_bias_enable = "VUID-vkCmdDrawMeshTasksIndirectNV-None-04877";
829 logic_op = "VUID-vkCmdDrawMeshTasksIndirectNV-logicOp-04878";
Piers Daniell924cd832021-05-18 13:48:47 -0600830 vertex_input = kVUID_Core_CmdDrawMeshTasksIndirectNV_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200831 blend_enable = "VUID-vkCmdDrawMeshTasksIndirectNV-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100832 color_write_enable = "VUID-vkCmdDrawMeshTasksIndirectNV-attachmentCount-06667";
stusmithedc4e392021-12-24 15:22:16 +0000833 dynamic_rendering_view_mask = "VUID-vkCmdDrawMeshTasksIndirectNV-viewMask-06178";
834 dynamic_rendering_color_count = "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06179";
835 dynamic_rendering_color_formats = "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06180";
836 dynamic_rendering_depth_format = "VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06181";
837 dynamic_rendering_stencil_format = "VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06182";
838 dynamic_rendering_fsr = "VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06183";
839 dynamic_rendering_fdm = "VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06184";
840 dynamic_rendering_color_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06185";
841 dynamic_rendering_depth_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06186";
842 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06187";
843 dynamic_rendering_multi_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06188";
844 dynamic_rendering_06189 = "VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06189";
845 dynamic_rendering_06190 = "VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06190";
846 dynamic_rendering_06198 = "VUID-vkCmdDrawMeshTasksIndirectNV-renderPass-06198";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200847 storage_image_read_without_format = "VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-06424";
848 storage_image_write_without_format = "VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200849 depth_compare_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-None-06479";
Aaron Hagan80034ea2021-12-23 11:24:09 -0500850 dynamic_rendering_view_mask = "VUID-vkCmdDrawMeshTasksIndirectNV-viewMask-06178";
851 dynamic_rendering_color_count = "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06179";
852 dynamic_rendering_color_formats = "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06180";
853 dynamic_rendering_depth_format = "VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06181";
854 dynamic_rendering_stencil_format = "VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06182";
855 dynamic_rendering_fsr = "VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06183";
856 dynamic_rendering_fdm = "VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06184";
857 dynamic_rendering_color_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06185";
858 dynamic_rendering_depth_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06186";
859 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06187";
Jeremy Gebben09c1a072022-02-08 09:42:47 -0700860 dynamic_rendering_multi_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06188";
Aaron Hagan80034ea2021-12-23 11:24:09 -0500861 dynamic_rendering_06189 = "VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06189";
862 dynamic_rendering_06190 = "VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06190";
863 dynamic_rendering_06198 = "VUID-vkCmdDrawMeshTasksIndirectNV-renderPass-06198";
ziga-lunarg50188622022-03-26 01:18:32 +0100864 dynamic_sample_locations = "VUID-vkCmdDrawMeshTasksIndirectNV-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +0200865 primitives_generated = "VUID-vkCmdDrawMeshTasksIndirectNV-primitivesGeneratedQueryWithRasterizerDiscard-06708";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700866 }
867};
868
869struct DispatchVuidsCmdDrawMeshTasksIndirectCountNV : DrawDispatchVuid {
870 DispatchVuidsCmdDrawMeshTasksIndirectCountNV() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700871 pipeline_bound = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02700";
872 dynamic_state = "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02701";
873 compatible_pipeline = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02697";
874 render_pass_compatible = "VUID-vkCmdDrawMeshTasksIndirectCountNV-renderPass-02684";
875 subpass_index = "VUID-vkCmdDrawMeshTasksIndirectCountNV-subpass-02685";
876 sample_location = "VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-02689";
877 linear_sampler = "VUID-vkCmdDrawMeshTasksIndirectCountNV-magFilter-04553";
878 cubic_sampler = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02692";
879 indirect_protected_cb = "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02711";
880 indirect_contiguous_memory = "VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-02708";
881 indirect_buffer_bit = "VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-02709";
882 viewport_count = "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-03417";
883 scissor_count = "VUID-vkCmdDrawMeshTasksIndirectCountNV-scissorCount-03418";
884 viewport_scissor_count = "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-03419";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700885 corner_sampled_address_mode = "VUID-vkCmdDrawMeshTasksIndirectCountNV-flags-02696";
886 subpass_input = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02686";
887 imageview_atomic = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700888 push_constants_set = "VUID-vkCmdDrawMeshTasksIndirectCountNV-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100889 image_subresources_render_pass_write = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06537";
890 image_subresources_subpass_read = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06538";
891 image_subresources_subpass_write = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700892 descriptor_valid = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02699";
893 sampler_imageview_type = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02702";
894 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02703";
895 sampler_bias_offset = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02704";
896 dynamic_state_setting_commands = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700897 rasterization_samples = "VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizationSamples-04740";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700898 unprotected_command_buffer = "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02707";
899 max_multiview_instance_index = "VUID-vkCmdDrawMeshTasksIndirectCountNV-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700900 img_filter_cubic = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700901 filter_cubic = "VUID-vkCmdDrawMeshTasksIndirectCountNV-filterCubic-02694";
902 filter_cubic_min_max = "VUID-vkCmdDrawMeshTasksIndirectCountNV-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000903 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawMeshTasksIndirectCountNV-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600904 rasterizer_discard_enable = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04876";
905 depth_bias_enable = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04877";
906 logic_op = "VUID-vkCmdDrawMeshTasksIndirectCountNV-logicOp-04878";
Piers Daniell924cd832021-05-18 13:48:47 -0600907 vertex_input = kVUID_Core_CmdDrawMeshTasksIndirectCountNV_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200908 blend_enable = "VUID-vkCmdDrawMeshTasksIndirectCountNV-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100909 color_write_enable = "VUID-vkCmdDrawMeshTasksIndirectCountNV-attachmentCount-06667";
stusmithedc4e392021-12-24 15:22:16 +0000910 dynamic_rendering_view_mask = "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewMask-06178";
911 dynamic_rendering_color_count = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06179";
912 dynamic_rendering_color_formats = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06180";
913 dynamic_rendering_depth_format = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06181";
914 dynamic_rendering_stencil_format = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06182";
915 dynamic_rendering_fsr = "VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06183";
916 dynamic_rendering_fdm = "VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06184";
917 dynamic_rendering_color_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06185";
918 dynamic_rendering_depth_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06186";
919 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06187";
920 dynamic_rendering_multi_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06188";
921 dynamic_rendering_06189 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06189";
922 dynamic_rendering_06190 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06190";
923 dynamic_rendering_06198 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-renderPass-06198";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200924 storage_image_read_without_format = "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-06424";
925 storage_image_write_without_format = "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200926 depth_compare_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06479";
Aaron Hagan80034ea2021-12-23 11:24:09 -0500927 dynamic_rendering_view_mask = "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewMask-06178";
928 dynamic_rendering_color_count = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06179";
929 dynamic_rendering_color_formats = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06180";
930 dynamic_rendering_depth_format = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06181";
931 dynamic_rendering_stencil_format = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06182";
932 dynamic_rendering_fsr = "VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06183";
933 dynamic_rendering_fdm = "VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06184";
934 dynamic_rendering_color_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06185";
935 dynamic_rendering_depth_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06186";
936 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06187";
Jeremy Gebben09c1a072022-02-08 09:42:47 -0700937 dynamic_rendering_multi_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06188";
Aaron Hagan80034ea2021-12-23 11:24:09 -0500938 dynamic_rendering_06189 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06189";
939 dynamic_rendering_06190 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06190";
940 dynamic_rendering_06198 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-renderPass-06198";
ziga-lunarg50188622022-03-26 01:18:32 +0100941 dynamic_sample_locations = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +0200942 primitives_generated = "VUID-vkCmdDrawMeshTasksIndirectCountNV-primitivesGeneratedQueryWithRasterizerDiscard-06708";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700943 }
944};
945
946struct DispatchVuidsCmdDrawIndirectByteCountEXT: DrawDispatchVuid {
947 DispatchVuidsCmdDrawIndirectByteCountEXT() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700948 pipeline_bound = "VUID-vkCmdDrawIndirectByteCountEXT-None-02700";
949 dynamic_state = "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02701";
950 vertex_binding = "VUID-vkCmdDrawIndirectByteCountEXT-None-04007";
951 vertex_binding_null = "VUID-vkCmdDrawIndirectByteCountEXT-None-04008";
952 compatible_pipeline = "VUID-vkCmdDrawIndirectByteCountEXT-None-02697";
953 render_pass_compatible = "VUID-vkCmdDrawIndirectByteCountEXT-renderPass-02684";
954 subpass_index = "VUID-vkCmdDrawIndirectByteCountEXT-subpass-02685";
955 sample_location = "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-02689";
956 linear_sampler = "VUID-vkCmdDrawIndirectByteCountEXT-magFilter-04553";
957 cubic_sampler = "VUID-vkCmdDrawIndirectByteCountEXT-None-02692";
958 indirect_protected_cb = "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02646";
sfricke-samsungb091d4e2021-04-18 23:15:59 -0700959 indirect_contiguous_memory = "VUID-vkCmdDrawIndirectByteCountEXT-counterBuffer-04567",
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700960 indirect_buffer_bit = "VUID-vkCmdDrawIndirectByteCountEXT-counterBuffer-02290";
961 viewport_count = "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-03417";
962 scissor_count = "VUID-vkCmdDrawIndirectByteCountEXT-scissorCount-03418";
963 viewport_scissor_count = "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-03419";
964 primitive_topology = "VUID-vkCmdDrawIndirectByteCountEXT-primitiveTopology-03420";
965 corner_sampled_address_mode = "VUID-vkCmdDrawIndirectByteCountEXT-flags-02696";
966 subpass_input = "VUID-vkCmdDrawIndirectByteCountEXT-None-02686";
967 imageview_atomic = "VUID-vkCmdDrawIndirectByteCountEXT-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700968 push_constants_set = "VUID-vkCmdDrawIndirectByteCountEXT-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100969 image_subresources_render_pass_write = "VUID-vkCmdDrawIndirectByteCountEXT-None-06537";
970 image_subresources_subpass_read = "VUID-vkCmdDrawIndirectByteCountEXT-None-06538";
971 image_subresources_subpass_write = "VUID-vkCmdDrawIndirectByteCountEXT-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700972 descriptor_valid = "VUID-vkCmdDrawIndirectByteCountEXT-None-02699";
973 sampler_imageview_type = "VUID-vkCmdDrawIndirectByteCountEXT-None-02702";
974 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawIndirectByteCountEXT-None-02703";
975 sampler_bias_offset = "VUID-vkCmdDrawIndirectByteCountEXT-None-02704";
976 vertex_binding_attribute = "VUID-vkCmdDrawIndirectByteCountEXT-None-02721";
977 dynamic_state_setting_commands = "VUID-vkCmdDrawIndirectByteCountEXT-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700978 rasterization_samples = "VUID-vkCmdDrawIndirectByteCountEXT-rasterizationSamples-04740";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700979 unprotected_command_buffer = "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02707";
980 max_multiview_instance_index = "VUID-vkCmdDrawIndirectByteCountEXT-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700981 img_filter_cubic = "VUID-vkCmdDrawIndirectByteCountEXT-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700982 filter_cubic = "VUID-vkCmdDrawIndirectByteCountEXT-filterCubic-02694";
983 filter_cubic_min_max = "VUID-vkCmdDrawIndirectByteCountEXT-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000984 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawIndirectByteCountEXT-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600985 patch_control_points = "VUID-vkCmdDrawIndirectByteCountEXT-None-04875";
986 rasterizer_discard_enable = "VUID-vkCmdDrawIndirectByteCountEXT-None-04876";
987 depth_bias_enable = "VUID-vkCmdDrawIndirectByteCountEXT-None-04877";
988 logic_op = "VUID-vkCmdDrawIndirectByteCountEXT-logicOp-04878";
989 primitive_restart_enable = "VUID-vkCmdDrawIndirectByteCountEXT-None-04879";
990 vertex_input_binding_stride = "VUID-vkCmdDrawIndirectByteCountEXT-pStrides-04884";
991 vertex_input = kVUID_Core_CmdDrawIndirectByteCountEXT_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200992 blend_enable = "VUID-vkCmdDrawIndirectByteCountEXT-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100993 color_write_enable = "VUID-vkCmdDrawIndirectByteCountEXT-attachmentCount-06667";
stusmithedc4e392021-12-24 15:22:16 +0000994 dynamic_rendering_view_mask = "VUID-vkCmdDrawIndirectByteCountEXT-viewMask-06178";
995 dynamic_rendering_color_count = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06179";
996 dynamic_rendering_color_formats = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06180";
997 dynamic_rendering_depth_format = "VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06181";
998 dynamic_rendering_stencil_format = "VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06182";
999 dynamic_rendering_fsr = "VUID-vkCmdDrawIndirectByteCountEXT-imageView-06183";
1000 dynamic_rendering_fdm = "VUID-vkCmdDrawIndirectByteCountEXT-imageView-06184";
1001 dynamic_rendering_color_sample = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06185";
1002 dynamic_rendering_depth_sample = "VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06186";
1003 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06187";
1004 dynamic_rendering_multi_sample = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06188";
1005 dynamic_rendering_06189 = "VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06189";
1006 dynamic_rendering_06190 = "VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06190";
1007 dynamic_rendering_06198 = "VUID-vkCmdDrawIndirectByteCountEXT-renderPass-06198";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +02001008 storage_image_read_without_format = "VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-06424";
1009 storage_image_write_without_format = "VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +02001010 depth_compare_sample = "VUID-vkCmdDrawIndirectByteCountEXT-None-06479";
Aaron Hagan80034ea2021-12-23 11:24:09 -05001011 dynamic_rendering_view_mask = "VUID-vkCmdDrawIndirectByteCountEXT-viewMask-06178";
1012 dynamic_rendering_color_count = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06179";
1013 dynamic_rendering_color_formats = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06180";
1014 dynamic_rendering_depth_format = "VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06181";
1015 dynamic_rendering_stencil_format = "VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06182";
1016 dynamic_rendering_fsr = "VUID-vkCmdDrawIndirectByteCountEXT-imageView-06183";
1017 dynamic_rendering_fdm = "VUID-vkCmdDrawIndirectByteCountEXT-imageView-06184";
1018 dynamic_rendering_color_sample = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06185";
1019 dynamic_rendering_depth_sample = "VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06186";
1020 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06187";
Jeremy Gebben09c1a072022-02-08 09:42:47 -07001021 dynamic_rendering_multi_sample = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06188";
Aaron Hagan80034ea2021-12-23 11:24:09 -05001022 dynamic_rendering_06189 = "VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06189";
1023 dynamic_rendering_06190 = "VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06190";
1024 dynamic_rendering_06198 = "VUID-vkCmdDrawIndirectByteCountEXT-renderPass-06198";
ziga-lunarg50188622022-03-26 01:18:32 +01001025 dynamic_sample_locations = "VUID-vkCmdDrawIndirectByteCountEXT-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +02001026 primitives_generated = "VUID-vkCmdDrawIndirectByteCountEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001027 }
1028};
1029
1030struct DispatchVuidsCmdDispatchBase: DrawDispatchVuid {
1031 DispatchVuidsCmdDispatchBase() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001032 pipeline_bound = "VUID-vkCmdDispatchBase-None-02700";
Mark Lobodzinski02d37552020-12-28 13:29:46 -07001033 dynamic_state = "VUID-vkCmdDispatchBase-commandBuffer-02701";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001034 compatible_pipeline = "VUID-vkCmdDispatchBase-None-02697";
1035 linear_sampler = "VUID-vkCmdDispatchBase-magFilter-04553";
1036 cubic_sampler = "VUID-vkCmdDispatchBase-None-02692";
1037 corner_sampled_address_mode = "VUID-vkCmdDispatchBase-flags-02696";
1038 imageview_atomic = "VUID-vkCmdDispatchBase-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -07001039 push_constants_set = "VUID-vkCmdDispatchBase-maintenance4-06425";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001040 descriptor_valid = "VUID-vkCmdDispatchBase-None-02699";
1041 sampler_imageview_type = "VUID-vkCmdDispatchBase-None-02702";
1042 sampler_implicitLod_dref_proj = "VUID-vkCmdDispatchBase-None-02703";
1043 sampler_bias_offset = "VUID-vkCmdDispatchBase-None-02704";
1044 dynamic_state_setting_commands = "VUID-vkCmdDispatchBase-None-02859";
1045 unprotected_command_buffer = "VUID-vkCmdDispatchBase-commandBuffer-02707";
sfricke-samsunge79d0892021-06-17 08:56:22 -07001046 protected_command_buffer = "VUID-vkCmdDispatchBase-commandBuffer-02712";
Mark Lobodzinskif786b412020-11-30 12:16:17 -07001047 img_filter_cubic = "VUID-vkCmdDispatchBase-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001048 filter_cubic = "VUID-vkCmdDispatchBase-filterCubic-02694";
1049 filter_cubic_min_max = "VUID-vkCmdDispatchBase-filterCubicMinmax-02695";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +02001050 storage_image_read_without_format = "VUID-vkCmdDispatchBase-OpTypeImage-06424";
1051 storage_image_write_without_format = "VUID-vkCmdDispatchBase-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +02001052 depth_compare_sample = "VUID-vkCmdDispatchBase-None-06479";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001053 }
1054};
1055
1056// 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 -07001057static const std::map<CMD_TYPE, DrawDispatchVuid> kDrawdispatchVuid = {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001058 {CMD_DRAW, DispatchVuidsCmdDraw()},
Tony-LunarG4490de42021-06-21 15:49:19 -06001059 {CMD_DRAWMULTIEXT, DispatchVuidsCmdDrawMultiEXT()},
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001060 {CMD_DRAWINDEXED, DispatchVuidsCmdDrawIndexed()},
Tony-LunarG4490de42021-06-21 15:49:19 -06001061 {CMD_DRAWMULTIINDEXEDEXT, DispatchVuidsCmdDrawMultiIndexedEXT()},
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001062 {CMD_DRAWINDIRECT, DispatchVuidsCmdDrawIndirect()},
1063 {CMD_DRAWINDEXEDINDIRECT, DispatchVuidsCmdDrawIndexedIndirect()},
1064 {CMD_DISPATCH, DispatchVuidsCmdDispatch()},
1065 {CMD_DISPATCHINDIRECT, DispatchVuidsCmdDispatchIndirect()},
1066 {CMD_DRAWINDIRECTCOUNT, DispatchVuidsCmdDrawIndirectCount()},
sfricke-samsung85584a72021-09-30 21:43:38 -07001067 {CMD_DRAWINDIRECTCOUNTKHR, DispatchVuidsCmdDrawIndirectCount()},
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001068 {CMD_DRAWINDEXEDINDIRECTCOUNT, DispatchVuidsCmdDrawIndexedIndirectCount()},
sfricke-samsung85584a72021-09-30 21:43:38 -07001069 {CMD_DRAWINDEXEDINDIRECTCOUNTKHR, DispatchVuidsCmdDrawIndexedIndirectCount()},
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001070 {CMD_TRACERAYSNV, DispatchVuidsCmdTraceRaysNV()},
1071 {CMD_TRACERAYSKHR, DispatchVuidsCmdTraceRaysKHR()},
1072 {CMD_TRACERAYSINDIRECTKHR, DispatchVuidsCmdTraceRaysIndirectKHR()},
1073 {CMD_DRAWMESHTASKSNV, DispatchVuidsCmdDrawMeshTasksNV()},
1074 {CMD_DRAWMESHTASKSINDIRECTNV, DispatchVuidsCmdDrawMeshTasksIndirectNV()},
1075 {CMD_DRAWMESHTASKSINDIRECTCOUNTNV, DispatchVuidsCmdDrawMeshTasksIndirectCountNV()},
1076 {CMD_DRAWINDIRECTBYTECOUNTEXT, DispatchVuidsCmdDrawIndirectByteCountEXT()},
1077 {CMD_DISPATCHBASE, DispatchVuidsCmdDispatchBase()},
sfricke-samsung85584a72021-09-30 21:43:38 -07001078 {CMD_DISPATCHBASEKHR, DispatchVuidsCmdDispatchBase()},
Spencer Fricke507600b2020-03-22 13:23:06 -07001079 // Used if invalid cmd_type is used
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001080 {CMD_NONE, DrawDispatchVuid()}
Spencer Fricke507600b2020-03-22 13:23:06 -07001081};
1082// clang-format on
1083
1084// Getter function to provide kVUIDUndefined in case an invalid cmd_type is passed in
1085const DrawDispatchVuid &CoreChecks::GetDrawDispatchVuid(CMD_TYPE cmd_type) const {
Nathaniel Cesarioce9b4812020-12-17 08:55:28 -07001086 if (kDrawdispatchVuid.find(cmd_type) != kDrawdispatchVuid.cend()) {
1087 return kDrawdispatchVuid.at(cmd_type);
Spencer Fricke507600b2020-03-22 13:23:06 -07001088 } else {
Nathaniel Cesarioce9b4812020-12-17 08:55:28 -07001089 return kDrawdispatchVuid.at(CMD_NONE);
Spencer Fricke507600b2020-03-22 13:23:06 -07001090 }
1091}
1092
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001093// Generic function to handle validation for all CmdDraw* type functions
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001094bool CoreChecks::ValidateCmdDrawType(const CMD_BUFFER_STATE &cb_state, bool indexed, VkPipelineBindPoint bind_point,
sfricke-samsung85584a72021-09-30 21:43:38 -07001095 CMD_TYPE cmd_type) const {
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001096 bool skip = false;
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001097 skip |= ValidateCmd(&cb_state, cmd_type);
1098 skip |= ValidateCmdBufDrawState(&cb_state, cmd_type, indexed, bind_point);
1099 skip |= ValidateCmdRayQueryState(&cb_state, cmd_type, bind_point);
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001100 return skip;
1101}
1102
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001103bool CoreChecks::ValidateCmdDrawInstance(const CMD_BUFFER_STATE &cb_node, uint32_t instanceCount, uint32_t firstInstance,
sfricke-samsung85584a72021-09-30 21:43:38 -07001104 CMD_TYPE cmd_type) const {
locke-lunarg3fa463a2020-10-23 16:39:04 -06001105 bool skip = false;
1106 const DrawDispatchVuid vuid = GetDrawDispatchVuid(cmd_type);
sfricke-samsung85584a72021-09-30 21:43:38 -07001107 const char *caller = CommandTypeString(cmd_type);
locke-lunarg3fa463a2020-10-23 16:39:04 -06001108
1109 // Verify maxMultiviewInstanceIndex
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001110 if (cb_node.activeRenderPass && cb_node.activeRenderPass->renderPass() && enabled_features.multiview_features.multiview &&
locke-lunarg3fa463a2020-10-23 16:39:04 -06001111 ((instanceCount + firstInstance) > phys_dev_ext_props.multiview_props.maxMultiviewInstanceIndex)) {
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001112 LogObjectList objlist(cb_node.Handle());
1113 objlist.add(cb_node.activeRenderPass->Handle());
locke-lunarg3fa463a2020-10-23 16:39:04 -06001114 skip |= LogError(objlist, vuid.max_multiview_instance_index,
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001115 "%s: renderpass %s multiview is enabled, and maxMultiviewInstanceIndex: %" PRIu32
1116 ", but instanceCount: %" PRIu32 "and firstInstance: %" PRIu32 ".",
1117 caller, report_data->FormatHandle(cb_node.activeRenderPass->Handle()).c_str(),
locke-lunarg3fa463a2020-10-23 16:39:04 -06001118 phys_dev_ext_props.multiview_props.maxMultiviewInstanceIndex, instanceCount, firstInstance);
1119 }
1120 return skip;
1121}
1122
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001123bool CoreChecks::PreCallValidateCmdDraw(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount,
Jeff Bolz5c801d12019-10-09 10:38:45 -05001124 uint32_t firstVertex, uint32_t firstInstance) const {
locke-lunarg3fa463a2020-10-23 16:39:04 -06001125 bool skip = false;
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001126 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001127 skip |= ValidateCmdDrawInstance(*cb_state, instanceCount, firstInstance, CMD_DRAW);
1128 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAW);
locke-lunarg3fa463a2020-10-23 16:39:04 -06001129 return skip;
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001130}
1131
Tony-LunarG4490de42021-06-21 15:49:19 -06001132bool CoreChecks::PreCallValidateCmdDrawMultiEXT(VkCommandBuffer commandBuffer, uint32_t drawCount,
1133 const VkMultiDrawInfoEXT *pVertexInfo, uint32_t instanceCount,
1134 uint32_t firstInstance, uint32_t stride) const {
1135 bool skip = false;
1136 if (!enabled_features.multi_draw_features.multiDraw) {
1137 skip |= LogError(commandBuffer, "VUID-vkCmdDrawMultiEXT-None-04933",
1138 "vkCmdDrawMultiEXT(): The multiDraw feature must be enabled to "
1139 "call this command.");
1140 }
1141 if (drawCount > phys_dev_ext_props.multi_draw_props.maxMultiDrawCount) {
1142 skip |= LogError(commandBuffer, "VUID-vkCmdDrawMultiEXT-drawCount-04934",
1143 "vkCmdDrawMultiEXT(): parameter, uint32_t drawCount (%" PRIu32
1144 ") must be less than VkPhysicalDeviceMultiDrawPropertiesEXT::maxMultiDrawCount (%" PRIu32 ").",
1145 drawCount, phys_dev_ext_props.multi_draw_props.maxMultiDrawCount);
1146 }
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001147 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001148 skip |= ValidateCmdDrawInstance(*cb_state, instanceCount, firstInstance, CMD_DRAWMULTIEXT);
1149 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWMULTIEXT);
Tony-LunarG4490de42021-06-21 15:49:19 -06001150 return skip;
1151}
1152
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001153bool CoreChecks::ValidateCmdDrawIndexedBufferSize(const CMD_BUFFER_STATE &cb_state, uint32_t indexCount, uint32_t firstIndex,
1154 const char *caller, const char *first_index_vuid) const {
Tony-LunarG4490de42021-06-21 15:49:19 -06001155 bool skip = false;
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001156 if (cb_state.status & CBSTATUS_INDEX_BUFFER_BOUND) {
Tony-LunarG4490de42021-06-21 15:49:19 -06001157 unsigned int index_size = 0;
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001158 const auto &index_buffer_binding = cb_state.index_buffer_binding;
Tony-LunarG4490de42021-06-21 15:49:19 -06001159 if (index_buffer_binding.index_type == VK_INDEX_TYPE_UINT16) {
1160 index_size = 2;
1161 }
1162 else if (index_buffer_binding.index_type == VK_INDEX_TYPE_UINT32) {
1163 index_size = 4;
1164 }
1165 else if (index_buffer_binding.index_type == VK_INDEX_TYPE_UINT8_EXT) {
1166 index_size = 1;
1167 }
1168 VkDeviceSize end_offset = (index_size * (static_cast<VkDeviceSize>(firstIndex) + indexCount)) + index_buffer_binding.offset;
1169 if (end_offset > index_buffer_binding.size) {
1170 skip |= LogError(index_buffer_binding.buffer_state->buffer(), first_index_vuid,
1171 "%s: index size (%u) * (firstIndex (%u) + indexCount (%u)) "
1172 "+ binding offset (%" PRIuLEAST64 ") = an ending offset of %" PRIuLEAST64
1173 " bytes, which is greater than the index buffer size (%" PRIuLEAST64 ").",
1174 caller, index_size, firstIndex, indexCount, index_buffer_binding.offset, end_offset,
1175 index_buffer_binding.size);
1176 }
1177 }
1178 return skip;
1179}
1180
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001181bool CoreChecks::PreCallValidateCmdDrawIndexed(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount,
Jeff Bolz5c801d12019-10-09 10:38:45 -05001182 uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance) const {
locke-lunarg3fa463a2020-10-23 16:39:04 -06001183 bool skip = false;
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001184 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001185 skip |= ValidateCmdDrawInstance(*cb_state, instanceCount, firstInstance, CMD_DRAWINDEXED);
1186 skip |= ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWINDEXED);
1187 skip |= ValidateCmdDrawIndexedBufferSize(*cb_state, indexCount, firstIndex, "vkCmdDrawIndexed()",
Tony-LunarG4490de42021-06-21 15:49:19 -06001188 "VUID-vkCmdDrawIndexed-firstIndex-04932");
1189 return skip;
1190}
1191
1192bool CoreChecks::PreCallValidateCmdDrawMultiIndexedEXT(VkCommandBuffer commandBuffer, uint32_t drawCount,
1193 const VkMultiDrawIndexedInfoEXT *pIndexInfo, uint32_t instanceCount,
1194 uint32_t firstInstance, uint32_t stride,
1195 const int32_t *pVertexOffset) const {
1196 bool skip = false;
1197 if (!enabled_features.multi_draw_features.multiDraw) {
1198 skip |= LogError(commandBuffer, "VUID-vkCmdDrawMultiIndexedEXT-None-04937",
1199 "vkCmdDrawMultiIndexedEXT(): The multiDraw feature must be enabled to "
1200 "call this command.");
1201 }
1202 if (drawCount > phys_dev_ext_props.multi_draw_props.maxMultiDrawCount) {
1203 skip |= LogError(commandBuffer, "VUID-vkCmdDrawMultiIndexedEXT-drawCount-04939",
1204 "vkCmdDrawMultiIndexedEXT(): parameter, uint32_t drawCount (0x%" PRIu32
1205 ") must be less than VkPhysicalDeviceMultiDrawPropertiesEXT::maxMultiDrawCount (0x%" PRIu32 ").",
1206 drawCount, phys_dev_ext_props.multi_draw_props.maxMultiDrawCount);
1207 }
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001208 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001209 skip |= ValidateCmdDrawInstance(*cb_state, instanceCount, firstInstance, CMD_DRAWMULTIINDEXEDEXT);
1210 skip |= ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWMULTIINDEXEDEXT);
Ricardo Garcia27a26f52021-07-13 15:52:14 +02001211 const auto info_bytes = reinterpret_cast<const char *>(pIndexInfo);
Tony-LunarG4490de42021-06-21 15:49:19 -06001212 for (uint32_t i = 0; i < drawCount; i++) {
Ricardo Garcia27a26f52021-07-13 15:52:14 +02001213 const auto info_ptr = reinterpret_cast<const VkMultiDrawIndexedInfoEXT *>(info_bytes + i * stride);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001214 skip |= ValidateCmdDrawIndexedBufferSize(*cb_state, info_ptr->indexCount, info_ptr->firstIndex,
Tony-LunarG4490de42021-06-21 15:49:19 -06001215 "vkCmdDrawMultiIndexedEXT()", "VUID-vkCmdDrawMultiIndexedEXT-firstIndex-04938");
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001216 }
1217 return skip;
1218}
1219
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001220bool CoreChecks::PreCallValidateCmdDrawIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1221 uint32_t drawCount, uint32_t stride) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001222 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001223 bool skip = ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWINDIRECT);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001224 auto buffer_state = Get<BUFFER_STATE>(buffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001225 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, CMD_DRAWINDIRECT);
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001226 if (drawCount > 1) {
Lockee68ac652019-05-06 10:17:33 -06001227 skip |= ValidateCmdDrawStrideWithStruct(commandBuffer, "VUID-vkCmdDrawIndirect-drawCount-00476", stride,
1228 "VkDrawIndirectCommand", sizeof(VkDrawIndirectCommand));
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001229 skip |= ValidateCmdDrawStrideWithBuffer(commandBuffer, "VUID-vkCmdDrawIndirect-drawCount-00488", stride,
1230 "VkDrawIndirectCommand", sizeof(VkDrawIndirectCommand), drawCount, offset,
Jeremy Gebben9f537102021-10-05 16:37:12 -06001231 buffer_state.get());
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001232 } else if ((drawCount == 1) && (offset + sizeof(VkDrawIndirectCommand)) > buffer_state->createInfo.size) {
1233 skip |= LogError(commandBuffer, "VUID-vkCmdDrawIndirect-drawCount-00487",
Jeremy Gebbenda6b48f2021-05-13 10:46:18 -06001234 "CmdDrawIndirect: drawCount equals 1 and (offset + sizeof(VkDrawIndirectCommand)) (%" PRIu64 ") is not less than "
1235 "or equal to the size of buffer (%" PRIu64 ").",
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001236 (offset + sizeof(VkDrawIndirectCommand)), buffer_state->createInfo.size);
Lockee68ac652019-05-06 10:17:33 -06001237 }
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001238 // TODO: If the drawIndirectFirstInstance feature is not enabled, all the firstInstance members of the
1239 // VkDrawIndirectCommand structures accessed by this command must be 0, which will require access to the contents of 'buffer'.
1240 return skip;
1241}
1242
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001243bool CoreChecks::PreCallValidateCmdDrawIndexedIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001244 uint32_t drawCount, uint32_t stride) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001245 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001246 bool skip = ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWINDEXEDINDIRECT);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001247 auto buffer_state = Get<BUFFER_STATE>(buffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001248 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, CMD_DRAWINDEXEDINDIRECT);
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001249 if (drawCount > 1) {
Lockee68ac652019-05-06 10:17:33 -06001250 skip |= ValidateCmdDrawStrideWithStruct(commandBuffer, "VUID-vkCmdDrawIndexedIndirect-drawCount-00528", stride,
1251 "VkDrawIndexedIndirectCommand", sizeof(VkDrawIndexedIndirectCommand));
1252 skip |= ValidateCmdDrawStrideWithBuffer(commandBuffer, "VUID-vkCmdDrawIndexedIndirect-drawCount-00540", stride,
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001253 "VkDrawIndexedIndirectCommand", sizeof(VkDrawIndexedIndirectCommand), drawCount,
Jeremy Gebben9f537102021-10-05 16:37:12 -06001254 offset, buffer_state.get());
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001255 } else if ((drawCount == 1) && (offset + sizeof(VkDrawIndexedIndirectCommand)) > buffer_state->createInfo.size) {
1256 skip |= LogError(
1257 commandBuffer, "VUID-vkCmdDrawIndexedIndirect-drawCount-00539",
Jeremy Gebbenda6b48f2021-05-13 10:46:18 -06001258 "CmdDrawIndexedIndirect: drawCount equals 1 and (offset + sizeof(VkDrawIndexedIndirectCommand)) (%" PRIu64 ") is not less than "
1259 "or equal to the size of buffer (%" PRIu64 ").",
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001260 (offset + sizeof(VkDrawIndexedIndirectCommand)), buffer_state->createInfo.size);
Lockee68ac652019-05-06 10:17:33 -06001261 }
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001262 // TODO: If the drawIndirectFirstInstance feature is not enabled, all the firstInstance members of the
1263 // VkDrawIndexedIndirectCommand structures accessed by this command must be 0, which will require access to the contents of
1264 // 'buffer'.
1265 return skip;
1266}
1267
Jeff Bolz5c801d12019-10-09 10:38:45 -05001268bool CoreChecks::PreCallValidateCmdDispatch(VkCommandBuffer commandBuffer, uint32_t x, uint32_t y, uint32_t z) const {
Lockef39c0772019-04-03 14:40:02 -06001269 bool skip = false;
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001270 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001271 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_COMPUTE, CMD_DISPATCH);
Lockef39c0772019-04-03 14:40:02 -06001272 return skip;
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001273}
1274
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001275bool CoreChecks::ValidateBaseGroups(const CMD_BUFFER_STATE &cb_state, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ,
Tony-LunarGf825e6d2020-12-16 13:05:17 -07001276 const char *apiName) const {
1277 bool skip = false;
1278 if (baseGroupX || baseGroupY || baseGroupZ) {
Tony-LunarGf825e6d2020-12-16 13:05:17 -07001279 const auto lv_bind_point = ConvertToLvlBindPoint(VK_PIPELINE_BIND_POINT_COMPUTE);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001280 const auto *pipeline_state = cb_state.lastBound[lv_bind_point].pipeline_state;
Jeremy Gebben11af9792021-08-20 10:20:09 -06001281 if (pipeline_state && !(pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_DISPATCH_BASE)) {
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001282 skip |= LogError(cb_state.Handle(), "VUID-vkCmdDispatchBase-baseGroupX-00427",
Tony-LunarGf825e6d2020-12-16 13:05:17 -07001283 "%s(): If any of baseGroupX, baseGroupY, or baseGroupZ are not zero, then the bound compute pipeline "
1284 "must have been created with the VK_PIPELINE_CREATE_DISPATCH_BASE flag",
1285 apiName);
1286 }
1287 }
1288 return skip;
1289}
1290
locke-lunarg25b6c352020-08-06 17:44:18 -06001291bool CoreChecks::PreCallValidateCmdDispatchBase(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY,
1292 uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY,
1293 uint32_t groupCountZ) const {
1294 bool skip = false;
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001295 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001296 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_COMPUTE, CMD_DISPATCHBASE);
1297 skip |= ValidateBaseGroups(*cb_state, baseGroupX, baseGroupY, baseGroupZ, "vkCmdDispatchBase()");
locke-lunarg25b6c352020-08-06 17:44:18 -06001298 return skip;
1299}
1300
1301bool CoreChecks::PreCallValidateCmdDispatchBaseKHR(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY,
1302 uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY,
1303 uint32_t groupCountZ) const {
1304 bool skip = false;
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001305 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001306 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_COMPUTE, CMD_DISPATCHBASEKHR);
1307 skip |= ValidateBaseGroups(*cb_state, baseGroupX, baseGroupY, baseGroupZ, "vkCmdDispatchBaseKHR()");
locke-lunarg25b6c352020-08-06 17:44:18 -06001308 return skip;
1309}
1310
Jeff Bolz5c801d12019-10-09 10:38:45 -05001311bool CoreChecks::PreCallValidateCmdDispatchIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001312 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001313 bool skip = ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_COMPUTE, CMD_DISPATCHINDIRECT);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001314 auto buffer_state = Get<BUFFER_STATE>(buffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001315 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, CMD_DISPATCHINDIRECT);
Tony-LunarGda555b52021-01-06 13:43:49 -07001316 if ((offset + sizeof(VkDispatchIndirectCommand)) > buffer_state->createInfo.size) {
1317 skip |= LogError(commandBuffer, "VUID-vkCmdDispatchIndirect-offset-00407",
1318 "vkCmdDispatchIndirect(): The sum of offset and the size of VkDispatchIndirectCommand is greater than the "
1319 "size of the buffer");
1320 }
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001321 return skip;
1322}
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001323bool CoreChecks::ValidateCmdDrawIndirectCount(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1324 VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount,
sfricke-samsung85584a72021-09-30 21:43:38 -07001325 uint32_t stride, CMD_TYPE cmd_type) const {
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001326 bool skip = false;
sfricke-samsung85584a72021-09-30 21:43:38 -07001327 const char *apiName = CommandTypeString(cmd_type);
Nathaniel Cesario7f231f12021-03-25 12:10:58 -06001328 if ((device_extensions.vk_khr_draw_indirect_count != kEnabledByCreateinfo) &&
1329 ((api_version >= VK_API_VERSION_1_2) && (enabled_features.core12.drawIndirectCount == VK_FALSE))) {
Shannon McPherson2c793ba2020-08-28 12:13:24 -06001330 skip |= LogError(commandBuffer, "VUID-vkCmdDrawIndirectCount-None-04445",
sfricke-samsung27c70722020-05-02 08:42:39 -07001331 "%s(): Starting in Vulkan 1.2 the VkPhysicalDeviceVulkan12Features::drawIndirectCount must be enabled to "
1332 "call this command.",
1333 apiName);
1334 }
AndreyVK_D3Db2753e12021-07-21 12:24:03 +03001335 skip |= ValidateCmdDrawStrideWithStruct(commandBuffer, "VUID-vkCmdDrawIndirectCount-stride-03110", stride,
1336 "VkDrawIndirectCommand", sizeof(VkDrawIndirectCommand));
Lockee68ac652019-05-06 10:17:33 -06001337 if (maxDrawCount > 1) {
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001338 auto buffer_state = Get<BUFFER_STATE>(buffer);
AndreyVK_D3Db2753e12021-07-21 12:24:03 +03001339 skip |= ValidateCmdDrawStrideWithBuffer(commandBuffer, "VUID-vkCmdDrawIndirectCount-maxDrawCount-03111", stride,
1340 "VkDrawIndirectCommand", sizeof(VkDrawIndirectCommand), maxDrawCount, offset,
Jeremy Gebben9f537102021-10-05 16:37:12 -06001341 buffer_state.get());
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001342 }
1343
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001344 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001345 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, cmd_type);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001346 auto buffer_state = Get<BUFFER_STATE>(buffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001347 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, cmd_type);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001348 auto count_buffer_state = Get<BUFFER_STATE>(countBuffer);
Jeremy Gebben9f537102021-10-05 16:37:12 -06001349 skip |= ValidateMemoryIsBoundToBuffer(count_buffer_state.get(), apiName, "VUID-vkCmdDrawIndirectCount-countBuffer-02714");
Tony-LunarG83544c72020-01-17 12:30:19 -07001350 skip |=
Jeremy Gebben9f537102021-10-05 16:37:12 -06001351 ValidateBufferUsageFlags(count_buffer_state.get(), VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT, true,
Tony-LunarG83544c72020-01-17 12:30:19 -07001352 "VUID-vkCmdDrawIndirectCount-countBuffer-02715", apiName, "VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT");
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001353 return skip;
1354}
1355
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001356bool CoreChecks::PreCallValidateCmdDrawIndirectCountKHR(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1357 VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount,
1358 uint32_t stride) const {
Tony-LunarG83544c72020-01-17 12:30:19 -07001359 return ValidateCmdDrawIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride,
sfricke-samsung85584a72021-09-30 21:43:38 -07001360 CMD_DRAWINDIRECTCOUNTKHR);
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001361}
1362
1363bool CoreChecks::PreCallValidateCmdDrawIndirectCount(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1364 VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount,
1365 uint32_t stride) const {
Tony-LunarG83544c72020-01-17 12:30:19 -07001366 return ValidateCmdDrawIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride,
sfricke-samsung85584a72021-09-30 21:43:38 -07001367 CMD_DRAWINDIRECTCOUNT);
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001368}
1369
1370bool CoreChecks::ValidateCmdDrawIndexedIndirectCount(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1371 VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount,
sfricke-samsung85584a72021-09-30 21:43:38 -07001372 uint32_t stride, CMD_TYPE cmd_type) const {
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001373 bool skip = false;
sfricke-samsung85584a72021-09-30 21:43:38 -07001374 const char *apiName = CommandTypeString(cmd_type);
Nathaniel Cesario7f231f12021-03-25 12:10:58 -06001375 if ((device_extensions.vk_khr_draw_indirect_count != kEnabledByCreateinfo) &&
1376 ((api_version >= VK_API_VERSION_1_2) && (enabled_features.core12.drawIndirectCount == VK_FALSE))) {
Shannon McPherson2c793ba2020-08-28 12:13:24 -06001377 skip |= LogError(commandBuffer, "VUID-vkCmdDrawIndexedIndirectCount-None-04445",
sfricke-samsung27c70722020-05-02 08:42:39 -07001378 "%s(): Starting in Vulkan 1.2 the VkPhysicalDeviceVulkan12Features::drawIndirectCount must be enabled to "
1379 "call this command.",
1380 apiName);
1381 }
AndreyVK_D3Db2753e12021-07-21 12:24:03 +03001382 skip |= ValidateCmdDrawStrideWithStruct(commandBuffer, "VUID-vkCmdDrawIndexedIndirectCount-stride-03142", stride,
1383 "VkDrawIndexedIndirectCommand", sizeof(VkDrawIndexedIndirectCommand));
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001384 auto buffer_state = Get<BUFFER_STATE>(buffer);
Lockee68ac652019-05-06 10:17:33 -06001385 if (maxDrawCount > 1) {
Mike Schuchardt65847d92019-12-20 13:50:47 -08001386 skip |= ValidateCmdDrawStrideWithBuffer(commandBuffer, "VUID-vkCmdDrawIndexedIndirectCount-maxDrawCount-03143", stride,
AndreyVK_D3Db2753e12021-07-21 12:24:03 +03001387 "VkDrawIndexedIndirectCommand", sizeof(VkDrawIndexedIndirectCommand), maxDrawCount,
Jeremy Gebben9f537102021-10-05 16:37:12 -06001388 offset, buffer_state.get());
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001389 }
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001390 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001391 skip |= ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_GRAPHICS, cmd_type);
1392 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, cmd_type);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001393 auto count_buffer_state = Get<BUFFER_STATE>(countBuffer);
Jeremy Gebben9f537102021-10-05 16:37:12 -06001394 skip |=
1395 ValidateMemoryIsBoundToBuffer(count_buffer_state.get(), apiName, "VUID-vkCmdDrawIndexedIndirectCount-countBuffer-02714");
1396 skip |= ValidateBufferUsageFlags(count_buffer_state.get(), VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT, true,
sfricke-samsungf692b972020-05-02 08:00:45 -07001397 "VUID-vkCmdDrawIndexedIndirectCount-countBuffer-02715", apiName,
Mike Schuchardt65847d92019-12-20 13:50:47 -08001398 "VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT");
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001399 return skip;
1400}
1401
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001402bool CoreChecks::PreCallValidateCmdDrawIndexedIndirectCountKHR(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1403 VkBuffer countBuffer, VkDeviceSize countBufferOffset,
1404 uint32_t maxDrawCount, uint32_t stride) const {
sfricke-samsungf692b972020-05-02 08:00:45 -07001405 return ValidateCmdDrawIndexedIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride,
sfricke-samsung85584a72021-09-30 21:43:38 -07001406 CMD_DRAWINDEXEDINDIRECTCOUNTKHR);
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001407}
1408
1409bool CoreChecks::PreCallValidateCmdDrawIndexedIndirectCount(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1410 VkBuffer countBuffer, VkDeviceSize countBufferOffset,
1411 uint32_t maxDrawCount, uint32_t stride) const {
sfricke-samsungf692b972020-05-02 08:00:45 -07001412 return ValidateCmdDrawIndexedIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride,
sfricke-samsung85584a72021-09-30 21:43:38 -07001413 CMD_DRAWINDEXEDINDIRECTCOUNT);
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001414}
1415
locke-lunarg9a16ebb2020-07-30 16:56:33 -06001416bool CoreChecks::PreCallValidateCmdDrawIndirectByteCountEXT(VkCommandBuffer commandBuffer, uint32_t instanceCount,
1417 uint32_t firstInstance, VkBuffer counterBuffer,
1418 VkDeviceSize counterBufferOffset, uint32_t counterOffset,
1419 uint32_t vertexStride) const {
sfricke-samsungd5e9adb2020-10-26 03:59:29 -07001420 bool skip = false;
Tony-LunarG2c94ba82020-11-05 14:21:40 -07001421 if (!enabled_features.transform_feedback_features.transformFeedback) {
1422 skip |= LogError(commandBuffer, "VUID-vkCmdDrawIndirectByteCountEXT-transformFeedback-02287",
1423 "%s: transformFeedback feature is not enabled.", "vkCmdDrawIndirectByteCountEXT()");
1424 }
sfricke-samsung45996a42021-09-16 13:45:27 -07001425 if (IsExtEnabled(device_extensions.vk_ext_transform_feedback) &&
1426 !phys_dev_ext_props.transform_feedback_props.transformFeedbackDraw) {
sfricke-samsungba459bd2020-12-06 23:20:04 -08001427 skip |= LogError(commandBuffer, "VUID-vkCmdDrawIndirectByteCountEXT-transformFeedbackDraw-02288",
Tony-LunarG2c94ba82020-11-05 14:21:40 -07001428 "%s: VkPhysicalDeviceTransformFeedbackPropertiesEXT::transformFeedbackDraw is not supported",
1429 "vkCmdDrawIndirectByteCountEXT()");
1430 }
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001431 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001432 skip |= ValidateCmdDrawInstance(*cb_state, instanceCount, firstInstance, CMD_DRAWINDIRECTBYTECOUNTEXT);
1433 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWINDIRECTBYTECOUNTEXT);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001434 auto counter_buffer_state = Get<BUFFER_STATE>(counterBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001435 skip |= ValidateIndirectCmd(*cb_state, *counter_buffer_state, CMD_DRAWINDIRECTBYTECOUNTEXT);
sfricke-samsungd5e9adb2020-10-26 03:59:29 -07001436 return skip;
locke-lunarg9a16ebb2020-07-30 16:56:33 -06001437}
1438
Jeff Bolzf6e872c2019-10-22 12:17:28 -05001439bool CoreChecks::PreCallValidateCmdTraceRaysNV(VkCommandBuffer commandBuffer, VkBuffer raygenShaderBindingTableBuffer,
1440 VkDeviceSize raygenShaderBindingOffset, VkBuffer missShaderBindingTableBuffer,
1441 VkDeviceSize missShaderBindingOffset, VkDeviceSize missShaderBindingStride,
1442 VkBuffer hitShaderBindingTableBuffer, VkDeviceSize hitShaderBindingOffset,
1443 VkDeviceSize hitShaderBindingStride, VkBuffer callableShaderBindingTableBuffer,
1444 VkDeviceSize callableShaderBindingOffset, VkDeviceSize callableShaderBindingStride,
1445 uint32_t width, uint32_t height, uint32_t depth) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001446 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001447 bool skip = ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_RAY_TRACING_NV, CMD_TRACERAYSNV);
Jeremy Gebbenb20a8242021-11-05 15:14:43 -06001448 auto callable_shader_buffer_state = Get<BUFFER_STATE>(callableShaderBindingTableBuffer);
sourav parmard1521802020-06-07 21:49:02 -07001449 if (callable_shader_buffer_state && callableShaderBindingOffset >= callable_shader_buffer_state->createInfo.size) {
1450 skip |= LogError(commandBuffer, "VUID-vkCmdTraceRaysNV-callableShaderBindingOffset-02461",
1451 "vkCmdTraceRaysNV: callableShaderBindingOffset %" PRIu64
1452 " must be less than the size of callableShaderBindingTableBuffer %" PRIu64 " .",
1453 callableShaderBindingOffset, callable_shader_buffer_state->createInfo.size);
1454 }
Jeremy Gebbenb20a8242021-11-05 15:14:43 -06001455 auto hit_shader_buffer_state = Get<BUFFER_STATE>(hitShaderBindingTableBuffer);
sourav parmard1521802020-06-07 21:49:02 -07001456 if (hit_shader_buffer_state && hitShaderBindingOffset >= hit_shader_buffer_state->createInfo.size) {
1457 skip |= LogError(commandBuffer, "VUID-vkCmdTraceRaysNV-hitShaderBindingOffset-02459",
1458 "vkCmdTraceRaysNV: hitShaderBindingOffset %" PRIu64
1459 " must be less than the size of hitShaderBindingTableBuffer %" PRIu64 " .",
1460 hitShaderBindingOffset, hit_shader_buffer_state->createInfo.size);
1461 }
Jeremy Gebbenb20a8242021-11-05 15:14:43 -06001462 auto miss_shader_buffer_state = Get<BUFFER_STATE>(missShaderBindingTableBuffer);
sourav parmard1521802020-06-07 21:49:02 -07001463 if (miss_shader_buffer_state && missShaderBindingOffset >= miss_shader_buffer_state->createInfo.size) {
1464 skip |= LogError(commandBuffer, "VUID-vkCmdTraceRaysNV-missShaderBindingOffset-02457",
1465 "vkCmdTraceRaysNV: missShaderBindingOffset %" PRIu64
baldurk751594b2020-09-09 09:41:02 +01001466 " must be less than the size of missShaderBindingTableBuffer %" PRIu64 " .",
sourav parmard1521802020-06-07 21:49:02 -07001467 missShaderBindingOffset, miss_shader_buffer_state->createInfo.size);
1468 }
Jeremy Gebbenb20a8242021-11-05 15:14:43 -06001469 auto raygen_shader_buffer_state = Get<BUFFER_STATE>(raygenShaderBindingTableBuffer);
sourav parmard1521802020-06-07 21:49:02 -07001470 if (raygenShaderBindingOffset >= raygen_shader_buffer_state->createInfo.size) {
1471 skip |= LogError(commandBuffer, "VUID-vkCmdTraceRaysNV-raygenShaderBindingOffset-02455",
1472 "vkCmdTraceRaysNV: raygenShaderBindingOffset %" PRIu64
baldurk751594b2020-09-09 09:41:02 +01001473 " must be less than the size of raygenShaderBindingTableBuffer %" PRIu64 " .",
sourav parmard1521802020-06-07 21:49:02 -07001474 raygenShaderBindingOffset, raygen_shader_buffer_state->createInfo.size);
1475 }
sourav parmarcd5fb182020-07-17 12:58:44 -07001476
sourav parmar30e19392020-12-02 16:57:21 -08001477 const auto lv_bind_point = ConvertToLvlBindPoint(VK_PIPELINE_BIND_POINT_RAY_TRACING_NV);
1478 const PIPELINE_STATE *pipeline_state = cb_state->lastBound[lv_bind_point].pipeline_state;
Jeremy Gebben14b0d1a2021-05-15 20:15:41 -06001479 if (!pipeline_state || (pipeline_state && !pipeline_state->pipeline())) {
sourav parmar30e19392020-12-02 16:57:21 -08001480 skip |= LogError(device, "VUID-vkCmdTraceRaysNV-None-02700",
1481 "vkCmdTraceRaysKHR: A valid pipeline must be bound to the pipeline bind point used by this command.");
sourav parmarcd5fb182020-07-17 12:58:44 -07001482 }
Jeff Bolzf6e872c2019-10-22 12:17:28 -05001483 return skip;
1484}
1485
Jeff Bolz443c2ca2020-03-19 12:11:51 -05001486bool CoreChecks::PreCallValidateCmdTraceRaysKHR(VkCommandBuffer commandBuffer,
sourav parmarcd5fb182020-07-17 12:58:44 -07001487 const VkStridedDeviceAddressRegionKHR *pRaygenShaderBindingTable,
1488 const VkStridedDeviceAddressRegionKHR *pMissShaderBindingTable,
1489 const VkStridedDeviceAddressRegionKHR *pHitShaderBindingTable,
1490 const VkStridedDeviceAddressRegionKHR *pCallableShaderBindingTable, uint32_t width,
Jeff Bolz443c2ca2020-03-19 12:11:51 -05001491 uint32_t height, uint32_t depth) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001492 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001493 bool skip = ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR, CMD_TRACERAYSKHR);
Shannon McPherson9caca052020-11-25 11:34:38 -07001494 const auto lv_bind_point = ConvertToLvlBindPoint(VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR);
1495 const PIPELINE_STATE *pipeline_state = cb_state->lastBound[lv_bind_point].pipeline_state;
Jeremy Gebben14b0d1a2021-05-15 20:15:41 -06001496 if (!pipeline_state || (pipeline_state && !pipeline_state->pipeline())) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001497 skip |= LogError(device, "VUID-vkCmdTraceRaysKHR-None-02700",
1498 "vkCmdTraceRaysKHR: A valid pipeline must be bound to the pipeline bind point used by this command.");
1499 } else { // bound to valid RT pipeline
Jeremy Gebben11af9792021-08-20 10:20:09 -06001500 if (pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001501 if (!pHitShaderBindingTable->deviceAddress) {
1502 skip |= LogError(device, "VUID-vkCmdTraceRaysKHR-flags-03697",
1503 "vkCmdTraceRaysKHR: If the currently bound ray tracing pipeline was created with flags "
1504 "that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, the "
1505 "deviceAddress member of pHitShaderBindingTable must not be zero.");
1506 }
1507 if (!pHitShaderBindingTable || pHitShaderBindingTable->size == 0 || pHitShaderBindingTable->stride == 0) {
1508 skip |= LogError(device, "VUID-vkCmdTraceRaysKHR-flags-03514",
1509 "vkCmdTraceRaysKHR: If the currently bound ray tracing pipeline was created with "
1510 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, "
1511 "entries in pHitShaderBindingTable accessed as a result of this command in order to "
1512 "execute an intersection shader must not be set to zero.");
1513 }
1514 }
Jeremy Gebben11af9792021-08-20 10:20:09 -06001515 if (pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001516 if (!pHitShaderBindingTable->deviceAddress) {
1517 skip |= LogError(device, "VUID-vkCmdTraceRaysKHR-flags-03696",
1518 "vkCmdTraceRaysKHR: If the currently bound ray tracing pipeline was created with flags "
1519 "that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, the "
1520 "deviceAddress member of pHitShaderBindingTable must not be zero.");
1521 }
1522 if (!pHitShaderBindingTable || pHitShaderBindingTable->size == 0 || pHitShaderBindingTable->stride == 0) {
1523 skip |= LogError(device, "VUID-vkCmdTraceRaysKHR-flags-03513",
1524 "vkCmdTraceRaysKHR: If the currently bound ray tracing pipeline was created with "
1525 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, "
1526 "entries in pHitShaderBindingTable accessed as a result of this command in order to "
1527 "execute a closest hit shader must not be set to zero.");
1528 }
1529 }
Jeremy Gebben11af9792021-08-20 10:20:09 -06001530 if (pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001531 if (!pHitShaderBindingTable || pHitShaderBindingTable->size == 0 || pHitShaderBindingTable->stride == 0) {
1532 skip |= LogError(device, "VUID-vkCmdTraceRaysKHR-flags-03512",
1533 "vkCmdTraceRaysKHR: If the currently bound ray tracing pipeline was created with "
1534 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR, "
1535 "entries in pHitShaderBindingTable accessed as a result of this command in order to "
1536 "execute an any hit shader must not be set to zero.");
1537 }
1538 }
1539 }
Jeff Bolz443c2ca2020-03-19 12:11:51 -05001540 return skip;
1541}
1542
Jeff Bolz443c2ca2020-03-19 12:11:51 -05001543bool CoreChecks::PreCallValidateCmdTraceRaysIndirectKHR(VkCommandBuffer commandBuffer,
sourav parmarcd5fb182020-07-17 12:58:44 -07001544 const VkStridedDeviceAddressRegionKHR *pRaygenShaderBindingTable,
1545 const VkStridedDeviceAddressRegionKHR *pMissShaderBindingTable,
1546 const VkStridedDeviceAddressRegionKHR *pHitShaderBindingTable,
1547 const VkStridedDeviceAddressRegionKHR *pCallableShaderBindingTable,
1548 VkDeviceAddress indirectDeviceAddress) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001549 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001550 bool skip = ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR, CMD_TRACERAYSINDIRECTKHR);
Shannon McPherson9caca052020-11-25 11:34:38 -07001551 const auto lv_bind_point = ConvertToLvlBindPoint(VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR);
Jeremy Gebbenb20a8242021-11-05 15:14:43 -06001552 const auto *pipeline_state = cb_state->lastBound[lv_bind_point].pipeline_state;
Jeremy Gebben14b0d1a2021-05-15 20:15:41 -06001553 if (!pipeline_state || (pipeline_state && !pipeline_state->pipeline())) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001554 skip |=
1555 LogError(device, "VUID-vkCmdTraceRaysIndirectKHR-None-02700",
1556 "vkCmdTraceRaysIndirectKHR: A valid pipeline must be bound to the pipeline bind point used by this command.");
1557 } else { // valid bind point
Jeremy Gebben11af9792021-08-20 10:20:09 -06001558 if (pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001559 if (!pHitShaderBindingTable || pHitShaderBindingTable->deviceAddress == 0) {
1560 skip |= LogError(device, "VUID-vkCmdTraceRaysIndirectKHR-flags-03697",
1561 "vkCmdTraceRaysIndirectKHR: If the currently bound ray tracing pipeline was created with "
1562 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, the "
1563 "deviceAddress member of pHitShaderBindingTable must not be zero.");
1564 }
1565 if (!pHitShaderBindingTable || pHitShaderBindingTable->size == 0 || pHitShaderBindingTable->stride == 0) {
1566 skip |= LogError(device, "VUID-vkCmdTraceRaysIndirectKHR-flags-03514",
1567 "vkCmdTraceRaysIndirectKHR: If the currently bound ray tracing pipeline was created with "
1568 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, "
1569 "entries in pHitShaderBindingTable accessed as a result of this command in order to "
1570 "execute an intersection shader must not be set to zero.");
1571 }
1572 }
Jeremy Gebben11af9792021-08-20 10:20:09 -06001573 if (pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001574 if (!pHitShaderBindingTable || pHitShaderBindingTable->deviceAddress == 0) {
1575 skip |= LogError(device, "VUID-vkCmdTraceRaysIndirectKHR-flags-03696",
1576 "vkCmdTraceRaysIndirectKHR:If the currently bound ray tracing pipeline was created with "
1577 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, "
1578 "the deviceAddress member of pHitShaderBindingTable must not be zero.");
1579 }
1580 if (!pHitShaderBindingTable || pHitShaderBindingTable->size == 0 || pHitShaderBindingTable->stride == 0) {
1581 skip |= LogError(device, "VUID-vkCmdTraceRaysIndirectKHR-flags-03513",
1582 "vkCmdTraceRaysIndirectKHR: If the currently bound ray tracing pipeline was created with "
1583 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, "
1584 "entries in pHitShaderBindingTable accessed as a result of this command in order to "
1585 "execute a closest hit shader must not be set to zero.");
1586 }
1587 }
Jeremy Gebben11af9792021-08-20 10:20:09 -06001588 if (pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001589 if (!pHitShaderBindingTable || pHitShaderBindingTable->size == 0 || pHitShaderBindingTable->stride == 0) {
1590 skip |= LogError(device, "VUID-vkCmdTraceRaysIndirectKHR-flags-03512",
1591 "vkCmdTraceRaysIndirectKHR: If the currently bound ray tracing pipeline was created with "
1592 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR, "
1593 "entries in pHitShaderBindingTable accessed as a result of this command in order to "
1594 "execute an any hit shader must not be set to zero.");
1595 }
1596 }
1597 }
Jeff Bolz443c2ca2020-03-19 12:11:51 -05001598 return skip;
1599}
1600
Jeff Bolz5c801d12019-10-09 10:38:45 -05001601bool CoreChecks::PreCallValidateCmdDrawMeshTasksNV(VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001602 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001603 bool skip = ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWMESHTASKSNV);
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001604 return skip;
1605}
1606
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001607bool CoreChecks::PreCallValidateCmdDrawMeshTasksIndirectNV(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
Jeff Bolz5c801d12019-10-09 10:38:45 -05001608 uint32_t drawCount, uint32_t stride) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001609 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001610 bool skip = ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWMESHTASKSINDIRECTNV);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001611 auto buffer_state = Get<BUFFER_STATE>(buffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001612 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, CMD_DRAWMESHTASKSINDIRECTNV);
Lockee68ac652019-05-06 10:17:33 -06001613 if (drawCount > 1) {
Lockee68ac652019-05-06 10:17:33 -06001614 skip |= ValidateCmdDrawStrideWithBuffer(commandBuffer, "VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02157", stride,
1615 "VkDrawMeshTasksIndirectCommandNV", sizeof(VkDrawMeshTasksIndirectCommandNV),
Jeremy Gebben9f537102021-10-05 16:37:12 -06001616 drawCount, offset, buffer_state.get());
Lockee68ac652019-05-06 10:17:33 -06001617 }
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001618 return skip;
1619}
1620
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001621bool CoreChecks::PreCallValidateCmdDrawMeshTasksIndirectCountNV(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1622 VkBuffer countBuffer, VkDeviceSize countBufferOffset,
Jeff Bolz5c801d12019-10-09 10:38:45 -05001623 uint32_t maxDrawCount, uint32_t stride) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001624 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001625 bool skip = ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWMESHTASKSINDIRECTCOUNTNV);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001626 auto buffer_state = Get<BUFFER_STATE>(buffer);
1627 auto count_buffer_state = Get<BUFFER_STATE>(countBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001628 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, CMD_DRAWMESHTASKSINDIRECTCOUNTNV);
Jeremy Gebben9f537102021-10-05 16:37:12 -06001629 skip |= ValidateMemoryIsBoundToBuffer(count_buffer_state.get(), "vkCmdDrawMeshTasksIndirectCountNV()",
Shannon McPhersonde3eeba2019-04-30 16:53:59 -06001630 "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02714");
Jeremy Gebben9f537102021-10-05 16:37:12 -06001631 skip |= ValidateBufferUsageFlags(count_buffer_state.get(), VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT, true,
sfricke-samsungf692b972020-05-02 08:00:45 -07001632 "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02715",
1633 "vkCmdDrawMeshTasksIndirectCountNV()", "VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT");
Lockee68ac652019-05-06 10:17:33 -06001634 skip |= ValidateCmdDrawStrideWithStruct(commandBuffer, "VUID-vkCmdDrawMeshTasksIndirectCountNV-stride-02182", stride,
1635 "VkDrawMeshTasksIndirectCommandNV", sizeof(VkDrawMeshTasksIndirectCommandNV));
1636 if (maxDrawCount > 1) {
1637 skip |= ValidateCmdDrawStrideWithBuffer(commandBuffer, "VUID-vkCmdDrawMeshTasksIndirectCountNV-maxDrawCount-02183", stride,
1638 "VkDrawMeshTasksIndirectCommandNV", sizeof(VkDrawMeshTasksIndirectCommandNV),
Jeremy Gebben9f537102021-10-05 16:37:12 -06001639 maxDrawCount, offset, buffer_state.get());
Lockee68ac652019-05-06 10:17:33 -06001640 }
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001641 return skip;
1642}