• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // *** THIS FILE IS GENERATED - DO NOT EDIT ***
2 // See helper_file_generator.py for modifications
3 
4 
5 /***************************************************************************
6  *
7  * Copyright (c) 2015-2019 The Khronos Group Inc.
8  * Copyright (c) 2015-2019 Valve Corporation
9  * Copyright (c) 2015-2019 LunarG, Inc.
10  * Copyright (c) 2015-2019 Google Inc.
11  *
12  * Licensed under the Apache License, Version 2.0 (the "License");
13  * you may not use this file except in compliance with the License.
14  * You may obtain a copy of the License at
15  *
16  *     http://www.apache.org/licenses/LICENSE-2.0
17  *
18  * Unless required by applicable law or agreed to in writing, software
19  * distributed under the License is distributed on an "AS IS" BASIS,
20  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21  * See the License for the specific language governing permissions and
22  * limitations under the License.
23  *
24  * Author: Mark Lobodzinski <mark@lunarg.com>
25  * Author: Courtney Goeltzenleuchter <courtneygo@google.com>
26  * Author: Tobin Ehlis <tobine@google.com>
27  * Author: Chris Forbes <chrisforbes@google.com>
28  * Author: John Zulauf<jzulauf@lunarg.com>
29  *
30  ****************************************************************************/
31 
32 #pragma once
33 #include <vulkan/vulkan.h>
34 
35 // These empty generic templates are specialized for each type with sType
36 // members and for each sType -- providing a two way map between structure
37 // types and sTypes
38 
39 template <VkStructureType id> struct LvlSTypeMap {};
40 template <typename T> struct LvlTypeMap {};
41 
42 // Map type VkApplicationInfo to id VK_STRUCTURE_TYPE_APPLICATION_INFO
43 template <> struct LvlTypeMap<VkApplicationInfo> {
44     static const VkStructureType kSType = VK_STRUCTURE_TYPE_APPLICATION_INFO;
45 };
46 
47 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_APPLICATION_INFO> {
48     typedef VkApplicationInfo Type;
49 };
50 
51 // Map type VkInstanceCreateInfo to id VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO
52 template <> struct LvlTypeMap<VkInstanceCreateInfo> {
53     static const VkStructureType kSType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
54 };
55 
56 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO> {
57     typedef VkInstanceCreateInfo Type;
58 };
59 
60 // Map type VkDeviceQueueCreateInfo to id VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO
61 template <> struct LvlTypeMap<VkDeviceQueueCreateInfo> {
62     static const VkStructureType kSType = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO;
63 };
64 
65 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO> {
66     typedef VkDeviceQueueCreateInfo Type;
67 };
68 
69 // Map type VkDeviceCreateInfo to id VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO
70 template <> struct LvlTypeMap<VkDeviceCreateInfo> {
71     static const VkStructureType kSType = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO;
72 };
73 
74 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO> {
75     typedef VkDeviceCreateInfo Type;
76 };
77 
78 // Map type VkSubmitInfo to id VK_STRUCTURE_TYPE_SUBMIT_INFO
79 template <> struct LvlTypeMap<VkSubmitInfo> {
80     static const VkStructureType kSType = VK_STRUCTURE_TYPE_SUBMIT_INFO;
81 };
82 
83 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_SUBMIT_INFO> {
84     typedef VkSubmitInfo Type;
85 };
86 
87 // Map type VkMemoryAllocateInfo to id VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO
88 template <> struct LvlTypeMap<VkMemoryAllocateInfo> {
89     static const VkStructureType kSType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO;
90 };
91 
92 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO> {
93     typedef VkMemoryAllocateInfo Type;
94 };
95 
96 // Map type VkMappedMemoryRange to id VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE
97 template <> struct LvlTypeMap<VkMappedMemoryRange> {
98     static const VkStructureType kSType = VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE;
99 };
100 
101 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE> {
102     typedef VkMappedMemoryRange Type;
103 };
104 
105 // Map type VkBindSparseInfo to id VK_STRUCTURE_TYPE_BIND_SPARSE_INFO
106 template <> struct LvlTypeMap<VkBindSparseInfo> {
107     static const VkStructureType kSType = VK_STRUCTURE_TYPE_BIND_SPARSE_INFO;
108 };
109 
110 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_BIND_SPARSE_INFO> {
111     typedef VkBindSparseInfo Type;
112 };
113 
114 // Map type VkFenceCreateInfo to id VK_STRUCTURE_TYPE_FENCE_CREATE_INFO
115 template <> struct LvlTypeMap<VkFenceCreateInfo> {
116     static const VkStructureType kSType = VK_STRUCTURE_TYPE_FENCE_CREATE_INFO;
117 };
118 
119 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_FENCE_CREATE_INFO> {
120     typedef VkFenceCreateInfo Type;
121 };
122 
123 // Map type VkSemaphoreCreateInfo to id VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO
124 template <> struct LvlTypeMap<VkSemaphoreCreateInfo> {
125     static const VkStructureType kSType = VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO;
126 };
127 
128 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO> {
129     typedef VkSemaphoreCreateInfo Type;
130 };
131 
132 // Map type VkEventCreateInfo to id VK_STRUCTURE_TYPE_EVENT_CREATE_INFO
133 template <> struct LvlTypeMap<VkEventCreateInfo> {
134     static const VkStructureType kSType = VK_STRUCTURE_TYPE_EVENT_CREATE_INFO;
135 };
136 
137 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_EVENT_CREATE_INFO> {
138     typedef VkEventCreateInfo Type;
139 };
140 
141 // Map type VkQueryPoolCreateInfo to id VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO
142 template <> struct LvlTypeMap<VkQueryPoolCreateInfo> {
143     static const VkStructureType kSType = VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO;
144 };
145 
146 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO> {
147     typedef VkQueryPoolCreateInfo Type;
148 };
149 
150 // Map type VkBufferCreateInfo to id VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO
151 template <> struct LvlTypeMap<VkBufferCreateInfo> {
152     static const VkStructureType kSType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO;
153 };
154 
155 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO> {
156     typedef VkBufferCreateInfo Type;
157 };
158 
159 // Map type VkBufferViewCreateInfo to id VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO
160 template <> struct LvlTypeMap<VkBufferViewCreateInfo> {
161     static const VkStructureType kSType = VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO;
162 };
163 
164 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO> {
165     typedef VkBufferViewCreateInfo Type;
166 };
167 
168 // Map type VkImageCreateInfo to id VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO
169 template <> struct LvlTypeMap<VkImageCreateInfo> {
170     static const VkStructureType kSType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO;
171 };
172 
173 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO> {
174     typedef VkImageCreateInfo Type;
175 };
176 
177 // Map type VkImageViewCreateInfo to id VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO
178 template <> struct LvlTypeMap<VkImageViewCreateInfo> {
179     static const VkStructureType kSType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO;
180 };
181 
182 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO> {
183     typedef VkImageViewCreateInfo Type;
184 };
185 
186 // Map type VkShaderModuleCreateInfo to id VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO
187 template <> struct LvlTypeMap<VkShaderModuleCreateInfo> {
188     static const VkStructureType kSType = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO;
189 };
190 
191 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO> {
192     typedef VkShaderModuleCreateInfo Type;
193 };
194 
195 // Map type VkPipelineCacheCreateInfo to id VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO
196 template <> struct LvlTypeMap<VkPipelineCacheCreateInfo> {
197     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO;
198 };
199 
200 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO> {
201     typedef VkPipelineCacheCreateInfo Type;
202 };
203 
204 // Map type VkPipelineShaderStageCreateInfo to id VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO
205 template <> struct LvlTypeMap<VkPipelineShaderStageCreateInfo> {
206     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO;
207 };
208 
209 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO> {
210     typedef VkPipelineShaderStageCreateInfo Type;
211 };
212 
213 // Map type VkPipelineVertexInputStateCreateInfo to id VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO
214 template <> struct LvlTypeMap<VkPipelineVertexInputStateCreateInfo> {
215     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO;
216 };
217 
218 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO> {
219     typedef VkPipelineVertexInputStateCreateInfo Type;
220 };
221 
222 // Map type VkPipelineInputAssemblyStateCreateInfo to id VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO
223 template <> struct LvlTypeMap<VkPipelineInputAssemblyStateCreateInfo> {
224     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO;
225 };
226 
227 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO> {
228     typedef VkPipelineInputAssemblyStateCreateInfo Type;
229 };
230 
231 // Map type VkPipelineTessellationStateCreateInfo to id VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO
232 template <> struct LvlTypeMap<VkPipelineTessellationStateCreateInfo> {
233     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO;
234 };
235 
236 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO> {
237     typedef VkPipelineTessellationStateCreateInfo Type;
238 };
239 
240 // Map type VkPipelineViewportStateCreateInfo to id VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO
241 template <> struct LvlTypeMap<VkPipelineViewportStateCreateInfo> {
242     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO;
243 };
244 
245 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO> {
246     typedef VkPipelineViewportStateCreateInfo Type;
247 };
248 
249 // Map type VkPipelineRasterizationStateCreateInfo to id VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO
250 template <> struct LvlTypeMap<VkPipelineRasterizationStateCreateInfo> {
251     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO;
252 };
253 
254 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO> {
255     typedef VkPipelineRasterizationStateCreateInfo Type;
256 };
257 
258 // Map type VkPipelineMultisampleStateCreateInfo to id VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
259 template <> struct LvlTypeMap<VkPipelineMultisampleStateCreateInfo> {
260     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO;
261 };
262 
263 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO> {
264     typedef VkPipelineMultisampleStateCreateInfo Type;
265 };
266 
267 // Map type VkPipelineDepthStencilStateCreateInfo to id VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO
268 template <> struct LvlTypeMap<VkPipelineDepthStencilStateCreateInfo> {
269     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO;
270 };
271 
272 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO> {
273     typedef VkPipelineDepthStencilStateCreateInfo Type;
274 };
275 
276 // Map type VkPipelineColorBlendStateCreateInfo to id VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO
277 template <> struct LvlTypeMap<VkPipelineColorBlendStateCreateInfo> {
278     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO;
279 };
280 
281 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO> {
282     typedef VkPipelineColorBlendStateCreateInfo Type;
283 };
284 
285 // Map type VkPipelineDynamicStateCreateInfo to id VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO
286 template <> struct LvlTypeMap<VkPipelineDynamicStateCreateInfo> {
287     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO;
288 };
289 
290 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO> {
291     typedef VkPipelineDynamicStateCreateInfo Type;
292 };
293 
294 // Map type VkGraphicsPipelineCreateInfo to id VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO
295 template <> struct LvlTypeMap<VkGraphicsPipelineCreateInfo> {
296     static const VkStructureType kSType = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO;
297 };
298 
299 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO> {
300     typedef VkGraphicsPipelineCreateInfo Type;
301 };
302 
303 // Map type VkComputePipelineCreateInfo to id VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO
304 template <> struct LvlTypeMap<VkComputePipelineCreateInfo> {
305     static const VkStructureType kSType = VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO;
306 };
307 
308 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO> {
309     typedef VkComputePipelineCreateInfo Type;
310 };
311 
312 // Map type VkPipelineLayoutCreateInfo to id VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO
313 template <> struct LvlTypeMap<VkPipelineLayoutCreateInfo> {
314     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO;
315 };
316 
317 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO> {
318     typedef VkPipelineLayoutCreateInfo Type;
319 };
320 
321 // Map type VkSamplerCreateInfo to id VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO
322 template <> struct LvlTypeMap<VkSamplerCreateInfo> {
323     static const VkStructureType kSType = VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO;
324 };
325 
326 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO> {
327     typedef VkSamplerCreateInfo Type;
328 };
329 
330 // Map type VkDescriptorSetLayoutCreateInfo to id VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO
331 template <> struct LvlTypeMap<VkDescriptorSetLayoutCreateInfo> {
332     static const VkStructureType kSType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO;
333 };
334 
335 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO> {
336     typedef VkDescriptorSetLayoutCreateInfo Type;
337 };
338 
339 // Map type VkDescriptorPoolCreateInfo to id VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO
340 template <> struct LvlTypeMap<VkDescriptorPoolCreateInfo> {
341     static const VkStructureType kSType = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO;
342 };
343 
344 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO> {
345     typedef VkDescriptorPoolCreateInfo Type;
346 };
347 
348 // Map type VkDescriptorSetAllocateInfo to id VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO
349 template <> struct LvlTypeMap<VkDescriptorSetAllocateInfo> {
350     static const VkStructureType kSType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO;
351 };
352 
353 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO> {
354     typedef VkDescriptorSetAllocateInfo Type;
355 };
356 
357 // Map type VkWriteDescriptorSet to id VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET
358 template <> struct LvlTypeMap<VkWriteDescriptorSet> {
359     static const VkStructureType kSType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET;
360 };
361 
362 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET> {
363     typedef VkWriteDescriptorSet Type;
364 };
365 
366 // Map type VkCopyDescriptorSet to id VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET
367 template <> struct LvlTypeMap<VkCopyDescriptorSet> {
368     static const VkStructureType kSType = VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET;
369 };
370 
371 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET> {
372     typedef VkCopyDescriptorSet Type;
373 };
374 
375 // Map type VkFramebufferCreateInfo to id VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO
376 template <> struct LvlTypeMap<VkFramebufferCreateInfo> {
377     static const VkStructureType kSType = VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO;
378 };
379 
380 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO> {
381     typedef VkFramebufferCreateInfo Type;
382 };
383 
384 // Map type VkRenderPassCreateInfo to id VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO
385 template <> struct LvlTypeMap<VkRenderPassCreateInfo> {
386     static const VkStructureType kSType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO;
387 };
388 
389 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO> {
390     typedef VkRenderPassCreateInfo Type;
391 };
392 
393 // Map type VkCommandPoolCreateInfo to id VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO
394 template <> struct LvlTypeMap<VkCommandPoolCreateInfo> {
395     static const VkStructureType kSType = VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO;
396 };
397 
398 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO> {
399     typedef VkCommandPoolCreateInfo Type;
400 };
401 
402 // Map type VkCommandBufferAllocateInfo to id VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO
403 template <> struct LvlTypeMap<VkCommandBufferAllocateInfo> {
404     static const VkStructureType kSType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO;
405 };
406 
407 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO> {
408     typedef VkCommandBufferAllocateInfo Type;
409 };
410 
411 // Map type VkCommandBufferInheritanceInfo to id VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO
412 template <> struct LvlTypeMap<VkCommandBufferInheritanceInfo> {
413     static const VkStructureType kSType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO;
414 };
415 
416 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO> {
417     typedef VkCommandBufferInheritanceInfo Type;
418 };
419 
420 // Map type VkCommandBufferBeginInfo to id VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO
421 template <> struct LvlTypeMap<VkCommandBufferBeginInfo> {
422     static const VkStructureType kSType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO;
423 };
424 
425 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO> {
426     typedef VkCommandBufferBeginInfo Type;
427 };
428 
429 // Map type VkMemoryBarrier to id VK_STRUCTURE_TYPE_MEMORY_BARRIER
430 template <> struct LvlTypeMap<VkMemoryBarrier> {
431     static const VkStructureType kSType = VK_STRUCTURE_TYPE_MEMORY_BARRIER;
432 };
433 
434 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_MEMORY_BARRIER> {
435     typedef VkMemoryBarrier Type;
436 };
437 
438 // Map type VkBufferMemoryBarrier to id VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER
439 template <> struct LvlTypeMap<VkBufferMemoryBarrier> {
440     static const VkStructureType kSType = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER;
441 };
442 
443 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER> {
444     typedef VkBufferMemoryBarrier Type;
445 };
446 
447 // Map type VkImageMemoryBarrier to id VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER
448 template <> struct LvlTypeMap<VkImageMemoryBarrier> {
449     static const VkStructureType kSType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
450 };
451 
452 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER> {
453     typedef VkImageMemoryBarrier Type;
454 };
455 
456 // Map type VkRenderPassBeginInfo to id VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO
457 template <> struct LvlTypeMap<VkRenderPassBeginInfo> {
458     static const VkStructureType kSType = VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO;
459 };
460 
461 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO> {
462     typedef VkRenderPassBeginInfo Type;
463 };
464 
465 // Map type VkPhysicalDeviceSubgroupProperties to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES
466 template <> struct LvlTypeMap<VkPhysicalDeviceSubgroupProperties> {
467     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES;
468 };
469 
470 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES> {
471     typedef VkPhysicalDeviceSubgroupProperties Type;
472 };
473 
474 // Map type VkBindBufferMemoryInfo to id VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO
475 template <> struct LvlTypeMap<VkBindBufferMemoryInfo> {
476     static const VkStructureType kSType = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO;
477 };
478 
479 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO> {
480     typedef VkBindBufferMemoryInfo Type;
481 };
482 
483 // Map type VkBindImageMemoryInfo to id VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO
484 template <> struct LvlTypeMap<VkBindImageMemoryInfo> {
485     static const VkStructureType kSType = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO;
486 };
487 
488 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO> {
489     typedef VkBindImageMemoryInfo Type;
490 };
491 
492 // Map type VkPhysicalDevice16BitStorageFeatures to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES
493 template <> struct LvlTypeMap<VkPhysicalDevice16BitStorageFeatures> {
494     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES;
495 };
496 
497 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES> {
498     typedef VkPhysicalDevice16BitStorageFeatures Type;
499 };
500 
501 // Map type VkMemoryDedicatedRequirements to id VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS
502 template <> struct LvlTypeMap<VkMemoryDedicatedRequirements> {
503     static const VkStructureType kSType = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS;
504 };
505 
506 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS> {
507     typedef VkMemoryDedicatedRequirements Type;
508 };
509 
510 // Map type VkMemoryDedicatedAllocateInfo to id VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO
511 template <> struct LvlTypeMap<VkMemoryDedicatedAllocateInfo> {
512     static const VkStructureType kSType = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO;
513 };
514 
515 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO> {
516     typedef VkMemoryDedicatedAllocateInfo Type;
517 };
518 
519 // Map type VkMemoryAllocateFlagsInfo to id VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO
520 template <> struct LvlTypeMap<VkMemoryAllocateFlagsInfo> {
521     static const VkStructureType kSType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO;
522 };
523 
524 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO> {
525     typedef VkMemoryAllocateFlagsInfo Type;
526 };
527 
528 // Map type VkDeviceGroupRenderPassBeginInfo to id VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO
529 template <> struct LvlTypeMap<VkDeviceGroupRenderPassBeginInfo> {
530     static const VkStructureType kSType = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO;
531 };
532 
533 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO> {
534     typedef VkDeviceGroupRenderPassBeginInfo Type;
535 };
536 
537 // Map type VkDeviceGroupCommandBufferBeginInfo to id VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO
538 template <> struct LvlTypeMap<VkDeviceGroupCommandBufferBeginInfo> {
539     static const VkStructureType kSType = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO;
540 };
541 
542 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO> {
543     typedef VkDeviceGroupCommandBufferBeginInfo Type;
544 };
545 
546 // Map type VkDeviceGroupSubmitInfo to id VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO
547 template <> struct LvlTypeMap<VkDeviceGroupSubmitInfo> {
548     static const VkStructureType kSType = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO;
549 };
550 
551 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO> {
552     typedef VkDeviceGroupSubmitInfo Type;
553 };
554 
555 // Map type VkDeviceGroupBindSparseInfo to id VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO
556 template <> struct LvlTypeMap<VkDeviceGroupBindSparseInfo> {
557     static const VkStructureType kSType = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO;
558 };
559 
560 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO> {
561     typedef VkDeviceGroupBindSparseInfo Type;
562 };
563 
564 // Map type VkBindBufferMemoryDeviceGroupInfo to id VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO
565 template <> struct LvlTypeMap<VkBindBufferMemoryDeviceGroupInfo> {
566     static const VkStructureType kSType = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO;
567 };
568 
569 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO> {
570     typedef VkBindBufferMemoryDeviceGroupInfo Type;
571 };
572 
573 // Map type VkBindImageMemoryDeviceGroupInfo to id VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO
574 template <> struct LvlTypeMap<VkBindImageMemoryDeviceGroupInfo> {
575     static const VkStructureType kSType = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO;
576 };
577 
578 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO> {
579     typedef VkBindImageMemoryDeviceGroupInfo Type;
580 };
581 
582 // Map type VkPhysicalDeviceGroupProperties to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES
583 template <> struct LvlTypeMap<VkPhysicalDeviceGroupProperties> {
584     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES;
585 };
586 
587 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES> {
588     typedef VkPhysicalDeviceGroupProperties Type;
589 };
590 
591 // Map type VkDeviceGroupDeviceCreateInfo to id VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO
592 template <> struct LvlTypeMap<VkDeviceGroupDeviceCreateInfo> {
593     static const VkStructureType kSType = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO;
594 };
595 
596 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO> {
597     typedef VkDeviceGroupDeviceCreateInfo Type;
598 };
599 
600 // Map type VkBufferMemoryRequirementsInfo2 to id VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2
601 template <> struct LvlTypeMap<VkBufferMemoryRequirementsInfo2> {
602     static const VkStructureType kSType = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2;
603 };
604 
605 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2> {
606     typedef VkBufferMemoryRequirementsInfo2 Type;
607 };
608 
609 // Map type VkImageMemoryRequirementsInfo2 to id VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2
610 template <> struct LvlTypeMap<VkImageMemoryRequirementsInfo2> {
611     static const VkStructureType kSType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2;
612 };
613 
614 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2> {
615     typedef VkImageMemoryRequirementsInfo2 Type;
616 };
617 
618 // Map type VkImageSparseMemoryRequirementsInfo2 to id VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2
619 template <> struct LvlTypeMap<VkImageSparseMemoryRequirementsInfo2> {
620     static const VkStructureType kSType = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2;
621 };
622 
623 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2> {
624     typedef VkImageSparseMemoryRequirementsInfo2 Type;
625 };
626 
627 // Map type VkMemoryRequirements2 to id VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2
628 template <> struct LvlTypeMap<VkMemoryRequirements2> {
629     static const VkStructureType kSType = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2;
630 };
631 
632 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2> {
633     typedef VkMemoryRequirements2 Type;
634 };
635 
636 // Map type VkSparseImageMemoryRequirements2 to id VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2
637 template <> struct LvlTypeMap<VkSparseImageMemoryRequirements2> {
638     static const VkStructureType kSType = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2;
639 };
640 
641 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2> {
642     typedef VkSparseImageMemoryRequirements2 Type;
643 };
644 
645 // Map type VkPhysicalDeviceFeatures2 to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2
646 template <> struct LvlTypeMap<VkPhysicalDeviceFeatures2> {
647     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
648 };
649 
650 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2> {
651     typedef VkPhysicalDeviceFeatures2 Type;
652 };
653 
654 // Map type VkPhysicalDeviceProperties2 to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2
655 template <> struct LvlTypeMap<VkPhysicalDeviceProperties2> {
656     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
657 };
658 
659 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2> {
660     typedef VkPhysicalDeviceProperties2 Type;
661 };
662 
663 // Map type VkFormatProperties2 to id VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2
664 template <> struct LvlTypeMap<VkFormatProperties2> {
665     static const VkStructureType kSType = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2;
666 };
667 
668 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2> {
669     typedef VkFormatProperties2 Type;
670 };
671 
672 // Map type VkImageFormatProperties2 to id VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2
673 template <> struct LvlTypeMap<VkImageFormatProperties2> {
674     static const VkStructureType kSType = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2;
675 };
676 
677 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2> {
678     typedef VkImageFormatProperties2 Type;
679 };
680 
681 // Map type VkPhysicalDeviceImageFormatInfo2 to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2
682 template <> struct LvlTypeMap<VkPhysicalDeviceImageFormatInfo2> {
683     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2;
684 };
685 
686 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2> {
687     typedef VkPhysicalDeviceImageFormatInfo2 Type;
688 };
689 
690 // Map type VkQueueFamilyProperties2 to id VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2
691 template <> struct LvlTypeMap<VkQueueFamilyProperties2> {
692     static const VkStructureType kSType = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2;
693 };
694 
695 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2> {
696     typedef VkQueueFamilyProperties2 Type;
697 };
698 
699 // Map type VkPhysicalDeviceMemoryProperties2 to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2
700 template <> struct LvlTypeMap<VkPhysicalDeviceMemoryProperties2> {
701     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2;
702 };
703 
704 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2> {
705     typedef VkPhysicalDeviceMemoryProperties2 Type;
706 };
707 
708 // Map type VkSparseImageFormatProperties2 to id VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2
709 template <> struct LvlTypeMap<VkSparseImageFormatProperties2> {
710     static const VkStructureType kSType = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2;
711 };
712 
713 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2> {
714     typedef VkSparseImageFormatProperties2 Type;
715 };
716 
717 // Map type VkPhysicalDeviceSparseImageFormatInfo2 to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2
718 template <> struct LvlTypeMap<VkPhysicalDeviceSparseImageFormatInfo2> {
719     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2;
720 };
721 
722 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2> {
723     typedef VkPhysicalDeviceSparseImageFormatInfo2 Type;
724 };
725 
726 // Map type VkPhysicalDevicePointClippingProperties to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES
727 template <> struct LvlTypeMap<VkPhysicalDevicePointClippingProperties> {
728     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES;
729 };
730 
731 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES> {
732     typedef VkPhysicalDevicePointClippingProperties Type;
733 };
734 
735 // Map type VkRenderPassInputAttachmentAspectCreateInfo to id VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO
736 template <> struct LvlTypeMap<VkRenderPassInputAttachmentAspectCreateInfo> {
737     static const VkStructureType kSType = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO;
738 };
739 
740 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO> {
741     typedef VkRenderPassInputAttachmentAspectCreateInfo Type;
742 };
743 
744 // Map type VkImageViewUsageCreateInfo to id VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO
745 template <> struct LvlTypeMap<VkImageViewUsageCreateInfo> {
746     static const VkStructureType kSType = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO;
747 };
748 
749 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO> {
750     typedef VkImageViewUsageCreateInfo Type;
751 };
752 
753 // Map type VkPipelineTessellationDomainOriginStateCreateInfo to id VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO
754 template <> struct LvlTypeMap<VkPipelineTessellationDomainOriginStateCreateInfo> {
755     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO;
756 };
757 
758 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO> {
759     typedef VkPipelineTessellationDomainOriginStateCreateInfo Type;
760 };
761 
762 // Map type VkRenderPassMultiviewCreateInfo to id VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO
763 template <> struct LvlTypeMap<VkRenderPassMultiviewCreateInfo> {
764     static const VkStructureType kSType = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO;
765 };
766 
767 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO> {
768     typedef VkRenderPassMultiviewCreateInfo Type;
769 };
770 
771 // Map type VkPhysicalDeviceMultiviewFeatures to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES
772 template <> struct LvlTypeMap<VkPhysicalDeviceMultiviewFeatures> {
773     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES;
774 };
775 
776 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES> {
777     typedef VkPhysicalDeviceMultiviewFeatures Type;
778 };
779 
780 // Map type VkPhysicalDeviceMultiviewProperties to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES
781 template <> struct LvlTypeMap<VkPhysicalDeviceMultiviewProperties> {
782     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES;
783 };
784 
785 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES> {
786     typedef VkPhysicalDeviceMultiviewProperties Type;
787 };
788 
789 // Map type VkPhysicalDeviceVariablePointersFeatures to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES
790 template <> struct LvlTypeMap<VkPhysicalDeviceVariablePointersFeatures> {
791     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES;
792 };
793 
794 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES> {
795     typedef VkPhysicalDeviceVariablePointersFeatures Type;
796 };
797 
798 // Map type VkPhysicalDeviceProtectedMemoryFeatures to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES
799 template <> struct LvlTypeMap<VkPhysicalDeviceProtectedMemoryFeatures> {
800     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES;
801 };
802 
803 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES> {
804     typedef VkPhysicalDeviceProtectedMemoryFeatures Type;
805 };
806 
807 // Map type VkPhysicalDeviceProtectedMemoryProperties to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES
808 template <> struct LvlTypeMap<VkPhysicalDeviceProtectedMemoryProperties> {
809     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES;
810 };
811 
812 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES> {
813     typedef VkPhysicalDeviceProtectedMemoryProperties Type;
814 };
815 
816 // Map type VkDeviceQueueInfo2 to id VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2
817 template <> struct LvlTypeMap<VkDeviceQueueInfo2> {
818     static const VkStructureType kSType = VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2;
819 };
820 
821 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2> {
822     typedef VkDeviceQueueInfo2 Type;
823 };
824 
825 // Map type VkProtectedSubmitInfo to id VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO
826 template <> struct LvlTypeMap<VkProtectedSubmitInfo> {
827     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO;
828 };
829 
830 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO> {
831     typedef VkProtectedSubmitInfo Type;
832 };
833 
834 // Map type VkSamplerYcbcrConversionCreateInfo to id VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO
835 template <> struct LvlTypeMap<VkSamplerYcbcrConversionCreateInfo> {
836     static const VkStructureType kSType = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO;
837 };
838 
839 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO> {
840     typedef VkSamplerYcbcrConversionCreateInfo Type;
841 };
842 
843 // Map type VkSamplerYcbcrConversionInfo to id VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO
844 template <> struct LvlTypeMap<VkSamplerYcbcrConversionInfo> {
845     static const VkStructureType kSType = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO;
846 };
847 
848 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO> {
849     typedef VkSamplerYcbcrConversionInfo Type;
850 };
851 
852 // Map type VkBindImagePlaneMemoryInfo to id VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO
853 template <> struct LvlTypeMap<VkBindImagePlaneMemoryInfo> {
854     static const VkStructureType kSType = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO;
855 };
856 
857 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO> {
858     typedef VkBindImagePlaneMemoryInfo Type;
859 };
860 
861 // Map type VkImagePlaneMemoryRequirementsInfo to id VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO
862 template <> struct LvlTypeMap<VkImagePlaneMemoryRequirementsInfo> {
863     static const VkStructureType kSType = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO;
864 };
865 
866 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO> {
867     typedef VkImagePlaneMemoryRequirementsInfo Type;
868 };
869 
870 // Map type VkPhysicalDeviceSamplerYcbcrConversionFeatures to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES
871 template <> struct LvlTypeMap<VkPhysicalDeviceSamplerYcbcrConversionFeatures> {
872     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES;
873 };
874 
875 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES> {
876     typedef VkPhysicalDeviceSamplerYcbcrConversionFeatures Type;
877 };
878 
879 // Map type VkSamplerYcbcrConversionImageFormatProperties to id VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES
880 template <> struct LvlTypeMap<VkSamplerYcbcrConversionImageFormatProperties> {
881     static const VkStructureType kSType = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES;
882 };
883 
884 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES> {
885     typedef VkSamplerYcbcrConversionImageFormatProperties Type;
886 };
887 
888 // Map type VkDescriptorUpdateTemplateCreateInfo to id VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO
889 template <> struct LvlTypeMap<VkDescriptorUpdateTemplateCreateInfo> {
890     static const VkStructureType kSType = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO;
891 };
892 
893 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO> {
894     typedef VkDescriptorUpdateTemplateCreateInfo Type;
895 };
896 
897 // Map type VkPhysicalDeviceExternalImageFormatInfo to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO
898 template <> struct LvlTypeMap<VkPhysicalDeviceExternalImageFormatInfo> {
899     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO;
900 };
901 
902 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO> {
903     typedef VkPhysicalDeviceExternalImageFormatInfo Type;
904 };
905 
906 // Map type VkExternalImageFormatProperties to id VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES
907 template <> struct LvlTypeMap<VkExternalImageFormatProperties> {
908     static const VkStructureType kSType = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES;
909 };
910 
911 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES> {
912     typedef VkExternalImageFormatProperties Type;
913 };
914 
915 // Map type VkPhysicalDeviceExternalBufferInfo to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO
916 template <> struct LvlTypeMap<VkPhysicalDeviceExternalBufferInfo> {
917     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO;
918 };
919 
920 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO> {
921     typedef VkPhysicalDeviceExternalBufferInfo Type;
922 };
923 
924 // Map type VkExternalBufferProperties to id VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES
925 template <> struct LvlTypeMap<VkExternalBufferProperties> {
926     static const VkStructureType kSType = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES;
927 };
928 
929 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES> {
930     typedef VkExternalBufferProperties Type;
931 };
932 
933 // Map type VkPhysicalDeviceIDProperties to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES
934 template <> struct LvlTypeMap<VkPhysicalDeviceIDProperties> {
935     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES;
936 };
937 
938 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES> {
939     typedef VkPhysicalDeviceIDProperties Type;
940 };
941 
942 // Map type VkExternalMemoryImageCreateInfo to id VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO
943 template <> struct LvlTypeMap<VkExternalMemoryImageCreateInfo> {
944     static const VkStructureType kSType = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO;
945 };
946 
947 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO> {
948     typedef VkExternalMemoryImageCreateInfo Type;
949 };
950 
951 // Map type VkExternalMemoryBufferCreateInfo to id VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO
952 template <> struct LvlTypeMap<VkExternalMemoryBufferCreateInfo> {
953     static const VkStructureType kSType = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO;
954 };
955 
956 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO> {
957     typedef VkExternalMemoryBufferCreateInfo Type;
958 };
959 
960 // Map type VkExportMemoryAllocateInfo to id VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO
961 template <> struct LvlTypeMap<VkExportMemoryAllocateInfo> {
962     static const VkStructureType kSType = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO;
963 };
964 
965 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO> {
966     typedef VkExportMemoryAllocateInfo Type;
967 };
968 
969 // Map type VkPhysicalDeviceExternalFenceInfo to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO
970 template <> struct LvlTypeMap<VkPhysicalDeviceExternalFenceInfo> {
971     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO;
972 };
973 
974 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO> {
975     typedef VkPhysicalDeviceExternalFenceInfo Type;
976 };
977 
978 // Map type VkExternalFenceProperties to id VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES
979 template <> struct LvlTypeMap<VkExternalFenceProperties> {
980     static const VkStructureType kSType = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES;
981 };
982 
983 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES> {
984     typedef VkExternalFenceProperties Type;
985 };
986 
987 // Map type VkExportFenceCreateInfo to id VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO
988 template <> struct LvlTypeMap<VkExportFenceCreateInfo> {
989     static const VkStructureType kSType = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO;
990 };
991 
992 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO> {
993     typedef VkExportFenceCreateInfo Type;
994 };
995 
996 // Map type VkExportSemaphoreCreateInfo to id VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO
997 template <> struct LvlTypeMap<VkExportSemaphoreCreateInfo> {
998     static const VkStructureType kSType = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO;
999 };
1000 
1001 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO> {
1002     typedef VkExportSemaphoreCreateInfo Type;
1003 };
1004 
1005 // Map type VkPhysicalDeviceExternalSemaphoreInfo to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO
1006 template <> struct LvlTypeMap<VkPhysicalDeviceExternalSemaphoreInfo> {
1007     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO;
1008 };
1009 
1010 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO> {
1011     typedef VkPhysicalDeviceExternalSemaphoreInfo Type;
1012 };
1013 
1014 // Map type VkExternalSemaphoreProperties to id VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES
1015 template <> struct LvlTypeMap<VkExternalSemaphoreProperties> {
1016     static const VkStructureType kSType = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES;
1017 };
1018 
1019 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES> {
1020     typedef VkExternalSemaphoreProperties Type;
1021 };
1022 
1023 // Map type VkPhysicalDeviceMaintenance3Properties to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES
1024 template <> struct LvlTypeMap<VkPhysicalDeviceMaintenance3Properties> {
1025     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES;
1026 };
1027 
1028 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES> {
1029     typedef VkPhysicalDeviceMaintenance3Properties Type;
1030 };
1031 
1032 // Map type VkDescriptorSetLayoutSupport to id VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT
1033 template <> struct LvlTypeMap<VkDescriptorSetLayoutSupport> {
1034     static const VkStructureType kSType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT;
1035 };
1036 
1037 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT> {
1038     typedef VkDescriptorSetLayoutSupport Type;
1039 };
1040 
1041 // Map type VkPhysicalDeviceShaderDrawParametersFeatures to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES
1042 template <> struct LvlTypeMap<VkPhysicalDeviceShaderDrawParametersFeatures> {
1043     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES;
1044 };
1045 
1046 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES> {
1047     typedef VkPhysicalDeviceShaderDrawParametersFeatures Type;
1048 };
1049 
1050 // Map type VkSwapchainCreateInfoKHR to id VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR
1051 template <> struct LvlTypeMap<VkSwapchainCreateInfoKHR> {
1052     static const VkStructureType kSType = VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR;
1053 };
1054 
1055 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR> {
1056     typedef VkSwapchainCreateInfoKHR Type;
1057 };
1058 
1059 // Map type VkPresentInfoKHR to id VK_STRUCTURE_TYPE_PRESENT_INFO_KHR
1060 template <> struct LvlTypeMap<VkPresentInfoKHR> {
1061     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PRESENT_INFO_KHR;
1062 };
1063 
1064 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PRESENT_INFO_KHR> {
1065     typedef VkPresentInfoKHR Type;
1066 };
1067 
1068 // Map type VkImageSwapchainCreateInfoKHR to id VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR
1069 template <> struct LvlTypeMap<VkImageSwapchainCreateInfoKHR> {
1070     static const VkStructureType kSType = VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR;
1071 };
1072 
1073 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR> {
1074     typedef VkImageSwapchainCreateInfoKHR Type;
1075 };
1076 
1077 // Map type VkBindImageMemorySwapchainInfoKHR to id VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR
1078 template <> struct LvlTypeMap<VkBindImageMemorySwapchainInfoKHR> {
1079     static const VkStructureType kSType = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR;
1080 };
1081 
1082 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR> {
1083     typedef VkBindImageMemorySwapchainInfoKHR Type;
1084 };
1085 
1086 // Map type VkAcquireNextImageInfoKHR to id VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR
1087 template <> struct LvlTypeMap<VkAcquireNextImageInfoKHR> {
1088     static const VkStructureType kSType = VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR;
1089 };
1090 
1091 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR> {
1092     typedef VkAcquireNextImageInfoKHR Type;
1093 };
1094 
1095 // Map type VkDeviceGroupPresentCapabilitiesKHR to id VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR
1096 template <> struct LvlTypeMap<VkDeviceGroupPresentCapabilitiesKHR> {
1097     static const VkStructureType kSType = VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR;
1098 };
1099 
1100 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR> {
1101     typedef VkDeviceGroupPresentCapabilitiesKHR Type;
1102 };
1103 
1104 // Map type VkDeviceGroupPresentInfoKHR to id VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR
1105 template <> struct LvlTypeMap<VkDeviceGroupPresentInfoKHR> {
1106     static const VkStructureType kSType = VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR;
1107 };
1108 
1109 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR> {
1110     typedef VkDeviceGroupPresentInfoKHR Type;
1111 };
1112 
1113 // Map type VkDeviceGroupSwapchainCreateInfoKHR to id VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR
1114 template <> struct LvlTypeMap<VkDeviceGroupSwapchainCreateInfoKHR> {
1115     static const VkStructureType kSType = VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR;
1116 };
1117 
1118 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR> {
1119     typedef VkDeviceGroupSwapchainCreateInfoKHR Type;
1120 };
1121 
1122 // Map type VkDisplayModeCreateInfoKHR to id VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR
1123 template <> struct LvlTypeMap<VkDisplayModeCreateInfoKHR> {
1124     static const VkStructureType kSType = VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR;
1125 };
1126 
1127 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR> {
1128     typedef VkDisplayModeCreateInfoKHR Type;
1129 };
1130 
1131 // Map type VkDisplaySurfaceCreateInfoKHR to id VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR
1132 template <> struct LvlTypeMap<VkDisplaySurfaceCreateInfoKHR> {
1133     static const VkStructureType kSType = VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR;
1134 };
1135 
1136 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR> {
1137     typedef VkDisplaySurfaceCreateInfoKHR Type;
1138 };
1139 
1140 // Map type VkDisplayPresentInfoKHR to id VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR
1141 template <> struct LvlTypeMap<VkDisplayPresentInfoKHR> {
1142     static const VkStructureType kSType = VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR;
1143 };
1144 
1145 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR> {
1146     typedef VkDisplayPresentInfoKHR Type;
1147 };
1148 
1149 #ifdef VK_USE_PLATFORM_XLIB_KHR
1150 // Map type VkXlibSurfaceCreateInfoKHR to id VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR
1151 template <> struct LvlTypeMap<VkXlibSurfaceCreateInfoKHR> {
1152     static const VkStructureType kSType = VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR;
1153 };
1154 
1155 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR> {
1156     typedef VkXlibSurfaceCreateInfoKHR Type;
1157 };
1158 
1159 #endif // VK_USE_PLATFORM_XLIB_KHR
1160 #ifdef VK_USE_PLATFORM_XCB_KHR
1161 // Map type VkXcbSurfaceCreateInfoKHR to id VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR
1162 template <> struct LvlTypeMap<VkXcbSurfaceCreateInfoKHR> {
1163     static const VkStructureType kSType = VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR;
1164 };
1165 
1166 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR> {
1167     typedef VkXcbSurfaceCreateInfoKHR Type;
1168 };
1169 
1170 #endif // VK_USE_PLATFORM_XCB_KHR
1171 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
1172 // Map type VkWaylandSurfaceCreateInfoKHR to id VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR
1173 template <> struct LvlTypeMap<VkWaylandSurfaceCreateInfoKHR> {
1174     static const VkStructureType kSType = VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR;
1175 };
1176 
1177 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR> {
1178     typedef VkWaylandSurfaceCreateInfoKHR Type;
1179 };
1180 
1181 #endif // VK_USE_PLATFORM_WAYLAND_KHR
1182 #ifdef VK_USE_PLATFORM_ANDROID_KHR
1183 // Map type VkAndroidSurfaceCreateInfoKHR to id VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR
1184 template <> struct LvlTypeMap<VkAndroidSurfaceCreateInfoKHR> {
1185     static const VkStructureType kSType = VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR;
1186 };
1187 
1188 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR> {
1189     typedef VkAndroidSurfaceCreateInfoKHR Type;
1190 };
1191 
1192 #endif // VK_USE_PLATFORM_ANDROID_KHR
1193 #ifdef VK_USE_PLATFORM_WIN32_KHR
1194 // Map type VkWin32SurfaceCreateInfoKHR to id VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR
1195 template <> struct LvlTypeMap<VkWin32SurfaceCreateInfoKHR> {
1196     static const VkStructureType kSType = VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR;
1197 };
1198 
1199 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR> {
1200     typedef VkWin32SurfaceCreateInfoKHR Type;
1201 };
1202 
1203 #endif // VK_USE_PLATFORM_WIN32_KHR
1204 #ifdef VK_USE_PLATFORM_WIN32_KHR
1205 // Map type VkImportMemoryWin32HandleInfoKHR to id VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR
1206 template <> struct LvlTypeMap<VkImportMemoryWin32HandleInfoKHR> {
1207     static const VkStructureType kSType = VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR;
1208 };
1209 
1210 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR> {
1211     typedef VkImportMemoryWin32HandleInfoKHR Type;
1212 };
1213 
1214 #endif // VK_USE_PLATFORM_WIN32_KHR
1215 #ifdef VK_USE_PLATFORM_WIN32_KHR
1216 // Map type VkExportMemoryWin32HandleInfoKHR to id VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR
1217 template <> struct LvlTypeMap<VkExportMemoryWin32HandleInfoKHR> {
1218     static const VkStructureType kSType = VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR;
1219 };
1220 
1221 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR> {
1222     typedef VkExportMemoryWin32HandleInfoKHR Type;
1223 };
1224 
1225 #endif // VK_USE_PLATFORM_WIN32_KHR
1226 #ifdef VK_USE_PLATFORM_WIN32_KHR
1227 // Map type VkMemoryWin32HandlePropertiesKHR to id VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR
1228 template <> struct LvlTypeMap<VkMemoryWin32HandlePropertiesKHR> {
1229     static const VkStructureType kSType = VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR;
1230 };
1231 
1232 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR> {
1233     typedef VkMemoryWin32HandlePropertiesKHR Type;
1234 };
1235 
1236 #endif // VK_USE_PLATFORM_WIN32_KHR
1237 #ifdef VK_USE_PLATFORM_WIN32_KHR
1238 // Map type VkMemoryGetWin32HandleInfoKHR to id VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR
1239 template <> struct LvlTypeMap<VkMemoryGetWin32HandleInfoKHR> {
1240     static const VkStructureType kSType = VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR;
1241 };
1242 
1243 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR> {
1244     typedef VkMemoryGetWin32HandleInfoKHR Type;
1245 };
1246 
1247 #endif // VK_USE_PLATFORM_WIN32_KHR
1248 // Map type VkImportMemoryFdInfoKHR to id VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR
1249 template <> struct LvlTypeMap<VkImportMemoryFdInfoKHR> {
1250     static const VkStructureType kSType = VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR;
1251 };
1252 
1253 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR> {
1254     typedef VkImportMemoryFdInfoKHR Type;
1255 };
1256 
1257 // Map type VkMemoryFdPropertiesKHR to id VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR
1258 template <> struct LvlTypeMap<VkMemoryFdPropertiesKHR> {
1259     static const VkStructureType kSType = VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR;
1260 };
1261 
1262 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR> {
1263     typedef VkMemoryFdPropertiesKHR Type;
1264 };
1265 
1266 // Map type VkMemoryGetFdInfoKHR to id VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR
1267 template <> struct LvlTypeMap<VkMemoryGetFdInfoKHR> {
1268     static const VkStructureType kSType = VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR;
1269 };
1270 
1271 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR> {
1272     typedef VkMemoryGetFdInfoKHR Type;
1273 };
1274 
1275 #ifdef VK_USE_PLATFORM_WIN32_KHR
1276 // Map type VkWin32KeyedMutexAcquireReleaseInfoKHR to id VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR
1277 template <> struct LvlTypeMap<VkWin32KeyedMutexAcquireReleaseInfoKHR> {
1278     static const VkStructureType kSType = VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR;
1279 };
1280 
1281 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR> {
1282     typedef VkWin32KeyedMutexAcquireReleaseInfoKHR Type;
1283 };
1284 
1285 #endif // VK_USE_PLATFORM_WIN32_KHR
1286 #ifdef VK_USE_PLATFORM_WIN32_KHR
1287 // Map type VkImportSemaphoreWin32HandleInfoKHR to id VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR
1288 template <> struct LvlTypeMap<VkImportSemaphoreWin32HandleInfoKHR> {
1289     static const VkStructureType kSType = VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR;
1290 };
1291 
1292 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR> {
1293     typedef VkImportSemaphoreWin32HandleInfoKHR Type;
1294 };
1295 
1296 #endif // VK_USE_PLATFORM_WIN32_KHR
1297 #ifdef VK_USE_PLATFORM_WIN32_KHR
1298 // Map type VkExportSemaphoreWin32HandleInfoKHR to id VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR
1299 template <> struct LvlTypeMap<VkExportSemaphoreWin32HandleInfoKHR> {
1300     static const VkStructureType kSType = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR;
1301 };
1302 
1303 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR> {
1304     typedef VkExportSemaphoreWin32HandleInfoKHR Type;
1305 };
1306 
1307 #endif // VK_USE_PLATFORM_WIN32_KHR
1308 #ifdef VK_USE_PLATFORM_WIN32_KHR
1309 // Map type VkD3D12FenceSubmitInfoKHR to id VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR
1310 template <> struct LvlTypeMap<VkD3D12FenceSubmitInfoKHR> {
1311     static const VkStructureType kSType = VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR;
1312 };
1313 
1314 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR> {
1315     typedef VkD3D12FenceSubmitInfoKHR Type;
1316 };
1317 
1318 #endif // VK_USE_PLATFORM_WIN32_KHR
1319 #ifdef VK_USE_PLATFORM_WIN32_KHR
1320 // Map type VkSemaphoreGetWin32HandleInfoKHR to id VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR
1321 template <> struct LvlTypeMap<VkSemaphoreGetWin32HandleInfoKHR> {
1322     static const VkStructureType kSType = VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR;
1323 };
1324 
1325 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR> {
1326     typedef VkSemaphoreGetWin32HandleInfoKHR Type;
1327 };
1328 
1329 #endif // VK_USE_PLATFORM_WIN32_KHR
1330 // Map type VkImportSemaphoreFdInfoKHR to id VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR
1331 template <> struct LvlTypeMap<VkImportSemaphoreFdInfoKHR> {
1332     static const VkStructureType kSType = VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR;
1333 };
1334 
1335 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR> {
1336     typedef VkImportSemaphoreFdInfoKHR Type;
1337 };
1338 
1339 // Map type VkSemaphoreGetFdInfoKHR to id VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR
1340 template <> struct LvlTypeMap<VkSemaphoreGetFdInfoKHR> {
1341     static const VkStructureType kSType = VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR;
1342 };
1343 
1344 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR> {
1345     typedef VkSemaphoreGetFdInfoKHR Type;
1346 };
1347 
1348 // Map type VkPhysicalDevicePushDescriptorPropertiesKHR to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR
1349 template <> struct LvlTypeMap<VkPhysicalDevicePushDescriptorPropertiesKHR> {
1350     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR;
1351 };
1352 
1353 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR> {
1354     typedef VkPhysicalDevicePushDescriptorPropertiesKHR Type;
1355 };
1356 
1357 // Map type VkPhysicalDeviceShaderFloat16Int8FeaturesKHR to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR
1358 template <> struct LvlTypeMap<VkPhysicalDeviceShaderFloat16Int8FeaturesKHR> {
1359     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR;
1360 };
1361 
1362 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR> {
1363     typedef VkPhysicalDeviceShaderFloat16Int8FeaturesKHR Type;
1364 };
1365 
1366 // Map type VkPresentRegionsKHR to id VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR
1367 template <> struct LvlTypeMap<VkPresentRegionsKHR> {
1368     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR;
1369 };
1370 
1371 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR> {
1372     typedef VkPresentRegionsKHR Type;
1373 };
1374 
1375 // Map type VkPhysicalDeviceImagelessFramebufferFeaturesKHR to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR
1376 template <> struct LvlTypeMap<VkPhysicalDeviceImagelessFramebufferFeaturesKHR> {
1377     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR;
1378 };
1379 
1380 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR> {
1381     typedef VkPhysicalDeviceImagelessFramebufferFeaturesKHR Type;
1382 };
1383 
1384 // Map type VkFramebufferAttachmentImageInfoKHR to id VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR
1385 template <> struct LvlTypeMap<VkFramebufferAttachmentImageInfoKHR> {
1386     static const VkStructureType kSType = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR;
1387 };
1388 
1389 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR> {
1390     typedef VkFramebufferAttachmentImageInfoKHR Type;
1391 };
1392 
1393 // Map type VkFramebufferAttachmentsCreateInfoKHR to id VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR
1394 template <> struct LvlTypeMap<VkFramebufferAttachmentsCreateInfoKHR> {
1395     static const VkStructureType kSType = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR;
1396 };
1397 
1398 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR> {
1399     typedef VkFramebufferAttachmentsCreateInfoKHR Type;
1400 };
1401 
1402 // Map type VkRenderPassAttachmentBeginInfoKHR to id VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR
1403 template <> struct LvlTypeMap<VkRenderPassAttachmentBeginInfoKHR> {
1404     static const VkStructureType kSType = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR;
1405 };
1406 
1407 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR> {
1408     typedef VkRenderPassAttachmentBeginInfoKHR Type;
1409 };
1410 
1411 // Map type VkAttachmentDescription2KHR to id VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR
1412 template <> struct LvlTypeMap<VkAttachmentDescription2KHR> {
1413     static const VkStructureType kSType = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR;
1414 };
1415 
1416 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR> {
1417     typedef VkAttachmentDescription2KHR Type;
1418 };
1419 
1420 // Map type VkAttachmentReference2KHR to id VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR
1421 template <> struct LvlTypeMap<VkAttachmentReference2KHR> {
1422     static const VkStructureType kSType = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR;
1423 };
1424 
1425 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR> {
1426     typedef VkAttachmentReference2KHR Type;
1427 };
1428 
1429 // Map type VkSubpassDescription2KHR to id VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR
1430 template <> struct LvlTypeMap<VkSubpassDescription2KHR> {
1431     static const VkStructureType kSType = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR;
1432 };
1433 
1434 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR> {
1435     typedef VkSubpassDescription2KHR Type;
1436 };
1437 
1438 // Map type VkSubpassDependency2KHR to id VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR
1439 template <> struct LvlTypeMap<VkSubpassDependency2KHR> {
1440     static const VkStructureType kSType = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR;
1441 };
1442 
1443 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR> {
1444     typedef VkSubpassDependency2KHR Type;
1445 };
1446 
1447 // Map type VkRenderPassCreateInfo2KHR to id VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR
1448 template <> struct LvlTypeMap<VkRenderPassCreateInfo2KHR> {
1449     static const VkStructureType kSType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR;
1450 };
1451 
1452 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR> {
1453     typedef VkRenderPassCreateInfo2KHR Type;
1454 };
1455 
1456 // Map type VkSubpassBeginInfoKHR to id VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR
1457 template <> struct LvlTypeMap<VkSubpassBeginInfoKHR> {
1458     static const VkStructureType kSType = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR;
1459 };
1460 
1461 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR> {
1462     typedef VkSubpassBeginInfoKHR Type;
1463 };
1464 
1465 // Map type VkSubpassEndInfoKHR to id VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR
1466 template <> struct LvlTypeMap<VkSubpassEndInfoKHR> {
1467     static const VkStructureType kSType = VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR;
1468 };
1469 
1470 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR> {
1471     typedef VkSubpassEndInfoKHR Type;
1472 };
1473 
1474 // Map type VkSharedPresentSurfaceCapabilitiesKHR to id VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR
1475 template <> struct LvlTypeMap<VkSharedPresentSurfaceCapabilitiesKHR> {
1476     static const VkStructureType kSType = VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR;
1477 };
1478 
1479 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR> {
1480     typedef VkSharedPresentSurfaceCapabilitiesKHR Type;
1481 };
1482 
1483 #ifdef VK_USE_PLATFORM_WIN32_KHR
1484 // Map type VkImportFenceWin32HandleInfoKHR to id VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR
1485 template <> struct LvlTypeMap<VkImportFenceWin32HandleInfoKHR> {
1486     static const VkStructureType kSType = VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR;
1487 };
1488 
1489 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR> {
1490     typedef VkImportFenceWin32HandleInfoKHR Type;
1491 };
1492 
1493 #endif // VK_USE_PLATFORM_WIN32_KHR
1494 #ifdef VK_USE_PLATFORM_WIN32_KHR
1495 // Map type VkExportFenceWin32HandleInfoKHR to id VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR
1496 template <> struct LvlTypeMap<VkExportFenceWin32HandleInfoKHR> {
1497     static const VkStructureType kSType = VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR;
1498 };
1499 
1500 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR> {
1501     typedef VkExportFenceWin32HandleInfoKHR Type;
1502 };
1503 
1504 #endif // VK_USE_PLATFORM_WIN32_KHR
1505 #ifdef VK_USE_PLATFORM_WIN32_KHR
1506 // Map type VkFenceGetWin32HandleInfoKHR to id VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR
1507 template <> struct LvlTypeMap<VkFenceGetWin32HandleInfoKHR> {
1508     static const VkStructureType kSType = VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR;
1509 };
1510 
1511 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR> {
1512     typedef VkFenceGetWin32HandleInfoKHR Type;
1513 };
1514 
1515 #endif // VK_USE_PLATFORM_WIN32_KHR
1516 // Map type VkImportFenceFdInfoKHR to id VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR
1517 template <> struct LvlTypeMap<VkImportFenceFdInfoKHR> {
1518     static const VkStructureType kSType = VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR;
1519 };
1520 
1521 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR> {
1522     typedef VkImportFenceFdInfoKHR Type;
1523 };
1524 
1525 // Map type VkFenceGetFdInfoKHR to id VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR
1526 template <> struct LvlTypeMap<VkFenceGetFdInfoKHR> {
1527     static const VkStructureType kSType = VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR;
1528 };
1529 
1530 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR> {
1531     typedef VkFenceGetFdInfoKHR Type;
1532 };
1533 
1534 // Map type VkPhysicalDeviceSurfaceInfo2KHR to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR
1535 template <> struct LvlTypeMap<VkPhysicalDeviceSurfaceInfo2KHR> {
1536     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR;
1537 };
1538 
1539 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR> {
1540     typedef VkPhysicalDeviceSurfaceInfo2KHR Type;
1541 };
1542 
1543 // Map type VkSurfaceCapabilities2KHR to id VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR
1544 template <> struct LvlTypeMap<VkSurfaceCapabilities2KHR> {
1545     static const VkStructureType kSType = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR;
1546 };
1547 
1548 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR> {
1549     typedef VkSurfaceCapabilities2KHR Type;
1550 };
1551 
1552 // Map type VkSurfaceFormat2KHR to id VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR
1553 template <> struct LvlTypeMap<VkSurfaceFormat2KHR> {
1554     static const VkStructureType kSType = VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR;
1555 };
1556 
1557 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR> {
1558     typedef VkSurfaceFormat2KHR Type;
1559 };
1560 
1561 // Map type VkDisplayProperties2KHR to id VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR
1562 template <> struct LvlTypeMap<VkDisplayProperties2KHR> {
1563     static const VkStructureType kSType = VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR;
1564 };
1565 
1566 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR> {
1567     typedef VkDisplayProperties2KHR Type;
1568 };
1569 
1570 // Map type VkDisplayPlaneProperties2KHR to id VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR
1571 template <> struct LvlTypeMap<VkDisplayPlaneProperties2KHR> {
1572     static const VkStructureType kSType = VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR;
1573 };
1574 
1575 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR> {
1576     typedef VkDisplayPlaneProperties2KHR Type;
1577 };
1578 
1579 // Map type VkDisplayModeProperties2KHR to id VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR
1580 template <> struct LvlTypeMap<VkDisplayModeProperties2KHR> {
1581     static const VkStructureType kSType = VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR;
1582 };
1583 
1584 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR> {
1585     typedef VkDisplayModeProperties2KHR Type;
1586 };
1587 
1588 // Map type VkDisplayPlaneInfo2KHR to id VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR
1589 template <> struct LvlTypeMap<VkDisplayPlaneInfo2KHR> {
1590     static const VkStructureType kSType = VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR;
1591 };
1592 
1593 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR> {
1594     typedef VkDisplayPlaneInfo2KHR Type;
1595 };
1596 
1597 // Map type VkDisplayPlaneCapabilities2KHR to id VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR
1598 template <> struct LvlTypeMap<VkDisplayPlaneCapabilities2KHR> {
1599     static const VkStructureType kSType = VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR;
1600 };
1601 
1602 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR> {
1603     typedef VkDisplayPlaneCapabilities2KHR Type;
1604 };
1605 
1606 // Map type VkImageFormatListCreateInfoKHR to id VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR
1607 template <> struct LvlTypeMap<VkImageFormatListCreateInfoKHR> {
1608     static const VkStructureType kSType = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR;
1609 };
1610 
1611 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR> {
1612     typedef VkImageFormatListCreateInfoKHR Type;
1613 };
1614 
1615 // Map type VkPhysicalDevice8BitStorageFeaturesKHR to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR
1616 template <> struct LvlTypeMap<VkPhysicalDevice8BitStorageFeaturesKHR> {
1617     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR;
1618 };
1619 
1620 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR> {
1621     typedef VkPhysicalDevice8BitStorageFeaturesKHR Type;
1622 };
1623 
1624 // Map type VkPhysicalDeviceShaderAtomicInt64FeaturesKHR to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR
1625 template <> struct LvlTypeMap<VkPhysicalDeviceShaderAtomicInt64FeaturesKHR> {
1626     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR;
1627 };
1628 
1629 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR> {
1630     typedef VkPhysicalDeviceShaderAtomicInt64FeaturesKHR Type;
1631 };
1632 
1633 // Map type VkPhysicalDeviceDriverPropertiesKHR to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR
1634 template <> struct LvlTypeMap<VkPhysicalDeviceDriverPropertiesKHR> {
1635     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR;
1636 };
1637 
1638 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR> {
1639     typedef VkPhysicalDeviceDriverPropertiesKHR Type;
1640 };
1641 
1642 // Map type VkPhysicalDeviceFloatControlsPropertiesKHR to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR
1643 template <> struct LvlTypeMap<VkPhysicalDeviceFloatControlsPropertiesKHR> {
1644     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR;
1645 };
1646 
1647 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR> {
1648     typedef VkPhysicalDeviceFloatControlsPropertiesKHR Type;
1649 };
1650 
1651 // Map type VkSubpassDescriptionDepthStencilResolveKHR to id VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR
1652 template <> struct LvlTypeMap<VkSubpassDescriptionDepthStencilResolveKHR> {
1653     static const VkStructureType kSType = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR;
1654 };
1655 
1656 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR> {
1657     typedef VkSubpassDescriptionDepthStencilResolveKHR Type;
1658 };
1659 
1660 // Map type VkPhysicalDeviceDepthStencilResolvePropertiesKHR to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR
1661 template <> struct LvlTypeMap<VkPhysicalDeviceDepthStencilResolvePropertiesKHR> {
1662     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR;
1663 };
1664 
1665 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR> {
1666     typedef VkPhysicalDeviceDepthStencilResolvePropertiesKHR Type;
1667 };
1668 
1669 // Map type VkPhysicalDeviceVulkanMemoryModelFeaturesKHR to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR
1670 template <> struct LvlTypeMap<VkPhysicalDeviceVulkanMemoryModelFeaturesKHR> {
1671     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR;
1672 };
1673 
1674 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR> {
1675     typedef VkPhysicalDeviceVulkanMemoryModelFeaturesKHR Type;
1676 };
1677 
1678 // Map type VkSurfaceProtectedCapabilitiesKHR to id VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR
1679 template <> struct LvlTypeMap<VkSurfaceProtectedCapabilitiesKHR> {
1680     static const VkStructureType kSType = VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR;
1681 };
1682 
1683 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR> {
1684     typedef VkSurfaceProtectedCapabilitiesKHR Type;
1685 };
1686 
1687 // Map type VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR
1688 template <> struct LvlTypeMap<VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR> {
1689     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR;
1690 };
1691 
1692 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR> {
1693     typedef VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR Type;
1694 };
1695 
1696 // Map type VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR
1697 template <> struct LvlTypeMap<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR> {
1698     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR;
1699 };
1700 
1701 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR> {
1702     typedef VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR Type;
1703 };
1704 
1705 // Map type VkPipelineInfoKHR to id VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR
1706 template <> struct LvlTypeMap<VkPipelineInfoKHR> {
1707     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR;
1708 };
1709 
1710 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR> {
1711     typedef VkPipelineInfoKHR Type;
1712 };
1713 
1714 // Map type VkPipelineExecutablePropertiesKHR to id VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR
1715 template <> struct LvlTypeMap<VkPipelineExecutablePropertiesKHR> {
1716     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR;
1717 };
1718 
1719 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR> {
1720     typedef VkPipelineExecutablePropertiesKHR Type;
1721 };
1722 
1723 // Map type VkPipelineExecutableInfoKHR to id VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR
1724 template <> struct LvlTypeMap<VkPipelineExecutableInfoKHR> {
1725     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR;
1726 };
1727 
1728 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR> {
1729     typedef VkPipelineExecutableInfoKHR Type;
1730 };
1731 
1732 // Map type VkPipelineExecutableStatisticKHR to id VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR
1733 template <> struct LvlTypeMap<VkPipelineExecutableStatisticKHR> {
1734     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR;
1735 };
1736 
1737 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR> {
1738     typedef VkPipelineExecutableStatisticKHR Type;
1739 };
1740 
1741 // Map type VkPipelineExecutableInternalRepresentationKHR to id VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR
1742 template <> struct LvlTypeMap<VkPipelineExecutableInternalRepresentationKHR> {
1743     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR;
1744 };
1745 
1746 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR> {
1747     typedef VkPipelineExecutableInternalRepresentationKHR Type;
1748 };
1749 
1750 // Map type VkDebugReportCallbackCreateInfoEXT to id VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT
1751 template <> struct LvlTypeMap<VkDebugReportCallbackCreateInfoEXT> {
1752     static const VkStructureType kSType = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT;
1753 };
1754 
1755 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT> {
1756     typedef VkDebugReportCallbackCreateInfoEXT Type;
1757 };
1758 
1759 // Map type VkPipelineRasterizationStateRasterizationOrderAMD to id VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD
1760 template <> struct LvlTypeMap<VkPipelineRasterizationStateRasterizationOrderAMD> {
1761     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD;
1762 };
1763 
1764 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD> {
1765     typedef VkPipelineRasterizationStateRasterizationOrderAMD Type;
1766 };
1767 
1768 // Map type VkDebugMarkerObjectNameInfoEXT to id VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT
1769 template <> struct LvlTypeMap<VkDebugMarkerObjectNameInfoEXT> {
1770     static const VkStructureType kSType = VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT;
1771 };
1772 
1773 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT> {
1774     typedef VkDebugMarkerObjectNameInfoEXT Type;
1775 };
1776 
1777 // Map type VkDebugMarkerObjectTagInfoEXT to id VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT
1778 template <> struct LvlTypeMap<VkDebugMarkerObjectTagInfoEXT> {
1779     static const VkStructureType kSType = VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT;
1780 };
1781 
1782 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT> {
1783     typedef VkDebugMarkerObjectTagInfoEXT Type;
1784 };
1785 
1786 // Map type VkDebugMarkerMarkerInfoEXT to id VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT
1787 template <> struct LvlTypeMap<VkDebugMarkerMarkerInfoEXT> {
1788     static const VkStructureType kSType = VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT;
1789 };
1790 
1791 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT> {
1792     typedef VkDebugMarkerMarkerInfoEXT Type;
1793 };
1794 
1795 // Map type VkDedicatedAllocationImageCreateInfoNV to id VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV
1796 template <> struct LvlTypeMap<VkDedicatedAllocationImageCreateInfoNV> {
1797     static const VkStructureType kSType = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV;
1798 };
1799 
1800 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV> {
1801     typedef VkDedicatedAllocationImageCreateInfoNV Type;
1802 };
1803 
1804 // Map type VkDedicatedAllocationBufferCreateInfoNV to id VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV
1805 template <> struct LvlTypeMap<VkDedicatedAllocationBufferCreateInfoNV> {
1806     static const VkStructureType kSType = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV;
1807 };
1808 
1809 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV> {
1810     typedef VkDedicatedAllocationBufferCreateInfoNV Type;
1811 };
1812 
1813 // Map type VkDedicatedAllocationMemoryAllocateInfoNV to id VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV
1814 template <> struct LvlTypeMap<VkDedicatedAllocationMemoryAllocateInfoNV> {
1815     static const VkStructureType kSType = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV;
1816 };
1817 
1818 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV> {
1819     typedef VkDedicatedAllocationMemoryAllocateInfoNV Type;
1820 };
1821 
1822 // Map type VkPhysicalDeviceTransformFeedbackFeaturesEXT to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT
1823 template <> struct LvlTypeMap<VkPhysicalDeviceTransformFeedbackFeaturesEXT> {
1824     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT;
1825 };
1826 
1827 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT> {
1828     typedef VkPhysicalDeviceTransformFeedbackFeaturesEXT Type;
1829 };
1830 
1831 // Map type VkPhysicalDeviceTransformFeedbackPropertiesEXT to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT
1832 template <> struct LvlTypeMap<VkPhysicalDeviceTransformFeedbackPropertiesEXT> {
1833     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT;
1834 };
1835 
1836 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT> {
1837     typedef VkPhysicalDeviceTransformFeedbackPropertiesEXT Type;
1838 };
1839 
1840 // Map type VkPipelineRasterizationStateStreamCreateInfoEXT to id VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT
1841 template <> struct LvlTypeMap<VkPipelineRasterizationStateStreamCreateInfoEXT> {
1842     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT;
1843 };
1844 
1845 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT> {
1846     typedef VkPipelineRasterizationStateStreamCreateInfoEXT Type;
1847 };
1848 
1849 // Map type VkImageViewHandleInfoNVX to id VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX
1850 template <> struct LvlTypeMap<VkImageViewHandleInfoNVX> {
1851     static const VkStructureType kSType = VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX;
1852 };
1853 
1854 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX> {
1855     typedef VkImageViewHandleInfoNVX Type;
1856 };
1857 
1858 // Map type VkTextureLODGatherFormatPropertiesAMD to id VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD
1859 template <> struct LvlTypeMap<VkTextureLODGatherFormatPropertiesAMD> {
1860     static const VkStructureType kSType = VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD;
1861 };
1862 
1863 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD> {
1864     typedef VkTextureLODGatherFormatPropertiesAMD Type;
1865 };
1866 
1867 #ifdef VK_USE_PLATFORM_GGP
1868 // Map type VkStreamDescriptorSurfaceCreateInfoGGP to id VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP
1869 template <> struct LvlTypeMap<VkStreamDescriptorSurfaceCreateInfoGGP> {
1870     static const VkStructureType kSType = VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP;
1871 };
1872 
1873 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP> {
1874     typedef VkStreamDescriptorSurfaceCreateInfoGGP Type;
1875 };
1876 
1877 #endif // VK_USE_PLATFORM_GGP
1878 // Map type VkPhysicalDeviceCornerSampledImageFeaturesNV to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV
1879 template <> struct LvlTypeMap<VkPhysicalDeviceCornerSampledImageFeaturesNV> {
1880     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV;
1881 };
1882 
1883 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV> {
1884     typedef VkPhysicalDeviceCornerSampledImageFeaturesNV Type;
1885 };
1886 
1887 // Map type VkExternalMemoryImageCreateInfoNV to id VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV
1888 template <> struct LvlTypeMap<VkExternalMemoryImageCreateInfoNV> {
1889     static const VkStructureType kSType = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV;
1890 };
1891 
1892 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV> {
1893     typedef VkExternalMemoryImageCreateInfoNV Type;
1894 };
1895 
1896 // Map type VkExportMemoryAllocateInfoNV to id VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV
1897 template <> struct LvlTypeMap<VkExportMemoryAllocateInfoNV> {
1898     static const VkStructureType kSType = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV;
1899 };
1900 
1901 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV> {
1902     typedef VkExportMemoryAllocateInfoNV Type;
1903 };
1904 
1905 #ifdef VK_USE_PLATFORM_WIN32_KHR
1906 // Map type VkImportMemoryWin32HandleInfoNV to id VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV
1907 template <> struct LvlTypeMap<VkImportMemoryWin32HandleInfoNV> {
1908     static const VkStructureType kSType = VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV;
1909 };
1910 
1911 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV> {
1912     typedef VkImportMemoryWin32HandleInfoNV Type;
1913 };
1914 
1915 #endif // VK_USE_PLATFORM_WIN32_KHR
1916 #ifdef VK_USE_PLATFORM_WIN32_KHR
1917 // Map type VkExportMemoryWin32HandleInfoNV to id VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV
1918 template <> struct LvlTypeMap<VkExportMemoryWin32HandleInfoNV> {
1919     static const VkStructureType kSType = VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV;
1920 };
1921 
1922 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV> {
1923     typedef VkExportMemoryWin32HandleInfoNV Type;
1924 };
1925 
1926 #endif // VK_USE_PLATFORM_WIN32_KHR
1927 #ifdef VK_USE_PLATFORM_WIN32_KHR
1928 // Map type VkWin32KeyedMutexAcquireReleaseInfoNV to id VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV
1929 template <> struct LvlTypeMap<VkWin32KeyedMutexAcquireReleaseInfoNV> {
1930     static const VkStructureType kSType = VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV;
1931 };
1932 
1933 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV> {
1934     typedef VkWin32KeyedMutexAcquireReleaseInfoNV Type;
1935 };
1936 
1937 #endif // VK_USE_PLATFORM_WIN32_KHR
1938 // Map type VkValidationFlagsEXT to id VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT
1939 template <> struct LvlTypeMap<VkValidationFlagsEXT> {
1940     static const VkStructureType kSType = VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT;
1941 };
1942 
1943 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT> {
1944     typedef VkValidationFlagsEXT Type;
1945 };
1946 
1947 #ifdef VK_USE_PLATFORM_VI_NN
1948 // Map type VkViSurfaceCreateInfoNN to id VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN
1949 template <> struct LvlTypeMap<VkViSurfaceCreateInfoNN> {
1950     static const VkStructureType kSType = VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN;
1951 };
1952 
1953 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN> {
1954     typedef VkViSurfaceCreateInfoNN Type;
1955 };
1956 
1957 #endif // VK_USE_PLATFORM_VI_NN
1958 // Map type VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT
1959 template <> struct LvlTypeMap<VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT> {
1960     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT;
1961 };
1962 
1963 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT> {
1964     typedef VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT Type;
1965 };
1966 
1967 // Map type VkImageViewASTCDecodeModeEXT to id VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT
1968 template <> struct LvlTypeMap<VkImageViewASTCDecodeModeEXT> {
1969     static const VkStructureType kSType = VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT;
1970 };
1971 
1972 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT> {
1973     typedef VkImageViewASTCDecodeModeEXT Type;
1974 };
1975 
1976 // Map type VkPhysicalDeviceASTCDecodeFeaturesEXT to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT
1977 template <> struct LvlTypeMap<VkPhysicalDeviceASTCDecodeFeaturesEXT> {
1978     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT;
1979 };
1980 
1981 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT> {
1982     typedef VkPhysicalDeviceASTCDecodeFeaturesEXT Type;
1983 };
1984 
1985 // Map type VkConditionalRenderingBeginInfoEXT to id VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT
1986 template <> struct LvlTypeMap<VkConditionalRenderingBeginInfoEXT> {
1987     static const VkStructureType kSType = VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT;
1988 };
1989 
1990 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT> {
1991     typedef VkConditionalRenderingBeginInfoEXT Type;
1992 };
1993 
1994 // Map type VkPhysicalDeviceConditionalRenderingFeaturesEXT to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT
1995 template <> struct LvlTypeMap<VkPhysicalDeviceConditionalRenderingFeaturesEXT> {
1996     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT;
1997 };
1998 
1999 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT> {
2000     typedef VkPhysicalDeviceConditionalRenderingFeaturesEXT Type;
2001 };
2002 
2003 // Map type VkCommandBufferInheritanceConditionalRenderingInfoEXT to id VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT
2004 template <> struct LvlTypeMap<VkCommandBufferInheritanceConditionalRenderingInfoEXT> {
2005     static const VkStructureType kSType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT;
2006 };
2007 
2008 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT> {
2009     typedef VkCommandBufferInheritanceConditionalRenderingInfoEXT Type;
2010 };
2011 
2012 // Map type VkDeviceGeneratedCommandsFeaturesNVX to id VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX
2013 template <> struct LvlTypeMap<VkDeviceGeneratedCommandsFeaturesNVX> {
2014     static const VkStructureType kSType = VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX;
2015 };
2016 
2017 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX> {
2018     typedef VkDeviceGeneratedCommandsFeaturesNVX Type;
2019 };
2020 
2021 // Map type VkDeviceGeneratedCommandsLimitsNVX to id VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX
2022 template <> struct LvlTypeMap<VkDeviceGeneratedCommandsLimitsNVX> {
2023     static const VkStructureType kSType = VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX;
2024 };
2025 
2026 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX> {
2027     typedef VkDeviceGeneratedCommandsLimitsNVX Type;
2028 };
2029 
2030 // Map type VkIndirectCommandsLayoutCreateInfoNVX to id VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX
2031 template <> struct LvlTypeMap<VkIndirectCommandsLayoutCreateInfoNVX> {
2032     static const VkStructureType kSType = VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX;
2033 };
2034 
2035 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX> {
2036     typedef VkIndirectCommandsLayoutCreateInfoNVX Type;
2037 };
2038 
2039 // Map type VkCmdProcessCommandsInfoNVX to id VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX
2040 template <> struct LvlTypeMap<VkCmdProcessCommandsInfoNVX> {
2041     static const VkStructureType kSType = VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX;
2042 };
2043 
2044 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX> {
2045     typedef VkCmdProcessCommandsInfoNVX Type;
2046 };
2047 
2048 // Map type VkCmdReserveSpaceForCommandsInfoNVX to id VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX
2049 template <> struct LvlTypeMap<VkCmdReserveSpaceForCommandsInfoNVX> {
2050     static const VkStructureType kSType = VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX;
2051 };
2052 
2053 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX> {
2054     typedef VkCmdReserveSpaceForCommandsInfoNVX Type;
2055 };
2056 
2057 // Map type VkObjectTableCreateInfoNVX to id VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX
2058 template <> struct LvlTypeMap<VkObjectTableCreateInfoNVX> {
2059     static const VkStructureType kSType = VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX;
2060 };
2061 
2062 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX> {
2063     typedef VkObjectTableCreateInfoNVX Type;
2064 };
2065 
2066 // Map type VkPipelineViewportWScalingStateCreateInfoNV to id VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV
2067 template <> struct LvlTypeMap<VkPipelineViewportWScalingStateCreateInfoNV> {
2068     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV;
2069 };
2070 
2071 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV> {
2072     typedef VkPipelineViewportWScalingStateCreateInfoNV Type;
2073 };
2074 
2075 // Map type VkSurfaceCapabilities2EXT to id VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT
2076 template <> struct LvlTypeMap<VkSurfaceCapabilities2EXT> {
2077     static const VkStructureType kSType = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT;
2078 };
2079 
2080 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT> {
2081     typedef VkSurfaceCapabilities2EXT Type;
2082 };
2083 
2084 // Map type VkDisplayPowerInfoEXT to id VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT
2085 template <> struct LvlTypeMap<VkDisplayPowerInfoEXT> {
2086     static const VkStructureType kSType = VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT;
2087 };
2088 
2089 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT> {
2090     typedef VkDisplayPowerInfoEXT Type;
2091 };
2092 
2093 // Map type VkDeviceEventInfoEXT to id VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT
2094 template <> struct LvlTypeMap<VkDeviceEventInfoEXT> {
2095     static const VkStructureType kSType = VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT;
2096 };
2097 
2098 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT> {
2099     typedef VkDeviceEventInfoEXT Type;
2100 };
2101 
2102 // Map type VkDisplayEventInfoEXT to id VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT
2103 template <> struct LvlTypeMap<VkDisplayEventInfoEXT> {
2104     static const VkStructureType kSType = VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT;
2105 };
2106 
2107 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT> {
2108     typedef VkDisplayEventInfoEXT Type;
2109 };
2110 
2111 // Map type VkSwapchainCounterCreateInfoEXT to id VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT
2112 template <> struct LvlTypeMap<VkSwapchainCounterCreateInfoEXT> {
2113     static const VkStructureType kSType = VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT;
2114 };
2115 
2116 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT> {
2117     typedef VkSwapchainCounterCreateInfoEXT Type;
2118 };
2119 
2120 // Map type VkPresentTimesInfoGOOGLE to id VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE
2121 template <> struct LvlTypeMap<VkPresentTimesInfoGOOGLE> {
2122     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE;
2123 };
2124 
2125 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE> {
2126     typedef VkPresentTimesInfoGOOGLE Type;
2127 };
2128 
2129 // Map type VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX
2130 template <> struct LvlTypeMap<VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX> {
2131     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX;
2132 };
2133 
2134 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX> {
2135     typedef VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX Type;
2136 };
2137 
2138 // Map type VkPipelineViewportSwizzleStateCreateInfoNV to id VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV
2139 template <> struct LvlTypeMap<VkPipelineViewportSwizzleStateCreateInfoNV> {
2140     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV;
2141 };
2142 
2143 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV> {
2144     typedef VkPipelineViewportSwizzleStateCreateInfoNV Type;
2145 };
2146 
2147 // Map type VkPhysicalDeviceDiscardRectanglePropertiesEXT to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT
2148 template <> struct LvlTypeMap<VkPhysicalDeviceDiscardRectanglePropertiesEXT> {
2149     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT;
2150 };
2151 
2152 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT> {
2153     typedef VkPhysicalDeviceDiscardRectanglePropertiesEXT Type;
2154 };
2155 
2156 // Map type VkPipelineDiscardRectangleStateCreateInfoEXT to id VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT
2157 template <> struct LvlTypeMap<VkPipelineDiscardRectangleStateCreateInfoEXT> {
2158     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT;
2159 };
2160 
2161 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT> {
2162     typedef VkPipelineDiscardRectangleStateCreateInfoEXT Type;
2163 };
2164 
2165 // Map type VkPhysicalDeviceConservativeRasterizationPropertiesEXT to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT
2166 template <> struct LvlTypeMap<VkPhysicalDeviceConservativeRasterizationPropertiesEXT> {
2167     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT;
2168 };
2169 
2170 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT> {
2171     typedef VkPhysicalDeviceConservativeRasterizationPropertiesEXT Type;
2172 };
2173 
2174 // Map type VkPipelineRasterizationConservativeStateCreateInfoEXT to id VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT
2175 template <> struct LvlTypeMap<VkPipelineRasterizationConservativeStateCreateInfoEXT> {
2176     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT;
2177 };
2178 
2179 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT> {
2180     typedef VkPipelineRasterizationConservativeStateCreateInfoEXT Type;
2181 };
2182 
2183 // Map type VkPhysicalDeviceDepthClipEnableFeaturesEXT to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT
2184 template <> struct LvlTypeMap<VkPhysicalDeviceDepthClipEnableFeaturesEXT> {
2185     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT;
2186 };
2187 
2188 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT> {
2189     typedef VkPhysicalDeviceDepthClipEnableFeaturesEXT Type;
2190 };
2191 
2192 // Map type VkPipelineRasterizationDepthClipStateCreateInfoEXT to id VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT
2193 template <> struct LvlTypeMap<VkPipelineRasterizationDepthClipStateCreateInfoEXT> {
2194     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT;
2195 };
2196 
2197 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT> {
2198     typedef VkPipelineRasterizationDepthClipStateCreateInfoEXT Type;
2199 };
2200 
2201 // Map type VkHdrMetadataEXT to id VK_STRUCTURE_TYPE_HDR_METADATA_EXT
2202 template <> struct LvlTypeMap<VkHdrMetadataEXT> {
2203     static const VkStructureType kSType = VK_STRUCTURE_TYPE_HDR_METADATA_EXT;
2204 };
2205 
2206 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_HDR_METADATA_EXT> {
2207     typedef VkHdrMetadataEXT Type;
2208 };
2209 
2210 #ifdef VK_USE_PLATFORM_IOS_MVK
2211 // Map type VkIOSSurfaceCreateInfoMVK to id VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK
2212 template <> struct LvlTypeMap<VkIOSSurfaceCreateInfoMVK> {
2213     static const VkStructureType kSType = VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK;
2214 };
2215 
2216 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK> {
2217     typedef VkIOSSurfaceCreateInfoMVK Type;
2218 };
2219 
2220 #endif // VK_USE_PLATFORM_IOS_MVK
2221 #ifdef VK_USE_PLATFORM_MACOS_MVK
2222 // Map type VkMacOSSurfaceCreateInfoMVK to id VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK
2223 template <> struct LvlTypeMap<VkMacOSSurfaceCreateInfoMVK> {
2224     static const VkStructureType kSType = VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK;
2225 };
2226 
2227 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK> {
2228     typedef VkMacOSSurfaceCreateInfoMVK Type;
2229 };
2230 
2231 #endif // VK_USE_PLATFORM_MACOS_MVK
2232 // Map type VkDebugUtilsObjectNameInfoEXT to id VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT
2233 template <> struct LvlTypeMap<VkDebugUtilsObjectNameInfoEXT> {
2234     static const VkStructureType kSType = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT;
2235 };
2236 
2237 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT> {
2238     typedef VkDebugUtilsObjectNameInfoEXT Type;
2239 };
2240 
2241 // Map type VkDebugUtilsObjectTagInfoEXT to id VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT
2242 template <> struct LvlTypeMap<VkDebugUtilsObjectTagInfoEXT> {
2243     static const VkStructureType kSType = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT;
2244 };
2245 
2246 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT> {
2247     typedef VkDebugUtilsObjectTagInfoEXT Type;
2248 };
2249 
2250 // Map type VkDebugUtilsLabelEXT to id VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT
2251 template <> struct LvlTypeMap<VkDebugUtilsLabelEXT> {
2252     static const VkStructureType kSType = VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT;
2253 };
2254 
2255 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT> {
2256     typedef VkDebugUtilsLabelEXT Type;
2257 };
2258 
2259 // Map type VkDebugUtilsMessengerCallbackDataEXT to id VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT
2260 template <> struct LvlTypeMap<VkDebugUtilsMessengerCallbackDataEXT> {
2261     static const VkStructureType kSType = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT;
2262 };
2263 
2264 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT> {
2265     typedef VkDebugUtilsMessengerCallbackDataEXT Type;
2266 };
2267 
2268 // Map type VkDebugUtilsMessengerCreateInfoEXT to id VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT
2269 template <> struct LvlTypeMap<VkDebugUtilsMessengerCreateInfoEXT> {
2270     static const VkStructureType kSType = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT;
2271 };
2272 
2273 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT> {
2274     typedef VkDebugUtilsMessengerCreateInfoEXT Type;
2275 };
2276 
2277 #ifdef VK_USE_PLATFORM_ANDROID_KHR
2278 // Map type VkAndroidHardwareBufferUsageANDROID to id VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID
2279 template <> struct LvlTypeMap<VkAndroidHardwareBufferUsageANDROID> {
2280     static const VkStructureType kSType = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID;
2281 };
2282 
2283 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID> {
2284     typedef VkAndroidHardwareBufferUsageANDROID Type;
2285 };
2286 
2287 #endif // VK_USE_PLATFORM_ANDROID_KHR
2288 #ifdef VK_USE_PLATFORM_ANDROID_KHR
2289 // Map type VkAndroidHardwareBufferPropertiesANDROID to id VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID
2290 template <> struct LvlTypeMap<VkAndroidHardwareBufferPropertiesANDROID> {
2291     static const VkStructureType kSType = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID;
2292 };
2293 
2294 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID> {
2295     typedef VkAndroidHardwareBufferPropertiesANDROID Type;
2296 };
2297 
2298 #endif // VK_USE_PLATFORM_ANDROID_KHR
2299 #ifdef VK_USE_PLATFORM_ANDROID_KHR
2300 // Map type VkAndroidHardwareBufferFormatPropertiesANDROID to id VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID
2301 template <> struct LvlTypeMap<VkAndroidHardwareBufferFormatPropertiesANDROID> {
2302     static const VkStructureType kSType = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID;
2303 };
2304 
2305 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID> {
2306     typedef VkAndroidHardwareBufferFormatPropertiesANDROID Type;
2307 };
2308 
2309 #endif // VK_USE_PLATFORM_ANDROID_KHR
2310 #ifdef VK_USE_PLATFORM_ANDROID_KHR
2311 // Map type VkImportAndroidHardwareBufferInfoANDROID to id VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID
2312 template <> struct LvlTypeMap<VkImportAndroidHardwareBufferInfoANDROID> {
2313     static const VkStructureType kSType = VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID;
2314 };
2315 
2316 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID> {
2317     typedef VkImportAndroidHardwareBufferInfoANDROID Type;
2318 };
2319 
2320 #endif // VK_USE_PLATFORM_ANDROID_KHR
2321 #ifdef VK_USE_PLATFORM_ANDROID_KHR
2322 // Map type VkMemoryGetAndroidHardwareBufferInfoANDROID to id VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID
2323 template <> struct LvlTypeMap<VkMemoryGetAndroidHardwareBufferInfoANDROID> {
2324     static const VkStructureType kSType = VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID;
2325 };
2326 
2327 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID> {
2328     typedef VkMemoryGetAndroidHardwareBufferInfoANDROID Type;
2329 };
2330 
2331 #endif // VK_USE_PLATFORM_ANDROID_KHR
2332 #ifdef VK_USE_PLATFORM_ANDROID_KHR
2333 // Map type VkExternalFormatANDROID to id VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID
2334 template <> struct LvlTypeMap<VkExternalFormatANDROID> {
2335     static const VkStructureType kSType = VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID;
2336 };
2337 
2338 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID> {
2339     typedef VkExternalFormatANDROID Type;
2340 };
2341 
2342 #endif // VK_USE_PLATFORM_ANDROID_KHR
2343 // Map type VkSamplerReductionModeCreateInfoEXT to id VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT
2344 template <> struct LvlTypeMap<VkSamplerReductionModeCreateInfoEXT> {
2345     static const VkStructureType kSType = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT;
2346 };
2347 
2348 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT> {
2349     typedef VkSamplerReductionModeCreateInfoEXT Type;
2350 };
2351 
2352 // Map type VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT
2353 template <> struct LvlTypeMap<VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT> {
2354     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT;
2355 };
2356 
2357 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT> {
2358     typedef VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT Type;
2359 };
2360 
2361 // Map type VkPhysicalDeviceInlineUniformBlockFeaturesEXT to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT
2362 template <> struct LvlTypeMap<VkPhysicalDeviceInlineUniformBlockFeaturesEXT> {
2363     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT;
2364 };
2365 
2366 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT> {
2367     typedef VkPhysicalDeviceInlineUniformBlockFeaturesEXT Type;
2368 };
2369 
2370 // Map type VkPhysicalDeviceInlineUniformBlockPropertiesEXT to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT
2371 template <> struct LvlTypeMap<VkPhysicalDeviceInlineUniformBlockPropertiesEXT> {
2372     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT;
2373 };
2374 
2375 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT> {
2376     typedef VkPhysicalDeviceInlineUniformBlockPropertiesEXT Type;
2377 };
2378 
2379 // Map type VkWriteDescriptorSetInlineUniformBlockEXT to id VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT
2380 template <> struct LvlTypeMap<VkWriteDescriptorSetInlineUniformBlockEXT> {
2381     static const VkStructureType kSType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT;
2382 };
2383 
2384 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT> {
2385     typedef VkWriteDescriptorSetInlineUniformBlockEXT Type;
2386 };
2387 
2388 // Map type VkDescriptorPoolInlineUniformBlockCreateInfoEXT to id VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT
2389 template <> struct LvlTypeMap<VkDescriptorPoolInlineUniformBlockCreateInfoEXT> {
2390     static const VkStructureType kSType = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT;
2391 };
2392 
2393 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT> {
2394     typedef VkDescriptorPoolInlineUniformBlockCreateInfoEXT Type;
2395 };
2396 
2397 // Map type VkSampleLocationsInfoEXT to id VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT
2398 template <> struct LvlTypeMap<VkSampleLocationsInfoEXT> {
2399     static const VkStructureType kSType = VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT;
2400 };
2401 
2402 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT> {
2403     typedef VkSampleLocationsInfoEXT Type;
2404 };
2405 
2406 // Map type VkRenderPassSampleLocationsBeginInfoEXT to id VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT
2407 template <> struct LvlTypeMap<VkRenderPassSampleLocationsBeginInfoEXT> {
2408     static const VkStructureType kSType = VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT;
2409 };
2410 
2411 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT> {
2412     typedef VkRenderPassSampleLocationsBeginInfoEXT Type;
2413 };
2414 
2415 // Map type VkPipelineSampleLocationsStateCreateInfoEXT to id VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT
2416 template <> struct LvlTypeMap<VkPipelineSampleLocationsStateCreateInfoEXT> {
2417     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT;
2418 };
2419 
2420 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT> {
2421     typedef VkPipelineSampleLocationsStateCreateInfoEXT Type;
2422 };
2423 
2424 // Map type VkPhysicalDeviceSampleLocationsPropertiesEXT to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT
2425 template <> struct LvlTypeMap<VkPhysicalDeviceSampleLocationsPropertiesEXT> {
2426     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT;
2427 };
2428 
2429 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT> {
2430     typedef VkPhysicalDeviceSampleLocationsPropertiesEXT Type;
2431 };
2432 
2433 // Map type VkMultisamplePropertiesEXT to id VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT
2434 template <> struct LvlTypeMap<VkMultisamplePropertiesEXT> {
2435     static const VkStructureType kSType = VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT;
2436 };
2437 
2438 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT> {
2439     typedef VkMultisamplePropertiesEXT Type;
2440 };
2441 
2442 // Map type VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT
2443 template <> struct LvlTypeMap<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT> {
2444     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT;
2445 };
2446 
2447 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT> {
2448     typedef VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT Type;
2449 };
2450 
2451 // Map type VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT
2452 template <> struct LvlTypeMap<VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT> {
2453     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT;
2454 };
2455 
2456 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT> {
2457     typedef VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT Type;
2458 };
2459 
2460 // Map type VkPipelineColorBlendAdvancedStateCreateInfoEXT to id VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT
2461 template <> struct LvlTypeMap<VkPipelineColorBlendAdvancedStateCreateInfoEXT> {
2462     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT;
2463 };
2464 
2465 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT> {
2466     typedef VkPipelineColorBlendAdvancedStateCreateInfoEXT Type;
2467 };
2468 
2469 // Map type VkPipelineCoverageToColorStateCreateInfoNV to id VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV
2470 template <> struct LvlTypeMap<VkPipelineCoverageToColorStateCreateInfoNV> {
2471     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV;
2472 };
2473 
2474 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV> {
2475     typedef VkPipelineCoverageToColorStateCreateInfoNV Type;
2476 };
2477 
2478 // Map type VkPipelineCoverageModulationStateCreateInfoNV to id VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV
2479 template <> struct LvlTypeMap<VkPipelineCoverageModulationStateCreateInfoNV> {
2480     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV;
2481 };
2482 
2483 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV> {
2484     typedef VkPipelineCoverageModulationStateCreateInfoNV Type;
2485 };
2486 
2487 // Map type VkPhysicalDeviceShaderSMBuiltinsPropertiesNV to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV
2488 template <> struct LvlTypeMap<VkPhysicalDeviceShaderSMBuiltinsPropertiesNV> {
2489     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV;
2490 };
2491 
2492 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV> {
2493     typedef VkPhysicalDeviceShaderSMBuiltinsPropertiesNV Type;
2494 };
2495 
2496 // Map type VkPhysicalDeviceShaderSMBuiltinsFeaturesNV to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV
2497 template <> struct LvlTypeMap<VkPhysicalDeviceShaderSMBuiltinsFeaturesNV> {
2498     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV;
2499 };
2500 
2501 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV> {
2502     typedef VkPhysicalDeviceShaderSMBuiltinsFeaturesNV Type;
2503 };
2504 
2505 // Map type VkDrmFormatModifierPropertiesListEXT to id VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT
2506 template <> struct LvlTypeMap<VkDrmFormatModifierPropertiesListEXT> {
2507     static const VkStructureType kSType = VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT;
2508 };
2509 
2510 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT> {
2511     typedef VkDrmFormatModifierPropertiesListEXT Type;
2512 };
2513 
2514 // Map type VkPhysicalDeviceImageDrmFormatModifierInfoEXT to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT
2515 template <> struct LvlTypeMap<VkPhysicalDeviceImageDrmFormatModifierInfoEXT> {
2516     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT;
2517 };
2518 
2519 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT> {
2520     typedef VkPhysicalDeviceImageDrmFormatModifierInfoEXT Type;
2521 };
2522 
2523 // Map type VkImageDrmFormatModifierListCreateInfoEXT to id VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT
2524 template <> struct LvlTypeMap<VkImageDrmFormatModifierListCreateInfoEXT> {
2525     static const VkStructureType kSType = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT;
2526 };
2527 
2528 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT> {
2529     typedef VkImageDrmFormatModifierListCreateInfoEXT Type;
2530 };
2531 
2532 // Map type VkImageDrmFormatModifierExplicitCreateInfoEXT to id VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT
2533 template <> struct LvlTypeMap<VkImageDrmFormatModifierExplicitCreateInfoEXT> {
2534     static const VkStructureType kSType = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT;
2535 };
2536 
2537 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT> {
2538     typedef VkImageDrmFormatModifierExplicitCreateInfoEXT Type;
2539 };
2540 
2541 // Map type VkImageDrmFormatModifierPropertiesEXT to id VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT
2542 template <> struct LvlTypeMap<VkImageDrmFormatModifierPropertiesEXT> {
2543     static const VkStructureType kSType = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT;
2544 };
2545 
2546 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT> {
2547     typedef VkImageDrmFormatModifierPropertiesEXT Type;
2548 };
2549 
2550 // Map type VkValidationCacheCreateInfoEXT to id VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT
2551 template <> struct LvlTypeMap<VkValidationCacheCreateInfoEXT> {
2552     static const VkStructureType kSType = VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT;
2553 };
2554 
2555 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT> {
2556     typedef VkValidationCacheCreateInfoEXT Type;
2557 };
2558 
2559 // Map type VkShaderModuleValidationCacheCreateInfoEXT to id VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT
2560 template <> struct LvlTypeMap<VkShaderModuleValidationCacheCreateInfoEXT> {
2561     static const VkStructureType kSType = VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT;
2562 };
2563 
2564 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT> {
2565     typedef VkShaderModuleValidationCacheCreateInfoEXT Type;
2566 };
2567 
2568 // Map type VkDescriptorSetLayoutBindingFlagsCreateInfoEXT to id VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT
2569 template <> struct LvlTypeMap<VkDescriptorSetLayoutBindingFlagsCreateInfoEXT> {
2570     static const VkStructureType kSType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT;
2571 };
2572 
2573 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT> {
2574     typedef VkDescriptorSetLayoutBindingFlagsCreateInfoEXT Type;
2575 };
2576 
2577 // Map type VkPhysicalDeviceDescriptorIndexingFeaturesEXT to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT
2578 template <> struct LvlTypeMap<VkPhysicalDeviceDescriptorIndexingFeaturesEXT> {
2579     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT;
2580 };
2581 
2582 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT> {
2583     typedef VkPhysicalDeviceDescriptorIndexingFeaturesEXT Type;
2584 };
2585 
2586 // Map type VkPhysicalDeviceDescriptorIndexingPropertiesEXT to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT
2587 template <> struct LvlTypeMap<VkPhysicalDeviceDescriptorIndexingPropertiesEXT> {
2588     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT;
2589 };
2590 
2591 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT> {
2592     typedef VkPhysicalDeviceDescriptorIndexingPropertiesEXT Type;
2593 };
2594 
2595 // Map type VkDescriptorSetVariableDescriptorCountAllocateInfoEXT to id VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT
2596 template <> struct LvlTypeMap<VkDescriptorSetVariableDescriptorCountAllocateInfoEXT> {
2597     static const VkStructureType kSType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT;
2598 };
2599 
2600 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT> {
2601     typedef VkDescriptorSetVariableDescriptorCountAllocateInfoEXT Type;
2602 };
2603 
2604 // Map type VkDescriptorSetVariableDescriptorCountLayoutSupportEXT to id VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT
2605 template <> struct LvlTypeMap<VkDescriptorSetVariableDescriptorCountLayoutSupportEXT> {
2606     static const VkStructureType kSType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT;
2607 };
2608 
2609 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT> {
2610     typedef VkDescriptorSetVariableDescriptorCountLayoutSupportEXT Type;
2611 };
2612 
2613 // Map type VkPipelineViewportShadingRateImageStateCreateInfoNV to id VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV
2614 template <> struct LvlTypeMap<VkPipelineViewportShadingRateImageStateCreateInfoNV> {
2615     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV;
2616 };
2617 
2618 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV> {
2619     typedef VkPipelineViewportShadingRateImageStateCreateInfoNV Type;
2620 };
2621 
2622 // Map type VkPhysicalDeviceShadingRateImageFeaturesNV to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV
2623 template <> struct LvlTypeMap<VkPhysicalDeviceShadingRateImageFeaturesNV> {
2624     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV;
2625 };
2626 
2627 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV> {
2628     typedef VkPhysicalDeviceShadingRateImageFeaturesNV Type;
2629 };
2630 
2631 // Map type VkPhysicalDeviceShadingRateImagePropertiesNV to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV
2632 template <> struct LvlTypeMap<VkPhysicalDeviceShadingRateImagePropertiesNV> {
2633     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV;
2634 };
2635 
2636 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV> {
2637     typedef VkPhysicalDeviceShadingRateImagePropertiesNV Type;
2638 };
2639 
2640 // Map type VkPipelineViewportCoarseSampleOrderStateCreateInfoNV to id VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV
2641 template <> struct LvlTypeMap<VkPipelineViewportCoarseSampleOrderStateCreateInfoNV> {
2642     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV;
2643 };
2644 
2645 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV> {
2646     typedef VkPipelineViewportCoarseSampleOrderStateCreateInfoNV Type;
2647 };
2648 
2649 // Map type VkRayTracingShaderGroupCreateInfoNV to id VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV
2650 template <> struct LvlTypeMap<VkRayTracingShaderGroupCreateInfoNV> {
2651     static const VkStructureType kSType = VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV;
2652 };
2653 
2654 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV> {
2655     typedef VkRayTracingShaderGroupCreateInfoNV Type;
2656 };
2657 
2658 // Map type VkRayTracingPipelineCreateInfoNV to id VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV
2659 template <> struct LvlTypeMap<VkRayTracingPipelineCreateInfoNV> {
2660     static const VkStructureType kSType = VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV;
2661 };
2662 
2663 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV> {
2664     typedef VkRayTracingPipelineCreateInfoNV Type;
2665 };
2666 
2667 // Map type VkGeometryTrianglesNV to id VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV
2668 template <> struct LvlTypeMap<VkGeometryTrianglesNV> {
2669     static const VkStructureType kSType = VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV;
2670 };
2671 
2672 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV> {
2673     typedef VkGeometryTrianglesNV Type;
2674 };
2675 
2676 // Map type VkGeometryAABBNV to id VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV
2677 template <> struct LvlTypeMap<VkGeometryAABBNV> {
2678     static const VkStructureType kSType = VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV;
2679 };
2680 
2681 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV> {
2682     typedef VkGeometryAABBNV Type;
2683 };
2684 
2685 // Map type VkGeometryNV to id VK_STRUCTURE_TYPE_GEOMETRY_NV
2686 template <> struct LvlTypeMap<VkGeometryNV> {
2687     static const VkStructureType kSType = VK_STRUCTURE_TYPE_GEOMETRY_NV;
2688 };
2689 
2690 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_GEOMETRY_NV> {
2691     typedef VkGeometryNV Type;
2692 };
2693 
2694 // Map type VkAccelerationStructureInfoNV to id VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV
2695 template <> struct LvlTypeMap<VkAccelerationStructureInfoNV> {
2696     static const VkStructureType kSType = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV;
2697 };
2698 
2699 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV> {
2700     typedef VkAccelerationStructureInfoNV Type;
2701 };
2702 
2703 // Map type VkAccelerationStructureCreateInfoNV to id VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV
2704 template <> struct LvlTypeMap<VkAccelerationStructureCreateInfoNV> {
2705     static const VkStructureType kSType = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV;
2706 };
2707 
2708 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV> {
2709     typedef VkAccelerationStructureCreateInfoNV Type;
2710 };
2711 
2712 // Map type VkBindAccelerationStructureMemoryInfoNV to id VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV
2713 template <> struct LvlTypeMap<VkBindAccelerationStructureMemoryInfoNV> {
2714     static const VkStructureType kSType = VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV;
2715 };
2716 
2717 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV> {
2718     typedef VkBindAccelerationStructureMemoryInfoNV Type;
2719 };
2720 
2721 // Map type VkWriteDescriptorSetAccelerationStructureNV to id VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV
2722 template <> struct LvlTypeMap<VkWriteDescriptorSetAccelerationStructureNV> {
2723     static const VkStructureType kSType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV;
2724 };
2725 
2726 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV> {
2727     typedef VkWriteDescriptorSetAccelerationStructureNV Type;
2728 };
2729 
2730 // Map type VkAccelerationStructureMemoryRequirementsInfoNV to id VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV
2731 template <> struct LvlTypeMap<VkAccelerationStructureMemoryRequirementsInfoNV> {
2732     static const VkStructureType kSType = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV;
2733 };
2734 
2735 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV> {
2736     typedef VkAccelerationStructureMemoryRequirementsInfoNV Type;
2737 };
2738 
2739 // Map type VkPhysicalDeviceRayTracingPropertiesNV to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV
2740 template <> struct LvlTypeMap<VkPhysicalDeviceRayTracingPropertiesNV> {
2741     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV;
2742 };
2743 
2744 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV> {
2745     typedef VkPhysicalDeviceRayTracingPropertiesNV Type;
2746 };
2747 
2748 // Map type VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV
2749 template <> struct LvlTypeMap<VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV> {
2750     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV;
2751 };
2752 
2753 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV> {
2754     typedef VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV Type;
2755 };
2756 
2757 // Map type VkPipelineRepresentativeFragmentTestStateCreateInfoNV to id VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV
2758 template <> struct LvlTypeMap<VkPipelineRepresentativeFragmentTestStateCreateInfoNV> {
2759     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV;
2760 };
2761 
2762 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV> {
2763     typedef VkPipelineRepresentativeFragmentTestStateCreateInfoNV Type;
2764 };
2765 
2766 // Map type VkPhysicalDeviceImageViewImageFormatInfoEXT to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT
2767 template <> struct LvlTypeMap<VkPhysicalDeviceImageViewImageFormatInfoEXT> {
2768     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT;
2769 };
2770 
2771 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT> {
2772     typedef VkPhysicalDeviceImageViewImageFormatInfoEXT Type;
2773 };
2774 
2775 // Map type VkFilterCubicImageViewImageFormatPropertiesEXT to id VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT
2776 template <> struct LvlTypeMap<VkFilterCubicImageViewImageFormatPropertiesEXT> {
2777     static const VkStructureType kSType = VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT;
2778 };
2779 
2780 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT> {
2781     typedef VkFilterCubicImageViewImageFormatPropertiesEXT Type;
2782 };
2783 
2784 // Map type VkDeviceQueueGlobalPriorityCreateInfoEXT to id VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT
2785 template <> struct LvlTypeMap<VkDeviceQueueGlobalPriorityCreateInfoEXT> {
2786     static const VkStructureType kSType = VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT;
2787 };
2788 
2789 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT> {
2790     typedef VkDeviceQueueGlobalPriorityCreateInfoEXT Type;
2791 };
2792 
2793 // Map type VkImportMemoryHostPointerInfoEXT to id VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT
2794 template <> struct LvlTypeMap<VkImportMemoryHostPointerInfoEXT> {
2795     static const VkStructureType kSType = VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT;
2796 };
2797 
2798 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT> {
2799     typedef VkImportMemoryHostPointerInfoEXT Type;
2800 };
2801 
2802 // Map type VkMemoryHostPointerPropertiesEXT to id VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT
2803 template <> struct LvlTypeMap<VkMemoryHostPointerPropertiesEXT> {
2804     static const VkStructureType kSType = VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT;
2805 };
2806 
2807 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT> {
2808     typedef VkMemoryHostPointerPropertiesEXT Type;
2809 };
2810 
2811 // Map type VkPhysicalDeviceExternalMemoryHostPropertiesEXT to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT
2812 template <> struct LvlTypeMap<VkPhysicalDeviceExternalMemoryHostPropertiesEXT> {
2813     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT;
2814 };
2815 
2816 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT> {
2817     typedef VkPhysicalDeviceExternalMemoryHostPropertiesEXT Type;
2818 };
2819 
2820 // Map type VkPipelineCompilerControlCreateInfoAMD to id VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD
2821 template <> struct LvlTypeMap<VkPipelineCompilerControlCreateInfoAMD> {
2822     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD;
2823 };
2824 
2825 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD> {
2826     typedef VkPipelineCompilerControlCreateInfoAMD Type;
2827 };
2828 
2829 // Map type VkCalibratedTimestampInfoEXT to id VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT
2830 template <> struct LvlTypeMap<VkCalibratedTimestampInfoEXT> {
2831     static const VkStructureType kSType = VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT;
2832 };
2833 
2834 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT> {
2835     typedef VkCalibratedTimestampInfoEXT Type;
2836 };
2837 
2838 // Map type VkPhysicalDeviceShaderCorePropertiesAMD to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD
2839 template <> struct LvlTypeMap<VkPhysicalDeviceShaderCorePropertiesAMD> {
2840     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD;
2841 };
2842 
2843 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD> {
2844     typedef VkPhysicalDeviceShaderCorePropertiesAMD Type;
2845 };
2846 
2847 // Map type VkDeviceMemoryOverallocationCreateInfoAMD to id VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD
2848 template <> struct LvlTypeMap<VkDeviceMemoryOverallocationCreateInfoAMD> {
2849     static const VkStructureType kSType = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD;
2850 };
2851 
2852 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD> {
2853     typedef VkDeviceMemoryOverallocationCreateInfoAMD Type;
2854 };
2855 
2856 // Map type VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT
2857 template <> struct LvlTypeMap<VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT> {
2858     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT;
2859 };
2860 
2861 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT> {
2862     typedef VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT Type;
2863 };
2864 
2865 // Map type VkPipelineVertexInputDivisorStateCreateInfoEXT to id VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT
2866 template <> struct LvlTypeMap<VkPipelineVertexInputDivisorStateCreateInfoEXT> {
2867     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT;
2868 };
2869 
2870 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT> {
2871     typedef VkPipelineVertexInputDivisorStateCreateInfoEXT Type;
2872 };
2873 
2874 // Map type VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT
2875 template <> struct LvlTypeMap<VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT> {
2876     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT;
2877 };
2878 
2879 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT> {
2880     typedef VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT Type;
2881 };
2882 
2883 #ifdef VK_USE_PLATFORM_GGP
2884 // Map type VkPresentFrameTokenGGP to id VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP
2885 template <> struct LvlTypeMap<VkPresentFrameTokenGGP> {
2886     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP;
2887 };
2888 
2889 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP> {
2890     typedef VkPresentFrameTokenGGP Type;
2891 };
2892 
2893 #endif // VK_USE_PLATFORM_GGP
2894 // Map type VkPipelineCreationFeedbackCreateInfoEXT to id VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT
2895 template <> struct LvlTypeMap<VkPipelineCreationFeedbackCreateInfoEXT> {
2896     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT;
2897 };
2898 
2899 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT> {
2900     typedef VkPipelineCreationFeedbackCreateInfoEXT Type;
2901 };
2902 
2903 // Map type VkPhysicalDeviceComputeShaderDerivativesFeaturesNV to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV
2904 template <> struct LvlTypeMap<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV> {
2905     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV;
2906 };
2907 
2908 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV> {
2909     typedef VkPhysicalDeviceComputeShaderDerivativesFeaturesNV Type;
2910 };
2911 
2912 // Map type VkPhysicalDeviceMeshShaderFeaturesNV to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV
2913 template <> struct LvlTypeMap<VkPhysicalDeviceMeshShaderFeaturesNV> {
2914     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV;
2915 };
2916 
2917 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV> {
2918     typedef VkPhysicalDeviceMeshShaderFeaturesNV Type;
2919 };
2920 
2921 // Map type VkPhysicalDeviceMeshShaderPropertiesNV to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV
2922 template <> struct LvlTypeMap<VkPhysicalDeviceMeshShaderPropertiesNV> {
2923     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV;
2924 };
2925 
2926 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV> {
2927     typedef VkPhysicalDeviceMeshShaderPropertiesNV Type;
2928 };
2929 
2930 // Map type VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV
2931 template <> struct LvlTypeMap<VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV> {
2932     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV;
2933 };
2934 
2935 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV> {
2936     typedef VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV Type;
2937 };
2938 
2939 // Map type VkPhysicalDeviceShaderImageFootprintFeaturesNV to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV
2940 template <> struct LvlTypeMap<VkPhysicalDeviceShaderImageFootprintFeaturesNV> {
2941     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV;
2942 };
2943 
2944 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV> {
2945     typedef VkPhysicalDeviceShaderImageFootprintFeaturesNV Type;
2946 };
2947 
2948 // Map type VkPipelineViewportExclusiveScissorStateCreateInfoNV to id VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV
2949 template <> struct LvlTypeMap<VkPipelineViewportExclusiveScissorStateCreateInfoNV> {
2950     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV;
2951 };
2952 
2953 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV> {
2954     typedef VkPipelineViewportExclusiveScissorStateCreateInfoNV Type;
2955 };
2956 
2957 // Map type VkPhysicalDeviceExclusiveScissorFeaturesNV to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV
2958 template <> struct LvlTypeMap<VkPhysicalDeviceExclusiveScissorFeaturesNV> {
2959     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV;
2960 };
2961 
2962 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV> {
2963     typedef VkPhysicalDeviceExclusiveScissorFeaturesNV Type;
2964 };
2965 
2966 // Map type VkQueueFamilyCheckpointPropertiesNV to id VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV
2967 template <> struct LvlTypeMap<VkQueueFamilyCheckpointPropertiesNV> {
2968     static const VkStructureType kSType = VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV;
2969 };
2970 
2971 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV> {
2972     typedef VkQueueFamilyCheckpointPropertiesNV Type;
2973 };
2974 
2975 // Map type VkCheckpointDataNV to id VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV
2976 template <> struct LvlTypeMap<VkCheckpointDataNV> {
2977     static const VkStructureType kSType = VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV;
2978 };
2979 
2980 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV> {
2981     typedef VkCheckpointDataNV Type;
2982 };
2983 
2984 // Map type VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL
2985 template <> struct LvlTypeMap<VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL> {
2986     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL;
2987 };
2988 
2989 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL> {
2990     typedef VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL Type;
2991 };
2992 
2993 // Map type VkInitializePerformanceApiInfoINTEL to id VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL
2994 template <> struct LvlTypeMap<VkInitializePerformanceApiInfoINTEL> {
2995     static const VkStructureType kSType = VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL;
2996 };
2997 
2998 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL> {
2999     typedef VkInitializePerformanceApiInfoINTEL Type;
3000 };
3001 
3002 // Map type VkQueryPoolCreateInfoINTEL to id VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL
3003 template <> struct LvlTypeMap<VkQueryPoolCreateInfoINTEL> {
3004     static const VkStructureType kSType = VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL;
3005 };
3006 
3007 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL> {
3008     typedef VkQueryPoolCreateInfoINTEL Type;
3009 };
3010 
3011 // Map type VkPerformanceMarkerInfoINTEL to id VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL
3012 template <> struct LvlTypeMap<VkPerformanceMarkerInfoINTEL> {
3013     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL;
3014 };
3015 
3016 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL> {
3017     typedef VkPerformanceMarkerInfoINTEL Type;
3018 };
3019 
3020 // Map type VkPerformanceStreamMarkerInfoINTEL to id VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL
3021 template <> struct LvlTypeMap<VkPerformanceStreamMarkerInfoINTEL> {
3022     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL;
3023 };
3024 
3025 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL> {
3026     typedef VkPerformanceStreamMarkerInfoINTEL Type;
3027 };
3028 
3029 // Map type VkPerformanceOverrideInfoINTEL to id VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL
3030 template <> struct LvlTypeMap<VkPerformanceOverrideInfoINTEL> {
3031     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL;
3032 };
3033 
3034 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL> {
3035     typedef VkPerformanceOverrideInfoINTEL Type;
3036 };
3037 
3038 // Map type VkPerformanceConfigurationAcquireInfoINTEL to id VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL
3039 template <> struct LvlTypeMap<VkPerformanceConfigurationAcquireInfoINTEL> {
3040     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL;
3041 };
3042 
3043 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL> {
3044     typedef VkPerformanceConfigurationAcquireInfoINTEL Type;
3045 };
3046 
3047 // Map type VkPhysicalDevicePCIBusInfoPropertiesEXT to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT
3048 template <> struct LvlTypeMap<VkPhysicalDevicePCIBusInfoPropertiesEXT> {
3049     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT;
3050 };
3051 
3052 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT> {
3053     typedef VkPhysicalDevicePCIBusInfoPropertiesEXT Type;
3054 };
3055 
3056 // Map type VkDisplayNativeHdrSurfaceCapabilitiesAMD to id VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD
3057 template <> struct LvlTypeMap<VkDisplayNativeHdrSurfaceCapabilitiesAMD> {
3058     static const VkStructureType kSType = VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD;
3059 };
3060 
3061 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD> {
3062     typedef VkDisplayNativeHdrSurfaceCapabilitiesAMD Type;
3063 };
3064 
3065 // Map type VkSwapchainDisplayNativeHdrCreateInfoAMD to id VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD
3066 template <> struct LvlTypeMap<VkSwapchainDisplayNativeHdrCreateInfoAMD> {
3067     static const VkStructureType kSType = VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD;
3068 };
3069 
3070 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD> {
3071     typedef VkSwapchainDisplayNativeHdrCreateInfoAMD Type;
3072 };
3073 
3074 #ifdef VK_USE_PLATFORM_FUCHSIA
3075 // Map type VkImagePipeSurfaceCreateInfoFUCHSIA to id VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA
3076 template <> struct LvlTypeMap<VkImagePipeSurfaceCreateInfoFUCHSIA> {
3077     static const VkStructureType kSType = VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA;
3078 };
3079 
3080 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA> {
3081     typedef VkImagePipeSurfaceCreateInfoFUCHSIA Type;
3082 };
3083 
3084 #endif // VK_USE_PLATFORM_FUCHSIA
3085 #ifdef VK_USE_PLATFORM_METAL_EXT
3086 // Map type VkMetalSurfaceCreateInfoEXT to id VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT
3087 template <> struct LvlTypeMap<VkMetalSurfaceCreateInfoEXT> {
3088     static const VkStructureType kSType = VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT;
3089 };
3090 
3091 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT> {
3092     typedef VkMetalSurfaceCreateInfoEXT Type;
3093 };
3094 
3095 #endif // VK_USE_PLATFORM_METAL_EXT
3096 // Map type VkPhysicalDeviceFragmentDensityMapFeaturesEXT to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT
3097 template <> struct LvlTypeMap<VkPhysicalDeviceFragmentDensityMapFeaturesEXT> {
3098     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT;
3099 };
3100 
3101 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT> {
3102     typedef VkPhysicalDeviceFragmentDensityMapFeaturesEXT Type;
3103 };
3104 
3105 // Map type VkPhysicalDeviceFragmentDensityMapPropertiesEXT to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT
3106 template <> struct LvlTypeMap<VkPhysicalDeviceFragmentDensityMapPropertiesEXT> {
3107     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT;
3108 };
3109 
3110 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT> {
3111     typedef VkPhysicalDeviceFragmentDensityMapPropertiesEXT Type;
3112 };
3113 
3114 // Map type VkRenderPassFragmentDensityMapCreateInfoEXT to id VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT
3115 template <> struct LvlTypeMap<VkRenderPassFragmentDensityMapCreateInfoEXT> {
3116     static const VkStructureType kSType = VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT;
3117 };
3118 
3119 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT> {
3120     typedef VkRenderPassFragmentDensityMapCreateInfoEXT Type;
3121 };
3122 
3123 // Map type VkPhysicalDeviceScalarBlockLayoutFeaturesEXT to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT
3124 template <> struct LvlTypeMap<VkPhysicalDeviceScalarBlockLayoutFeaturesEXT> {
3125     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT;
3126 };
3127 
3128 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT> {
3129     typedef VkPhysicalDeviceScalarBlockLayoutFeaturesEXT Type;
3130 };
3131 
3132 // Map type VkPhysicalDeviceSubgroupSizeControlFeaturesEXT to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT
3133 template <> struct LvlTypeMap<VkPhysicalDeviceSubgroupSizeControlFeaturesEXT> {
3134     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT;
3135 };
3136 
3137 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT> {
3138     typedef VkPhysicalDeviceSubgroupSizeControlFeaturesEXT Type;
3139 };
3140 
3141 // Map type VkPhysicalDeviceSubgroupSizeControlPropertiesEXT to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT
3142 template <> struct LvlTypeMap<VkPhysicalDeviceSubgroupSizeControlPropertiesEXT> {
3143     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
3144 };
3145 
3146 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT> {
3147     typedef VkPhysicalDeviceSubgroupSizeControlPropertiesEXT Type;
3148 };
3149 
3150 // Map type VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT to id VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT
3151 template <> struct LvlTypeMap<VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT> {
3152     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT;
3153 };
3154 
3155 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT> {
3156     typedef VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT Type;
3157 };
3158 
3159 // Map type VkPhysicalDeviceShaderCoreProperties2AMD to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD
3160 template <> struct LvlTypeMap<VkPhysicalDeviceShaderCoreProperties2AMD> {
3161     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD;
3162 };
3163 
3164 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD> {
3165     typedef VkPhysicalDeviceShaderCoreProperties2AMD Type;
3166 };
3167 
3168 // Map type VkPhysicalDeviceCoherentMemoryFeaturesAMD to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD
3169 template <> struct LvlTypeMap<VkPhysicalDeviceCoherentMemoryFeaturesAMD> {
3170     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD;
3171 };
3172 
3173 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD> {
3174     typedef VkPhysicalDeviceCoherentMemoryFeaturesAMD Type;
3175 };
3176 
3177 // Map type VkPhysicalDeviceMemoryBudgetPropertiesEXT to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT
3178 template <> struct LvlTypeMap<VkPhysicalDeviceMemoryBudgetPropertiesEXT> {
3179     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT;
3180 };
3181 
3182 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT> {
3183     typedef VkPhysicalDeviceMemoryBudgetPropertiesEXT Type;
3184 };
3185 
3186 // Map type VkPhysicalDeviceMemoryPriorityFeaturesEXT to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT
3187 template <> struct LvlTypeMap<VkPhysicalDeviceMemoryPriorityFeaturesEXT> {
3188     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT;
3189 };
3190 
3191 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT> {
3192     typedef VkPhysicalDeviceMemoryPriorityFeaturesEXT Type;
3193 };
3194 
3195 // Map type VkMemoryPriorityAllocateInfoEXT to id VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT
3196 template <> struct LvlTypeMap<VkMemoryPriorityAllocateInfoEXT> {
3197     static const VkStructureType kSType = VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT;
3198 };
3199 
3200 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT> {
3201     typedef VkMemoryPriorityAllocateInfoEXT Type;
3202 };
3203 
3204 // Map type VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV
3205 template <> struct LvlTypeMap<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV> {
3206     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV;
3207 };
3208 
3209 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV> {
3210     typedef VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV Type;
3211 };
3212 
3213 // Map type VkPhysicalDeviceBufferDeviceAddressFeaturesEXT to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT
3214 template <> struct LvlTypeMap<VkPhysicalDeviceBufferDeviceAddressFeaturesEXT> {
3215     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT;
3216 };
3217 
3218 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT> {
3219     typedef VkPhysicalDeviceBufferDeviceAddressFeaturesEXT Type;
3220 };
3221 
3222 // Map type VkBufferDeviceAddressInfoEXT to id VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT
3223 template <> struct LvlTypeMap<VkBufferDeviceAddressInfoEXT> {
3224     static const VkStructureType kSType = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT;
3225 };
3226 
3227 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT> {
3228     typedef VkBufferDeviceAddressInfoEXT Type;
3229 };
3230 
3231 // Map type VkBufferDeviceAddressCreateInfoEXT to id VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT
3232 template <> struct LvlTypeMap<VkBufferDeviceAddressCreateInfoEXT> {
3233     static const VkStructureType kSType = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT;
3234 };
3235 
3236 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT> {
3237     typedef VkBufferDeviceAddressCreateInfoEXT Type;
3238 };
3239 
3240 // Map type VkImageStencilUsageCreateInfoEXT to id VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT
3241 template <> struct LvlTypeMap<VkImageStencilUsageCreateInfoEXT> {
3242     static const VkStructureType kSType = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT;
3243 };
3244 
3245 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT> {
3246     typedef VkImageStencilUsageCreateInfoEXT Type;
3247 };
3248 
3249 // Map type VkValidationFeaturesEXT to id VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT
3250 template <> struct LvlTypeMap<VkValidationFeaturesEXT> {
3251     static const VkStructureType kSType = VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT;
3252 };
3253 
3254 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT> {
3255     typedef VkValidationFeaturesEXT Type;
3256 };
3257 
3258 // Map type VkCooperativeMatrixPropertiesNV to id VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV
3259 template <> struct LvlTypeMap<VkCooperativeMatrixPropertiesNV> {
3260     static const VkStructureType kSType = VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV;
3261 };
3262 
3263 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV> {
3264     typedef VkCooperativeMatrixPropertiesNV Type;
3265 };
3266 
3267 // Map type VkPhysicalDeviceCooperativeMatrixFeaturesNV to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV
3268 template <> struct LvlTypeMap<VkPhysicalDeviceCooperativeMatrixFeaturesNV> {
3269     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV;
3270 };
3271 
3272 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV> {
3273     typedef VkPhysicalDeviceCooperativeMatrixFeaturesNV Type;
3274 };
3275 
3276 // Map type VkPhysicalDeviceCooperativeMatrixPropertiesNV to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV
3277 template <> struct LvlTypeMap<VkPhysicalDeviceCooperativeMatrixPropertiesNV> {
3278     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV;
3279 };
3280 
3281 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV> {
3282     typedef VkPhysicalDeviceCooperativeMatrixPropertiesNV Type;
3283 };
3284 
3285 // Map type VkPhysicalDeviceCoverageReductionModeFeaturesNV to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV
3286 template <> struct LvlTypeMap<VkPhysicalDeviceCoverageReductionModeFeaturesNV> {
3287     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV;
3288 };
3289 
3290 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV> {
3291     typedef VkPhysicalDeviceCoverageReductionModeFeaturesNV Type;
3292 };
3293 
3294 // Map type VkPipelineCoverageReductionStateCreateInfoNV to id VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV
3295 template <> struct LvlTypeMap<VkPipelineCoverageReductionStateCreateInfoNV> {
3296     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV;
3297 };
3298 
3299 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV> {
3300     typedef VkPipelineCoverageReductionStateCreateInfoNV Type;
3301 };
3302 
3303 // Map type VkFramebufferMixedSamplesCombinationNV to id VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV
3304 template <> struct LvlTypeMap<VkFramebufferMixedSamplesCombinationNV> {
3305     static const VkStructureType kSType = VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV;
3306 };
3307 
3308 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV> {
3309     typedef VkFramebufferMixedSamplesCombinationNV Type;
3310 };
3311 
3312 // Map type VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT
3313 template <> struct LvlTypeMap<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT> {
3314     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT;
3315 };
3316 
3317 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT> {
3318     typedef VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT Type;
3319 };
3320 
3321 // Map type VkPhysicalDeviceYcbcrImageArraysFeaturesEXT to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT
3322 template <> struct LvlTypeMap<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT> {
3323     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT;
3324 };
3325 
3326 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT> {
3327     typedef VkPhysicalDeviceYcbcrImageArraysFeaturesEXT Type;
3328 };
3329 
3330 #ifdef VK_USE_PLATFORM_WIN32_KHR
3331 // Map type VkSurfaceFullScreenExclusiveInfoEXT to id VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT
3332 template <> struct LvlTypeMap<VkSurfaceFullScreenExclusiveInfoEXT> {
3333     static const VkStructureType kSType = VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT;
3334 };
3335 
3336 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT> {
3337     typedef VkSurfaceFullScreenExclusiveInfoEXT Type;
3338 };
3339 
3340 #endif // VK_USE_PLATFORM_WIN32_KHR
3341 #ifdef VK_USE_PLATFORM_WIN32_KHR
3342 // Map type VkSurfaceCapabilitiesFullScreenExclusiveEXT to id VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT
3343 template <> struct LvlTypeMap<VkSurfaceCapabilitiesFullScreenExclusiveEXT> {
3344     static const VkStructureType kSType = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT;
3345 };
3346 
3347 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT> {
3348     typedef VkSurfaceCapabilitiesFullScreenExclusiveEXT Type;
3349 };
3350 
3351 #endif // VK_USE_PLATFORM_WIN32_KHR
3352 #ifdef VK_USE_PLATFORM_WIN32_KHR
3353 // Map type VkSurfaceFullScreenExclusiveWin32InfoEXT to id VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT
3354 template <> struct LvlTypeMap<VkSurfaceFullScreenExclusiveWin32InfoEXT> {
3355     static const VkStructureType kSType = VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT;
3356 };
3357 
3358 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT> {
3359     typedef VkSurfaceFullScreenExclusiveWin32InfoEXT Type;
3360 };
3361 
3362 #endif // VK_USE_PLATFORM_WIN32_KHR
3363 // Map type VkHeadlessSurfaceCreateInfoEXT to id VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT
3364 template <> struct LvlTypeMap<VkHeadlessSurfaceCreateInfoEXT> {
3365     static const VkStructureType kSType = VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT;
3366 };
3367 
3368 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT> {
3369     typedef VkHeadlessSurfaceCreateInfoEXT Type;
3370 };
3371 
3372 // Map type VkPhysicalDeviceLineRasterizationFeaturesEXT to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT
3373 template <> struct LvlTypeMap<VkPhysicalDeviceLineRasterizationFeaturesEXT> {
3374     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT;
3375 };
3376 
3377 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT> {
3378     typedef VkPhysicalDeviceLineRasterizationFeaturesEXT Type;
3379 };
3380 
3381 // Map type VkPhysicalDeviceLineRasterizationPropertiesEXT to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT
3382 template <> struct LvlTypeMap<VkPhysicalDeviceLineRasterizationPropertiesEXT> {
3383     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT;
3384 };
3385 
3386 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT> {
3387     typedef VkPhysicalDeviceLineRasterizationPropertiesEXT Type;
3388 };
3389 
3390 // Map type VkPipelineRasterizationLineStateCreateInfoEXT to id VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT
3391 template <> struct LvlTypeMap<VkPipelineRasterizationLineStateCreateInfoEXT> {
3392     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT;
3393 };
3394 
3395 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT> {
3396     typedef VkPipelineRasterizationLineStateCreateInfoEXT Type;
3397 };
3398 
3399 // Map type VkPhysicalDeviceHostQueryResetFeaturesEXT to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT
3400 template <> struct LvlTypeMap<VkPhysicalDeviceHostQueryResetFeaturesEXT> {
3401     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT;
3402 };
3403 
3404 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT> {
3405     typedef VkPhysicalDeviceHostQueryResetFeaturesEXT Type;
3406 };
3407 
3408 // Map type VkPhysicalDeviceIndexTypeUint8FeaturesEXT to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT
3409 template <> struct LvlTypeMap<VkPhysicalDeviceIndexTypeUint8FeaturesEXT> {
3410     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT;
3411 };
3412 
3413 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT> {
3414     typedef VkPhysicalDeviceIndexTypeUint8FeaturesEXT Type;
3415 };
3416 
3417 // Map type VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT
3418 template <> struct LvlTypeMap<VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT> {
3419     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT;
3420 };
3421 
3422 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT> {
3423     typedef VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT Type;
3424 };
3425 
3426 // Map type VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT
3427 template <> struct LvlTypeMap<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT> {
3428     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT;
3429 };
3430 
3431 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT> {
3432     typedef VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT Type;
3433 };
3434 
3435 // Map type VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT
3436 template <> struct LvlTypeMap<VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT> {
3437     static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT;
3438 };
3439 
3440 template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT> {
3441     typedef VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT Type;
3442 };
3443 
3444 // Find an entry of the given type in the pNext chain
3445 template <typename T> const T *lvl_find_in_chain(const void *next) {
3446     const VkBaseOutStructure *current = reinterpret_cast<const VkBaseOutStructure *>(next);
3447     const T *found = nullptr;
3448     while (current) {
3449         if (LvlTypeMap<T>::kSType == current->sType) {
3450             found = reinterpret_cast<const T*>(current);
3451             current = nullptr;
3452         } else {
3453             current = current->pNext;
3454         }
3455     }
3456     return found;
3457 }
3458 
3459 // Init the header of an sType struct with pNext
3460 template <typename T> T lvl_init_struct(void *p_next) {
3461     T out = {};
3462     out.sType = LvlTypeMap<T>::kSType;
3463     out.pNext = p_next;
3464     return out;
3465 }
3466 
3467 // Init the header of an sType struct
3468 template <typename T> T lvl_init_struct() {
3469     T out = {};
3470     out.sType = LvlTypeMap<T>::kSType;
3471     return out;
3472 }
3473 
3474