Test behaviour of color write enable with colorWriteMask
[platform/upstream/VK-GL-CTS.git] / external / vulkancts / framework / vulkan / vkGetStructureTypeImpl.inl
1 /* WARNING: This is auto-generated file. Do not modify, since changes will
2  * be lost! Modify the generating script instead.
3  */
4 template<> VkStructureType getStructureType<VkBufferMemoryBarrier> (void)
5 {
6         return VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER;
7 }
8
9 template<> VkStructureType getStructureType<VkImageMemoryBarrier> (void)
10 {
11         return VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
12 }
13
14 template<> VkStructureType getStructureType<VkMemoryBarrier> (void)
15 {
16         return VK_STRUCTURE_TYPE_MEMORY_BARRIER;
17 }
18
19 template<> VkStructureType getStructureType<VkApplicationInfo> (void)
20 {
21         return VK_STRUCTURE_TYPE_APPLICATION_INFO;
22 }
23
24 template<> VkStructureType getStructureType<VkInstanceCreateInfo> (void)
25 {
26         return VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
27 }
28
29 template<> VkStructureType getStructureType<VkDeviceQueueCreateInfo> (void)
30 {
31         return VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO;
32 }
33
34 template<> VkStructureType getStructureType<VkDeviceCreateInfo> (void)
35 {
36         return VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO;
37 }
38
39 template<> VkStructureType getStructureType<VkSubmitInfo> (void)
40 {
41         return VK_STRUCTURE_TYPE_SUBMIT_INFO;
42 }
43
44 template<> VkStructureType getStructureType<VkMappedMemoryRange> (void)
45 {
46         return VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE;
47 }
48
49 template<> VkStructureType getStructureType<VkMemoryAllocateInfo> (void)
50 {
51         return VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO;
52 }
53
54 template<> VkStructureType getStructureType<VkBindSparseInfo> (void)
55 {
56         return VK_STRUCTURE_TYPE_BIND_SPARSE_INFO;
57 }
58
59 template<> VkStructureType getStructureType<VkFenceCreateInfo> (void)
60 {
61         return VK_STRUCTURE_TYPE_FENCE_CREATE_INFO;
62 }
63
64 template<> VkStructureType getStructureType<VkSemaphoreCreateInfo> (void)
65 {
66         return VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO;
67 }
68
69 template<> VkStructureType getStructureType<VkEventCreateInfo> (void)
70 {
71         return VK_STRUCTURE_TYPE_EVENT_CREATE_INFO;
72 }
73
74 template<> VkStructureType getStructureType<VkQueryPoolCreateInfo> (void)
75 {
76         return VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO;
77 }
78
79 template<> VkStructureType getStructureType<VkBufferCreateInfo> (void)
80 {
81         return VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO;
82 }
83
84 template<> VkStructureType getStructureType<VkBufferViewCreateInfo> (void)
85 {
86         return VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO;
87 }
88
89 template<> VkStructureType getStructureType<VkImageCreateInfo> (void)
90 {
91         return VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO;
92 }
93
94 template<> VkStructureType getStructureType<VkImageViewCreateInfo> (void)
95 {
96         return VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO;
97 }
98
99 template<> VkStructureType getStructureType<VkShaderModuleCreateInfo> (void)
100 {
101         return VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO;
102 }
103
104 template<> VkStructureType getStructureType<VkPipelineCacheCreateInfo> (void)
105 {
106         return VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO;
107 }
108
109 template<> VkStructureType getStructureType<VkPipelineShaderStageCreateInfo> (void)
110 {
111         return VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO;
112 }
113
114 template<> VkStructureType getStructureType<VkComputePipelineCreateInfo> (void)
115 {
116         return VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO;
117 }
118
119 template<> VkStructureType getStructureType<VkPipelineVertexInputStateCreateInfo> (void)
120 {
121         return VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO;
122 }
123
124 template<> VkStructureType getStructureType<VkPipelineInputAssemblyStateCreateInfo> (void)
125 {
126         return VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO;
127 }
128
129 template<> VkStructureType getStructureType<VkPipelineTessellationStateCreateInfo> (void)
130 {
131         return VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO;
132 }
133
134 template<> VkStructureType getStructureType<VkPipelineViewportStateCreateInfo> (void)
135 {
136         return VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO;
137 }
138
139 template<> VkStructureType getStructureType<VkPipelineRasterizationStateCreateInfo> (void)
140 {
141         return VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO;
142 }
143
144 template<> VkStructureType getStructureType<VkPipelineMultisampleStateCreateInfo> (void)
145 {
146         return VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO;
147 }
148
149 template<> VkStructureType getStructureType<VkPipelineDepthStencilStateCreateInfo> (void)
150 {
151         return VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO;
152 }
153
154 template<> VkStructureType getStructureType<VkPipelineColorBlendStateCreateInfo> (void)
155 {
156         return VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO;
157 }
158
159 template<> VkStructureType getStructureType<VkPipelineDynamicStateCreateInfo> (void)
160 {
161         return VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO;
162 }
163
164 template<> VkStructureType getStructureType<VkGraphicsPipelineCreateInfo> (void)
165 {
166         return VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO;
167 }
168
169 template<> VkStructureType getStructureType<VkPipelineLayoutCreateInfo> (void)
170 {
171         return VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO;
172 }
173
174 template<> VkStructureType getStructureType<VkSamplerCreateInfo> (void)
175 {
176         return VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO;
177 }
178
179 template<> VkStructureType getStructureType<VkCopyDescriptorSet> (void)
180 {
181         return VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET;
182 }
183
184 template<> VkStructureType getStructureType<VkDescriptorPoolCreateInfo> (void)
185 {
186         return VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO;
187 }
188
189 template<> VkStructureType getStructureType<VkDescriptorSetAllocateInfo> (void)
190 {
191         return VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO;
192 }
193
194 template<> VkStructureType getStructureType<VkDescriptorSetLayoutCreateInfo> (void)
195 {
196         return VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO;
197 }
198
199 template<> VkStructureType getStructureType<VkWriteDescriptorSet> (void)
200 {
201         return VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET;
202 }
203
204 template<> VkStructureType getStructureType<VkFramebufferCreateInfo> (void)
205 {
206         return VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO;
207 }
208
209 template<> VkStructureType getStructureType<VkRenderPassCreateInfo> (void)
210 {
211         return VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO;
212 }
213
214 template<> VkStructureType getStructureType<VkCommandPoolCreateInfo> (void)
215 {
216         return VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO;
217 }
218
219 template<> VkStructureType getStructureType<VkCommandBufferAllocateInfo> (void)
220 {
221         return VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO;
222 }
223
224 template<> VkStructureType getStructureType<VkCommandBufferInheritanceInfo> (void)
225 {
226         return VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO;
227 }
228
229 template<> VkStructureType getStructureType<VkCommandBufferBeginInfo> (void)
230 {
231         return VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO;
232 }
233
234 template<> VkStructureType getStructureType<VkRenderPassBeginInfo> (void)
235 {
236         return VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO;
237 }
238
239 template<> VkStructureType getStructureType<VkPhysicalDeviceSubgroupProperties> (void)
240 {
241         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES;
242 }
243
244 template<> VkStructureType getStructureType<VkBindBufferMemoryInfo> (void)
245 {
246         return VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO;
247 }
248
249 template<> VkStructureType getStructureType<VkBindImageMemoryInfo> (void)
250 {
251         return VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO;
252 }
253
254 template<> VkStructureType getStructureType<VkPhysicalDevice16BitStorageFeatures> (void)
255 {
256         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES;
257 }
258
259 template<> VkStructureType getStructureType<VkMemoryDedicatedRequirements> (void)
260 {
261         return VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS;
262 }
263
264 template<> VkStructureType getStructureType<VkMemoryDedicatedAllocateInfo> (void)
265 {
266         return VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO;
267 }
268
269 template<> VkStructureType getStructureType<VkMemoryAllocateFlagsInfo> (void)
270 {
271         return VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO;
272 }
273
274 template<> VkStructureType getStructureType<VkDeviceGroupRenderPassBeginInfo> (void)
275 {
276         return VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO;
277 }
278
279 template<> VkStructureType getStructureType<VkDeviceGroupCommandBufferBeginInfo> (void)
280 {
281         return VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO;
282 }
283
284 template<> VkStructureType getStructureType<VkDeviceGroupSubmitInfo> (void)
285 {
286         return VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO;
287 }
288
289 template<> VkStructureType getStructureType<VkDeviceGroupBindSparseInfo> (void)
290 {
291         return VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO;
292 }
293
294 template<> VkStructureType getStructureType<VkBindBufferMemoryDeviceGroupInfo> (void)
295 {
296         return VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO;
297 }
298
299 template<> VkStructureType getStructureType<VkBindImageMemoryDeviceGroupInfo> (void)
300 {
301         return VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO;
302 }
303
304 template<> VkStructureType getStructureType<VkPhysicalDeviceGroupProperties> (void)
305 {
306         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES;
307 }
308
309 template<> VkStructureType getStructureType<VkDeviceGroupDeviceCreateInfo> (void)
310 {
311         return VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO;
312 }
313
314 template<> VkStructureType getStructureType<VkBufferMemoryRequirementsInfo2> (void)
315 {
316         return VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2;
317 }
318
319 template<> VkStructureType getStructureType<VkImageMemoryRequirementsInfo2> (void)
320 {
321         return VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2;
322 }
323
324 template<> VkStructureType getStructureType<VkImageSparseMemoryRequirementsInfo2> (void)
325 {
326         return VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2;
327 }
328
329 template<> VkStructureType getStructureType<VkMemoryRequirements2> (void)
330 {
331         return VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2;
332 }
333
334 template<> VkStructureType getStructureType<VkSparseImageMemoryRequirements2> (void)
335 {
336         return VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2;
337 }
338
339 template<> VkStructureType getStructureType<VkPhysicalDeviceFeatures2> (void)
340 {
341         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
342 }
343
344 template<> VkStructureType getStructureType<VkPhysicalDeviceProperties2> (void)
345 {
346         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
347 }
348
349 template<> VkStructureType getStructureType<VkFormatProperties2> (void)
350 {
351         return VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2;
352 }
353
354 template<> VkStructureType getStructureType<VkImageFormatProperties2> (void)
355 {
356         return VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2;
357 }
358
359 template<> VkStructureType getStructureType<VkPhysicalDeviceImageFormatInfo2> (void)
360 {
361         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2;
362 }
363
364 template<> VkStructureType getStructureType<VkQueueFamilyProperties2> (void)
365 {
366         return VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2;
367 }
368
369 template<> VkStructureType getStructureType<VkPhysicalDeviceMemoryProperties2> (void)
370 {
371         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2;
372 }
373
374 template<> VkStructureType getStructureType<VkSparseImageFormatProperties2> (void)
375 {
376         return VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2;
377 }
378
379 template<> VkStructureType getStructureType<VkPhysicalDeviceSparseImageFormatInfo2> (void)
380 {
381         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2;
382 }
383
384 template<> VkStructureType getStructureType<VkPhysicalDevicePointClippingProperties> (void)
385 {
386         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES;
387 }
388
389 template<> VkStructureType getStructureType<VkRenderPassInputAttachmentAspectCreateInfo> (void)
390 {
391         return VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO;
392 }
393
394 template<> VkStructureType getStructureType<VkImageViewUsageCreateInfo> (void)
395 {
396         return VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO;
397 }
398
399 template<> VkStructureType getStructureType<VkPipelineTessellationDomainOriginStateCreateInfo> (void)
400 {
401         return VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO;
402 }
403
404 template<> VkStructureType getStructureType<VkRenderPassMultiviewCreateInfo> (void)
405 {
406         return VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO;
407 }
408
409 template<> VkStructureType getStructureType<VkPhysicalDeviceMultiviewFeatures> (void)
410 {
411         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES;
412 }
413
414 template<> VkStructureType getStructureType<VkPhysicalDeviceMultiviewProperties> (void)
415 {
416         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES;
417 }
418
419 template<> VkStructureType getStructureType<VkPhysicalDeviceVariablePointersFeatures> (void)
420 {
421         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES;
422 }
423
424 template<> VkStructureType getStructureType<VkPhysicalDeviceProtectedMemoryFeatures> (void)
425 {
426         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES;
427 }
428
429 template<> VkStructureType getStructureType<VkPhysicalDeviceProtectedMemoryProperties> (void)
430 {
431         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES;
432 }
433
434 template<> VkStructureType getStructureType<VkDeviceQueueInfo2> (void)
435 {
436         return VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2;
437 }
438
439 template<> VkStructureType getStructureType<VkProtectedSubmitInfo> (void)
440 {
441         return VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO;
442 }
443
444 template<> VkStructureType getStructureType<VkSamplerYcbcrConversionCreateInfo> (void)
445 {
446         return VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO;
447 }
448
449 template<> VkStructureType getStructureType<VkSamplerYcbcrConversionInfo> (void)
450 {
451         return VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO;
452 }
453
454 template<> VkStructureType getStructureType<VkBindImagePlaneMemoryInfo> (void)
455 {
456         return VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO;
457 }
458
459 template<> VkStructureType getStructureType<VkImagePlaneMemoryRequirementsInfo> (void)
460 {
461         return VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO;
462 }
463
464 template<> VkStructureType getStructureType<VkPhysicalDeviceSamplerYcbcrConversionFeatures> (void)
465 {
466         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES;
467 }
468
469 template<> VkStructureType getStructureType<VkSamplerYcbcrConversionImageFormatProperties> (void)
470 {
471         return VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES;
472 }
473
474 template<> VkStructureType getStructureType<VkDescriptorUpdateTemplateCreateInfo> (void)
475 {
476         return VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO;
477 }
478
479 template<> VkStructureType getStructureType<VkPhysicalDeviceExternalImageFormatInfo> (void)
480 {
481         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO;
482 }
483
484 template<> VkStructureType getStructureType<VkExternalImageFormatProperties> (void)
485 {
486         return VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES;
487 }
488
489 template<> VkStructureType getStructureType<VkPhysicalDeviceExternalBufferInfo> (void)
490 {
491         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO;
492 }
493
494 template<> VkStructureType getStructureType<VkExternalBufferProperties> (void)
495 {
496         return VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES;
497 }
498
499 template<> VkStructureType getStructureType<VkPhysicalDeviceIDProperties> (void)
500 {
501         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES;
502 }
503
504 template<> VkStructureType getStructureType<VkExternalMemoryImageCreateInfo> (void)
505 {
506         return VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO;
507 }
508
509 template<> VkStructureType getStructureType<VkExternalMemoryBufferCreateInfo> (void)
510 {
511         return VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO;
512 }
513
514 template<> VkStructureType getStructureType<VkExportMemoryAllocateInfo> (void)
515 {
516         return VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO;
517 }
518
519 template<> VkStructureType getStructureType<VkPhysicalDeviceExternalFenceInfo> (void)
520 {
521         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO;
522 }
523
524 template<> VkStructureType getStructureType<VkExternalFenceProperties> (void)
525 {
526         return VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES;
527 }
528
529 template<> VkStructureType getStructureType<VkExportFenceCreateInfo> (void)
530 {
531         return VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO;
532 }
533
534 template<> VkStructureType getStructureType<VkExportSemaphoreCreateInfo> (void)
535 {
536         return VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO;
537 }
538
539 template<> VkStructureType getStructureType<VkPhysicalDeviceExternalSemaphoreInfo> (void)
540 {
541         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO;
542 }
543
544 template<> VkStructureType getStructureType<VkExternalSemaphoreProperties> (void)
545 {
546         return VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES;
547 }
548
549 template<> VkStructureType getStructureType<VkPhysicalDeviceMaintenance3Properties> (void)
550 {
551         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES;
552 }
553
554 template<> VkStructureType getStructureType<VkDescriptorSetLayoutSupport> (void)
555 {
556         return VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT;
557 }
558
559 template<> VkStructureType getStructureType<VkPhysicalDeviceShaderDrawParametersFeatures> (void)
560 {
561         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES;
562 }
563
564 template<> VkStructureType getStructureType<VkPhysicalDeviceVulkan11Features> (void)
565 {
566         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES;
567 }
568
569 template<> VkStructureType getStructureType<VkPhysicalDeviceVulkan11Properties> (void)
570 {
571         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES;
572 }
573
574 template<> VkStructureType getStructureType<VkPhysicalDeviceVulkan12Features> (void)
575 {
576         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES;
577 }
578
579 template<> VkStructureType getStructureType<VkPhysicalDeviceVulkan12Properties> (void)
580 {
581         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES;
582 }
583
584 template<> VkStructureType getStructureType<VkImageFormatListCreateInfo> (void)
585 {
586         return VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO;
587 }
588
589 template<> VkStructureType getStructureType<VkAttachmentDescription2> (void)
590 {
591         return VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2;
592 }
593
594 template<> VkStructureType getStructureType<VkAttachmentReference2> (void)
595 {
596         return VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2;
597 }
598
599 template<> VkStructureType getStructureType<VkSubpassDescription2> (void)
600 {
601         return VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2;
602 }
603
604 template<> VkStructureType getStructureType<VkSubpassDependency2> (void)
605 {
606         return VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2;
607 }
608
609 template<> VkStructureType getStructureType<VkRenderPassCreateInfo2> (void)
610 {
611         return VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2;
612 }
613
614 template<> VkStructureType getStructureType<VkSubpassBeginInfo> (void)
615 {
616         return VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO;
617 }
618
619 template<> VkStructureType getStructureType<VkSubpassEndInfo> (void)
620 {
621         return VK_STRUCTURE_TYPE_SUBPASS_END_INFO;
622 }
623
624 template<> VkStructureType getStructureType<VkPhysicalDevice8BitStorageFeatures> (void)
625 {
626         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES;
627 }
628
629 template<> VkStructureType getStructureType<VkPhysicalDeviceDriverProperties> (void)
630 {
631         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES;
632 }
633
634 template<> VkStructureType getStructureType<VkPhysicalDeviceShaderAtomicInt64Features> (void)
635 {
636         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES;
637 }
638
639 template<> VkStructureType getStructureType<VkPhysicalDeviceShaderFloat16Int8Features> (void)
640 {
641         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES;
642 }
643
644 template<> VkStructureType getStructureType<VkPhysicalDeviceFloatControlsProperties> (void)
645 {
646         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES;
647 }
648
649 template<> VkStructureType getStructureType<VkDescriptorSetLayoutBindingFlagsCreateInfo> (void)
650 {
651         return VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO;
652 }
653
654 template<> VkStructureType getStructureType<VkPhysicalDeviceDescriptorIndexingFeatures> (void)
655 {
656         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES;
657 }
658
659 template<> VkStructureType getStructureType<VkPhysicalDeviceDescriptorIndexingProperties> (void)
660 {
661         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES;
662 }
663
664 template<> VkStructureType getStructureType<VkDescriptorSetVariableDescriptorCountAllocateInfo> (void)
665 {
666         return VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO;
667 }
668
669 template<> VkStructureType getStructureType<VkDescriptorSetVariableDescriptorCountLayoutSupport> (void)
670 {
671         return VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT;
672 }
673
674 template<> VkStructureType getStructureType<VkSubpassDescriptionDepthStencilResolve> (void)
675 {
676         return VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE;
677 }
678
679 template<> VkStructureType getStructureType<VkPhysicalDeviceDepthStencilResolveProperties> (void)
680 {
681         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES;
682 }
683
684 template<> VkStructureType getStructureType<VkPhysicalDeviceScalarBlockLayoutFeatures> (void)
685 {
686         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES;
687 }
688
689 template<> VkStructureType getStructureType<VkImageStencilUsageCreateInfo> (void)
690 {
691         return VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO;
692 }
693
694 template<> VkStructureType getStructureType<VkSamplerReductionModeCreateInfo> (void)
695 {
696         return VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO;
697 }
698
699 template<> VkStructureType getStructureType<VkPhysicalDeviceSamplerFilterMinmaxProperties> (void)
700 {
701         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES;
702 }
703
704 template<> VkStructureType getStructureType<VkPhysicalDeviceVulkanMemoryModelFeatures> (void)
705 {
706         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES;
707 }
708
709 template<> VkStructureType getStructureType<VkPhysicalDeviceImagelessFramebufferFeatures> (void)
710 {
711         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES;
712 }
713
714 template<> VkStructureType getStructureType<VkFramebufferAttachmentImageInfo> (void)
715 {
716         return VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO;
717 }
718
719 template<> VkStructureType getStructureType<VkFramebufferAttachmentsCreateInfo> (void)
720 {
721         return VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO;
722 }
723
724 template<> VkStructureType getStructureType<VkRenderPassAttachmentBeginInfo> (void)
725 {
726         return VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO;
727 }
728
729 template<> VkStructureType getStructureType<VkPhysicalDeviceUniformBufferStandardLayoutFeatures> (void)
730 {
731         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES;
732 }
733
734 template<> VkStructureType getStructureType<VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures> (void)
735 {
736         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES;
737 }
738
739 template<> VkStructureType getStructureType<VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures> (void)
740 {
741         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES;
742 }
743
744 template<> VkStructureType getStructureType<VkAttachmentReferenceStencilLayout> (void)
745 {
746         return VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT;
747 }
748
749 template<> VkStructureType getStructureType<VkAttachmentDescriptionStencilLayout> (void)
750 {
751         return VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT;
752 }
753
754 template<> VkStructureType getStructureType<VkPhysicalDeviceHostQueryResetFeatures> (void)
755 {
756         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES;
757 }
758
759 template<> VkStructureType getStructureType<VkPhysicalDeviceTimelineSemaphoreFeatures> (void)
760 {
761         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES;
762 }
763
764 template<> VkStructureType getStructureType<VkPhysicalDeviceTimelineSemaphoreProperties> (void)
765 {
766         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES;
767 }
768
769 template<> VkStructureType getStructureType<VkSemaphoreTypeCreateInfo> (void)
770 {
771         return VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO;
772 }
773
774 template<> VkStructureType getStructureType<VkTimelineSemaphoreSubmitInfo> (void)
775 {
776         return VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO;
777 }
778
779 template<> VkStructureType getStructureType<VkSemaphoreWaitInfo> (void)
780 {
781         return VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO;
782 }
783
784 template<> VkStructureType getStructureType<VkSemaphoreSignalInfo> (void)
785 {
786         return VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO;
787 }
788
789 template<> VkStructureType getStructureType<VkPhysicalDeviceBufferDeviceAddressFeatures> (void)
790 {
791         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES;
792 }
793
794 template<> VkStructureType getStructureType<VkBufferDeviceAddressInfo> (void)
795 {
796         return VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO;
797 }
798
799 template<> VkStructureType getStructureType<VkBufferOpaqueCaptureAddressCreateInfo> (void)
800 {
801         return VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO;
802 }
803
804 template<> VkStructureType getStructureType<VkMemoryOpaqueCaptureAddressAllocateInfo> (void)
805 {
806         return VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO;
807 }
808
809 template<> VkStructureType getStructureType<VkDeviceMemoryOpaqueCaptureAddressInfo> (void)
810 {
811         return VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO;
812 }
813
814 template<> VkStructureType getStructureType<VkSwapchainCreateInfoKHR> (void)
815 {
816         return VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR;
817 }
818
819 template<> VkStructureType getStructureType<VkPresentInfoKHR> (void)
820 {
821         return VK_STRUCTURE_TYPE_PRESENT_INFO_KHR;
822 }
823
824 template<> VkStructureType getStructureType<VkImageSwapchainCreateInfoKHR> (void)
825 {
826         return VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR;
827 }
828
829 template<> VkStructureType getStructureType<VkBindImageMemorySwapchainInfoKHR> (void)
830 {
831         return VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR;
832 }
833
834 template<> VkStructureType getStructureType<VkAcquireNextImageInfoKHR> (void)
835 {
836         return VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR;
837 }
838
839 template<> VkStructureType getStructureType<VkDeviceGroupPresentCapabilitiesKHR> (void)
840 {
841         return VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR;
842 }
843
844 template<> VkStructureType getStructureType<VkDeviceGroupPresentInfoKHR> (void)
845 {
846         return VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR;
847 }
848
849 template<> VkStructureType getStructureType<VkDeviceGroupSwapchainCreateInfoKHR> (void)
850 {
851         return VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR;
852 }
853
854 template<> VkStructureType getStructureType<VkDisplayModeCreateInfoKHR> (void)
855 {
856         return VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR;
857 }
858
859 template<> VkStructureType getStructureType<VkDisplaySurfaceCreateInfoKHR> (void)
860 {
861         return VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR;
862 }
863
864 template<> VkStructureType getStructureType<VkDisplayPresentInfoKHR> (void)
865 {
866         return VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR;
867 }
868
869 template<> VkStructureType getStructureType<VkImportMemoryFdInfoKHR> (void)
870 {
871         return VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR;
872 }
873
874 template<> VkStructureType getStructureType<VkMemoryFdPropertiesKHR> (void)
875 {
876         return VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR;
877 }
878
879 template<> VkStructureType getStructureType<VkMemoryGetFdInfoKHR> (void)
880 {
881         return VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR;
882 }
883
884 template<> VkStructureType getStructureType<VkImportSemaphoreFdInfoKHR> (void)
885 {
886         return VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR;
887 }
888
889 template<> VkStructureType getStructureType<VkSemaphoreGetFdInfoKHR> (void)
890 {
891         return VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR;
892 }
893
894 template<> VkStructureType getStructureType<VkPhysicalDevicePushDescriptorPropertiesKHR> (void)
895 {
896         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR;
897 }
898
899 template<> VkStructureType getStructureType<VkPresentRegionsKHR> (void)
900 {
901         return VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR;
902 }
903
904 template<> VkStructureType getStructureType<VkSharedPresentSurfaceCapabilitiesKHR> (void)
905 {
906         return VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR;
907 }
908
909 template<> VkStructureType getStructureType<VkImportFenceFdInfoKHR> (void)
910 {
911         return VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR;
912 }
913
914 template<> VkStructureType getStructureType<VkFenceGetFdInfoKHR> (void)
915 {
916         return VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR;
917 }
918
919 template<> VkStructureType getStructureType<VkPhysicalDevicePerformanceQueryFeaturesKHR> (void)
920 {
921         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR;
922 }
923
924 template<> VkStructureType getStructureType<VkPhysicalDevicePerformanceQueryPropertiesKHR> (void)
925 {
926         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR;
927 }
928
929 template<> VkStructureType getStructureType<VkPerformanceCounterKHR> (void)
930 {
931         return VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR;
932 }
933
934 template<> VkStructureType getStructureType<VkPerformanceCounterDescriptionKHR> (void)
935 {
936         return VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR;
937 }
938
939 template<> VkStructureType getStructureType<VkQueryPoolPerformanceCreateInfoKHR> (void)
940 {
941         return VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR;
942 }
943
944 template<> VkStructureType getStructureType<VkAcquireProfilingLockInfoKHR> (void)
945 {
946         return VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR;
947 }
948
949 template<> VkStructureType getStructureType<VkPerformanceQuerySubmitInfoKHR> (void)
950 {
951         return VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR;
952 }
953
954 template<> VkStructureType getStructureType<VkPhysicalDeviceSurfaceInfo2KHR> (void)
955 {
956         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR;
957 }
958
959 template<> VkStructureType getStructureType<VkSurfaceCapabilities2KHR> (void)
960 {
961         return VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR;
962 }
963
964 template<> VkStructureType getStructureType<VkSurfaceFormat2KHR> (void)
965 {
966         return VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR;
967 }
968
969 template<> VkStructureType getStructureType<VkDisplayProperties2KHR> (void)
970 {
971         return VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR;
972 }
973
974 template<> VkStructureType getStructureType<VkDisplayPlaneProperties2KHR> (void)
975 {
976         return VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR;
977 }
978
979 template<> VkStructureType getStructureType<VkDisplayModeProperties2KHR> (void)
980 {
981         return VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR;
982 }
983
984 template<> VkStructureType getStructureType<VkDisplayPlaneInfo2KHR> (void)
985 {
986         return VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR;
987 }
988
989 template<> VkStructureType getStructureType<VkDisplayPlaneCapabilities2KHR> (void)
990 {
991         return VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR;
992 }
993
994 template<> VkStructureType getStructureType<VkPhysicalDeviceShaderClockFeaturesKHR> (void)
995 {
996         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR;
997 }
998
999 template<> VkStructureType getStructureType<VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR> (void)
1000 {
1001         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR;
1002 }
1003
1004 template<> VkStructureType getStructureType<VkFragmentShadingRateAttachmentInfoKHR> (void)
1005 {
1006         return VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR;
1007 }
1008
1009 template<> VkStructureType getStructureType<VkPipelineFragmentShadingRateStateCreateInfoKHR> (void)
1010 {
1011         return VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR;
1012 }
1013
1014 template<> VkStructureType getStructureType<VkPhysicalDeviceFragmentShadingRateFeaturesKHR> (void)
1015 {
1016         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR;
1017 }
1018
1019 template<> VkStructureType getStructureType<VkPhysicalDeviceFragmentShadingRatePropertiesKHR> (void)
1020 {
1021         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR;
1022 }
1023
1024 template<> VkStructureType getStructureType<VkPhysicalDeviceFragmentShadingRateKHR> (void)
1025 {
1026         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR;
1027 }
1028
1029 template<> VkStructureType getStructureType<VkSurfaceProtectedCapabilitiesKHR> (void)
1030 {
1031         return VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR;
1032 }
1033
1034 template<> VkStructureType getStructureType<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR> (void)
1035 {
1036         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR;
1037 }
1038
1039 template<> VkStructureType getStructureType<VkPipelineInfoKHR> (void)
1040 {
1041         return VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR;
1042 }
1043
1044 template<> VkStructureType getStructureType<VkPipelineExecutablePropertiesKHR> (void)
1045 {
1046         return VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR;
1047 }
1048
1049 template<> VkStructureType getStructureType<VkPipelineExecutableInfoKHR> (void)
1050 {
1051         return VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR;
1052 }
1053
1054 template<> VkStructureType getStructureType<VkPipelineExecutableStatisticKHR> (void)
1055 {
1056         return VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR;
1057 }
1058
1059 template<> VkStructureType getStructureType<VkPipelineExecutableInternalRepresentationKHR> (void)
1060 {
1061         return VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR;
1062 }
1063
1064 template<> VkStructureType getStructureType<VkPipelineLibraryCreateInfoKHR> (void)
1065 {
1066         return VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR;
1067 }
1068
1069 template<> VkStructureType getStructureType<VkMemoryBarrier2KHR> (void)
1070 {
1071         return VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR;
1072 }
1073
1074 template<> VkStructureType getStructureType<VkBufferMemoryBarrier2KHR> (void)
1075 {
1076         return VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR;
1077 }
1078
1079 template<> VkStructureType getStructureType<VkImageMemoryBarrier2KHR> (void)
1080 {
1081         return VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR;
1082 }
1083
1084 template<> VkStructureType getStructureType<VkDependencyInfoKHR> (void)
1085 {
1086         return VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR;
1087 }
1088
1089 template<> VkStructureType getStructureType<VkSemaphoreSubmitInfoKHR> (void)
1090 {
1091         return VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR;
1092 }
1093
1094 template<> VkStructureType getStructureType<VkCommandBufferSubmitInfoKHR> (void)
1095 {
1096         return VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR;
1097 }
1098
1099 template<> VkStructureType getStructureType<VkSubmitInfo2KHR> (void)
1100 {
1101         return VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR;
1102 }
1103
1104 template<> VkStructureType getStructureType<VkPhysicalDeviceSynchronization2FeaturesKHR> (void)
1105 {
1106         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR;
1107 }
1108
1109 template<> VkStructureType getStructureType<VkQueueFamilyCheckpointProperties2NV> (void)
1110 {
1111         return VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV;
1112 }
1113
1114 template<> VkStructureType getStructureType<VkCheckpointData2NV> (void)
1115 {
1116         return VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV;
1117 }
1118
1119 template<> VkStructureType getStructureType<VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR> (void)
1120 {
1121         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR;
1122 }
1123
1124 template<> VkStructureType getStructureType<VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR> (void)
1125 {
1126         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR;
1127 }
1128
1129 template<> VkStructureType getStructureType<VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR> (void)
1130 {
1131         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR;
1132 }
1133
1134 template<> VkStructureType getStructureType<VkBufferCopy2KHR> (void)
1135 {
1136         return VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR;
1137 }
1138
1139 template<> VkStructureType getStructureType<VkCopyBufferInfo2KHR> (void)
1140 {
1141         return VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR;
1142 }
1143
1144 template<> VkStructureType getStructureType<VkImageCopy2KHR> (void)
1145 {
1146         return VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR;
1147 }
1148
1149 template<> VkStructureType getStructureType<VkCopyImageInfo2KHR> (void)
1150 {
1151         return VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR;
1152 }
1153
1154 template<> VkStructureType getStructureType<VkBufferImageCopy2KHR> (void)
1155 {
1156         return VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR;
1157 }
1158
1159 template<> VkStructureType getStructureType<VkCopyBufferToImageInfo2KHR> (void)
1160 {
1161         return VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR;
1162 }
1163
1164 template<> VkStructureType getStructureType<VkCopyImageToBufferInfo2KHR> (void)
1165 {
1166         return VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR;
1167 }
1168
1169 template<> VkStructureType getStructureType<VkImageBlit2KHR> (void)
1170 {
1171         return VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR;
1172 }
1173
1174 template<> VkStructureType getStructureType<VkBlitImageInfo2KHR> (void)
1175 {
1176         return VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR;
1177 }
1178
1179 template<> VkStructureType getStructureType<VkImageResolve2KHR> (void)
1180 {
1181         return VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR;
1182 }
1183
1184 template<> VkStructureType getStructureType<VkResolveImageInfo2KHR> (void)
1185 {
1186         return VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR;
1187 }
1188
1189 template<> VkStructureType getStructureType<VkDebugReportCallbackCreateInfoEXT> (void)
1190 {
1191         return VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT;
1192 }
1193
1194 template<> VkStructureType getStructureType<VkPipelineRasterizationStateRasterizationOrderAMD> (void)
1195 {
1196         return VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD;
1197 }
1198
1199 template<> VkStructureType getStructureType<VkDebugMarkerObjectNameInfoEXT> (void)
1200 {
1201         return VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT;
1202 }
1203
1204 template<> VkStructureType getStructureType<VkDebugMarkerObjectTagInfoEXT> (void)
1205 {
1206         return VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT;
1207 }
1208
1209 template<> VkStructureType getStructureType<VkDebugMarkerMarkerInfoEXT> (void)
1210 {
1211         return VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT;
1212 }
1213
1214 template<> VkStructureType getStructureType<VkDedicatedAllocationImageCreateInfoNV> (void)
1215 {
1216         return VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV;
1217 }
1218
1219 template<> VkStructureType getStructureType<VkDedicatedAllocationBufferCreateInfoNV> (void)
1220 {
1221         return VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV;
1222 }
1223
1224 template<> VkStructureType getStructureType<VkDedicatedAllocationMemoryAllocateInfoNV> (void)
1225 {
1226         return VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV;
1227 }
1228
1229 template<> VkStructureType getStructureType<VkPhysicalDeviceTransformFeedbackFeaturesEXT> (void)
1230 {
1231         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT;
1232 }
1233
1234 template<> VkStructureType getStructureType<VkPhysicalDeviceTransformFeedbackPropertiesEXT> (void)
1235 {
1236         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT;
1237 }
1238
1239 template<> VkStructureType getStructureType<VkPipelineRasterizationStateStreamCreateInfoEXT> (void)
1240 {
1241         return VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT;
1242 }
1243
1244 template<> VkStructureType getStructureType<VkCuModuleCreateInfoNVX> (void)
1245 {
1246         return VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX;
1247 }
1248
1249 template<> VkStructureType getStructureType<VkCuFunctionCreateInfoNVX> (void)
1250 {
1251         return VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX;
1252 }
1253
1254 template<> VkStructureType getStructureType<VkCuLaunchInfoNVX> (void)
1255 {
1256         return VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX;
1257 }
1258
1259 template<> VkStructureType getStructureType<VkImageViewHandleInfoNVX> (void)
1260 {
1261         return VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX;
1262 }
1263
1264 template<> VkStructureType getStructureType<VkImageViewAddressPropertiesNVX> (void)
1265 {
1266         return VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX;
1267 }
1268
1269 template<> VkStructureType getStructureType<VkTextureLODGatherFormatPropertiesAMD> (void)
1270 {
1271         return VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD;
1272 }
1273
1274 template<> VkStructureType getStructureType<VkPhysicalDeviceCornerSampledImageFeaturesNV> (void)
1275 {
1276         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV;
1277 }
1278
1279 template<> VkStructureType getStructureType<VkExternalMemoryImageCreateInfoNV> (void)
1280 {
1281         return VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV;
1282 }
1283
1284 template<> VkStructureType getStructureType<VkExportMemoryAllocateInfoNV> (void)
1285 {
1286         return VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV;
1287 }
1288
1289 template<> VkStructureType getStructureType<VkValidationFlagsEXT> (void)
1290 {
1291         return VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT;
1292 }
1293
1294 template<> VkStructureType getStructureType<VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT> (void)
1295 {
1296         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT;
1297 }
1298
1299 template<> VkStructureType getStructureType<VkImageViewASTCDecodeModeEXT> (void)
1300 {
1301         return VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT;
1302 }
1303
1304 template<> VkStructureType getStructureType<VkPhysicalDeviceASTCDecodeFeaturesEXT> (void)
1305 {
1306         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT;
1307 }
1308
1309 template<> VkStructureType getStructureType<VkConditionalRenderingBeginInfoEXT> (void)
1310 {
1311         return VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT;
1312 }
1313
1314 template<> VkStructureType getStructureType<VkPhysicalDeviceConditionalRenderingFeaturesEXT> (void)
1315 {
1316         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT;
1317 }
1318
1319 template<> VkStructureType getStructureType<VkCommandBufferInheritanceConditionalRenderingInfoEXT> (void)
1320 {
1321         return VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT;
1322 }
1323
1324 template<> VkStructureType getStructureType<VkPipelineViewportWScalingStateCreateInfoNV> (void)
1325 {
1326         return VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV;
1327 }
1328
1329 template<> VkStructureType getStructureType<VkSurfaceCapabilities2EXT> (void)
1330 {
1331         return VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT;
1332 }
1333
1334 template<> VkStructureType getStructureType<VkDisplayPowerInfoEXT> (void)
1335 {
1336         return VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT;
1337 }
1338
1339 template<> VkStructureType getStructureType<VkDeviceEventInfoEXT> (void)
1340 {
1341         return VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT;
1342 }
1343
1344 template<> VkStructureType getStructureType<VkDisplayEventInfoEXT> (void)
1345 {
1346         return VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT;
1347 }
1348
1349 template<> VkStructureType getStructureType<VkSwapchainCounterCreateInfoEXT> (void)
1350 {
1351         return VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT;
1352 }
1353
1354 template<> VkStructureType getStructureType<VkPresentTimesInfoGOOGLE> (void)
1355 {
1356         return VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE;
1357 }
1358
1359 template<> VkStructureType getStructureType<VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX> (void)
1360 {
1361         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX;
1362 }
1363
1364 template<> VkStructureType getStructureType<VkPipelineViewportSwizzleStateCreateInfoNV> (void)
1365 {
1366         return VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV;
1367 }
1368
1369 template<> VkStructureType getStructureType<VkPhysicalDeviceDiscardRectanglePropertiesEXT> (void)
1370 {
1371         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT;
1372 }
1373
1374 template<> VkStructureType getStructureType<VkPipelineDiscardRectangleStateCreateInfoEXT> (void)
1375 {
1376         return VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT;
1377 }
1378
1379 template<> VkStructureType getStructureType<VkPhysicalDeviceConservativeRasterizationPropertiesEXT> (void)
1380 {
1381         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT;
1382 }
1383
1384 template<> VkStructureType getStructureType<VkPipelineRasterizationConservativeStateCreateInfoEXT> (void)
1385 {
1386         return VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT;
1387 }
1388
1389 template<> VkStructureType getStructureType<VkPhysicalDeviceDepthClipEnableFeaturesEXT> (void)
1390 {
1391         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT;
1392 }
1393
1394 template<> VkStructureType getStructureType<VkPipelineRasterizationDepthClipStateCreateInfoEXT> (void)
1395 {
1396         return VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT;
1397 }
1398
1399 template<> VkStructureType getStructureType<VkHdrMetadataEXT> (void)
1400 {
1401         return VK_STRUCTURE_TYPE_HDR_METADATA_EXT;
1402 }
1403
1404 template<> VkStructureType getStructureType<VkDebugUtilsLabelEXT> (void)
1405 {
1406         return VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT;
1407 }
1408
1409 template<> VkStructureType getStructureType<VkDebugUtilsObjectNameInfoEXT> (void)
1410 {
1411         return VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT;
1412 }
1413
1414 template<> VkStructureType getStructureType<VkDebugUtilsMessengerCallbackDataEXT> (void)
1415 {
1416         return VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT;
1417 }
1418
1419 template<> VkStructureType getStructureType<VkDebugUtilsMessengerCreateInfoEXT> (void)
1420 {
1421         return VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT;
1422 }
1423
1424 template<> VkStructureType getStructureType<VkDebugUtilsObjectTagInfoEXT> (void)
1425 {
1426         return VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT;
1427 }
1428
1429 template<> VkStructureType getStructureType<VkPhysicalDeviceInlineUniformBlockFeaturesEXT> (void)
1430 {
1431         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT;
1432 }
1433
1434 template<> VkStructureType getStructureType<VkPhysicalDeviceInlineUniformBlockPropertiesEXT> (void)
1435 {
1436         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT;
1437 }
1438
1439 template<> VkStructureType getStructureType<VkWriteDescriptorSetInlineUniformBlockEXT> (void)
1440 {
1441         return VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT;
1442 }
1443
1444 template<> VkStructureType getStructureType<VkDescriptorPoolInlineUniformBlockCreateInfoEXT> (void)
1445 {
1446         return VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT;
1447 }
1448
1449 template<> VkStructureType getStructureType<VkSampleLocationsInfoEXT> (void)
1450 {
1451         return VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT;
1452 }
1453
1454 template<> VkStructureType getStructureType<VkRenderPassSampleLocationsBeginInfoEXT> (void)
1455 {
1456         return VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT;
1457 }
1458
1459 template<> VkStructureType getStructureType<VkPipelineSampleLocationsStateCreateInfoEXT> (void)
1460 {
1461         return VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT;
1462 }
1463
1464 template<> VkStructureType getStructureType<VkPhysicalDeviceSampleLocationsPropertiesEXT> (void)
1465 {
1466         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT;
1467 }
1468
1469 template<> VkStructureType getStructureType<VkMultisamplePropertiesEXT> (void)
1470 {
1471         return VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT;
1472 }
1473
1474 template<> VkStructureType getStructureType<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT> (void)
1475 {
1476         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT;
1477 }
1478
1479 template<> VkStructureType getStructureType<VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT> (void)
1480 {
1481         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT;
1482 }
1483
1484 template<> VkStructureType getStructureType<VkPipelineColorBlendAdvancedStateCreateInfoEXT> (void)
1485 {
1486         return VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT;
1487 }
1488
1489 template<> VkStructureType getStructureType<VkPipelineCoverageToColorStateCreateInfoNV> (void)
1490 {
1491         return VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV;
1492 }
1493
1494 template<> VkStructureType getStructureType<VkPipelineCoverageModulationStateCreateInfoNV> (void)
1495 {
1496         return VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV;
1497 }
1498
1499 template<> VkStructureType getStructureType<VkPhysicalDeviceShaderSMBuiltinsPropertiesNV> (void)
1500 {
1501         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV;
1502 }
1503
1504 template<> VkStructureType getStructureType<VkPhysicalDeviceShaderSMBuiltinsFeaturesNV> (void)
1505 {
1506         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV;
1507 }
1508
1509 template<> VkStructureType getStructureType<VkDrmFormatModifierPropertiesListEXT> (void)
1510 {
1511         return VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT;
1512 }
1513
1514 template<> VkStructureType getStructureType<VkPhysicalDeviceImageDrmFormatModifierInfoEXT> (void)
1515 {
1516         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT;
1517 }
1518
1519 template<> VkStructureType getStructureType<VkImageDrmFormatModifierListCreateInfoEXT> (void)
1520 {
1521         return VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT;
1522 }
1523
1524 template<> VkStructureType getStructureType<VkImageDrmFormatModifierExplicitCreateInfoEXT> (void)
1525 {
1526         return VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT;
1527 }
1528
1529 template<> VkStructureType getStructureType<VkImageDrmFormatModifierPropertiesEXT> (void)
1530 {
1531         return VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT;
1532 }
1533
1534 template<> VkStructureType getStructureType<VkValidationCacheCreateInfoEXT> (void)
1535 {
1536         return VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT;
1537 }
1538
1539 template<> VkStructureType getStructureType<VkShaderModuleValidationCacheCreateInfoEXT> (void)
1540 {
1541         return VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT;
1542 }
1543
1544 template<> VkStructureType getStructureType<VkPipelineViewportShadingRateImageStateCreateInfoNV> (void)
1545 {
1546         return VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV;
1547 }
1548
1549 template<> VkStructureType getStructureType<VkPhysicalDeviceShadingRateImageFeaturesNV> (void)
1550 {
1551         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV;
1552 }
1553
1554 template<> VkStructureType getStructureType<VkPhysicalDeviceShadingRateImagePropertiesNV> (void)
1555 {
1556         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV;
1557 }
1558
1559 template<> VkStructureType getStructureType<VkPipelineViewportCoarseSampleOrderStateCreateInfoNV> (void)
1560 {
1561         return VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV;
1562 }
1563
1564 template<> VkStructureType getStructureType<VkRayTracingShaderGroupCreateInfoNV> (void)
1565 {
1566         return VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV;
1567 }
1568
1569 template<> VkStructureType getStructureType<VkRayTracingPipelineCreateInfoNV> (void)
1570 {
1571         return VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV;
1572 }
1573
1574 template<> VkStructureType getStructureType<VkGeometryTrianglesNV> (void)
1575 {
1576         return VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV;
1577 }
1578
1579 template<> VkStructureType getStructureType<VkGeometryAABBNV> (void)
1580 {
1581         return VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV;
1582 }
1583
1584 template<> VkStructureType getStructureType<VkGeometryNV> (void)
1585 {
1586         return VK_STRUCTURE_TYPE_GEOMETRY_NV;
1587 }
1588
1589 template<> VkStructureType getStructureType<VkAccelerationStructureInfoNV> (void)
1590 {
1591         return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV;
1592 }
1593
1594 template<> VkStructureType getStructureType<VkAccelerationStructureCreateInfoNV> (void)
1595 {
1596         return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV;
1597 }
1598
1599 template<> VkStructureType getStructureType<VkBindAccelerationStructureMemoryInfoNV> (void)
1600 {
1601         return VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV;
1602 }
1603
1604 template<> VkStructureType getStructureType<VkWriteDescriptorSetAccelerationStructureNV> (void)
1605 {
1606         return VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV;
1607 }
1608
1609 template<> VkStructureType getStructureType<VkAccelerationStructureMemoryRequirementsInfoNV> (void)
1610 {
1611         return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV;
1612 }
1613
1614 template<> VkStructureType getStructureType<VkPhysicalDeviceRayTracingPropertiesNV> (void)
1615 {
1616         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV;
1617 }
1618
1619 template<> VkStructureType getStructureType<VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV> (void)
1620 {
1621         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV;
1622 }
1623
1624 template<> VkStructureType getStructureType<VkPipelineRepresentativeFragmentTestStateCreateInfoNV> (void)
1625 {
1626         return VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV;
1627 }
1628
1629 template<> VkStructureType getStructureType<VkPhysicalDeviceImageViewImageFormatInfoEXT> (void)
1630 {
1631         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT;
1632 }
1633
1634 template<> VkStructureType getStructureType<VkFilterCubicImageViewImageFormatPropertiesEXT> (void)
1635 {
1636         return VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT;
1637 }
1638
1639 template<> VkStructureType getStructureType<VkDeviceQueueGlobalPriorityCreateInfoEXT> (void)
1640 {
1641         return VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT;
1642 }
1643
1644 template<> VkStructureType getStructureType<VkImportMemoryHostPointerInfoEXT> (void)
1645 {
1646         return VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT;
1647 }
1648
1649 template<> VkStructureType getStructureType<VkMemoryHostPointerPropertiesEXT> (void)
1650 {
1651         return VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT;
1652 }
1653
1654 template<> VkStructureType getStructureType<VkPhysicalDeviceExternalMemoryHostPropertiesEXT> (void)
1655 {
1656         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT;
1657 }
1658
1659 template<> VkStructureType getStructureType<VkPipelineCompilerControlCreateInfoAMD> (void)
1660 {
1661         return VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD;
1662 }
1663
1664 template<> VkStructureType getStructureType<VkCalibratedTimestampInfoEXT> (void)
1665 {
1666         return VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT;
1667 }
1668
1669 template<> VkStructureType getStructureType<VkPhysicalDeviceShaderCorePropertiesAMD> (void)
1670 {
1671         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD;
1672 }
1673
1674 template<> VkStructureType getStructureType<VkDeviceMemoryOverallocationCreateInfoAMD> (void)
1675 {
1676         return VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD;
1677 }
1678
1679 template<> VkStructureType getStructureType<VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT> (void)
1680 {
1681         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT;
1682 }
1683
1684 template<> VkStructureType getStructureType<VkPipelineVertexInputDivisorStateCreateInfoEXT> (void)
1685 {
1686         return VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT;
1687 }
1688
1689 template<> VkStructureType getStructureType<VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT> (void)
1690 {
1691         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT;
1692 }
1693
1694 template<> VkStructureType getStructureType<VkPipelineCreationFeedbackCreateInfoEXT> (void)
1695 {
1696         return VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT;
1697 }
1698
1699 template<> VkStructureType getStructureType<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV> (void)
1700 {
1701         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV;
1702 }
1703
1704 template<> VkStructureType getStructureType<VkPhysicalDeviceMeshShaderFeaturesNV> (void)
1705 {
1706         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV;
1707 }
1708
1709 template<> VkStructureType getStructureType<VkPhysicalDeviceMeshShaderPropertiesNV> (void)
1710 {
1711         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV;
1712 }
1713
1714 template<> VkStructureType getStructureType<VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV> (void)
1715 {
1716         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV;
1717 }
1718
1719 template<> VkStructureType getStructureType<VkPhysicalDeviceShaderImageFootprintFeaturesNV> (void)
1720 {
1721         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV;
1722 }
1723
1724 template<> VkStructureType getStructureType<VkPipelineViewportExclusiveScissorStateCreateInfoNV> (void)
1725 {
1726         return VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV;
1727 }
1728
1729 template<> VkStructureType getStructureType<VkPhysicalDeviceExclusiveScissorFeaturesNV> (void)
1730 {
1731         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV;
1732 }
1733
1734 template<> VkStructureType getStructureType<VkQueueFamilyCheckpointPropertiesNV> (void)
1735 {
1736         return VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV;
1737 }
1738
1739 template<> VkStructureType getStructureType<VkCheckpointDataNV> (void)
1740 {
1741         return VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV;
1742 }
1743
1744 template<> VkStructureType getStructureType<VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL> (void)
1745 {
1746         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL;
1747 }
1748
1749 template<> VkStructureType getStructureType<VkInitializePerformanceApiInfoINTEL> (void)
1750 {
1751         return VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL;
1752 }
1753
1754 template<> VkStructureType getStructureType<VkQueryPoolPerformanceQueryCreateInfoINTEL> (void)
1755 {
1756         return VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL;
1757 }
1758
1759 template<> VkStructureType getStructureType<VkPerformanceMarkerInfoINTEL> (void)
1760 {
1761         return VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL;
1762 }
1763
1764 template<> VkStructureType getStructureType<VkPerformanceStreamMarkerInfoINTEL> (void)
1765 {
1766         return VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL;
1767 }
1768
1769 template<> VkStructureType getStructureType<VkPerformanceOverrideInfoINTEL> (void)
1770 {
1771         return VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL;
1772 }
1773
1774 template<> VkStructureType getStructureType<VkPerformanceConfigurationAcquireInfoINTEL> (void)
1775 {
1776         return VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL;
1777 }
1778
1779 template<> VkStructureType getStructureType<VkPhysicalDevicePCIBusInfoPropertiesEXT> (void)
1780 {
1781         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT;
1782 }
1783
1784 template<> VkStructureType getStructureType<VkDisplayNativeHdrSurfaceCapabilitiesAMD> (void)
1785 {
1786         return VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD;
1787 }
1788
1789 template<> VkStructureType getStructureType<VkSwapchainDisplayNativeHdrCreateInfoAMD> (void)
1790 {
1791         return VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD;
1792 }
1793
1794 template<> VkStructureType getStructureType<VkPhysicalDeviceFragmentDensityMapFeaturesEXT> (void)
1795 {
1796         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT;
1797 }
1798
1799 template<> VkStructureType getStructureType<VkPhysicalDeviceFragmentDensityMapPropertiesEXT> (void)
1800 {
1801         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT;
1802 }
1803
1804 template<> VkStructureType getStructureType<VkRenderPassFragmentDensityMapCreateInfoEXT> (void)
1805 {
1806         return VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT;
1807 }
1808
1809 template<> VkStructureType getStructureType<VkPhysicalDeviceSubgroupSizeControlFeaturesEXT> (void)
1810 {
1811         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT;
1812 }
1813
1814 template<> VkStructureType getStructureType<VkPhysicalDeviceSubgroupSizeControlPropertiesEXT> (void)
1815 {
1816         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
1817 }
1818
1819 template<> VkStructureType getStructureType<VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT> (void)
1820 {
1821         return VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT;
1822 }
1823
1824 template<> VkStructureType getStructureType<VkPhysicalDeviceShaderCoreProperties2AMD> (void)
1825 {
1826         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD;
1827 }
1828
1829 template<> VkStructureType getStructureType<VkPhysicalDeviceCoherentMemoryFeaturesAMD> (void)
1830 {
1831         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD;
1832 }
1833
1834 template<> VkStructureType getStructureType<VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT> (void)
1835 {
1836         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT;
1837 }
1838
1839 template<> VkStructureType getStructureType<VkPhysicalDeviceMemoryBudgetPropertiesEXT> (void)
1840 {
1841         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT;
1842 }
1843
1844 template<> VkStructureType getStructureType<VkPhysicalDeviceMemoryPriorityFeaturesEXT> (void)
1845 {
1846         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT;
1847 }
1848
1849 template<> VkStructureType getStructureType<VkMemoryPriorityAllocateInfoEXT> (void)
1850 {
1851         return VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT;
1852 }
1853
1854 template<> VkStructureType getStructureType<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV> (void)
1855 {
1856         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV;
1857 }
1858
1859 template<> VkStructureType getStructureType<VkPhysicalDeviceBufferDeviceAddressFeaturesEXT> (void)
1860 {
1861         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT;
1862 }
1863
1864 template<> VkStructureType getStructureType<VkBufferDeviceAddressCreateInfoEXT> (void)
1865 {
1866         return VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT;
1867 }
1868
1869 template<> VkStructureType getStructureType<VkPhysicalDeviceToolPropertiesEXT> (void)
1870 {
1871         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT;
1872 }
1873
1874 template<> VkStructureType getStructureType<VkValidationFeaturesEXT> (void)
1875 {
1876         return VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT;
1877 }
1878
1879 template<> VkStructureType getStructureType<VkCooperativeMatrixPropertiesNV> (void)
1880 {
1881         return VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV;
1882 }
1883
1884 template<> VkStructureType getStructureType<VkPhysicalDeviceCooperativeMatrixFeaturesNV> (void)
1885 {
1886         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV;
1887 }
1888
1889 template<> VkStructureType getStructureType<VkPhysicalDeviceCooperativeMatrixPropertiesNV> (void)
1890 {
1891         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV;
1892 }
1893
1894 template<> VkStructureType getStructureType<VkPhysicalDeviceCoverageReductionModeFeaturesNV> (void)
1895 {
1896         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV;
1897 }
1898
1899 template<> VkStructureType getStructureType<VkPipelineCoverageReductionStateCreateInfoNV> (void)
1900 {
1901         return VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV;
1902 }
1903
1904 template<> VkStructureType getStructureType<VkFramebufferMixedSamplesCombinationNV> (void)
1905 {
1906         return VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV;
1907 }
1908
1909 template<> VkStructureType getStructureType<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT> (void)
1910 {
1911         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT;
1912 }
1913
1914 template<> VkStructureType getStructureType<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT> (void)
1915 {
1916         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT;
1917 }
1918
1919 template<> VkStructureType getStructureType<VkPhysicalDeviceProvokingVertexFeaturesEXT> (void)
1920 {
1921         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT;
1922 }
1923
1924 template<> VkStructureType getStructureType<VkPhysicalDeviceProvokingVertexPropertiesEXT> (void)
1925 {
1926         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT;
1927 }
1928
1929 template<> VkStructureType getStructureType<VkPipelineRasterizationProvokingVertexStateCreateInfoEXT> (void)
1930 {
1931         return VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT;
1932 }
1933
1934 template<> VkStructureType getStructureType<VkHeadlessSurfaceCreateInfoEXT> (void)
1935 {
1936         return VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT;
1937 }
1938
1939 template<> VkStructureType getStructureType<VkPhysicalDeviceLineRasterizationFeaturesEXT> (void)
1940 {
1941         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT;
1942 }
1943
1944 template<> VkStructureType getStructureType<VkPhysicalDeviceLineRasterizationPropertiesEXT> (void)
1945 {
1946         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT;
1947 }
1948
1949 template<> VkStructureType getStructureType<VkPipelineRasterizationLineStateCreateInfoEXT> (void)
1950 {
1951         return VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT;
1952 }
1953
1954 template<> VkStructureType getStructureType<VkPhysicalDeviceShaderAtomicFloatFeaturesEXT> (void)
1955 {
1956         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT;
1957 }
1958
1959 template<> VkStructureType getStructureType<VkPhysicalDeviceIndexTypeUint8FeaturesEXT> (void)
1960 {
1961         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT;
1962 }
1963
1964 template<> VkStructureType getStructureType<VkPhysicalDeviceExtendedDynamicStateFeaturesEXT> (void)
1965 {
1966         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT;
1967 }
1968
1969 template<> VkStructureType getStructureType<VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT> (void)
1970 {
1971         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT;
1972 }
1973
1974 template<> VkStructureType getStructureType<VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV> (void)
1975 {
1976         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV;
1977 }
1978
1979 template<> VkStructureType getStructureType<VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV> (void)
1980 {
1981         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV;
1982 }
1983
1984 template<> VkStructureType getStructureType<VkGraphicsShaderGroupCreateInfoNV> (void)
1985 {
1986         return VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV;
1987 }
1988
1989 template<> VkStructureType getStructureType<VkGraphicsPipelineShaderGroupsCreateInfoNV> (void)
1990 {
1991         return VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV;
1992 }
1993
1994 template<> VkStructureType getStructureType<VkIndirectCommandsLayoutTokenNV> (void)
1995 {
1996         return VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV;
1997 }
1998
1999 template<> VkStructureType getStructureType<VkIndirectCommandsLayoutCreateInfoNV> (void)
2000 {
2001         return VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV;
2002 }
2003
2004 template<> VkStructureType getStructureType<VkGeneratedCommandsInfoNV> (void)
2005 {
2006         return VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV;
2007 }
2008
2009 template<> VkStructureType getStructureType<VkGeneratedCommandsMemoryRequirementsInfoNV> (void)
2010 {
2011         return VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV;
2012 }
2013
2014 template<> VkStructureType getStructureType<VkPhysicalDeviceInheritedViewportScissorFeaturesNV> (void)
2015 {
2016         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV;
2017 }
2018
2019 template<> VkStructureType getStructureType<VkCommandBufferInheritanceViewportScissorInfoNV> (void)
2020 {
2021         return VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV;
2022 }
2023
2024 template<> VkStructureType getStructureType<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT> (void)
2025 {
2026         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT;
2027 }
2028
2029 template<> VkStructureType getStructureType<VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT> (void)
2030 {
2031         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT;
2032 }
2033
2034 template<> VkStructureType getStructureType<VkRenderPassTransformBeginInfoQCOM> (void)
2035 {
2036         return VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM;
2037 }
2038
2039 template<> VkStructureType getStructureType<VkCommandBufferInheritanceRenderPassTransformInfoQCOM> (void)
2040 {
2041         return VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM;
2042 }
2043
2044 template<> VkStructureType getStructureType<VkPhysicalDeviceDeviceMemoryReportFeaturesEXT> (void)
2045 {
2046         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT;
2047 }
2048
2049 template<> VkStructureType getStructureType<VkDeviceMemoryReportCallbackDataEXT> (void)
2050 {
2051         return VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT;
2052 }
2053
2054 template<> VkStructureType getStructureType<VkDeviceDeviceMemoryReportCreateInfoEXT> (void)
2055 {
2056         return VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT;
2057 }
2058
2059 template<> VkStructureType getStructureType<VkPhysicalDeviceRobustness2FeaturesEXT> (void)
2060 {
2061         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT;
2062 }
2063
2064 template<> VkStructureType getStructureType<VkPhysicalDeviceRobustness2PropertiesEXT> (void)
2065 {
2066         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT;
2067 }
2068
2069 template<> VkStructureType getStructureType<VkSamplerCustomBorderColorCreateInfoEXT> (void)
2070 {
2071         return VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT;
2072 }
2073
2074 template<> VkStructureType getStructureType<VkPhysicalDeviceCustomBorderColorPropertiesEXT> (void)
2075 {
2076         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT;
2077 }
2078
2079 template<> VkStructureType getStructureType<VkPhysicalDeviceCustomBorderColorFeaturesEXT> (void)
2080 {
2081         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT;
2082 }
2083
2084 template<> VkStructureType getStructureType<VkPhysicalDevicePrivateDataFeaturesEXT> (void)
2085 {
2086         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT;
2087 }
2088
2089 template<> VkStructureType getStructureType<VkDevicePrivateDataCreateInfoEXT> (void)
2090 {
2091         return VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT;
2092 }
2093
2094 template<> VkStructureType getStructureType<VkPrivateDataSlotCreateInfoEXT> (void)
2095 {
2096         return VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT;
2097 }
2098
2099 template<> VkStructureType getStructureType<VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT> (void)
2100 {
2101         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT;
2102 }
2103
2104 template<> VkStructureType getStructureType<VkPhysicalDeviceDiagnosticsConfigFeaturesNV> (void)
2105 {
2106         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV;
2107 }
2108
2109 template<> VkStructureType getStructureType<VkDeviceDiagnosticsConfigCreateInfoNV> (void)
2110 {
2111         return VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV;
2112 }
2113
2114 template<> VkStructureType getStructureType<VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV> (void)
2115 {
2116         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV;
2117 }
2118
2119 template<> VkStructureType getStructureType<VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV> (void)
2120 {
2121         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV;
2122 }
2123
2124 template<> VkStructureType getStructureType<VkPipelineFragmentShadingRateEnumStateCreateInfoNV> (void)
2125 {
2126         return VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV;
2127 }
2128
2129 template<> VkStructureType getStructureType<VkAccelerationStructureGeometryMotionTrianglesDataNV> (void)
2130 {
2131         return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV;
2132 }
2133
2134 template<> VkStructureType getStructureType<VkAccelerationStructureMotionInfoNV> (void)
2135 {
2136         return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV;
2137 }
2138
2139 template<> VkStructureType getStructureType<VkPhysicalDeviceRayTracingMotionBlurFeaturesNV> (void)
2140 {
2141         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV;
2142 }
2143
2144 template<> VkStructureType getStructureType<VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT> (void)
2145 {
2146         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT;
2147 }
2148
2149 template<> VkStructureType getStructureType<VkPhysicalDeviceFragmentDensityMap2FeaturesEXT> (void)
2150 {
2151         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT;
2152 }
2153
2154 template<> VkStructureType getStructureType<VkPhysicalDeviceFragmentDensityMap2PropertiesEXT> (void)
2155 {
2156         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT;
2157 }
2158
2159 template<> VkStructureType getStructureType<VkCopyCommandTransformInfoQCOM> (void)
2160 {
2161         return VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM;
2162 }
2163
2164 template<> VkStructureType getStructureType<VkPhysicalDeviceImageRobustnessFeaturesEXT> (void)
2165 {
2166         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT;
2167 }
2168
2169 template<> VkStructureType getStructureType<VkPhysicalDevice4444FormatsFeaturesEXT> (void)
2170 {
2171         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT;
2172 }
2173
2174 template<> VkStructureType getStructureType<VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE> (void)
2175 {
2176         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE;
2177 }
2178
2179 template<> VkStructureType getStructureType<VkMutableDescriptorTypeCreateInfoVALVE> (void)
2180 {
2181         return VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE;
2182 }
2183
2184 template<> VkStructureType getStructureType<VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT> (void)
2185 {
2186         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT;
2187 }
2188
2189 template<> VkStructureType getStructureType<VkVertexInputBindingDescription2EXT> (void)
2190 {
2191         return VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT;
2192 }
2193
2194 template<> VkStructureType getStructureType<VkVertexInputAttributeDescription2EXT> (void)
2195 {
2196         return VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT;
2197 }
2198
2199 template<> VkStructureType getStructureType<VkPhysicalDeviceDrmPropertiesEXT> (void)
2200 {
2201         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT;
2202 }
2203
2204 template<> VkStructureType getStructureType<VkSubpassShadingPipelineCreateInfoHUAWEI> (void)
2205 {
2206         return VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI;
2207 }
2208
2209 template<> VkStructureType getStructureType<VkPhysicalDeviceSubpassShadingFeaturesHUAWEI> (void)
2210 {
2211         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI;
2212 }
2213
2214 template<> VkStructureType getStructureType<VkPhysicalDeviceSubpassShadingPropertiesHUAWEI> (void)
2215 {
2216         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI;
2217 }
2218
2219 template<> VkStructureType getStructureType<VkMemoryGetRemoteAddressInfoNV> (void)
2220 {
2221         return VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV;
2222 }
2223
2224 template<> VkStructureType getStructureType<VkPhysicalDeviceExternalMemoryRDMAFeaturesNV> (void)
2225 {
2226         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV;
2227 }
2228
2229 template<> VkStructureType getStructureType<VkPhysicalDeviceExtendedDynamicState2FeaturesEXT> (void)
2230 {
2231         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT;
2232 }
2233
2234 template<> VkStructureType getStructureType<VkPhysicalDeviceColorWriteEnableFeaturesEXT> (void)
2235 {
2236         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT;
2237 }
2238
2239 template<> VkStructureType getStructureType<VkPipelineColorWriteCreateInfoEXT> (void)
2240 {
2241         return VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT;
2242 }
2243
2244 template<> VkStructureType getStructureType<VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT> (void)
2245 {
2246         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT;
2247 }
2248
2249 template<> VkStructureType getStructureType<VkQueueFamilyGlobalPriorityPropertiesEXT> (void)
2250 {
2251         return VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT;
2252 }
2253
2254 template<> VkStructureType getStructureType<VkPhysicalDeviceMultiDrawFeaturesEXT> (void)
2255 {
2256         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT;
2257 }
2258
2259 template<> VkStructureType getStructureType<VkPhysicalDeviceMultiDrawPropertiesEXT> (void)
2260 {
2261         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT;
2262 }
2263
2264 template<> VkStructureType getStructureType<VkAccelerationStructureGeometryTrianglesDataKHR> (void)
2265 {
2266         return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR;
2267 }
2268
2269 template<> VkStructureType getStructureType<VkAccelerationStructureGeometryAabbsDataKHR> (void)
2270 {
2271         return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR;
2272 }
2273
2274 template<> VkStructureType getStructureType<VkAccelerationStructureGeometryInstancesDataKHR> (void)
2275 {
2276         return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR;
2277 }
2278
2279 template<> VkStructureType getStructureType<VkAccelerationStructureGeometryKHR> (void)
2280 {
2281         return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR;
2282 }
2283
2284 template<> VkStructureType getStructureType<VkAccelerationStructureBuildGeometryInfoKHR> (void)
2285 {
2286         return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR;
2287 }
2288
2289 template<> VkStructureType getStructureType<VkAccelerationStructureCreateInfoKHR> (void)
2290 {
2291         return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR;
2292 }
2293
2294 template<> VkStructureType getStructureType<VkWriteDescriptorSetAccelerationStructureKHR> (void)
2295 {
2296         return VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR;
2297 }
2298
2299 template<> VkStructureType getStructureType<VkPhysicalDeviceAccelerationStructureFeaturesKHR> (void)
2300 {
2301         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR;
2302 }
2303
2304 template<> VkStructureType getStructureType<VkPhysicalDeviceAccelerationStructurePropertiesKHR> (void)
2305 {
2306         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR;
2307 }
2308
2309 template<> VkStructureType getStructureType<VkAccelerationStructureDeviceAddressInfoKHR> (void)
2310 {
2311         return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR;
2312 }
2313
2314 template<> VkStructureType getStructureType<VkAccelerationStructureVersionInfoKHR> (void)
2315 {
2316         return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR;
2317 }
2318
2319 template<> VkStructureType getStructureType<VkCopyAccelerationStructureToMemoryInfoKHR> (void)
2320 {
2321         return VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR;
2322 }
2323
2324 template<> VkStructureType getStructureType<VkCopyMemoryToAccelerationStructureInfoKHR> (void)
2325 {
2326         return VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR;
2327 }
2328
2329 template<> VkStructureType getStructureType<VkCopyAccelerationStructureInfoKHR> (void)
2330 {
2331         return VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR;
2332 }
2333
2334 template<> VkStructureType getStructureType<VkAccelerationStructureBuildSizesInfoKHR> (void)
2335 {
2336         return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR;
2337 }
2338
2339 template<> VkStructureType getStructureType<VkRayTracingShaderGroupCreateInfoKHR> (void)
2340 {
2341         return VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR;
2342 }
2343
2344 template<> VkStructureType getStructureType<VkRayTracingPipelineInterfaceCreateInfoKHR> (void)
2345 {
2346         return VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR;
2347 }
2348
2349 template<> VkStructureType getStructureType<VkRayTracingPipelineCreateInfoKHR> (void)
2350 {
2351         return VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR;
2352 }
2353
2354 template<> VkStructureType getStructureType<VkPhysicalDeviceRayTracingPipelineFeaturesKHR> (void)
2355 {
2356         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR;
2357 }
2358
2359 template<> VkStructureType getStructureType<VkPhysicalDeviceRayTracingPipelinePropertiesKHR> (void)
2360 {
2361         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR;
2362 }
2363
2364 template<> VkStructureType getStructureType<VkPhysicalDeviceRayQueryFeaturesKHR> (void)
2365 {
2366         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR;
2367 }
2368
2369 template<> VkStructureType getStructureType<VkAndroidSurfaceCreateInfoKHR> (void)
2370 {
2371         return VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR;
2372 }
2373
2374 template<> VkStructureType getStructureType<VkAndroidHardwareBufferUsageANDROID> (void)
2375 {
2376         return VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID;
2377 }
2378
2379 template<> VkStructureType getStructureType<VkAndroidHardwareBufferPropertiesANDROID> (void)
2380 {
2381         return VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID;
2382 }
2383
2384 template<> VkStructureType getStructureType<VkAndroidHardwareBufferFormatPropertiesANDROID> (void)
2385 {
2386         return VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID;
2387 }
2388
2389 template<> VkStructureType getStructureType<VkImportAndroidHardwareBufferInfoANDROID> (void)
2390 {
2391         return VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID;
2392 }
2393
2394 template<> VkStructureType getStructureType<VkMemoryGetAndroidHardwareBufferInfoANDROID> (void)
2395 {
2396         return VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID;
2397 }
2398
2399 template<> VkStructureType getStructureType<VkExternalFormatANDROID> (void)
2400 {
2401         return VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID;
2402 }
2403
2404 template<> VkStructureType getStructureType<VkVideoQueueFamilyProperties2KHR> (void)
2405 {
2406         return VK_STRUCTURE_TYPE_VIDEO_QUEUE_FAMILY_PROPERTIES_2_KHR;
2407 }
2408
2409 template<> VkStructureType getStructureType<VkVideoProfileKHR> (void)
2410 {
2411         return VK_STRUCTURE_TYPE_VIDEO_PROFILE_KHR;
2412 }
2413
2414 template<> VkStructureType getStructureType<VkVideoProfilesKHR> (void)
2415 {
2416         return VK_STRUCTURE_TYPE_VIDEO_PROFILES_KHR;
2417 }
2418
2419 template<> VkStructureType getStructureType<VkVideoCapabilitiesKHR> (void)
2420 {
2421         return VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR;
2422 }
2423
2424 template<> VkStructureType getStructureType<VkPhysicalDeviceVideoFormatInfoKHR> (void)
2425 {
2426         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR;
2427 }
2428
2429 template<> VkStructureType getStructureType<VkVideoFormatPropertiesKHR> (void)
2430 {
2431         return VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR;
2432 }
2433
2434 template<> VkStructureType getStructureType<VkVideoPictureResourceKHR> (void)
2435 {
2436         return VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_KHR;
2437 }
2438
2439 template<> VkStructureType getStructureType<VkVideoReferenceSlotKHR> (void)
2440 {
2441         return VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_KHR;
2442 }
2443
2444 template<> VkStructureType getStructureType<VkVideoGetMemoryPropertiesKHR> (void)
2445 {
2446         return VK_STRUCTURE_TYPE_VIDEO_GET_MEMORY_PROPERTIES_KHR;
2447 }
2448
2449 template<> VkStructureType getStructureType<VkVideoBindMemoryKHR> (void)
2450 {
2451         return VK_STRUCTURE_TYPE_VIDEO_BIND_MEMORY_KHR;
2452 }
2453
2454 template<> VkStructureType getStructureType<VkVideoSessionCreateInfoKHR> (void)
2455 {
2456         return VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR;
2457 }
2458
2459 template<> VkStructureType getStructureType<VkVideoSessionParametersCreateInfoKHR> (void)
2460 {
2461         return VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR;
2462 }
2463
2464 template<> VkStructureType getStructureType<VkVideoSessionParametersUpdateInfoKHR> (void)
2465 {
2466         return VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR;
2467 }
2468
2469 template<> VkStructureType getStructureType<VkVideoBeginCodingInfoKHR> (void)
2470 {
2471         return VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR;
2472 }
2473
2474 template<> VkStructureType getStructureType<VkVideoEndCodingInfoKHR> (void)
2475 {
2476         return VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR;
2477 }
2478
2479 template<> VkStructureType getStructureType<VkVideoCodingControlInfoKHR> (void)
2480 {
2481         return VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR;
2482 }
2483
2484 template<> VkStructureType getStructureType<VkVideoDecodeInfoKHR> (void)
2485 {
2486         return VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR;
2487 }
2488
2489 template<> VkStructureType getStructureType<VkPhysicalDevicePortabilitySubsetFeaturesKHR> (void)
2490 {
2491         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR;
2492 }
2493
2494 template<> VkStructureType getStructureType<VkPhysicalDevicePortabilitySubsetPropertiesKHR> (void)
2495 {
2496         return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR;
2497 }
2498
2499 template<> VkStructureType getStructureType<VkVideoEncodeInfoKHR> (void)
2500 {
2501         return VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR;
2502 }
2503
2504 template<> VkStructureType getStructureType<VkVideoEncodeRateControlInfoKHR> (void)
2505 {
2506         return VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR;
2507 }
2508
2509 template<> VkStructureType getStructureType<VkVideoEncodeH264CapabilitiesEXT> (void)
2510 {
2511         return VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT;
2512 }
2513
2514 template<> VkStructureType getStructureType<VkVideoEncodeH264SessionCreateInfoEXT> (void)
2515 {
2516         return VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_EXT;
2517 }
2518
2519 template<> VkStructureType getStructureType<VkVideoEncodeH264SessionParametersAddInfoEXT> (void)
2520 {
2521         return VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT;
2522 }
2523
2524 template<> VkStructureType getStructureType<VkVideoEncodeH264SessionParametersCreateInfoEXT> (void)
2525 {
2526         return VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT;
2527 }
2528
2529 template<> VkStructureType getStructureType<VkVideoEncodeH264DpbSlotInfoEXT> (void)
2530 {
2531         return VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT;
2532 }
2533
2534 template<> VkStructureType getStructureType<VkVideoEncodeH264NaluSliceEXT> (void)
2535 {
2536         return VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_EXT;
2537 }
2538
2539 template<> VkStructureType getStructureType<VkVideoEncodeH264VclFrameInfoEXT> (void)
2540 {
2541         return VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT;
2542 }
2543
2544 template<> VkStructureType getStructureType<VkVideoEncodeH264EmitPictureParametersEXT> (void)
2545 {
2546         return VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT;
2547 }
2548
2549 template<> VkStructureType getStructureType<VkVideoEncodeH264ProfileEXT> (void)
2550 {
2551         return VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT;
2552 }
2553
2554 template<> VkStructureType getStructureType<VkVideoDecodeH264ProfileEXT> (void)
2555 {
2556         return VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_EXT;
2557 }
2558
2559 template<> VkStructureType getStructureType<VkVideoDecodeH264CapabilitiesEXT> (void)
2560 {
2561         return VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT;
2562 }
2563
2564 template<> VkStructureType getStructureType<VkVideoDecodeH264SessionCreateInfoEXT> (void)
2565 {
2566         return VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_CREATE_INFO_EXT;
2567 }
2568
2569 template<> VkStructureType getStructureType<VkVideoDecodeH264SessionParametersAddInfoEXT> (void)
2570 {
2571         return VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT;
2572 }
2573
2574 template<> VkStructureType getStructureType<VkVideoDecodeH264SessionParametersCreateInfoEXT> (void)
2575 {
2576         return VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT;
2577 }
2578
2579 template<> VkStructureType getStructureType<VkVideoDecodeH264PictureInfoEXT> (void)
2580 {
2581         return VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT;
2582 }
2583
2584 template<> VkStructureType getStructureType<VkVideoDecodeH264MvcEXT> (void)
2585 {
2586         return VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_EXT;
2587 }
2588
2589 template<> VkStructureType getStructureType<VkVideoDecodeH264DpbSlotInfoEXT> (void)
2590 {
2591         return VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT;
2592 }
2593
2594 template<> VkStructureType getStructureType<VkVideoDecodeH265ProfileEXT> (void)
2595 {
2596         return VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT;
2597 }
2598
2599 template<> VkStructureType getStructureType<VkVideoDecodeH265CapabilitiesEXT> (void)
2600 {
2601         return VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT;
2602 }
2603
2604 template<> VkStructureType getStructureType<VkVideoDecodeH265SessionCreateInfoEXT> (void)
2605 {
2606         return VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_CREATE_INFO_EXT;
2607 }
2608
2609 template<> VkStructureType getStructureType<VkVideoDecodeH265SessionParametersAddInfoEXT> (void)
2610 {
2611         return VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT;
2612 }
2613
2614 template<> VkStructureType getStructureType<VkVideoDecodeH265SessionParametersCreateInfoEXT> (void)
2615 {
2616         return VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT;
2617 }
2618
2619 template<> VkStructureType getStructureType<VkVideoDecodeH265PictureInfoEXT> (void)
2620 {
2621         return VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT;
2622 }
2623
2624 template<> VkStructureType getStructureType<VkVideoDecodeH265DpbSlotInfoEXT> (void)
2625 {
2626         return VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT;
2627 }
2628
2629 template<> VkStructureType getStructureType<VkImagePipeSurfaceCreateInfoFUCHSIA> (void)
2630 {
2631         return VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA;
2632 }
2633
2634 template<> VkStructureType getStructureType<VkImportMemoryZirconHandleInfoFUCHSIA> (void)
2635 {
2636         return VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA;
2637 }
2638
2639 template<> VkStructureType getStructureType<VkMemoryZirconHandlePropertiesFUCHSIA> (void)
2640 {
2641         return VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA;
2642 }
2643
2644 template<> VkStructureType getStructureType<VkMemoryGetZirconHandleInfoFUCHSIA> (void)
2645 {
2646         return VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA;
2647 }
2648
2649 template<> VkStructureType getStructureType<VkImportSemaphoreZirconHandleInfoFUCHSIA> (void)
2650 {
2651         return VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA;
2652 }
2653
2654 template<> VkStructureType getStructureType<VkSemaphoreGetZirconHandleInfoFUCHSIA> (void)
2655 {
2656         return VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA;
2657 }
2658
2659 template<> VkStructureType getStructureType<VkStreamDescriptorSurfaceCreateInfoGGP> (void)
2660 {
2661         return VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP;
2662 }
2663
2664 template<> VkStructureType getStructureType<VkPresentFrameTokenGGP> (void)
2665 {
2666         return VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP;
2667 }
2668
2669 template<> VkStructureType getStructureType<VkIOSSurfaceCreateInfoMVK> (void)
2670 {
2671         return VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK;
2672 }
2673
2674 template<> VkStructureType getStructureType<VkMacOSSurfaceCreateInfoMVK> (void)
2675 {
2676         return VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK;
2677 }
2678
2679 template<> VkStructureType getStructureType<VkMetalSurfaceCreateInfoEXT> (void)
2680 {
2681         return VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT;
2682 }
2683
2684 template<> VkStructureType getStructureType<VkViSurfaceCreateInfoNN> (void)
2685 {
2686         return VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN;
2687 }
2688
2689 template<> VkStructureType getStructureType<VkWaylandSurfaceCreateInfoKHR> (void)
2690 {
2691         return VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR;
2692 }
2693
2694 template<> VkStructureType getStructureType<VkWin32SurfaceCreateInfoKHR> (void)
2695 {
2696         return VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR;
2697 }
2698
2699 template<> VkStructureType getStructureType<VkImportMemoryWin32HandleInfoKHR> (void)
2700 {
2701         return VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR;
2702 }
2703
2704 template<> VkStructureType getStructureType<VkExportMemoryWin32HandleInfoKHR> (void)
2705 {
2706         return VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR;
2707 }
2708
2709 template<> VkStructureType getStructureType<VkMemoryWin32HandlePropertiesKHR> (void)
2710 {
2711         return VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR;
2712 }
2713
2714 template<> VkStructureType getStructureType<VkMemoryGetWin32HandleInfoKHR> (void)
2715 {
2716         return VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR;
2717 }
2718
2719 template<> VkStructureType getStructureType<VkWin32KeyedMutexAcquireReleaseInfoKHR> (void)
2720 {
2721         return VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR;
2722 }
2723
2724 template<> VkStructureType getStructureType<VkImportSemaphoreWin32HandleInfoKHR> (void)
2725 {
2726         return VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR;
2727 }
2728
2729 template<> VkStructureType getStructureType<VkExportSemaphoreWin32HandleInfoKHR> (void)
2730 {
2731         return VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR;
2732 }
2733
2734 template<> VkStructureType getStructureType<VkD3D12FenceSubmitInfoKHR> (void)
2735 {
2736         return VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR;
2737 }
2738
2739 template<> VkStructureType getStructureType<VkSemaphoreGetWin32HandleInfoKHR> (void)
2740 {
2741         return VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR;
2742 }
2743
2744 template<> VkStructureType getStructureType<VkImportFenceWin32HandleInfoKHR> (void)
2745 {
2746         return VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR;
2747 }
2748
2749 template<> VkStructureType getStructureType<VkExportFenceWin32HandleInfoKHR> (void)
2750 {
2751         return VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR;
2752 }
2753
2754 template<> VkStructureType getStructureType<VkFenceGetWin32HandleInfoKHR> (void)
2755 {
2756         return VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR;
2757 }
2758
2759 template<> VkStructureType getStructureType<VkImportMemoryWin32HandleInfoNV> (void)
2760 {
2761         return VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV;
2762 }
2763
2764 template<> VkStructureType getStructureType<VkExportMemoryWin32HandleInfoNV> (void)
2765 {
2766         return VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV;
2767 }
2768
2769 template<> VkStructureType getStructureType<VkWin32KeyedMutexAcquireReleaseInfoNV> (void)
2770 {
2771         return VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV;
2772 }
2773
2774 template<> VkStructureType getStructureType<VkSurfaceFullScreenExclusiveInfoEXT> (void)
2775 {
2776         return VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT;
2777 }
2778
2779 template<> VkStructureType getStructureType<VkSurfaceCapabilitiesFullScreenExclusiveEXT> (void)
2780 {
2781         return VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT;
2782 }
2783
2784 template<> VkStructureType getStructureType<VkSurfaceFullScreenExclusiveWin32InfoEXT> (void)
2785 {
2786         return VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT;
2787 }
2788
2789 template<> VkStructureType getStructureType<VkXcbSurfaceCreateInfoKHR> (void)
2790 {
2791         return VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR;
2792 }
2793
2794 template<> VkStructureType getStructureType<VkXlibSurfaceCreateInfoKHR> (void)
2795 {
2796         return VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR;
2797 }
2798