• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (C) 2018 The Android Open Source Project
2 // Copyright (C) 2018 Google Inc.
3 //
4 // Licensed under the Apache License, Version 2.0 (the "License");
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
7 //
8 // http://www.apache.org/licenses/LICENSE-2.0
9 //
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
15 
16 // Autogenerated module goldfish_vk_extension_structs
17 //
18 // (impl) generated by codegen/vulkan/scripts/genvk.py -registry codegen/vulkan/xml/vk.xml
19 // -registryGfxstream codegen/vulkan/xml/vk_gfxstream.xml cereal -o host/vulkan/cereal
20 //
21 // Please do not modify directly;
22 // re-run gfxstream-protocols/scripts/generate-vulkan-sources.sh,
23 // or directly from Python by defining:
24 // VULKAN_REGISTRY_XML_DIR : Directory containing vk.xml
25 // VULKAN_REGISTRY_SCRIPTS_DIR : Directory containing genvk.py
26 // CEREAL_OUTPUT_DIR: Where to put the generated sources.
27 //
28 // python3 $VULKAN_REGISTRY_SCRIPTS_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o
29 // $CEREAL_OUTPUT_DIR
30 //
31 
32 #include "goldfish_vk_extension_structs.h"
33 namespace gfxstream {
34 namespace vk {
35 
36 #ifdef VK_VERSION_1_0
37 #endif
38 #ifdef VK_VERSION_1_1
39 #endif
40 #ifdef VK_VERSION_1_2
41 #endif
42 #ifdef VK_VERSION_1_3
43 #endif
44 #ifdef VK_KHR_surface
45 #endif
46 #ifdef VK_KHR_swapchain
47 #endif
48 #ifdef VK_KHR_display
49 #endif
50 #ifdef VK_KHR_display_swapchain
51 #endif
52 #ifdef VK_KHR_xlib_surface
53 #endif
54 #ifdef VK_KHR_xcb_surface
55 #endif
56 #ifdef VK_KHR_wayland_surface
57 #endif
58 #ifdef VK_KHR_android_surface
59 #endif
60 #ifdef VK_KHR_win32_surface
61 #endif
62 #ifdef VK_KHR_sampler_mirror_clamp_to_edge
63 #endif
64 #ifdef VK_KHR_video_queue
65 #endif
66 #ifdef VK_KHR_video_decode_queue
67 #endif
68 #ifdef VK_KHR_video_decode_h264
69 #endif
70 #ifdef VK_KHR_dynamic_rendering
71 #endif
72 #ifdef VK_KHR_multiview
73 #endif
74 #ifdef VK_KHR_get_physical_device_properties2
75 #endif
76 #ifdef VK_KHR_device_group
77 #endif
78 #ifdef VK_KHR_shader_draw_parameters
79 #endif
80 #ifdef VK_KHR_maintenance1
81 #endif
82 #ifdef VK_KHR_device_group_creation
83 #endif
84 #ifdef VK_KHR_external_memory_capabilities
85 #endif
86 #ifdef VK_KHR_external_memory
87 #endif
88 #ifdef VK_KHR_external_memory_win32
89 #endif
90 #ifdef VK_KHR_external_memory_fd
91 #endif
92 #ifdef VK_KHR_win32_keyed_mutex
93 #endif
94 #ifdef VK_KHR_external_semaphore_capabilities
95 #endif
96 #ifdef VK_KHR_external_semaphore
97 #endif
98 #ifdef VK_KHR_external_semaphore_win32
99 #endif
100 #ifdef VK_KHR_external_semaphore_fd
101 #endif
102 #ifdef VK_KHR_push_descriptor
103 #endif
104 #ifdef VK_KHR_shader_float16_int8
105 #endif
106 #ifdef VK_KHR_16bit_storage
107 #endif
108 #ifdef VK_KHR_incremental_present
109 #endif
110 #ifdef VK_KHR_descriptor_update_template
111 #endif
112 #ifdef VK_KHR_imageless_framebuffer
113 #endif
114 #ifdef VK_KHR_create_renderpass2
115 #endif
116 #ifdef VK_KHR_shared_presentable_image
117 #endif
118 #ifdef VK_KHR_external_fence_capabilities
119 #endif
120 #ifdef VK_KHR_external_fence
121 #endif
122 #ifdef VK_KHR_external_fence_win32
123 #endif
124 #ifdef VK_KHR_external_fence_fd
125 #endif
126 #ifdef VK_KHR_performance_query
127 #endif
128 #ifdef VK_KHR_maintenance2
129 #endif
130 #ifdef VK_KHR_get_surface_capabilities2
131 #endif
132 #ifdef VK_KHR_variable_pointers
133 #endif
134 #ifdef VK_KHR_get_display_properties2
135 #endif
136 #ifdef VK_KHR_dedicated_allocation
137 #endif
138 #ifdef VK_KHR_storage_buffer_storage_class
139 #endif
140 #ifdef VK_KHR_relaxed_block_layout
141 #endif
142 #ifdef VK_KHR_get_memory_requirements2
143 #endif
144 #ifdef VK_KHR_image_format_list
145 #endif
146 #ifdef VK_KHR_sampler_ycbcr_conversion
147 #endif
148 #ifdef VK_KHR_bind_memory2
149 #endif
150 #ifdef VK_KHR_portability_subset
151 #endif
152 #ifdef VK_KHR_maintenance3
153 #endif
154 #ifdef VK_KHR_draw_indirect_count
155 #endif
156 #ifdef VK_KHR_shader_subgroup_extended_types
157 #endif
158 #ifdef VK_KHR_8bit_storage
159 #endif
160 #ifdef VK_KHR_shader_atomic_int64
161 #endif
162 #ifdef VK_KHR_shader_clock
163 #endif
164 #ifdef VK_KHR_video_decode_h265
165 #endif
166 #ifdef VK_KHR_global_priority
167 #endif
168 #ifdef VK_KHR_driver_properties
169 #endif
170 #ifdef VK_KHR_shader_float_controls
171 #endif
172 #ifdef VK_KHR_depth_stencil_resolve
173 #endif
174 #ifdef VK_KHR_swapchain_mutable_format
175 #endif
176 #ifdef VK_KHR_timeline_semaphore
177 #endif
178 #ifdef VK_KHR_vulkan_memory_model
179 #endif
180 #ifdef VK_KHR_shader_terminate_invocation
181 #endif
182 #ifdef VK_KHR_fragment_shading_rate
183 #endif
184 #ifdef VK_KHR_spirv_1_4
185 #endif
186 #ifdef VK_KHR_surface_protected_capabilities
187 #endif
188 #ifdef VK_KHR_separate_depth_stencil_layouts
189 #endif
190 #ifdef VK_KHR_present_wait
191 #endif
192 #ifdef VK_KHR_uniform_buffer_standard_layout
193 #endif
194 #ifdef VK_KHR_buffer_device_address
195 #endif
196 #ifdef VK_KHR_deferred_host_operations
197 #endif
198 #ifdef VK_KHR_pipeline_executable_properties
199 #endif
200 #ifdef VK_KHR_map_memory2
201 #endif
202 #ifdef VK_KHR_shader_integer_dot_product
203 #endif
204 #ifdef VK_KHR_pipeline_library
205 #endif
206 #ifdef VK_KHR_shader_non_semantic_info
207 #endif
208 #ifdef VK_KHR_present_id
209 #endif
210 #ifdef VK_KHR_video_encode_queue
211 #endif
212 #ifdef VK_KHR_synchronization2
213 #endif
214 #ifdef VK_KHR_fragment_shader_barycentric
215 #endif
216 #ifdef VK_KHR_shader_subgroup_uniform_control_flow
217 #endif
218 #ifdef VK_KHR_zero_initialize_workgroup_memory
219 #endif
220 #ifdef VK_KHR_workgroup_memory_explicit_layout
221 #endif
222 #ifdef VK_KHR_copy_commands2
223 #endif
224 #ifdef VK_KHR_format_feature_flags2
225 #endif
226 #ifdef VK_KHR_ray_tracing_maintenance1
227 #endif
228 #ifdef VK_KHR_portability_enumeration
229 #endif
230 #ifdef VK_KHR_maintenance4
231 #endif
232 #ifdef VK_KHR_ray_tracing_position_fetch
233 #endif
234 #ifdef VK_ANDROID_native_buffer
235 #endif
236 #ifdef VK_EXT_debug_report
237 #endif
238 #ifdef VK_NV_glsl_shader
239 #endif
240 #ifdef VK_EXT_depth_range_unrestricted
241 #endif
242 #ifdef VK_IMG_filter_cubic
243 #endif
244 #ifdef VK_AMD_rasterization_order
245 #endif
246 #ifdef VK_AMD_shader_trinary_minmax
247 #endif
248 #ifdef VK_AMD_shader_explicit_vertex_parameter
249 #endif
250 #ifdef VK_EXT_debug_marker
251 #endif
252 #ifdef VK_AMD_gcn_shader
253 #endif
254 #ifdef VK_NV_dedicated_allocation
255 #endif
256 #ifdef VK_EXT_transform_feedback
257 #endif
258 #ifdef VK_NVX_binary_import
259 #endif
260 #ifdef VK_NVX_image_view_handle
261 #endif
262 #ifdef VK_AMD_draw_indirect_count
263 #endif
264 #ifdef VK_AMD_negative_viewport_height
265 #endif
266 #ifdef VK_AMD_gpu_shader_half_float
267 #endif
268 #ifdef VK_AMD_shader_ballot
269 #endif
270 #ifdef VK_EXT_video_encode_h264
271 #endif
272 #ifdef VK_EXT_video_encode_h265
273 #endif
274 #ifdef VK_AMD_texture_gather_bias_lod
275 #endif
276 #ifdef VK_AMD_shader_info
277 #endif
278 #ifdef VK_AMD_shader_image_load_store_lod
279 #endif
280 #ifdef VK_GGP_stream_descriptor_surface
281 #endif
282 #ifdef VK_NV_corner_sampled_image
283 #endif
284 #ifdef VK_IMG_format_pvrtc
285 #endif
286 #ifdef VK_NV_external_memory_capabilities
287 #endif
288 #ifdef VK_NV_external_memory
289 #endif
290 #ifdef VK_NV_external_memory_win32
291 #endif
292 #ifdef VK_NV_win32_keyed_mutex
293 #endif
294 #ifdef VK_EXT_validation_flags
295 #endif
296 #ifdef VK_NN_vi_surface
297 #endif
298 #ifdef VK_EXT_shader_subgroup_ballot
299 #endif
300 #ifdef VK_EXT_shader_subgroup_vote
301 #endif
302 #ifdef VK_EXT_texture_compression_astc_hdr
303 #endif
304 #ifdef VK_EXT_astc_decode_mode
305 #endif
306 #ifdef VK_EXT_pipeline_robustness
307 #endif
308 #ifdef VK_EXT_conditional_rendering
309 #endif
310 #ifdef VK_NV_clip_space_w_scaling
311 #endif
312 #ifdef VK_EXT_direct_mode_display
313 #endif
314 #ifdef VK_EXT_acquire_xlib_display
315 #endif
316 #ifdef VK_EXT_display_surface_counter
317 #endif
318 #ifdef VK_EXT_display_control
319 #endif
320 #ifdef VK_GOOGLE_display_timing
321 #endif
322 #ifdef VK_NV_sample_mask_override_coverage
323 #endif
324 #ifdef VK_NV_geometry_shader_passthrough
325 #endif
326 #ifdef VK_NV_viewport_array2
327 #endif
328 #ifdef VK_NVX_multiview_per_view_attributes
329 #endif
330 #ifdef VK_NV_viewport_swizzle
331 #endif
332 #ifdef VK_EXT_discard_rectangles
333 #endif
334 #ifdef VK_EXT_conservative_rasterization
335 #endif
336 #ifdef VK_EXT_depth_clip_enable
337 #endif
338 #ifdef VK_EXT_swapchain_colorspace
339 #endif
340 #ifdef VK_EXT_hdr_metadata
341 #endif
342 #ifdef VK_MVK_ios_surface
343 #endif
344 #ifdef VK_MVK_macos_surface
345 #endif
346 #ifdef VK_EXT_external_memory_dma_buf
347 #endif
348 #ifdef VK_EXT_queue_family_foreign
349 #endif
350 #ifdef VK_EXT_debug_utils
351 #endif
352 #ifdef VK_ANDROID_external_memory_android_hardware_buffer
353 #endif
354 #ifdef VK_EXT_sampler_filter_minmax
355 #endif
356 #ifdef VK_AMD_gpu_shader_int16
357 #endif
358 #ifdef VK_AMD_mixed_attachment_samples
359 #endif
360 #ifdef VK_AMD_shader_fragment_mask
361 #endif
362 #ifdef VK_EXT_inline_uniform_block
363 #endif
364 #ifdef VK_EXT_shader_stencil_export
365 #endif
366 #ifdef VK_EXT_sample_locations
367 #endif
368 #ifdef VK_EXT_blend_operation_advanced
369 #endif
370 #ifdef VK_NV_fragment_coverage_to_color
371 #endif
372 #ifdef VK_NV_framebuffer_mixed_samples
373 #endif
374 #ifdef VK_NV_fill_rectangle
375 #endif
376 #ifdef VK_NV_shader_sm_builtins
377 #endif
378 #ifdef VK_EXT_post_depth_coverage
379 #endif
380 #ifdef VK_EXT_image_drm_format_modifier
381 #endif
382 #ifdef VK_EXT_validation_cache
383 #endif
384 #ifdef VK_EXT_descriptor_indexing
385 #endif
386 #ifdef VK_EXT_shader_viewport_index_layer
387 #endif
388 #ifdef VK_NV_shading_rate_image
389 #endif
390 #ifdef VK_NV_ray_tracing
391 #endif
392 #ifdef VK_NV_representative_fragment_test
393 #endif
394 #ifdef VK_EXT_filter_cubic
395 #endif
396 #ifdef VK_QCOM_render_pass_shader_resolve
397 #endif
398 #ifdef VK_EXT_global_priority
399 #endif
400 #ifdef VK_EXT_external_memory_host
401 #endif
402 #ifdef VK_AMD_buffer_marker
403 #endif
404 #ifdef VK_AMD_pipeline_compiler_control
405 #endif
406 #ifdef VK_EXT_calibrated_timestamps
407 #endif
408 #ifdef VK_AMD_shader_core_properties
409 #endif
410 #ifdef VK_AMD_memory_overallocation_behavior
411 #endif
412 #ifdef VK_EXT_vertex_attribute_divisor
413 #endif
414 #ifdef VK_GGP_frame_token
415 #endif
416 #ifdef VK_EXT_pipeline_creation_feedback
417 #endif
418 #ifdef VK_NV_shader_subgroup_partitioned
419 #endif
420 #ifdef VK_NV_compute_shader_derivatives
421 #endif
422 #ifdef VK_NV_mesh_shader
423 #endif
424 #ifdef VK_NV_fragment_shader_barycentric
425 #endif
426 #ifdef VK_NV_shader_image_footprint
427 #endif
428 #ifdef VK_NV_scissor_exclusive
429 #endif
430 #ifdef VK_NV_device_diagnostic_checkpoints
431 #endif
432 #ifdef VK_INTEL_shader_integer_functions2
433 #endif
434 #ifdef VK_INTEL_performance_query
435 #endif
436 #ifdef VK_EXT_pci_bus_info
437 #endif
438 #ifdef VK_AMD_display_native_hdr
439 #endif
440 #ifdef VK_FUCHSIA_imagepipe_surface
441 #endif
442 #ifdef VK_EXT_metal_surface
443 #endif
444 #ifdef VK_EXT_fragment_density_map
445 #endif
446 #ifdef VK_EXT_scalar_block_layout
447 #endif
448 #ifdef VK_GOOGLE_hlsl_functionality1
449 #endif
450 #ifdef VK_GOOGLE_decorate_string
451 #endif
452 #ifdef VK_EXT_subgroup_size_control
453 #endif
454 #ifdef VK_AMD_shader_core_properties2
455 #endif
456 #ifdef VK_AMD_device_coherent_memory
457 #endif
458 #ifdef VK_EXT_shader_image_atomic_int64
459 #endif
460 #ifdef VK_EXT_memory_budget
461 #endif
462 #ifdef VK_EXT_memory_priority
463 #endif
464 #ifdef VK_NV_dedicated_allocation_image_aliasing
465 #endif
466 #ifdef VK_EXT_buffer_device_address
467 #endif
468 #ifdef VK_EXT_tooling_info
469 #endif
470 #ifdef VK_EXT_separate_stencil_usage
471 #endif
472 #ifdef VK_EXT_validation_features
473 #endif
474 #ifdef VK_NV_cooperative_matrix
475 #endif
476 #ifdef VK_NV_coverage_reduction_mode
477 #endif
478 #ifdef VK_EXT_fragment_shader_interlock
479 #endif
480 #ifdef VK_EXT_ycbcr_image_arrays
481 #endif
482 #ifdef VK_EXT_provoking_vertex
483 #endif
484 #ifdef VK_EXT_full_screen_exclusive
485 #endif
486 #ifdef VK_EXT_headless_surface
487 #endif
488 #ifdef VK_EXT_line_rasterization
489 #endif
490 #ifdef VK_EXT_shader_atomic_float
491 #endif
492 #ifdef VK_EXT_host_query_reset
493 #endif
494 #ifdef VK_EXT_index_type_uint8
495 #endif
496 #ifdef VK_EXT_extended_dynamic_state
497 #endif
498 #ifdef VK_EXT_shader_atomic_float2
499 #endif
500 #ifdef VK_EXT_surface_maintenance1
501 #endif
502 #ifdef VK_EXT_swapchain_maintenance1
503 #endif
504 #ifdef VK_EXT_shader_demote_to_helper_invocation
505 #endif
506 #ifdef VK_NV_device_generated_commands
507 #endif
508 #ifdef VK_NV_inherited_viewport_scissor
509 #endif
510 #ifdef VK_EXT_texel_buffer_alignment
511 #endif
512 #ifdef VK_QCOM_render_pass_transform
513 #endif
514 #ifdef VK_EXT_device_memory_report
515 #endif
516 #ifdef VK_EXT_acquire_drm_display
517 #endif
518 #ifdef VK_EXT_robustness2
519 #endif
520 #ifdef VK_EXT_custom_border_color
521 #endif
522 #ifdef VK_GOOGLE_user_type
523 #endif
524 #ifdef VK_NV_present_barrier
525 #endif
526 #ifdef VK_EXT_private_data
527 #endif
528 #ifdef VK_EXT_pipeline_creation_cache_control
529 #endif
530 #ifdef VK_NV_device_diagnostics_config
531 #endif
532 #ifdef VK_QCOM_render_pass_store_ops
533 #endif
534 #ifdef VK_NV_low_latency
535 #endif
536 #ifdef VK_EXT_metal_objects
537 #endif
538 #ifdef VK_EXT_descriptor_buffer
539 #endif
540 #ifdef VK_EXT_graphics_pipeline_library
541 #endif
542 #ifdef VK_AMD_shader_early_and_late_fragment_tests
543 #endif
544 #ifdef VK_NV_fragment_shading_rate_enums
545 #endif
546 #ifdef VK_NV_ray_tracing_motion_blur
547 #endif
548 #ifdef VK_EXT_ycbcr_2plane_444_formats
549 #endif
550 #ifdef VK_EXT_fragment_density_map2
551 #endif
552 #ifdef VK_QCOM_rotated_copy_commands
553 #endif
554 #ifdef VK_EXT_image_robustness
555 #endif
556 #ifdef VK_EXT_image_compression_control
557 #endif
558 #ifdef VK_EXT_attachment_feedback_loop_layout
559 #endif
560 #ifdef VK_EXT_4444_formats
561 #endif
562 #ifdef VK_EXT_device_fault
563 #endif
564 #ifdef VK_ARM_rasterization_order_attachment_access
565 #endif
566 #ifdef VK_EXT_rgba10x6_formats
567 #endif
568 #ifdef VK_NV_acquire_winrt_display
569 #endif
570 #ifdef VK_EXT_directfb_surface
571 #endif
572 #ifdef VK_VALVE_mutable_descriptor_type
573 #endif
574 #ifdef VK_EXT_vertex_input_dynamic_state
575 #endif
576 #ifdef VK_EXT_physical_device_drm
577 #endif
578 #ifdef VK_EXT_device_address_binding_report
579 #endif
580 #ifdef VK_EXT_depth_clip_control
581 #endif
582 #ifdef VK_EXT_primitive_topology_list_restart
583 #endif
584 #ifdef VK_FUCHSIA_external_memory
585 #endif
586 #ifdef VK_FUCHSIA_external_semaphore
587 #endif
588 #ifdef VK_FUCHSIA_buffer_collection
589 #endif
590 #ifdef VK_HUAWEI_subpass_shading
591 #endif
592 #ifdef VK_HUAWEI_invocation_mask
593 #endif
594 #ifdef VK_NV_external_memory_rdma
595 #endif
596 #ifdef VK_EXT_pipeline_properties
597 #endif
598 #ifdef VK_EXT_multisampled_render_to_single_sampled
599 #endif
600 #ifdef VK_EXT_extended_dynamic_state2
601 #endif
602 #ifdef VK_QNX_screen_surface
603 #endif
604 #ifdef VK_EXT_color_write_enable
605 #endif
606 #ifdef VK_EXT_primitives_generated_query
607 #endif
608 #ifdef VK_GOOGLE_gfxstream
609 #endif
610 #ifdef VK_EXT_global_priority_query
611 #endif
612 #ifdef VK_EXT_image_view_min_lod
613 #endif
614 #ifdef VK_EXT_multi_draw
615 #endif
616 #ifdef VK_EXT_image_2d_view_of_3d
617 #endif
618 #ifdef VK_EXT_shader_tile_image
619 #endif
620 #ifdef VK_EXT_opacity_micromap
621 #endif
622 #ifdef VK_NV_displacement_micromap
623 #endif
624 #ifdef VK_EXT_load_store_op_none
625 #endif
626 #ifdef VK_HUAWEI_cluster_culling_shader
627 #endif
628 #ifdef VK_EXT_border_color_swizzle
629 #endif
630 #ifdef VK_EXT_pageable_device_local_memory
631 #endif
632 #ifdef VK_ARM_shader_core_properties
633 #endif
634 #ifdef VK_EXT_image_sliced_view_of_3d
635 #endif
636 #ifdef VK_VALVE_descriptor_set_host_mapping
637 #endif
638 #ifdef VK_EXT_depth_clamp_zero_one
639 #endif
640 #ifdef VK_EXT_non_seamless_cube_map
641 #endif
642 #ifdef VK_QCOM_fragment_density_map_offset
643 #endif
644 #ifdef VK_NV_copy_memory_indirect
645 #endif
646 #ifdef VK_NV_memory_decompression
647 #endif
648 #ifdef VK_NV_linear_color_attachment
649 #endif
650 #ifdef VK_GOOGLE_surfaceless_query
651 #endif
652 #ifdef VK_EXT_image_compression_control_swapchain
653 #endif
654 #ifdef VK_QCOM_image_processing
655 #endif
656 #ifdef VK_EXT_extended_dynamic_state3
657 #endif
658 #ifdef VK_EXT_subpass_merge_feedback
659 #endif
660 #ifdef VK_LUNARG_direct_driver_loading
661 #endif
662 #ifdef VK_EXT_shader_module_identifier
663 #endif
664 #ifdef VK_EXT_rasterization_order_attachment_access
665 #endif
666 #ifdef VK_NV_optical_flow
667 #endif
668 #ifdef VK_EXT_legacy_dithering
669 #endif
670 #ifdef VK_EXT_pipeline_protected_access
671 #endif
672 #ifdef VK_EXT_shader_object
673 #endif
674 #ifdef VK_QCOM_tile_properties
675 #endif
676 #ifdef VK_SEC_amigo_profiling
677 #endif
678 #ifdef VK_QCOM_multiview_per_view_viewports
679 #endif
680 #ifdef VK_NV_ray_tracing_invocation_reorder
681 #endif
682 #ifdef VK_EXT_mutable_descriptor_type
683 #endif
684 #ifdef VK_ARM_shader_core_builtins
685 #endif
686 #ifdef VK_EXT_pipeline_library_group_handles
687 #endif
688 #ifdef VK_QCOM_multiview_per_view_render_areas
689 #endif
690 #ifdef VK_EXT_attachment_feedback_loop_dynamic_state
691 #endif
692 #ifdef VK_KHR_acceleration_structure
693 #endif
694 #ifdef VK_KHR_ray_tracing_pipeline
695 #endif
696 #ifdef VK_KHR_ray_query
697 #endif
698 #ifdef VK_EXT_mesh_shader
699 #endif
goldfish_vk_struct_type(const void * structExtension)700 uint32_t goldfish_vk_struct_type(const void* structExtension) {
701     const uint32_t asStructType = *(reinterpret_cast<const uint32_t*>(structExtension));
702     return asStructType;
703 }
704 
goldfish_vk_extension_struct_size(VkStructureType rootType,const void * structExtension)705 size_t goldfish_vk_extension_struct_size(VkStructureType rootType, const void* structExtension) {
706     if (!structExtension) {
707         return (size_t)0;
708     }
709     uint32_t structType = (uint32_t)goldfish_vk_struct_type(structExtension);
710     switch (structType) {
711 #ifdef VK_VERSION_1_0
712         case VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO: {
713             return sizeof(VkShaderModuleCreateInfo);
714         }
715 #endif
716 #ifdef VK_VERSION_1_1
717         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES: {
718             return sizeof(VkPhysicalDeviceSubgroupProperties);
719         }
720         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES: {
721             return sizeof(VkPhysicalDevice16BitStorageFeatures);
722         }
723         case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS: {
724             return sizeof(VkMemoryDedicatedRequirements);
725         }
726         case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO: {
727             return sizeof(VkMemoryDedicatedAllocateInfo);
728         }
729         case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO: {
730             return sizeof(VkMemoryAllocateFlagsInfo);
731         }
732         case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO: {
733             return sizeof(VkDeviceGroupRenderPassBeginInfo);
734         }
735         case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO: {
736             return sizeof(VkDeviceGroupCommandBufferBeginInfo);
737         }
738         case VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO: {
739             return sizeof(VkDeviceGroupSubmitInfo);
740         }
741         case VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO: {
742             return sizeof(VkDeviceGroupBindSparseInfo);
743         }
744         case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO: {
745             return sizeof(VkBindBufferMemoryDeviceGroupInfo);
746         }
747         case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO: {
748             return sizeof(VkBindImageMemoryDeviceGroupInfo);
749         }
750         case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO: {
751             return sizeof(VkDeviceGroupDeviceCreateInfo);
752         }
753         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2: {
754             return sizeof(VkPhysicalDeviceFeatures2);
755         }
756         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES: {
757             return sizeof(VkPhysicalDevicePointClippingProperties);
758         }
759         case VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO: {
760             return sizeof(VkRenderPassInputAttachmentAspectCreateInfo);
761         }
762         case VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO: {
763             return sizeof(VkImageViewUsageCreateInfo);
764         }
765         case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO: {
766             return sizeof(VkPipelineTessellationDomainOriginStateCreateInfo);
767         }
768         case VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO: {
769             return sizeof(VkRenderPassMultiviewCreateInfo);
770         }
771         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES: {
772             return sizeof(VkPhysicalDeviceMultiviewFeatures);
773         }
774         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES: {
775             return sizeof(VkPhysicalDeviceMultiviewProperties);
776         }
777         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES: {
778             return sizeof(VkPhysicalDeviceVariablePointersFeatures);
779         }
780         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES: {
781             return sizeof(VkPhysicalDeviceProtectedMemoryFeatures);
782         }
783         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES: {
784             return sizeof(VkPhysicalDeviceProtectedMemoryProperties);
785         }
786         case VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO: {
787             return sizeof(VkProtectedSubmitInfo);
788         }
789         case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO: {
790             return sizeof(VkSamplerYcbcrConversionInfo);
791         }
792         case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO: {
793             return sizeof(VkBindImagePlaneMemoryInfo);
794         }
795         case VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO: {
796             return sizeof(VkImagePlaneMemoryRequirementsInfo);
797         }
798         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES: {
799             return sizeof(VkPhysicalDeviceSamplerYcbcrConversionFeatures);
800         }
801         case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES: {
802             return sizeof(VkSamplerYcbcrConversionImageFormatProperties);
803         }
804         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO: {
805             return sizeof(VkPhysicalDeviceExternalImageFormatInfo);
806         }
807         case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES: {
808             return sizeof(VkExternalImageFormatProperties);
809         }
810         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES: {
811             return sizeof(VkPhysicalDeviceIDProperties);
812         }
813         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO: {
814             return sizeof(VkExternalMemoryImageCreateInfo);
815         }
816         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO: {
817             return sizeof(VkExternalMemoryBufferCreateInfo);
818         }
819         case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO: {
820             return sizeof(VkExportMemoryAllocateInfo);
821         }
822         case VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO: {
823             return sizeof(VkExportFenceCreateInfo);
824         }
825         case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO: {
826             return sizeof(VkExportSemaphoreCreateInfo);
827         }
828         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES: {
829             return sizeof(VkPhysicalDeviceMaintenance3Properties);
830         }
831         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES: {
832             return sizeof(VkPhysicalDeviceShaderDrawParametersFeatures);
833         }
834 #endif
835 #ifdef VK_VERSION_1_2
836         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES: {
837             return sizeof(VkPhysicalDeviceVulkan11Features);
838         }
839         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES: {
840             return sizeof(VkPhysicalDeviceVulkan11Properties);
841         }
842         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES: {
843             return sizeof(VkPhysicalDeviceVulkan12Features);
844         }
845         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES: {
846             return sizeof(VkPhysicalDeviceVulkan12Properties);
847         }
848         case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO: {
849             return sizeof(VkImageFormatListCreateInfo);
850         }
851         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES: {
852             return sizeof(VkPhysicalDevice8BitStorageFeatures);
853         }
854         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES: {
855             return sizeof(VkPhysicalDeviceDriverProperties);
856         }
857         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES: {
858             return sizeof(VkPhysicalDeviceShaderAtomicInt64Features);
859         }
860         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES: {
861             return sizeof(VkPhysicalDeviceShaderFloat16Int8Features);
862         }
863         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES: {
864             return sizeof(VkPhysicalDeviceFloatControlsProperties);
865         }
866         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO: {
867             return sizeof(VkDescriptorSetLayoutBindingFlagsCreateInfo);
868         }
869         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES: {
870             return sizeof(VkPhysicalDeviceDescriptorIndexingFeatures);
871         }
872         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES: {
873             return sizeof(VkPhysicalDeviceDescriptorIndexingProperties);
874         }
875         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO: {
876             return sizeof(VkDescriptorSetVariableDescriptorCountAllocateInfo);
877         }
878         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT: {
879             return sizeof(VkDescriptorSetVariableDescriptorCountLayoutSupport);
880         }
881         case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE: {
882             return sizeof(VkSubpassDescriptionDepthStencilResolve);
883         }
884         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES: {
885             return sizeof(VkPhysicalDeviceDepthStencilResolveProperties);
886         }
887         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES: {
888             return sizeof(VkPhysicalDeviceScalarBlockLayoutFeatures);
889         }
890         case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO: {
891             return sizeof(VkImageStencilUsageCreateInfo);
892         }
893         case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO: {
894             return sizeof(VkSamplerReductionModeCreateInfo);
895         }
896         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES: {
897             return sizeof(VkPhysicalDeviceSamplerFilterMinmaxProperties);
898         }
899         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES: {
900             return sizeof(VkPhysicalDeviceVulkanMemoryModelFeatures);
901         }
902         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES: {
903             return sizeof(VkPhysicalDeviceImagelessFramebufferFeatures);
904         }
905         case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO: {
906             return sizeof(VkFramebufferAttachmentsCreateInfo);
907         }
908         case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO: {
909             return sizeof(VkRenderPassAttachmentBeginInfo);
910         }
911         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES: {
912             return sizeof(VkPhysicalDeviceUniformBufferStandardLayoutFeatures);
913         }
914         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES: {
915             return sizeof(VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures);
916         }
917         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES: {
918             return sizeof(VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures);
919         }
920         case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT: {
921             return sizeof(VkAttachmentReferenceStencilLayout);
922         }
923         case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT: {
924             return sizeof(VkAttachmentDescriptionStencilLayout);
925         }
926         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES: {
927             return sizeof(VkPhysicalDeviceHostQueryResetFeatures);
928         }
929         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES: {
930             return sizeof(VkPhysicalDeviceTimelineSemaphoreFeatures);
931         }
932         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES: {
933             return sizeof(VkPhysicalDeviceTimelineSemaphoreProperties);
934         }
935         case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO: {
936             return sizeof(VkSemaphoreTypeCreateInfo);
937         }
938         case VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO: {
939             return sizeof(VkTimelineSemaphoreSubmitInfo);
940         }
941         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES: {
942             return sizeof(VkPhysicalDeviceBufferDeviceAddressFeatures);
943         }
944         case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO: {
945             return sizeof(VkBufferOpaqueCaptureAddressCreateInfo);
946         }
947         case VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO: {
948             return sizeof(VkMemoryOpaqueCaptureAddressAllocateInfo);
949         }
950 #endif
951 #ifdef VK_VERSION_1_3
952         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES: {
953             return sizeof(VkPhysicalDeviceVulkan13Features);
954         }
955         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES: {
956             return sizeof(VkPhysicalDeviceVulkan13Properties);
957         }
958         case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO: {
959             return sizeof(VkPipelineCreationFeedbackCreateInfo);
960         }
961         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES: {
962             return sizeof(VkPhysicalDeviceShaderTerminateInvocationFeatures);
963         }
964         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES: {
965             return sizeof(VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures);
966         }
967         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES: {
968             return sizeof(VkPhysicalDevicePrivateDataFeatures);
969         }
970         case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO: {
971             return sizeof(VkDevicePrivateDataCreateInfo);
972         }
973         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES: {
974             return sizeof(VkPhysicalDevicePipelineCreationCacheControlFeatures);
975         }
976         case VK_STRUCTURE_TYPE_MEMORY_BARRIER_2: {
977             return sizeof(VkMemoryBarrier2);
978         }
979         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES: {
980             return sizeof(VkPhysicalDeviceSynchronization2Features);
981         }
982         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES: {
983             return sizeof(VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures);
984         }
985         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES: {
986             return sizeof(VkPhysicalDeviceImageRobustnessFeatures);
987         }
988         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES: {
989             return sizeof(VkPhysicalDeviceSubgroupSizeControlFeatures);
990         }
991         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES: {
992             return sizeof(VkPhysicalDeviceSubgroupSizeControlProperties);
993         }
994         case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO: {
995             return sizeof(VkPipelineShaderStageRequiredSubgroupSizeCreateInfo);
996         }
997         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES: {
998             return sizeof(VkPhysicalDeviceInlineUniformBlockFeatures);
999         }
1000         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES: {
1001             return sizeof(VkPhysicalDeviceInlineUniformBlockProperties);
1002         }
1003         case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK: {
1004             return sizeof(VkWriteDescriptorSetInlineUniformBlock);
1005         }
1006         case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO: {
1007             return sizeof(VkDescriptorPoolInlineUniformBlockCreateInfo);
1008         }
1009         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES: {
1010             return sizeof(VkPhysicalDeviceTextureCompressionASTCHDRFeatures);
1011         }
1012         case VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO: {
1013             return sizeof(VkPipelineRenderingCreateInfo);
1014         }
1015         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES: {
1016             return sizeof(VkPhysicalDeviceDynamicRenderingFeatures);
1017         }
1018         case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO: {
1019             return sizeof(VkCommandBufferInheritanceRenderingInfo);
1020         }
1021         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES: {
1022             return sizeof(VkPhysicalDeviceShaderIntegerDotProductFeatures);
1023         }
1024         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES: {
1025             return sizeof(VkPhysicalDeviceShaderIntegerDotProductProperties);
1026         }
1027         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES: {
1028             return sizeof(VkPhysicalDeviceTexelBufferAlignmentProperties);
1029         }
1030         case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3: {
1031             return sizeof(VkFormatProperties3);
1032         }
1033         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES: {
1034             return sizeof(VkPhysicalDeviceMaintenance4Features);
1035         }
1036         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES: {
1037             return sizeof(VkPhysicalDeviceMaintenance4Properties);
1038         }
1039 #endif
1040 #ifdef VK_KHR_swapchain
1041         case VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR: {
1042             return sizeof(VkImageSwapchainCreateInfoKHR);
1043         }
1044         case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR: {
1045             return sizeof(VkBindImageMemorySwapchainInfoKHR);
1046         }
1047         case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR: {
1048             return sizeof(VkDeviceGroupPresentInfoKHR);
1049         }
1050         case VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR: {
1051             return sizeof(VkDeviceGroupSwapchainCreateInfoKHR);
1052         }
1053 #endif
1054 #ifdef VK_KHR_display_swapchain
1055         case VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR: {
1056             return sizeof(VkDisplayPresentInfoKHR);
1057         }
1058 #endif
1059 #ifdef VK_KHR_video_queue
1060         case VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR: {
1061             return sizeof(VkQueueFamilyQueryResultStatusPropertiesKHR);
1062         }
1063         case VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR: {
1064             return sizeof(VkQueueFamilyVideoPropertiesKHR);
1065         }
1066         case VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR: {
1067             return sizeof(VkVideoProfileInfoKHR);
1068         }
1069         case VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR: {
1070             return sizeof(VkVideoProfileListInfoKHR);
1071         }
1072 #endif
1073 #ifdef VK_KHR_video_decode_queue
1074         case VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR: {
1075             return sizeof(VkVideoDecodeCapabilitiesKHR);
1076         }
1077         case VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR: {
1078             return sizeof(VkVideoDecodeUsageInfoKHR);
1079         }
1080 #endif
1081 #ifdef VK_KHR_video_decode_h264
1082         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR: {
1083             return sizeof(VkVideoDecodeH264ProfileInfoKHR);
1084         }
1085         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR: {
1086             return sizeof(VkVideoDecodeH264CapabilitiesKHR);
1087         }
1088         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR: {
1089             return sizeof(VkVideoDecodeH264SessionParametersAddInfoKHR);
1090         }
1091         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR: {
1092             return sizeof(VkVideoDecodeH264SessionParametersCreateInfoKHR);
1093         }
1094         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR: {
1095             return sizeof(VkVideoDecodeH264PictureInfoKHR);
1096         }
1097         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR: {
1098             return sizeof(VkVideoDecodeH264DpbSlotInfoKHR);
1099         }
1100 #endif
1101 #ifdef VK_KHR_dynamic_rendering
1102         case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR: {
1103             return sizeof(VkRenderingFragmentShadingRateAttachmentInfoKHR);
1104         }
1105         case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT: {
1106             return sizeof(VkRenderingFragmentDensityMapAttachmentInfoEXT);
1107         }
1108         case VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD: {
1109             return sizeof(VkAttachmentSampleCountInfoAMD);
1110         }
1111         case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX: {
1112             return sizeof(VkMultiviewPerViewAttributesInfoNVX);
1113         }
1114 #endif
1115 #ifdef VK_KHR_external_memory_win32
1116         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR: {
1117             return sizeof(VkImportMemoryWin32HandleInfoKHR);
1118         }
1119         case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR: {
1120             return sizeof(VkExportMemoryWin32HandleInfoKHR);
1121         }
1122 #endif
1123 #ifdef VK_KHR_external_memory_fd
1124         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR: {
1125             return sizeof(VkImportMemoryFdInfoKHR);
1126         }
1127 #endif
1128 #ifdef VK_KHR_win32_keyed_mutex
1129         case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR: {
1130             return sizeof(VkWin32KeyedMutexAcquireReleaseInfoKHR);
1131         }
1132 #endif
1133 #ifdef VK_KHR_external_semaphore_win32
1134         case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR: {
1135             return sizeof(VkExportSemaphoreWin32HandleInfoKHR);
1136         }
1137         case VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR: {
1138             return sizeof(VkD3D12FenceSubmitInfoKHR);
1139         }
1140 #endif
1141 #ifdef VK_KHR_push_descriptor
1142         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR: {
1143             return sizeof(VkPhysicalDevicePushDescriptorPropertiesKHR);
1144         }
1145 #endif
1146 #ifdef VK_KHR_incremental_present
1147         case VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR: {
1148             return sizeof(VkPresentRegionsKHR);
1149         }
1150 #endif
1151 #ifdef VK_KHR_shared_presentable_image
1152         case VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR: {
1153             return sizeof(VkSharedPresentSurfaceCapabilitiesKHR);
1154         }
1155 #endif
1156 #ifdef VK_KHR_external_fence_win32
1157         case VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR: {
1158             return sizeof(VkExportFenceWin32HandleInfoKHR);
1159         }
1160 #endif
1161 #ifdef VK_KHR_performance_query
1162         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR: {
1163             return sizeof(VkPhysicalDevicePerformanceQueryFeaturesKHR);
1164         }
1165         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR: {
1166             return sizeof(VkPhysicalDevicePerformanceQueryPropertiesKHR);
1167         }
1168         case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR: {
1169             return sizeof(VkQueryPoolPerformanceCreateInfoKHR);
1170         }
1171         case VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR: {
1172             return sizeof(VkPerformanceQuerySubmitInfoKHR);
1173         }
1174 #endif
1175 #ifdef VK_KHR_portability_subset
1176 #ifdef VK_ENABLE_BETA_EXTENSIONS
1177         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR: {
1178             return sizeof(VkPhysicalDevicePortabilitySubsetFeaturesKHR);
1179         }
1180 #endif  // VK_ENABLE_BETA_EXTENSIONS
1181 #ifdef VK_ENABLE_BETA_EXTENSIONS
1182         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR: {
1183             return sizeof(VkPhysicalDevicePortabilitySubsetPropertiesKHR);
1184         }
1185 #endif  // VK_ENABLE_BETA_EXTENSIONS
1186 #endif
1187 #ifdef VK_KHR_shader_clock
1188         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR: {
1189             return sizeof(VkPhysicalDeviceShaderClockFeaturesKHR);
1190         }
1191 #endif
1192 #ifdef VK_KHR_video_decode_h265
1193         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR: {
1194             return sizeof(VkVideoDecodeH265ProfileInfoKHR);
1195         }
1196         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR: {
1197             return sizeof(VkVideoDecodeH265CapabilitiesKHR);
1198         }
1199         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR: {
1200             return sizeof(VkVideoDecodeH265SessionParametersAddInfoKHR);
1201         }
1202         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR: {
1203             return sizeof(VkVideoDecodeH265SessionParametersCreateInfoKHR);
1204         }
1205         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR: {
1206             return sizeof(VkVideoDecodeH265PictureInfoKHR);
1207         }
1208         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR: {
1209             return sizeof(VkVideoDecodeH265DpbSlotInfoKHR);
1210         }
1211 #endif
1212 #ifdef VK_KHR_global_priority
1213         case VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR: {
1214             return sizeof(VkDeviceQueueGlobalPriorityCreateInfoKHR);
1215         }
1216         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR: {
1217             return sizeof(VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR);
1218         }
1219         case VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR: {
1220             return sizeof(VkQueueFamilyGlobalPriorityPropertiesKHR);
1221         }
1222 #endif
1223 #ifdef VK_KHR_fragment_shading_rate
1224         case VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR: {
1225             return sizeof(VkFragmentShadingRateAttachmentInfoKHR);
1226         }
1227         case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR: {
1228             return sizeof(VkPipelineFragmentShadingRateStateCreateInfoKHR);
1229         }
1230         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR: {
1231             return sizeof(VkPhysicalDeviceFragmentShadingRateFeaturesKHR);
1232         }
1233         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR: {
1234             return sizeof(VkPhysicalDeviceFragmentShadingRatePropertiesKHR);
1235         }
1236 #endif
1237 #ifdef VK_KHR_surface_protected_capabilities
1238         case VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR: {
1239             return sizeof(VkSurfaceProtectedCapabilitiesKHR);
1240         }
1241 #endif
1242 #ifdef VK_KHR_present_wait
1243         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR: {
1244             return sizeof(VkPhysicalDevicePresentWaitFeaturesKHR);
1245         }
1246 #endif
1247 #ifdef VK_KHR_pipeline_executable_properties
1248         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR: {
1249             return sizeof(VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR);
1250         }
1251 #endif
1252 #ifdef VK_KHR_pipeline_library
1253         case VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR: {
1254             return sizeof(VkPipelineLibraryCreateInfoKHR);
1255         }
1256 #endif
1257 #ifdef VK_KHR_present_id
1258         case VK_STRUCTURE_TYPE_PRESENT_ID_KHR: {
1259             return sizeof(VkPresentIdKHR);
1260         }
1261         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR: {
1262             return sizeof(VkPhysicalDevicePresentIdFeaturesKHR);
1263         }
1264 #endif
1265 #ifdef VK_KHR_video_encode_queue
1266 #ifdef VK_ENABLE_BETA_EXTENSIONS
1267         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR: {
1268             return sizeof(VkVideoEncodeCapabilitiesKHR);
1269         }
1270 #endif  // VK_ENABLE_BETA_EXTENSIONS
1271 #ifdef VK_ENABLE_BETA_EXTENSIONS
1272         case VK_STRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR: {
1273             return sizeof(VkQueryPoolVideoEncodeFeedbackCreateInfoKHR);
1274         }
1275 #endif  // VK_ENABLE_BETA_EXTENSIONS
1276 #ifdef VK_ENABLE_BETA_EXTENSIONS
1277         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR: {
1278             return sizeof(VkVideoEncodeUsageInfoKHR);
1279         }
1280 #endif  // VK_ENABLE_BETA_EXTENSIONS
1281 #ifdef VK_ENABLE_BETA_EXTENSIONS
1282         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR: {
1283             return sizeof(VkVideoEncodeRateControlLayerInfoKHR);
1284         }
1285 #endif  // VK_ENABLE_BETA_EXTENSIONS
1286 #ifdef VK_ENABLE_BETA_EXTENSIONS
1287         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR: {
1288             return sizeof(VkVideoEncodeRateControlInfoKHR);
1289         }
1290 #endif  // VK_ENABLE_BETA_EXTENSIONS
1291 #endif
1292 #ifdef VK_KHR_synchronization2
1293         case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV: {
1294             return sizeof(VkQueueFamilyCheckpointProperties2NV);
1295         }
1296 #endif
1297 #ifdef VK_KHR_fragment_shader_barycentric
1298         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR: {
1299             return sizeof(VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR);
1300         }
1301         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR: {
1302             return sizeof(VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR);
1303         }
1304 #endif
1305 #ifdef VK_KHR_shader_subgroup_uniform_control_flow
1306         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR: {
1307             return sizeof(VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR);
1308         }
1309 #endif
1310 #ifdef VK_KHR_workgroup_memory_explicit_layout
1311         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR: {
1312             return sizeof(VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR);
1313         }
1314 #endif
1315 #ifdef VK_KHR_ray_tracing_maintenance1
1316         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR: {
1317             return sizeof(VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR);
1318         }
1319 #endif
1320 #ifdef VK_KHR_ray_tracing_position_fetch
1321         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR: {
1322             return sizeof(VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR);
1323         }
1324 #endif
1325 #ifdef VK_ANDROID_native_buffer
1326         case VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID: {
1327             return sizeof(VkNativeBufferANDROID);
1328         }
1329 #endif
1330 #ifdef VK_EXT_debug_report
1331         case VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT: {
1332             return sizeof(VkDebugReportCallbackCreateInfoEXT);
1333         }
1334 #endif
1335 #ifdef VK_AMD_rasterization_order
1336         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD: {
1337             return sizeof(VkPipelineRasterizationStateRasterizationOrderAMD);
1338         }
1339 #endif
1340 #ifdef VK_NV_dedicated_allocation
1341         case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV: {
1342             return sizeof(VkDedicatedAllocationImageCreateInfoNV);
1343         }
1344         case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV: {
1345             return sizeof(VkDedicatedAllocationBufferCreateInfoNV);
1346         }
1347         case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV: {
1348             return sizeof(VkDedicatedAllocationMemoryAllocateInfoNV);
1349         }
1350 #endif
1351 #ifdef VK_EXT_transform_feedback
1352         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT: {
1353             return sizeof(VkPhysicalDeviceTransformFeedbackFeaturesEXT);
1354         }
1355         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT: {
1356             return sizeof(VkPhysicalDeviceTransformFeedbackPropertiesEXT);
1357         }
1358         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT: {
1359             return sizeof(VkPipelineRasterizationStateStreamCreateInfoEXT);
1360         }
1361 #endif
1362 #ifdef VK_EXT_video_encode_h264
1363 #ifdef VK_ENABLE_BETA_EXTENSIONS
1364         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT: {
1365             return sizeof(VkVideoEncodeH264CapabilitiesEXT);
1366         }
1367 #endif  // VK_ENABLE_BETA_EXTENSIONS
1368 #ifdef VK_ENABLE_BETA_EXTENSIONS
1369         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT: {
1370             return sizeof(VkVideoEncodeH264SessionParametersAddInfoEXT);
1371         }
1372 #endif  // VK_ENABLE_BETA_EXTENSIONS
1373 #ifdef VK_ENABLE_BETA_EXTENSIONS
1374         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT: {
1375             return sizeof(VkVideoEncodeH264SessionParametersCreateInfoEXT);
1376         }
1377 #endif  // VK_ENABLE_BETA_EXTENSIONS
1378 #ifdef VK_ENABLE_BETA_EXTENSIONS
1379         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT: {
1380             return sizeof(VkVideoEncodeH264VclFrameInfoEXT);
1381         }
1382 #endif  // VK_ENABLE_BETA_EXTENSIONS
1383 #ifdef VK_ENABLE_BETA_EXTENSIONS
1384         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT: {
1385             return sizeof(VkVideoEncodeH264DpbSlotInfoEXT);
1386         }
1387 #endif  // VK_ENABLE_BETA_EXTENSIONS
1388 #ifdef VK_ENABLE_BETA_EXTENSIONS
1389         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_EXT: {
1390             return sizeof(VkVideoEncodeH264ProfileInfoEXT);
1391         }
1392 #endif  // VK_ENABLE_BETA_EXTENSIONS
1393 #ifdef VK_ENABLE_BETA_EXTENSIONS
1394         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT: {
1395             return sizeof(VkVideoEncodeH264RateControlInfoEXT);
1396         }
1397 #endif  // VK_ENABLE_BETA_EXTENSIONS
1398 #ifdef VK_ENABLE_BETA_EXTENSIONS
1399         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT: {
1400             return sizeof(VkVideoEncodeH264RateControlLayerInfoEXT);
1401         }
1402 #endif  // VK_ENABLE_BETA_EXTENSIONS
1403 #endif
1404 #ifdef VK_EXT_video_encode_h265
1405 #ifdef VK_ENABLE_BETA_EXTENSIONS
1406         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT: {
1407             return sizeof(VkVideoEncodeH265CapabilitiesEXT);
1408         }
1409 #endif  // VK_ENABLE_BETA_EXTENSIONS
1410 #ifdef VK_ENABLE_BETA_EXTENSIONS
1411         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT: {
1412             return sizeof(VkVideoEncodeH265SessionParametersAddInfoEXT);
1413         }
1414 #endif  // VK_ENABLE_BETA_EXTENSIONS
1415 #ifdef VK_ENABLE_BETA_EXTENSIONS
1416         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT: {
1417             return sizeof(VkVideoEncodeH265SessionParametersCreateInfoEXT);
1418         }
1419 #endif  // VK_ENABLE_BETA_EXTENSIONS
1420 #ifdef VK_ENABLE_BETA_EXTENSIONS
1421         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT: {
1422             return sizeof(VkVideoEncodeH265VclFrameInfoEXT);
1423         }
1424 #endif  // VK_ENABLE_BETA_EXTENSIONS
1425 #ifdef VK_ENABLE_BETA_EXTENSIONS
1426         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT: {
1427             return sizeof(VkVideoEncodeH265DpbSlotInfoEXT);
1428         }
1429 #endif  // VK_ENABLE_BETA_EXTENSIONS
1430 #ifdef VK_ENABLE_BETA_EXTENSIONS
1431         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_EXT: {
1432             return sizeof(VkVideoEncodeH265ProfileInfoEXT);
1433         }
1434 #endif  // VK_ENABLE_BETA_EXTENSIONS
1435 #ifdef VK_ENABLE_BETA_EXTENSIONS
1436         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT: {
1437             return sizeof(VkVideoEncodeH265RateControlInfoEXT);
1438         }
1439 #endif  // VK_ENABLE_BETA_EXTENSIONS
1440 #ifdef VK_ENABLE_BETA_EXTENSIONS
1441         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT: {
1442             return sizeof(VkVideoEncodeH265RateControlLayerInfoEXT);
1443         }
1444 #endif  // VK_ENABLE_BETA_EXTENSIONS
1445 #endif
1446 #ifdef VK_AMD_texture_gather_bias_lod
1447         case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD: {
1448             return sizeof(VkTextureLODGatherFormatPropertiesAMD);
1449         }
1450 #endif
1451 #ifdef VK_NV_corner_sampled_image
1452         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV: {
1453             return sizeof(VkPhysicalDeviceCornerSampledImageFeaturesNV);
1454         }
1455 #endif
1456 #ifdef VK_NV_external_memory
1457         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV: {
1458             return sizeof(VkExternalMemoryImageCreateInfoNV);
1459         }
1460         case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV: {
1461             return sizeof(VkExportMemoryAllocateInfoNV);
1462         }
1463 #endif
1464 #ifdef VK_NV_external_memory_win32
1465         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV: {
1466             return sizeof(VkImportMemoryWin32HandleInfoNV);
1467         }
1468         case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV: {
1469             return sizeof(VkExportMemoryWin32HandleInfoNV);
1470         }
1471 #endif
1472 #ifdef VK_NV_win32_keyed_mutex
1473         case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV: {
1474             return sizeof(VkWin32KeyedMutexAcquireReleaseInfoNV);
1475         }
1476 #endif
1477 #ifdef VK_EXT_validation_flags
1478         case VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT: {
1479             return sizeof(VkValidationFlagsEXT);
1480         }
1481 #endif
1482 #ifdef VK_EXT_astc_decode_mode
1483         case VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT: {
1484             return sizeof(VkImageViewASTCDecodeModeEXT);
1485         }
1486         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT: {
1487             return sizeof(VkPhysicalDeviceASTCDecodeFeaturesEXT);
1488         }
1489 #endif
1490 #ifdef VK_EXT_pipeline_robustness
1491         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT: {
1492             return sizeof(VkPhysicalDevicePipelineRobustnessFeaturesEXT);
1493         }
1494         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT: {
1495             return sizeof(VkPhysicalDevicePipelineRobustnessPropertiesEXT);
1496         }
1497         case VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT: {
1498             return sizeof(VkPipelineRobustnessCreateInfoEXT);
1499         }
1500 #endif
1501 #ifdef VK_EXT_conditional_rendering
1502         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT: {
1503             return sizeof(VkPhysicalDeviceConditionalRenderingFeaturesEXT);
1504         }
1505         case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT: {
1506             return sizeof(VkCommandBufferInheritanceConditionalRenderingInfoEXT);
1507         }
1508 #endif
1509 #ifdef VK_NV_clip_space_w_scaling
1510         case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV: {
1511             return sizeof(VkPipelineViewportWScalingStateCreateInfoNV);
1512         }
1513 #endif
1514 #ifdef VK_EXT_display_control
1515         case VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT: {
1516             return sizeof(VkSwapchainCounterCreateInfoEXT);
1517         }
1518 #endif
1519 #ifdef VK_GOOGLE_display_timing
1520         case VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE: {
1521             return sizeof(VkPresentTimesInfoGOOGLE);
1522         }
1523 #endif
1524 #ifdef VK_NVX_multiview_per_view_attributes
1525         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX: {
1526             return sizeof(VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX);
1527         }
1528 #endif
1529 #ifdef VK_NV_viewport_swizzle
1530         case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV: {
1531             return sizeof(VkPipelineViewportSwizzleStateCreateInfoNV);
1532         }
1533 #endif
1534 #ifdef VK_EXT_discard_rectangles
1535         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT: {
1536             return sizeof(VkPhysicalDeviceDiscardRectanglePropertiesEXT);
1537         }
1538         case VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT: {
1539             return sizeof(VkPipelineDiscardRectangleStateCreateInfoEXT);
1540         }
1541 #endif
1542 #ifdef VK_EXT_conservative_rasterization
1543         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT: {
1544             return sizeof(VkPhysicalDeviceConservativeRasterizationPropertiesEXT);
1545         }
1546         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT: {
1547             return sizeof(VkPipelineRasterizationConservativeStateCreateInfoEXT);
1548         }
1549 #endif
1550 #ifdef VK_EXT_depth_clip_enable
1551         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT: {
1552             return sizeof(VkPhysicalDeviceDepthClipEnableFeaturesEXT);
1553         }
1554         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT: {
1555             return sizeof(VkPipelineRasterizationDepthClipStateCreateInfoEXT);
1556         }
1557 #endif
1558 #ifdef VK_EXT_debug_utils
1559         case VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT: {
1560             return sizeof(VkDebugUtilsObjectNameInfoEXT);
1561         }
1562         case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT: {
1563             return sizeof(VkDebugUtilsMessengerCreateInfoEXT);
1564         }
1565 #endif
1566 #ifdef VK_ANDROID_external_memory_android_hardware_buffer
1567         case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID: {
1568             return sizeof(VkAndroidHardwareBufferUsageANDROID);
1569         }
1570         case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID: {
1571             return sizeof(VkAndroidHardwareBufferFormatPropertiesANDROID);
1572         }
1573         case VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID: {
1574             return sizeof(VkImportAndroidHardwareBufferInfoANDROID);
1575         }
1576         case VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID: {
1577             return sizeof(VkExternalFormatANDROID);
1578         }
1579         case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID: {
1580             return sizeof(VkAndroidHardwareBufferFormatProperties2ANDROID);
1581         }
1582 #endif
1583 #ifdef VK_EXT_sample_locations
1584         case VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT: {
1585             return sizeof(VkSampleLocationsInfoEXT);
1586         }
1587         case VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT: {
1588             return sizeof(VkRenderPassSampleLocationsBeginInfoEXT);
1589         }
1590         case VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT: {
1591             return sizeof(VkPipelineSampleLocationsStateCreateInfoEXT);
1592         }
1593         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT: {
1594             return sizeof(VkPhysicalDeviceSampleLocationsPropertiesEXT);
1595         }
1596 #endif
1597 #ifdef VK_EXT_blend_operation_advanced
1598         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT: {
1599             return sizeof(VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT);
1600         }
1601         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT: {
1602             return sizeof(VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT);
1603         }
1604         case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT: {
1605             return sizeof(VkPipelineColorBlendAdvancedStateCreateInfoEXT);
1606         }
1607 #endif
1608 #ifdef VK_NV_fragment_coverage_to_color
1609         case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV: {
1610             return sizeof(VkPipelineCoverageToColorStateCreateInfoNV);
1611         }
1612 #endif
1613 #ifdef VK_NV_framebuffer_mixed_samples
1614         case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV: {
1615             return sizeof(VkPipelineCoverageModulationStateCreateInfoNV);
1616         }
1617 #endif
1618 #ifdef VK_NV_shader_sm_builtins
1619         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV: {
1620             return sizeof(VkPhysicalDeviceShaderSMBuiltinsPropertiesNV);
1621         }
1622         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV: {
1623             return sizeof(VkPhysicalDeviceShaderSMBuiltinsFeaturesNV);
1624         }
1625 #endif
1626 #ifdef VK_EXT_image_drm_format_modifier
1627         case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT: {
1628             return sizeof(VkDrmFormatModifierPropertiesListEXT);
1629         }
1630         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT: {
1631             return sizeof(VkPhysicalDeviceImageDrmFormatModifierInfoEXT);
1632         }
1633         case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT: {
1634             return sizeof(VkImageDrmFormatModifierListCreateInfoEXT);
1635         }
1636         case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT: {
1637             return sizeof(VkImageDrmFormatModifierExplicitCreateInfoEXT);
1638         }
1639         case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT: {
1640             return sizeof(VkDrmFormatModifierPropertiesList2EXT);
1641         }
1642 #endif
1643 #ifdef VK_EXT_validation_cache
1644         case VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT: {
1645             return sizeof(VkShaderModuleValidationCacheCreateInfoEXT);
1646         }
1647 #endif
1648 #ifdef VK_NV_shading_rate_image
1649         case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV: {
1650             return sizeof(VkPipelineViewportShadingRateImageStateCreateInfoNV);
1651         }
1652         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV: {
1653             return sizeof(VkPhysicalDeviceShadingRateImageFeaturesNV);
1654         }
1655         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV: {
1656             return sizeof(VkPhysicalDeviceShadingRateImagePropertiesNV);
1657         }
1658         case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV: {
1659             return sizeof(VkPipelineViewportCoarseSampleOrderStateCreateInfoNV);
1660         }
1661 #endif
1662 #ifdef VK_NV_ray_tracing
1663         case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV: {
1664             return sizeof(VkWriteDescriptorSetAccelerationStructureNV);
1665         }
1666         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV: {
1667             return sizeof(VkPhysicalDeviceRayTracingPropertiesNV);
1668         }
1669 #endif
1670 #ifdef VK_NV_representative_fragment_test
1671         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV: {
1672             return sizeof(VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV);
1673         }
1674         case VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV: {
1675             return sizeof(VkPipelineRepresentativeFragmentTestStateCreateInfoNV);
1676         }
1677 #endif
1678 #ifdef VK_EXT_filter_cubic
1679         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT: {
1680             return sizeof(VkPhysicalDeviceImageViewImageFormatInfoEXT);
1681         }
1682         case VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT: {
1683             return sizeof(VkFilterCubicImageViewImageFormatPropertiesEXT);
1684         }
1685 #endif
1686 #ifdef VK_EXT_external_memory_host
1687         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT: {
1688             return sizeof(VkImportMemoryHostPointerInfoEXT);
1689         }
1690         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT: {
1691             return sizeof(VkPhysicalDeviceExternalMemoryHostPropertiesEXT);
1692         }
1693 #endif
1694 #ifdef VK_AMD_pipeline_compiler_control
1695         case VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD: {
1696             return sizeof(VkPipelineCompilerControlCreateInfoAMD);
1697         }
1698 #endif
1699 #ifdef VK_AMD_shader_core_properties
1700         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD: {
1701             return sizeof(VkPhysicalDeviceShaderCorePropertiesAMD);
1702         }
1703 #endif
1704 #ifdef VK_AMD_memory_overallocation_behavior
1705         case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD: {
1706             return sizeof(VkDeviceMemoryOverallocationCreateInfoAMD);
1707         }
1708 #endif
1709 #ifdef VK_EXT_vertex_attribute_divisor
1710         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT: {
1711             return sizeof(VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT);
1712         }
1713         case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT: {
1714             return sizeof(VkPipelineVertexInputDivisorStateCreateInfoEXT);
1715         }
1716         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT: {
1717             return sizeof(VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT);
1718         }
1719 #endif
1720 #ifdef VK_GGP_frame_token
1721         case VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP: {
1722             return sizeof(VkPresentFrameTokenGGP);
1723         }
1724 #endif
1725 #ifdef VK_NV_compute_shader_derivatives
1726         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV: {
1727             return sizeof(VkPhysicalDeviceComputeShaderDerivativesFeaturesNV);
1728         }
1729 #endif
1730 #ifdef VK_NV_mesh_shader
1731         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV: {
1732             return sizeof(VkPhysicalDeviceMeshShaderFeaturesNV);
1733         }
1734         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV: {
1735             return sizeof(VkPhysicalDeviceMeshShaderPropertiesNV);
1736         }
1737 #endif
1738 #ifdef VK_NV_shader_image_footprint
1739         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV: {
1740             return sizeof(VkPhysicalDeviceShaderImageFootprintFeaturesNV);
1741         }
1742 #endif
1743 #ifdef VK_NV_scissor_exclusive
1744         case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV: {
1745             return sizeof(VkPipelineViewportExclusiveScissorStateCreateInfoNV);
1746         }
1747         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV: {
1748             return sizeof(VkPhysicalDeviceExclusiveScissorFeaturesNV);
1749         }
1750 #endif
1751 #ifdef VK_NV_device_diagnostic_checkpoints
1752         case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV: {
1753             return sizeof(VkQueueFamilyCheckpointPropertiesNV);
1754         }
1755 #endif
1756 #ifdef VK_INTEL_shader_integer_functions2
1757         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL: {
1758             return sizeof(VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL);
1759         }
1760 #endif
1761 #ifdef VK_INTEL_performance_query
1762         case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL: {
1763             return sizeof(VkQueryPoolPerformanceQueryCreateInfoINTEL);
1764         }
1765 #endif
1766 #ifdef VK_EXT_pci_bus_info
1767         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT: {
1768             return sizeof(VkPhysicalDevicePCIBusInfoPropertiesEXT);
1769         }
1770 #endif
1771 #ifdef VK_AMD_display_native_hdr
1772         case VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD: {
1773             return sizeof(VkDisplayNativeHdrSurfaceCapabilitiesAMD);
1774         }
1775         case VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD: {
1776             return sizeof(VkSwapchainDisplayNativeHdrCreateInfoAMD);
1777         }
1778 #endif
1779 #ifdef VK_EXT_fragment_density_map
1780         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT: {
1781             switch (rootType) {
1782                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2: {
1783                     return sizeof(VkPhysicalDeviceFragmentDensityMapFeaturesEXT);
1784                     break;
1785                 }
1786                 case VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO: {
1787                     return sizeof(VkPhysicalDeviceFragmentDensityMapFeaturesEXT);
1788                     break;
1789                 }
1790                 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
1791                     return sizeof(VkImportColorBufferGOOGLE);
1792                     break;
1793                 }
1794                 default: {
1795                     return sizeof(VkPhysicalDeviceFragmentDensityMapFeaturesEXT);
1796                     break;
1797                 }
1798             }
1799         }
1800         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT: {
1801             switch (rootType) {
1802                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2: {
1803                     return sizeof(VkPhysicalDeviceFragmentDensityMapPropertiesEXT);
1804                     break;
1805                 }
1806                 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
1807                     return sizeof(VkCreateBlobGOOGLE);
1808                     break;
1809                 }
1810                 default: {
1811                     return sizeof(VkPhysicalDeviceFragmentDensityMapPropertiesEXT);
1812                     break;
1813                 }
1814             }
1815         }
1816         case VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT: {
1817             switch (rootType) {
1818                 case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO: {
1819                     return sizeof(VkRenderPassFragmentDensityMapCreateInfoEXT);
1820                     break;
1821                 }
1822                 case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2: {
1823                     return sizeof(VkRenderPassFragmentDensityMapCreateInfoEXT);
1824                     break;
1825                 }
1826                 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
1827                     return sizeof(VkImportBufferGOOGLE);
1828                     break;
1829                 }
1830                 default: {
1831                     return sizeof(VkRenderPassFragmentDensityMapCreateInfoEXT);
1832                     break;
1833                 }
1834             }
1835         }
1836 #endif
1837 #ifdef VK_AMD_shader_core_properties2
1838         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD: {
1839             return sizeof(VkPhysicalDeviceShaderCoreProperties2AMD);
1840         }
1841 #endif
1842 #ifdef VK_AMD_device_coherent_memory
1843         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD: {
1844             return sizeof(VkPhysicalDeviceCoherentMemoryFeaturesAMD);
1845         }
1846 #endif
1847 #ifdef VK_EXT_shader_image_atomic_int64
1848         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT: {
1849             return sizeof(VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT);
1850         }
1851 #endif
1852 #ifdef VK_EXT_memory_budget
1853         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT: {
1854             return sizeof(VkPhysicalDeviceMemoryBudgetPropertiesEXT);
1855         }
1856 #endif
1857 #ifdef VK_EXT_memory_priority
1858         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT: {
1859             return sizeof(VkPhysicalDeviceMemoryPriorityFeaturesEXT);
1860         }
1861         case VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT: {
1862             return sizeof(VkMemoryPriorityAllocateInfoEXT);
1863         }
1864 #endif
1865 #ifdef VK_NV_dedicated_allocation_image_aliasing
1866         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV: {
1867             return sizeof(VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV);
1868         }
1869 #endif
1870 #ifdef VK_EXT_buffer_device_address
1871         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT: {
1872             return sizeof(VkPhysicalDeviceBufferDeviceAddressFeaturesEXT);
1873         }
1874         case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT: {
1875             return sizeof(VkBufferDeviceAddressCreateInfoEXT);
1876         }
1877 #endif
1878 #ifdef VK_EXT_validation_features
1879         case VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT: {
1880             return sizeof(VkValidationFeaturesEXT);
1881         }
1882 #endif
1883 #ifdef VK_NV_cooperative_matrix
1884         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV: {
1885             return sizeof(VkPhysicalDeviceCooperativeMatrixFeaturesNV);
1886         }
1887         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV: {
1888             return sizeof(VkPhysicalDeviceCooperativeMatrixPropertiesNV);
1889         }
1890 #endif
1891 #ifdef VK_NV_coverage_reduction_mode
1892         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV: {
1893             return sizeof(VkPhysicalDeviceCoverageReductionModeFeaturesNV);
1894         }
1895         case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV: {
1896             return sizeof(VkPipelineCoverageReductionStateCreateInfoNV);
1897         }
1898 #endif
1899 #ifdef VK_EXT_fragment_shader_interlock
1900         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT: {
1901             return sizeof(VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT);
1902         }
1903 #endif
1904 #ifdef VK_EXT_ycbcr_image_arrays
1905         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT: {
1906             return sizeof(VkPhysicalDeviceYcbcrImageArraysFeaturesEXT);
1907         }
1908 #endif
1909 #ifdef VK_EXT_provoking_vertex
1910         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT: {
1911             return sizeof(VkPhysicalDeviceProvokingVertexFeaturesEXT);
1912         }
1913         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT: {
1914             return sizeof(VkPhysicalDeviceProvokingVertexPropertiesEXT);
1915         }
1916         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT: {
1917             return sizeof(VkPipelineRasterizationProvokingVertexStateCreateInfoEXT);
1918         }
1919 #endif
1920 #ifdef VK_EXT_full_screen_exclusive
1921         case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT: {
1922             return sizeof(VkSurfaceFullScreenExclusiveInfoEXT);
1923         }
1924         case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT: {
1925             return sizeof(VkSurfaceCapabilitiesFullScreenExclusiveEXT);
1926         }
1927         case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT: {
1928             return sizeof(VkSurfaceFullScreenExclusiveWin32InfoEXT);
1929         }
1930 #endif
1931 #ifdef VK_EXT_line_rasterization
1932         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT: {
1933             return sizeof(VkPhysicalDeviceLineRasterizationFeaturesEXT);
1934         }
1935         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT: {
1936             return sizeof(VkPhysicalDeviceLineRasterizationPropertiesEXT);
1937         }
1938         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT: {
1939             return sizeof(VkPipelineRasterizationLineStateCreateInfoEXT);
1940         }
1941 #endif
1942 #ifdef VK_EXT_shader_atomic_float
1943         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT: {
1944             return sizeof(VkPhysicalDeviceShaderAtomicFloatFeaturesEXT);
1945         }
1946 #endif
1947 #ifdef VK_EXT_index_type_uint8
1948         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT: {
1949             return sizeof(VkPhysicalDeviceIndexTypeUint8FeaturesEXT);
1950         }
1951 #endif
1952 #ifdef VK_EXT_extended_dynamic_state
1953         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT: {
1954             return sizeof(VkPhysicalDeviceExtendedDynamicStateFeaturesEXT);
1955         }
1956 #endif
1957 #ifdef VK_EXT_shader_atomic_float2
1958         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT: {
1959             return sizeof(VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT);
1960         }
1961 #endif
1962 #ifdef VK_EXT_surface_maintenance1
1963         case VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT: {
1964             return sizeof(VkSurfacePresentModeEXT);
1965         }
1966         case VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT: {
1967             return sizeof(VkSurfacePresentScalingCapabilitiesEXT);
1968         }
1969         case VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT: {
1970             return sizeof(VkSurfacePresentModeCompatibilityEXT);
1971         }
1972 #endif
1973 #ifdef VK_EXT_swapchain_maintenance1
1974         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT: {
1975             return sizeof(VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT);
1976         }
1977         case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT: {
1978             return sizeof(VkSwapchainPresentFenceInfoEXT);
1979         }
1980         case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT: {
1981             return sizeof(VkSwapchainPresentModesCreateInfoEXT);
1982         }
1983         case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT: {
1984             return sizeof(VkSwapchainPresentModeInfoEXT);
1985         }
1986         case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT: {
1987             return sizeof(VkSwapchainPresentScalingCreateInfoEXT);
1988         }
1989 #endif
1990 #ifdef VK_NV_device_generated_commands
1991         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV: {
1992             return sizeof(VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV);
1993         }
1994         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV: {
1995             return sizeof(VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV);
1996         }
1997         case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV: {
1998             return sizeof(VkGraphicsPipelineShaderGroupsCreateInfoNV);
1999         }
2000 #endif
2001 #ifdef VK_NV_inherited_viewport_scissor
2002         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV: {
2003             return sizeof(VkPhysicalDeviceInheritedViewportScissorFeaturesNV);
2004         }
2005         case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV: {
2006             return sizeof(VkCommandBufferInheritanceViewportScissorInfoNV);
2007         }
2008 #endif
2009 #ifdef VK_EXT_texel_buffer_alignment
2010         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT: {
2011             return sizeof(VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT);
2012         }
2013 #endif
2014 #ifdef VK_QCOM_render_pass_transform
2015         case VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM: {
2016             return sizeof(VkRenderPassTransformBeginInfoQCOM);
2017         }
2018         case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM: {
2019             return sizeof(VkCommandBufferInheritanceRenderPassTransformInfoQCOM);
2020         }
2021 #endif
2022 #ifdef VK_EXT_device_memory_report
2023         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT: {
2024             return sizeof(VkPhysicalDeviceDeviceMemoryReportFeaturesEXT);
2025         }
2026         case VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT: {
2027             return sizeof(VkDeviceDeviceMemoryReportCreateInfoEXT);
2028         }
2029 #endif
2030 #ifdef VK_EXT_robustness2
2031         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT: {
2032             return sizeof(VkPhysicalDeviceRobustness2FeaturesEXT);
2033         }
2034         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT: {
2035             return sizeof(VkPhysicalDeviceRobustness2PropertiesEXT);
2036         }
2037 #endif
2038 #ifdef VK_EXT_custom_border_color
2039         case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT: {
2040             return sizeof(VkSamplerCustomBorderColorCreateInfoEXT);
2041         }
2042         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT: {
2043             return sizeof(VkPhysicalDeviceCustomBorderColorPropertiesEXT);
2044         }
2045         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT: {
2046             return sizeof(VkPhysicalDeviceCustomBorderColorFeaturesEXT);
2047         }
2048 #endif
2049 #ifdef VK_NV_present_barrier
2050         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV: {
2051             return sizeof(VkPhysicalDevicePresentBarrierFeaturesNV);
2052         }
2053         case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV: {
2054             return sizeof(VkSurfaceCapabilitiesPresentBarrierNV);
2055         }
2056         case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV: {
2057             return sizeof(VkSwapchainPresentBarrierCreateInfoNV);
2058         }
2059 #endif
2060 #ifdef VK_NV_device_diagnostics_config
2061         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV: {
2062             return sizeof(VkPhysicalDeviceDiagnosticsConfigFeaturesNV);
2063         }
2064         case VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV: {
2065             return sizeof(VkDeviceDiagnosticsConfigCreateInfoNV);
2066         }
2067 #endif
2068 #ifdef VK_NV_low_latency
2069         case VK_STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV: {
2070             return sizeof(VkQueryLowLatencySupportNV);
2071         }
2072 #endif
2073 #ifdef VK_EXT_metal_objects
2074         case VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT: {
2075             return sizeof(VkExportMetalObjectCreateInfoEXT);
2076         }
2077         case VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT: {
2078             return sizeof(VkExportMetalDeviceInfoEXT);
2079         }
2080         case VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT: {
2081             return sizeof(VkExportMetalCommandQueueInfoEXT);
2082         }
2083         case VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT: {
2084             return sizeof(VkExportMetalBufferInfoEXT);
2085         }
2086         case VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT: {
2087             return sizeof(VkImportMetalBufferInfoEXT);
2088         }
2089         case VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT: {
2090             return sizeof(VkExportMetalTextureInfoEXT);
2091         }
2092         case VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT: {
2093             return sizeof(VkImportMetalTextureInfoEXT);
2094         }
2095         case VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT: {
2096             return sizeof(VkExportMetalIOSurfaceInfoEXT);
2097         }
2098         case VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT: {
2099             return sizeof(VkImportMetalIOSurfaceInfoEXT);
2100         }
2101         case VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT: {
2102             return sizeof(VkExportMetalSharedEventInfoEXT);
2103         }
2104         case VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT: {
2105             return sizeof(VkImportMetalSharedEventInfoEXT);
2106         }
2107 #endif
2108 #ifdef VK_EXT_descriptor_buffer
2109         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT: {
2110             return sizeof(VkPhysicalDeviceDescriptorBufferPropertiesEXT);
2111         }
2112         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT: {
2113             return sizeof(VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT);
2114         }
2115         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT: {
2116             return sizeof(VkPhysicalDeviceDescriptorBufferFeaturesEXT);
2117         }
2118         case VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT: {
2119             return sizeof(VkDescriptorBufferBindingPushDescriptorBufferHandleEXT);
2120         }
2121         case VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT: {
2122             return sizeof(VkOpaqueCaptureDescriptorDataCreateInfoEXT);
2123         }
2124 #endif
2125 #ifdef VK_EXT_graphics_pipeline_library
2126         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT: {
2127             return sizeof(VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT);
2128         }
2129         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT: {
2130             return sizeof(VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT);
2131         }
2132         case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT: {
2133             return sizeof(VkGraphicsPipelineLibraryCreateInfoEXT);
2134         }
2135 #endif
2136 #ifdef VK_AMD_shader_early_and_late_fragment_tests
2137         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD: {
2138             return sizeof(VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD);
2139         }
2140 #endif
2141 #ifdef VK_NV_fragment_shading_rate_enums
2142         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV: {
2143             return sizeof(VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV);
2144         }
2145         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV: {
2146             return sizeof(VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV);
2147         }
2148         case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV: {
2149             return sizeof(VkPipelineFragmentShadingRateEnumStateCreateInfoNV);
2150         }
2151 #endif
2152 #ifdef VK_NV_ray_tracing_motion_blur
2153         case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV: {
2154             return sizeof(VkAccelerationStructureGeometryMotionTrianglesDataNV);
2155         }
2156         case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV: {
2157             return sizeof(VkAccelerationStructureMotionInfoNV);
2158         }
2159         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV: {
2160             return sizeof(VkPhysicalDeviceRayTracingMotionBlurFeaturesNV);
2161         }
2162 #endif
2163 #ifdef VK_EXT_ycbcr_2plane_444_formats
2164         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT: {
2165             return sizeof(VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT);
2166         }
2167 #endif
2168 #ifdef VK_EXT_fragment_density_map2
2169         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT: {
2170             return sizeof(VkPhysicalDeviceFragmentDensityMap2FeaturesEXT);
2171         }
2172         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT: {
2173             return sizeof(VkPhysicalDeviceFragmentDensityMap2PropertiesEXT);
2174         }
2175 #endif
2176 #ifdef VK_QCOM_rotated_copy_commands
2177         case VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM: {
2178             return sizeof(VkCopyCommandTransformInfoQCOM);
2179         }
2180 #endif
2181 #ifdef VK_EXT_image_compression_control
2182         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT: {
2183             return sizeof(VkPhysicalDeviceImageCompressionControlFeaturesEXT);
2184         }
2185         case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT: {
2186             return sizeof(VkImageCompressionControlEXT);
2187         }
2188         case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT: {
2189             return sizeof(VkImageCompressionPropertiesEXT);
2190         }
2191 #endif
2192 #ifdef VK_EXT_attachment_feedback_loop_layout
2193         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT: {
2194             return sizeof(VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT);
2195         }
2196 #endif
2197 #ifdef VK_EXT_4444_formats
2198         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT: {
2199             return sizeof(VkPhysicalDevice4444FormatsFeaturesEXT);
2200         }
2201 #endif
2202 #ifdef VK_EXT_device_fault
2203         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT: {
2204             return sizeof(VkPhysicalDeviceFaultFeaturesEXT);
2205         }
2206 #endif
2207 #ifdef VK_ARM_rasterization_order_attachment_access
2208         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT: {
2209             return sizeof(VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT);
2210         }
2211 #endif
2212 #ifdef VK_EXT_rgba10x6_formats
2213         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT: {
2214             return sizeof(VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT);
2215         }
2216 #endif
2217 #ifdef VK_VALVE_mutable_descriptor_type
2218         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT: {
2219             return sizeof(VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT);
2220         }
2221         case VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT: {
2222             return sizeof(VkMutableDescriptorTypeCreateInfoEXT);
2223         }
2224 #endif
2225 #ifdef VK_EXT_vertex_input_dynamic_state
2226         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT: {
2227             return sizeof(VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT);
2228         }
2229 #endif
2230 #ifdef VK_EXT_physical_device_drm
2231         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT: {
2232             return sizeof(VkPhysicalDeviceDrmPropertiesEXT);
2233         }
2234 #endif
2235 #ifdef VK_EXT_device_address_binding_report
2236         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT: {
2237             return sizeof(VkPhysicalDeviceAddressBindingReportFeaturesEXT);
2238         }
2239         case VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT: {
2240             return sizeof(VkDeviceAddressBindingCallbackDataEXT);
2241         }
2242 #endif
2243 #ifdef VK_EXT_depth_clip_control
2244         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT: {
2245             return sizeof(VkPhysicalDeviceDepthClipControlFeaturesEXT);
2246         }
2247         case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT: {
2248             return sizeof(VkPipelineViewportDepthClipControlCreateInfoEXT);
2249         }
2250 #endif
2251 #ifdef VK_EXT_primitive_topology_list_restart
2252         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT: {
2253             return sizeof(VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT);
2254         }
2255 #endif
2256 #ifdef VK_FUCHSIA_external_memory
2257         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA: {
2258             return sizeof(VkImportMemoryZirconHandleInfoFUCHSIA);
2259         }
2260 #endif
2261 #ifdef VK_FUCHSIA_buffer_collection
2262         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA: {
2263             return sizeof(VkImportMemoryBufferCollectionFUCHSIA);
2264         }
2265         case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA: {
2266             return sizeof(VkBufferCollectionImageCreateInfoFUCHSIA);
2267         }
2268         case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA: {
2269             return sizeof(VkBufferCollectionBufferCreateInfoFUCHSIA);
2270         }
2271 #endif
2272 #ifdef VK_HUAWEI_subpass_shading
2273         case VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI: {
2274             return sizeof(VkSubpassShadingPipelineCreateInfoHUAWEI);
2275         }
2276         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI: {
2277             return sizeof(VkPhysicalDeviceSubpassShadingFeaturesHUAWEI);
2278         }
2279         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI: {
2280             return sizeof(VkPhysicalDeviceSubpassShadingPropertiesHUAWEI);
2281         }
2282 #endif
2283 #ifdef VK_HUAWEI_invocation_mask
2284         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI: {
2285             return sizeof(VkPhysicalDeviceInvocationMaskFeaturesHUAWEI);
2286         }
2287 #endif
2288 #ifdef VK_NV_external_memory_rdma
2289         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV: {
2290             return sizeof(VkPhysicalDeviceExternalMemoryRDMAFeaturesNV);
2291         }
2292 #endif
2293 #ifdef VK_EXT_pipeline_properties
2294         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT: {
2295             return sizeof(VkPhysicalDevicePipelinePropertiesFeaturesEXT);
2296         }
2297 #endif
2298 #ifdef VK_EXT_multisampled_render_to_single_sampled
2299         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT: {
2300             return sizeof(VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT);
2301         }
2302         case VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT: {
2303             return sizeof(VkSubpassResolvePerformanceQueryEXT);
2304         }
2305         case VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT: {
2306             return sizeof(VkMultisampledRenderToSingleSampledInfoEXT);
2307         }
2308 #endif
2309 #ifdef VK_EXT_extended_dynamic_state2
2310         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT: {
2311             return sizeof(VkPhysicalDeviceExtendedDynamicState2FeaturesEXT);
2312         }
2313 #endif
2314 #ifdef VK_EXT_color_write_enable
2315         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT: {
2316             return sizeof(VkPhysicalDeviceColorWriteEnableFeaturesEXT);
2317         }
2318         case VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT: {
2319             return sizeof(VkPipelineColorWriteCreateInfoEXT);
2320         }
2321 #endif
2322 #ifdef VK_EXT_primitives_generated_query
2323         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT: {
2324             return sizeof(VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT);
2325         }
2326 #endif
2327 #ifdef VK_GOOGLE_gfxstream
2328         case VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE: {
2329             return sizeof(VkImportColorBufferGOOGLE);
2330         }
2331         case VK_STRUCTURE_TYPE_IMPORT_BUFFER_GOOGLE: {
2332             return sizeof(VkImportBufferGOOGLE);
2333         }
2334         case VK_STRUCTURE_TYPE_CREATE_BLOB_GOOGLE: {
2335             return sizeof(VkCreateBlobGOOGLE);
2336         }
2337 #endif
2338 #ifdef VK_EXT_image_view_min_lod
2339         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT: {
2340             return sizeof(VkPhysicalDeviceImageViewMinLodFeaturesEXT);
2341         }
2342         case VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT: {
2343             return sizeof(VkImageViewMinLodCreateInfoEXT);
2344         }
2345 #endif
2346 #ifdef VK_EXT_multi_draw
2347         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT: {
2348             return sizeof(VkPhysicalDeviceMultiDrawFeaturesEXT);
2349         }
2350         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT: {
2351             return sizeof(VkPhysicalDeviceMultiDrawPropertiesEXT);
2352         }
2353 #endif
2354 #ifdef VK_EXT_image_2d_view_of_3d
2355         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT: {
2356             return sizeof(VkPhysicalDeviceImage2DViewOf3DFeaturesEXT);
2357         }
2358 #endif
2359 #ifdef VK_EXT_shader_tile_image
2360         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT: {
2361             return sizeof(VkPhysicalDeviceShaderTileImageFeaturesEXT);
2362         }
2363         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT: {
2364             return sizeof(VkPhysicalDeviceShaderTileImagePropertiesEXT);
2365         }
2366 #endif
2367 #ifdef VK_EXT_opacity_micromap
2368         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT: {
2369             return sizeof(VkPhysicalDeviceOpacityMicromapFeaturesEXT);
2370         }
2371         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT: {
2372             return sizeof(VkPhysicalDeviceOpacityMicromapPropertiesEXT);
2373         }
2374         case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT: {
2375             return sizeof(VkAccelerationStructureTrianglesOpacityMicromapEXT);
2376         }
2377 #endif
2378 #ifdef VK_NV_displacement_micromap
2379 #ifdef VK_ENABLE_BETA_EXTENSIONS
2380         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV: {
2381             return sizeof(VkPhysicalDeviceDisplacementMicromapFeaturesNV);
2382         }
2383 #endif  // VK_ENABLE_BETA_EXTENSIONS
2384 #ifdef VK_ENABLE_BETA_EXTENSIONS
2385         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV: {
2386             return sizeof(VkPhysicalDeviceDisplacementMicromapPropertiesNV);
2387         }
2388 #endif  // VK_ENABLE_BETA_EXTENSIONS
2389 #ifdef VK_ENABLE_BETA_EXTENSIONS
2390         case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV: {
2391             return sizeof(VkAccelerationStructureTrianglesDisplacementMicromapNV);
2392         }
2393 #endif  // VK_ENABLE_BETA_EXTENSIONS
2394 #endif
2395 #ifdef VK_HUAWEI_cluster_culling_shader
2396         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI: {
2397             return sizeof(VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI);
2398         }
2399         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI: {
2400             return sizeof(VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI);
2401         }
2402 #endif
2403 #ifdef VK_EXT_border_color_swizzle
2404         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT: {
2405             return sizeof(VkPhysicalDeviceBorderColorSwizzleFeaturesEXT);
2406         }
2407         case VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT: {
2408             return sizeof(VkSamplerBorderColorComponentMappingCreateInfoEXT);
2409         }
2410 #endif
2411 #ifdef VK_EXT_pageable_device_local_memory
2412         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT: {
2413             return sizeof(VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT);
2414         }
2415 #endif
2416 #ifdef VK_ARM_shader_core_properties
2417         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM: {
2418             return sizeof(VkPhysicalDeviceShaderCorePropertiesARM);
2419         }
2420 #endif
2421 #ifdef VK_EXT_image_sliced_view_of_3d
2422         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT: {
2423             return sizeof(VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT);
2424         }
2425         case VK_STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT: {
2426             return sizeof(VkImageViewSlicedCreateInfoEXT);
2427         }
2428 #endif
2429 #ifdef VK_VALVE_descriptor_set_host_mapping
2430         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE: {
2431             return sizeof(VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE);
2432         }
2433 #endif
2434 #ifdef VK_EXT_depth_clamp_zero_one
2435         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT: {
2436             return sizeof(VkPhysicalDeviceDepthClampZeroOneFeaturesEXT);
2437         }
2438 #endif
2439 #ifdef VK_EXT_non_seamless_cube_map
2440         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT: {
2441             return sizeof(VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT);
2442         }
2443 #endif
2444 #ifdef VK_QCOM_fragment_density_map_offset
2445         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM: {
2446             return sizeof(VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM);
2447         }
2448         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM: {
2449             return sizeof(VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM);
2450         }
2451         case VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM: {
2452             return sizeof(VkSubpassFragmentDensityMapOffsetEndInfoQCOM);
2453         }
2454 #endif
2455 #ifdef VK_NV_copy_memory_indirect
2456         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV: {
2457             return sizeof(VkPhysicalDeviceCopyMemoryIndirectFeaturesNV);
2458         }
2459         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV: {
2460             return sizeof(VkPhysicalDeviceCopyMemoryIndirectPropertiesNV);
2461         }
2462 #endif
2463 #ifdef VK_NV_memory_decompression
2464         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV: {
2465             return sizeof(VkPhysicalDeviceMemoryDecompressionFeaturesNV);
2466         }
2467         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV: {
2468             return sizeof(VkPhysicalDeviceMemoryDecompressionPropertiesNV);
2469         }
2470 #endif
2471 #ifdef VK_NV_linear_color_attachment
2472         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV: {
2473             return sizeof(VkPhysicalDeviceLinearColorAttachmentFeaturesNV);
2474         }
2475 #endif
2476 #ifdef VK_EXT_image_compression_control_swapchain
2477         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT: {
2478             return sizeof(VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT);
2479         }
2480 #endif
2481 #ifdef VK_QCOM_image_processing
2482         case VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM: {
2483             return sizeof(VkImageViewSampleWeightCreateInfoQCOM);
2484         }
2485         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM: {
2486             return sizeof(VkPhysicalDeviceImageProcessingFeaturesQCOM);
2487         }
2488         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM: {
2489             return sizeof(VkPhysicalDeviceImageProcessingPropertiesQCOM);
2490         }
2491 #endif
2492 #ifdef VK_EXT_extended_dynamic_state3
2493         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT: {
2494             return sizeof(VkPhysicalDeviceExtendedDynamicState3FeaturesEXT);
2495         }
2496         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT: {
2497             return sizeof(VkPhysicalDeviceExtendedDynamicState3PropertiesEXT);
2498         }
2499 #endif
2500 #ifdef VK_EXT_subpass_merge_feedback
2501         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT: {
2502             return sizeof(VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT);
2503         }
2504         case VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT: {
2505             return sizeof(VkRenderPassCreationControlEXT);
2506         }
2507         case VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT: {
2508             return sizeof(VkRenderPassCreationFeedbackCreateInfoEXT);
2509         }
2510         case VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT: {
2511             return sizeof(VkRenderPassSubpassFeedbackCreateInfoEXT);
2512         }
2513 #endif
2514 #ifdef VK_LUNARG_direct_driver_loading
2515         case VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG: {
2516             return sizeof(VkDirectDriverLoadingListLUNARG);
2517         }
2518 #endif
2519 #ifdef VK_EXT_shader_module_identifier
2520         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT: {
2521             return sizeof(VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT);
2522         }
2523         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT: {
2524             return sizeof(VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT);
2525         }
2526         case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT: {
2527             return sizeof(VkPipelineShaderStageModuleIdentifierCreateInfoEXT);
2528         }
2529 #endif
2530 #ifdef VK_NV_optical_flow
2531         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV: {
2532             return sizeof(VkPhysicalDeviceOpticalFlowFeaturesNV);
2533         }
2534         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV: {
2535             return sizeof(VkPhysicalDeviceOpticalFlowPropertiesNV);
2536         }
2537         case VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV: {
2538             return sizeof(VkOpticalFlowImageFormatInfoNV);
2539         }
2540         case VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV: {
2541             return sizeof(VkOpticalFlowSessionCreatePrivateDataInfoNV);
2542         }
2543 #endif
2544 #ifdef VK_EXT_legacy_dithering
2545         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT: {
2546             return sizeof(VkPhysicalDeviceLegacyDitheringFeaturesEXT);
2547         }
2548 #endif
2549 #ifdef VK_EXT_pipeline_protected_access
2550         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT: {
2551             return sizeof(VkPhysicalDevicePipelineProtectedAccessFeaturesEXT);
2552         }
2553 #endif
2554 #ifdef VK_EXT_shader_object
2555         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT: {
2556             return sizeof(VkPhysicalDeviceShaderObjectFeaturesEXT);
2557         }
2558         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT: {
2559             return sizeof(VkPhysicalDeviceShaderObjectPropertiesEXT);
2560         }
2561 #endif
2562 #ifdef VK_QCOM_tile_properties
2563         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM: {
2564             return sizeof(VkPhysicalDeviceTilePropertiesFeaturesQCOM);
2565         }
2566 #endif
2567 #ifdef VK_SEC_amigo_profiling
2568         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC: {
2569             return sizeof(VkPhysicalDeviceAmigoProfilingFeaturesSEC);
2570         }
2571         case VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC: {
2572             return sizeof(VkAmigoProfilingSubmitInfoSEC);
2573         }
2574 #endif
2575 #ifdef VK_QCOM_multiview_per_view_viewports
2576         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM: {
2577             return sizeof(VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM);
2578         }
2579 #endif
2580 #ifdef VK_NV_ray_tracing_invocation_reorder
2581         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV: {
2582             return sizeof(VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV);
2583         }
2584         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV: {
2585             return sizeof(VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV);
2586         }
2587 #endif
2588 #ifdef VK_ARM_shader_core_builtins
2589         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM: {
2590             return sizeof(VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM);
2591         }
2592         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM: {
2593             return sizeof(VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM);
2594         }
2595 #endif
2596 #ifdef VK_EXT_pipeline_library_group_handles
2597         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT: {
2598             return sizeof(VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT);
2599         }
2600 #endif
2601 #ifdef VK_QCOM_multiview_per_view_render_areas
2602         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM: {
2603             return sizeof(VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM);
2604         }
2605         case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM: {
2606             return sizeof(VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM);
2607         }
2608 #endif
2609 #ifdef VK_EXT_attachment_feedback_loop_dynamic_state
2610         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT: {
2611             return sizeof(VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT);
2612         }
2613 #endif
2614 #ifdef VK_KHR_acceleration_structure
2615         case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR: {
2616             return sizeof(VkWriteDescriptorSetAccelerationStructureKHR);
2617         }
2618         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR: {
2619             return sizeof(VkPhysicalDeviceAccelerationStructureFeaturesKHR);
2620         }
2621         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR: {
2622             return sizeof(VkPhysicalDeviceAccelerationStructurePropertiesKHR);
2623         }
2624 #endif
2625 #ifdef VK_KHR_ray_tracing_pipeline
2626         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR: {
2627             return sizeof(VkPhysicalDeviceRayTracingPipelineFeaturesKHR);
2628         }
2629         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR: {
2630             return sizeof(VkPhysicalDeviceRayTracingPipelinePropertiesKHR);
2631         }
2632 #endif
2633 #ifdef VK_KHR_ray_query
2634         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR: {
2635             return sizeof(VkPhysicalDeviceRayQueryFeaturesKHR);
2636         }
2637 #endif
2638 #ifdef VK_EXT_mesh_shader
2639         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT: {
2640             return sizeof(VkPhysicalDeviceMeshShaderFeaturesEXT);
2641         }
2642         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT: {
2643             return sizeof(VkPhysicalDeviceMeshShaderPropertiesEXT);
2644         }
2645 #endif
2646         default: {
2647             return (size_t)0;
2648         }
2649     }
2650 }
2651 
goldfish_vk_extension_struct_size_with_stream_features(uint32_t streamFeatures,VkStructureType rootType,const void * structExtension)2652 size_t goldfish_vk_extension_struct_size_with_stream_features(uint32_t streamFeatures,
2653                                                               VkStructureType rootType,
2654                                                               const void* structExtension) {
2655     if (!structExtension) {
2656         return (size_t)0;
2657     }
2658     uint32_t structType = (uint32_t)goldfish_vk_struct_type(structExtension);
2659     switch (structType) {
2660 #ifdef VK_VERSION_1_0
2661         case VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO: {
2662             return sizeof(VkShaderModuleCreateInfo);
2663         }
2664 #endif
2665 #ifdef VK_VERSION_1_1
2666         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES: {
2667             return sizeof(VkPhysicalDeviceSubgroupProperties);
2668         }
2669         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES: {
2670             return sizeof(VkPhysicalDevice16BitStorageFeatures);
2671         }
2672         case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS: {
2673             return sizeof(VkMemoryDedicatedRequirements);
2674         }
2675         case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO: {
2676             return sizeof(VkMemoryDedicatedAllocateInfo);
2677         }
2678         case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO: {
2679             return sizeof(VkMemoryAllocateFlagsInfo);
2680         }
2681         case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO: {
2682             return sizeof(VkDeviceGroupRenderPassBeginInfo);
2683         }
2684         case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO: {
2685             return sizeof(VkDeviceGroupCommandBufferBeginInfo);
2686         }
2687         case VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO: {
2688             return sizeof(VkDeviceGroupSubmitInfo);
2689         }
2690         case VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO: {
2691             return sizeof(VkDeviceGroupBindSparseInfo);
2692         }
2693         case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO: {
2694             return sizeof(VkBindBufferMemoryDeviceGroupInfo);
2695         }
2696         case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO: {
2697             return sizeof(VkBindImageMemoryDeviceGroupInfo);
2698         }
2699         case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO: {
2700             return sizeof(VkDeviceGroupDeviceCreateInfo);
2701         }
2702         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2: {
2703             return sizeof(VkPhysicalDeviceFeatures2);
2704         }
2705         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES: {
2706             return sizeof(VkPhysicalDevicePointClippingProperties);
2707         }
2708         case VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO: {
2709             return sizeof(VkRenderPassInputAttachmentAspectCreateInfo);
2710         }
2711         case VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO: {
2712             return sizeof(VkImageViewUsageCreateInfo);
2713         }
2714         case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO: {
2715             return sizeof(VkPipelineTessellationDomainOriginStateCreateInfo);
2716         }
2717         case VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO: {
2718             return sizeof(VkRenderPassMultiviewCreateInfo);
2719         }
2720         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES: {
2721             return sizeof(VkPhysicalDeviceMultiviewFeatures);
2722         }
2723         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES: {
2724             return sizeof(VkPhysicalDeviceMultiviewProperties);
2725         }
2726         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES: {
2727             return sizeof(VkPhysicalDeviceVariablePointersFeatures);
2728         }
2729         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES: {
2730             return sizeof(VkPhysicalDeviceProtectedMemoryFeatures);
2731         }
2732         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES: {
2733             return sizeof(VkPhysicalDeviceProtectedMemoryProperties);
2734         }
2735         case VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO: {
2736             return sizeof(VkProtectedSubmitInfo);
2737         }
2738         case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO: {
2739             return sizeof(VkSamplerYcbcrConversionInfo);
2740         }
2741         case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO: {
2742             return sizeof(VkBindImagePlaneMemoryInfo);
2743         }
2744         case VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO: {
2745             return sizeof(VkImagePlaneMemoryRequirementsInfo);
2746         }
2747         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES: {
2748             return sizeof(VkPhysicalDeviceSamplerYcbcrConversionFeatures);
2749         }
2750         case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES: {
2751             return sizeof(VkSamplerYcbcrConversionImageFormatProperties);
2752         }
2753         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO: {
2754             return sizeof(VkPhysicalDeviceExternalImageFormatInfo);
2755         }
2756         case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES: {
2757             return sizeof(VkExternalImageFormatProperties);
2758         }
2759         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES: {
2760             return sizeof(VkPhysicalDeviceIDProperties);
2761         }
2762         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO: {
2763             return sizeof(VkExternalMemoryImageCreateInfo);
2764         }
2765         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO: {
2766             return sizeof(VkExternalMemoryBufferCreateInfo);
2767         }
2768         case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO: {
2769             return sizeof(VkExportMemoryAllocateInfo);
2770         }
2771         case VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO: {
2772             return sizeof(VkExportFenceCreateInfo);
2773         }
2774         case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO: {
2775             return sizeof(VkExportSemaphoreCreateInfo);
2776         }
2777         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES: {
2778             return sizeof(VkPhysicalDeviceMaintenance3Properties);
2779         }
2780         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES: {
2781             return sizeof(VkPhysicalDeviceShaderDrawParametersFeatures);
2782         }
2783 #endif
2784 #ifdef VK_VERSION_1_2
2785         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES: {
2786             return sizeof(VkPhysicalDeviceVulkan11Features);
2787         }
2788         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES: {
2789             return sizeof(VkPhysicalDeviceVulkan11Properties);
2790         }
2791         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES: {
2792             return sizeof(VkPhysicalDeviceVulkan12Features);
2793         }
2794         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES: {
2795             return sizeof(VkPhysicalDeviceVulkan12Properties);
2796         }
2797         case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO: {
2798             return sizeof(VkImageFormatListCreateInfo);
2799         }
2800         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES: {
2801             return sizeof(VkPhysicalDevice8BitStorageFeatures);
2802         }
2803         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES: {
2804             return sizeof(VkPhysicalDeviceDriverProperties);
2805         }
2806         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES: {
2807             return sizeof(VkPhysicalDeviceShaderAtomicInt64Features);
2808         }
2809         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES: {
2810             if (streamFeatures & VULKAN_STREAM_FEATURE_SHADER_FLOAT16_INT8_BIT) {
2811                 return sizeof(VkPhysicalDeviceShaderFloat16Int8Features);
2812             } else {
2813                 return 0;
2814             }
2815         }
2816         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES: {
2817             return sizeof(VkPhysicalDeviceFloatControlsProperties);
2818         }
2819         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO: {
2820             return sizeof(VkDescriptorSetLayoutBindingFlagsCreateInfo);
2821         }
2822         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES: {
2823             return sizeof(VkPhysicalDeviceDescriptorIndexingFeatures);
2824         }
2825         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES: {
2826             return sizeof(VkPhysicalDeviceDescriptorIndexingProperties);
2827         }
2828         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO: {
2829             return sizeof(VkDescriptorSetVariableDescriptorCountAllocateInfo);
2830         }
2831         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT: {
2832             return sizeof(VkDescriptorSetVariableDescriptorCountLayoutSupport);
2833         }
2834         case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE: {
2835             return sizeof(VkSubpassDescriptionDepthStencilResolve);
2836         }
2837         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES: {
2838             return sizeof(VkPhysicalDeviceDepthStencilResolveProperties);
2839         }
2840         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES: {
2841             return sizeof(VkPhysicalDeviceScalarBlockLayoutFeatures);
2842         }
2843         case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO: {
2844             return sizeof(VkImageStencilUsageCreateInfo);
2845         }
2846         case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO: {
2847             return sizeof(VkSamplerReductionModeCreateInfo);
2848         }
2849         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES: {
2850             return sizeof(VkPhysicalDeviceSamplerFilterMinmaxProperties);
2851         }
2852         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES: {
2853             return sizeof(VkPhysicalDeviceVulkanMemoryModelFeatures);
2854         }
2855         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES: {
2856             return sizeof(VkPhysicalDeviceImagelessFramebufferFeatures);
2857         }
2858         case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO: {
2859             return sizeof(VkFramebufferAttachmentsCreateInfo);
2860         }
2861         case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO: {
2862             return sizeof(VkRenderPassAttachmentBeginInfo);
2863         }
2864         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES: {
2865             return sizeof(VkPhysicalDeviceUniformBufferStandardLayoutFeatures);
2866         }
2867         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES: {
2868             return sizeof(VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures);
2869         }
2870         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES: {
2871             return sizeof(VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures);
2872         }
2873         case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT: {
2874             return sizeof(VkAttachmentReferenceStencilLayout);
2875         }
2876         case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT: {
2877             return sizeof(VkAttachmentDescriptionStencilLayout);
2878         }
2879         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES: {
2880             return sizeof(VkPhysicalDeviceHostQueryResetFeatures);
2881         }
2882         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES: {
2883             return sizeof(VkPhysicalDeviceTimelineSemaphoreFeatures);
2884         }
2885         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES: {
2886             return sizeof(VkPhysicalDeviceTimelineSemaphoreProperties);
2887         }
2888         case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO: {
2889             return sizeof(VkSemaphoreTypeCreateInfo);
2890         }
2891         case VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO: {
2892             return sizeof(VkTimelineSemaphoreSubmitInfo);
2893         }
2894         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES: {
2895             return sizeof(VkPhysicalDeviceBufferDeviceAddressFeatures);
2896         }
2897         case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO: {
2898             return sizeof(VkBufferOpaqueCaptureAddressCreateInfo);
2899         }
2900         case VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO: {
2901             return sizeof(VkMemoryOpaqueCaptureAddressAllocateInfo);
2902         }
2903 #endif
2904 #ifdef VK_VERSION_1_3
2905         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES: {
2906             return sizeof(VkPhysicalDeviceVulkan13Features);
2907         }
2908         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES: {
2909             return sizeof(VkPhysicalDeviceVulkan13Properties);
2910         }
2911         case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO: {
2912             return sizeof(VkPipelineCreationFeedbackCreateInfo);
2913         }
2914         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES: {
2915             return sizeof(VkPhysicalDeviceShaderTerminateInvocationFeatures);
2916         }
2917         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES: {
2918             return sizeof(VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures);
2919         }
2920         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES: {
2921             return sizeof(VkPhysicalDevicePrivateDataFeatures);
2922         }
2923         case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO: {
2924             return sizeof(VkDevicePrivateDataCreateInfo);
2925         }
2926         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES: {
2927             return sizeof(VkPhysicalDevicePipelineCreationCacheControlFeatures);
2928         }
2929         case VK_STRUCTURE_TYPE_MEMORY_BARRIER_2: {
2930             return sizeof(VkMemoryBarrier2);
2931         }
2932         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES: {
2933             return sizeof(VkPhysicalDeviceSynchronization2Features);
2934         }
2935         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES: {
2936             return sizeof(VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures);
2937         }
2938         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES: {
2939             return sizeof(VkPhysicalDeviceImageRobustnessFeatures);
2940         }
2941         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES: {
2942             return sizeof(VkPhysicalDeviceSubgroupSizeControlFeatures);
2943         }
2944         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES: {
2945             return sizeof(VkPhysicalDeviceSubgroupSizeControlProperties);
2946         }
2947         case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO: {
2948             return sizeof(VkPipelineShaderStageRequiredSubgroupSizeCreateInfo);
2949         }
2950         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES: {
2951             return sizeof(VkPhysicalDeviceInlineUniformBlockFeatures);
2952         }
2953         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES: {
2954             return sizeof(VkPhysicalDeviceInlineUniformBlockProperties);
2955         }
2956         case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK: {
2957             return sizeof(VkWriteDescriptorSetInlineUniformBlock);
2958         }
2959         case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO: {
2960             return sizeof(VkDescriptorPoolInlineUniformBlockCreateInfo);
2961         }
2962         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES: {
2963             return sizeof(VkPhysicalDeviceTextureCompressionASTCHDRFeatures);
2964         }
2965         case VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO: {
2966             return sizeof(VkPipelineRenderingCreateInfo);
2967         }
2968         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES: {
2969             return sizeof(VkPhysicalDeviceDynamicRenderingFeatures);
2970         }
2971         case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO: {
2972             return sizeof(VkCommandBufferInheritanceRenderingInfo);
2973         }
2974         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES: {
2975             return sizeof(VkPhysicalDeviceShaderIntegerDotProductFeatures);
2976         }
2977         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES: {
2978             return sizeof(VkPhysicalDeviceShaderIntegerDotProductProperties);
2979         }
2980         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES: {
2981             return sizeof(VkPhysicalDeviceTexelBufferAlignmentProperties);
2982         }
2983         case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3: {
2984             return sizeof(VkFormatProperties3);
2985         }
2986         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES: {
2987             return sizeof(VkPhysicalDeviceMaintenance4Features);
2988         }
2989         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES: {
2990             return sizeof(VkPhysicalDeviceMaintenance4Properties);
2991         }
2992 #endif
2993 #ifdef VK_KHR_swapchain
2994         case VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR: {
2995             return sizeof(VkImageSwapchainCreateInfoKHR);
2996         }
2997         case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR: {
2998             return sizeof(VkBindImageMemorySwapchainInfoKHR);
2999         }
3000         case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR: {
3001             return sizeof(VkDeviceGroupPresentInfoKHR);
3002         }
3003         case VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR: {
3004             return sizeof(VkDeviceGroupSwapchainCreateInfoKHR);
3005         }
3006 #endif
3007 #ifdef VK_KHR_display_swapchain
3008         case VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR: {
3009             return sizeof(VkDisplayPresentInfoKHR);
3010         }
3011 #endif
3012 #ifdef VK_KHR_video_queue
3013         case VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR: {
3014             return sizeof(VkQueueFamilyQueryResultStatusPropertiesKHR);
3015         }
3016         case VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR: {
3017             return sizeof(VkQueueFamilyVideoPropertiesKHR);
3018         }
3019         case VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR: {
3020             return sizeof(VkVideoProfileInfoKHR);
3021         }
3022         case VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR: {
3023             return sizeof(VkVideoProfileListInfoKHR);
3024         }
3025 #endif
3026 #ifdef VK_KHR_video_decode_queue
3027         case VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR: {
3028             return sizeof(VkVideoDecodeCapabilitiesKHR);
3029         }
3030         case VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR: {
3031             return sizeof(VkVideoDecodeUsageInfoKHR);
3032         }
3033 #endif
3034 #ifdef VK_KHR_video_decode_h264
3035         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR: {
3036             return sizeof(VkVideoDecodeH264ProfileInfoKHR);
3037         }
3038         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR: {
3039             return sizeof(VkVideoDecodeH264CapabilitiesKHR);
3040         }
3041         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR: {
3042             return sizeof(VkVideoDecodeH264SessionParametersAddInfoKHR);
3043         }
3044         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR: {
3045             return sizeof(VkVideoDecodeH264SessionParametersCreateInfoKHR);
3046         }
3047         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR: {
3048             return sizeof(VkVideoDecodeH264PictureInfoKHR);
3049         }
3050         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR: {
3051             return sizeof(VkVideoDecodeH264DpbSlotInfoKHR);
3052         }
3053 #endif
3054 #ifdef VK_KHR_dynamic_rendering
3055         case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR: {
3056             return sizeof(VkRenderingFragmentShadingRateAttachmentInfoKHR);
3057         }
3058         case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT: {
3059             return sizeof(VkRenderingFragmentDensityMapAttachmentInfoEXT);
3060         }
3061         case VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD: {
3062             return sizeof(VkAttachmentSampleCountInfoAMD);
3063         }
3064         case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX: {
3065             return sizeof(VkMultiviewPerViewAttributesInfoNVX);
3066         }
3067 #endif
3068 #ifdef VK_KHR_external_memory_win32
3069         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR: {
3070             return sizeof(VkImportMemoryWin32HandleInfoKHR);
3071         }
3072         case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR: {
3073             return sizeof(VkExportMemoryWin32HandleInfoKHR);
3074         }
3075 #endif
3076 #ifdef VK_KHR_external_memory_fd
3077         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR: {
3078             return sizeof(VkImportMemoryFdInfoKHR);
3079         }
3080 #endif
3081 #ifdef VK_KHR_win32_keyed_mutex
3082         case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR: {
3083             return sizeof(VkWin32KeyedMutexAcquireReleaseInfoKHR);
3084         }
3085 #endif
3086 #ifdef VK_KHR_external_semaphore_win32
3087         case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR: {
3088             return sizeof(VkExportSemaphoreWin32HandleInfoKHR);
3089         }
3090         case VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR: {
3091             return sizeof(VkD3D12FenceSubmitInfoKHR);
3092         }
3093 #endif
3094 #ifdef VK_KHR_push_descriptor
3095         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR: {
3096             return sizeof(VkPhysicalDevicePushDescriptorPropertiesKHR);
3097         }
3098 #endif
3099 #ifdef VK_KHR_incremental_present
3100         case VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR: {
3101             return sizeof(VkPresentRegionsKHR);
3102         }
3103 #endif
3104 #ifdef VK_KHR_shared_presentable_image
3105         case VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR: {
3106             return sizeof(VkSharedPresentSurfaceCapabilitiesKHR);
3107         }
3108 #endif
3109 #ifdef VK_KHR_external_fence_win32
3110         case VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR: {
3111             return sizeof(VkExportFenceWin32HandleInfoKHR);
3112         }
3113 #endif
3114 #ifdef VK_KHR_performance_query
3115         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR: {
3116             return sizeof(VkPhysicalDevicePerformanceQueryFeaturesKHR);
3117         }
3118         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR: {
3119             return sizeof(VkPhysicalDevicePerformanceQueryPropertiesKHR);
3120         }
3121         case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR: {
3122             return sizeof(VkQueryPoolPerformanceCreateInfoKHR);
3123         }
3124         case VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR: {
3125             return sizeof(VkPerformanceQuerySubmitInfoKHR);
3126         }
3127 #endif
3128 #ifdef VK_KHR_portability_subset
3129 #ifdef VK_ENABLE_BETA_EXTENSIONS
3130         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR: {
3131             return sizeof(VkPhysicalDevicePortabilitySubsetFeaturesKHR);
3132         }
3133 #endif  // VK_ENABLE_BETA_EXTENSIONS
3134 #ifdef VK_ENABLE_BETA_EXTENSIONS
3135         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR: {
3136             return sizeof(VkPhysicalDevicePortabilitySubsetPropertiesKHR);
3137         }
3138 #endif  // VK_ENABLE_BETA_EXTENSIONS
3139 #endif
3140 #ifdef VK_KHR_shader_clock
3141         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR: {
3142             return sizeof(VkPhysicalDeviceShaderClockFeaturesKHR);
3143         }
3144 #endif
3145 #ifdef VK_KHR_video_decode_h265
3146         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR: {
3147             return sizeof(VkVideoDecodeH265ProfileInfoKHR);
3148         }
3149         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR: {
3150             return sizeof(VkVideoDecodeH265CapabilitiesKHR);
3151         }
3152         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR: {
3153             return sizeof(VkVideoDecodeH265SessionParametersAddInfoKHR);
3154         }
3155         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR: {
3156             return sizeof(VkVideoDecodeH265SessionParametersCreateInfoKHR);
3157         }
3158         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR: {
3159             return sizeof(VkVideoDecodeH265PictureInfoKHR);
3160         }
3161         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR: {
3162             return sizeof(VkVideoDecodeH265DpbSlotInfoKHR);
3163         }
3164 #endif
3165 #ifdef VK_KHR_global_priority
3166         case VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR: {
3167             return sizeof(VkDeviceQueueGlobalPriorityCreateInfoKHR);
3168         }
3169         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR: {
3170             return sizeof(VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR);
3171         }
3172         case VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR: {
3173             return sizeof(VkQueueFamilyGlobalPriorityPropertiesKHR);
3174         }
3175 #endif
3176 #ifdef VK_KHR_fragment_shading_rate
3177         case VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR: {
3178             return sizeof(VkFragmentShadingRateAttachmentInfoKHR);
3179         }
3180         case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR: {
3181             return sizeof(VkPipelineFragmentShadingRateStateCreateInfoKHR);
3182         }
3183         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR: {
3184             return sizeof(VkPhysicalDeviceFragmentShadingRateFeaturesKHR);
3185         }
3186         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR: {
3187             return sizeof(VkPhysicalDeviceFragmentShadingRatePropertiesKHR);
3188         }
3189 #endif
3190 #ifdef VK_KHR_surface_protected_capabilities
3191         case VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR: {
3192             return sizeof(VkSurfaceProtectedCapabilitiesKHR);
3193         }
3194 #endif
3195 #ifdef VK_KHR_present_wait
3196         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR: {
3197             return sizeof(VkPhysicalDevicePresentWaitFeaturesKHR);
3198         }
3199 #endif
3200 #ifdef VK_KHR_pipeline_executable_properties
3201         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR: {
3202             return sizeof(VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR);
3203         }
3204 #endif
3205 #ifdef VK_KHR_pipeline_library
3206         case VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR: {
3207             return sizeof(VkPipelineLibraryCreateInfoKHR);
3208         }
3209 #endif
3210 #ifdef VK_KHR_present_id
3211         case VK_STRUCTURE_TYPE_PRESENT_ID_KHR: {
3212             return sizeof(VkPresentIdKHR);
3213         }
3214         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR: {
3215             return sizeof(VkPhysicalDevicePresentIdFeaturesKHR);
3216         }
3217 #endif
3218 #ifdef VK_KHR_video_encode_queue
3219 #ifdef VK_ENABLE_BETA_EXTENSIONS
3220         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR: {
3221             return sizeof(VkVideoEncodeCapabilitiesKHR);
3222         }
3223 #endif  // VK_ENABLE_BETA_EXTENSIONS
3224 #ifdef VK_ENABLE_BETA_EXTENSIONS
3225         case VK_STRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR: {
3226             return sizeof(VkQueryPoolVideoEncodeFeedbackCreateInfoKHR);
3227         }
3228 #endif  // VK_ENABLE_BETA_EXTENSIONS
3229 #ifdef VK_ENABLE_BETA_EXTENSIONS
3230         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR: {
3231             return sizeof(VkVideoEncodeUsageInfoKHR);
3232         }
3233 #endif  // VK_ENABLE_BETA_EXTENSIONS
3234 #ifdef VK_ENABLE_BETA_EXTENSIONS
3235         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR: {
3236             return sizeof(VkVideoEncodeRateControlLayerInfoKHR);
3237         }
3238 #endif  // VK_ENABLE_BETA_EXTENSIONS
3239 #ifdef VK_ENABLE_BETA_EXTENSIONS
3240         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR: {
3241             return sizeof(VkVideoEncodeRateControlInfoKHR);
3242         }
3243 #endif  // VK_ENABLE_BETA_EXTENSIONS
3244 #endif
3245 #ifdef VK_KHR_synchronization2
3246         case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV: {
3247             return sizeof(VkQueueFamilyCheckpointProperties2NV);
3248         }
3249 #endif
3250 #ifdef VK_KHR_fragment_shader_barycentric
3251         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR: {
3252             return sizeof(VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR);
3253         }
3254         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR: {
3255             return sizeof(VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR);
3256         }
3257 #endif
3258 #ifdef VK_KHR_shader_subgroup_uniform_control_flow
3259         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR: {
3260             return sizeof(VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR);
3261         }
3262 #endif
3263 #ifdef VK_KHR_workgroup_memory_explicit_layout
3264         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR: {
3265             return sizeof(VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR);
3266         }
3267 #endif
3268 #ifdef VK_KHR_ray_tracing_maintenance1
3269         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR: {
3270             return sizeof(VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR);
3271         }
3272 #endif
3273 #ifdef VK_KHR_ray_tracing_position_fetch
3274         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR: {
3275             return sizeof(VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR);
3276         }
3277 #endif
3278 #ifdef VK_ANDROID_native_buffer
3279         case VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID: {
3280             return sizeof(VkNativeBufferANDROID);
3281         }
3282 #endif
3283 #ifdef VK_EXT_debug_report
3284         case VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT: {
3285             return sizeof(VkDebugReportCallbackCreateInfoEXT);
3286         }
3287 #endif
3288 #ifdef VK_AMD_rasterization_order
3289         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD: {
3290             return sizeof(VkPipelineRasterizationStateRasterizationOrderAMD);
3291         }
3292 #endif
3293 #ifdef VK_NV_dedicated_allocation
3294         case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV: {
3295             return sizeof(VkDedicatedAllocationImageCreateInfoNV);
3296         }
3297         case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV: {
3298             return sizeof(VkDedicatedAllocationBufferCreateInfoNV);
3299         }
3300         case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV: {
3301             return sizeof(VkDedicatedAllocationMemoryAllocateInfoNV);
3302         }
3303 #endif
3304 #ifdef VK_EXT_transform_feedback
3305         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT: {
3306             return sizeof(VkPhysicalDeviceTransformFeedbackFeaturesEXT);
3307         }
3308         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT: {
3309             return sizeof(VkPhysicalDeviceTransformFeedbackPropertiesEXT);
3310         }
3311         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT: {
3312             return sizeof(VkPipelineRasterizationStateStreamCreateInfoEXT);
3313         }
3314 #endif
3315 #ifdef VK_EXT_video_encode_h264
3316 #ifdef VK_ENABLE_BETA_EXTENSIONS
3317         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT: {
3318             return sizeof(VkVideoEncodeH264CapabilitiesEXT);
3319         }
3320 #endif  // VK_ENABLE_BETA_EXTENSIONS
3321 #ifdef VK_ENABLE_BETA_EXTENSIONS
3322         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT: {
3323             return sizeof(VkVideoEncodeH264SessionParametersAddInfoEXT);
3324         }
3325 #endif  // VK_ENABLE_BETA_EXTENSIONS
3326 #ifdef VK_ENABLE_BETA_EXTENSIONS
3327         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT: {
3328             return sizeof(VkVideoEncodeH264SessionParametersCreateInfoEXT);
3329         }
3330 #endif  // VK_ENABLE_BETA_EXTENSIONS
3331 #ifdef VK_ENABLE_BETA_EXTENSIONS
3332         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT: {
3333             return sizeof(VkVideoEncodeH264VclFrameInfoEXT);
3334         }
3335 #endif  // VK_ENABLE_BETA_EXTENSIONS
3336 #ifdef VK_ENABLE_BETA_EXTENSIONS
3337         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT: {
3338             return sizeof(VkVideoEncodeH264DpbSlotInfoEXT);
3339         }
3340 #endif  // VK_ENABLE_BETA_EXTENSIONS
3341 #ifdef VK_ENABLE_BETA_EXTENSIONS
3342         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_EXT: {
3343             return sizeof(VkVideoEncodeH264ProfileInfoEXT);
3344         }
3345 #endif  // VK_ENABLE_BETA_EXTENSIONS
3346 #ifdef VK_ENABLE_BETA_EXTENSIONS
3347         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT: {
3348             return sizeof(VkVideoEncodeH264RateControlInfoEXT);
3349         }
3350 #endif  // VK_ENABLE_BETA_EXTENSIONS
3351 #ifdef VK_ENABLE_BETA_EXTENSIONS
3352         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT: {
3353             return sizeof(VkVideoEncodeH264RateControlLayerInfoEXT);
3354         }
3355 #endif  // VK_ENABLE_BETA_EXTENSIONS
3356 #endif
3357 #ifdef VK_EXT_video_encode_h265
3358 #ifdef VK_ENABLE_BETA_EXTENSIONS
3359         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT: {
3360             return sizeof(VkVideoEncodeH265CapabilitiesEXT);
3361         }
3362 #endif  // VK_ENABLE_BETA_EXTENSIONS
3363 #ifdef VK_ENABLE_BETA_EXTENSIONS
3364         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT: {
3365             return sizeof(VkVideoEncodeH265SessionParametersAddInfoEXT);
3366         }
3367 #endif  // VK_ENABLE_BETA_EXTENSIONS
3368 #ifdef VK_ENABLE_BETA_EXTENSIONS
3369         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT: {
3370             return sizeof(VkVideoEncodeH265SessionParametersCreateInfoEXT);
3371         }
3372 #endif  // VK_ENABLE_BETA_EXTENSIONS
3373 #ifdef VK_ENABLE_BETA_EXTENSIONS
3374         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT: {
3375             return sizeof(VkVideoEncodeH265VclFrameInfoEXT);
3376         }
3377 #endif  // VK_ENABLE_BETA_EXTENSIONS
3378 #ifdef VK_ENABLE_BETA_EXTENSIONS
3379         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT: {
3380             return sizeof(VkVideoEncodeH265DpbSlotInfoEXT);
3381         }
3382 #endif  // VK_ENABLE_BETA_EXTENSIONS
3383 #ifdef VK_ENABLE_BETA_EXTENSIONS
3384         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_EXT: {
3385             return sizeof(VkVideoEncodeH265ProfileInfoEXT);
3386         }
3387 #endif  // VK_ENABLE_BETA_EXTENSIONS
3388 #ifdef VK_ENABLE_BETA_EXTENSIONS
3389         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT: {
3390             return sizeof(VkVideoEncodeH265RateControlInfoEXT);
3391         }
3392 #endif  // VK_ENABLE_BETA_EXTENSIONS
3393 #ifdef VK_ENABLE_BETA_EXTENSIONS
3394         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT: {
3395             return sizeof(VkVideoEncodeH265RateControlLayerInfoEXT);
3396         }
3397 #endif  // VK_ENABLE_BETA_EXTENSIONS
3398 #endif
3399 #ifdef VK_AMD_texture_gather_bias_lod
3400         case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD: {
3401             return sizeof(VkTextureLODGatherFormatPropertiesAMD);
3402         }
3403 #endif
3404 #ifdef VK_NV_corner_sampled_image
3405         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV: {
3406             return sizeof(VkPhysicalDeviceCornerSampledImageFeaturesNV);
3407         }
3408 #endif
3409 #ifdef VK_NV_external_memory
3410         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV: {
3411             return sizeof(VkExternalMemoryImageCreateInfoNV);
3412         }
3413         case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV: {
3414             return sizeof(VkExportMemoryAllocateInfoNV);
3415         }
3416 #endif
3417 #ifdef VK_NV_external_memory_win32
3418         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV: {
3419             return sizeof(VkImportMemoryWin32HandleInfoNV);
3420         }
3421         case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV: {
3422             return sizeof(VkExportMemoryWin32HandleInfoNV);
3423         }
3424 #endif
3425 #ifdef VK_NV_win32_keyed_mutex
3426         case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV: {
3427             return sizeof(VkWin32KeyedMutexAcquireReleaseInfoNV);
3428         }
3429 #endif
3430 #ifdef VK_EXT_validation_flags
3431         case VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT: {
3432             return sizeof(VkValidationFlagsEXT);
3433         }
3434 #endif
3435 #ifdef VK_EXT_astc_decode_mode
3436         case VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT: {
3437             return sizeof(VkImageViewASTCDecodeModeEXT);
3438         }
3439         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT: {
3440             return sizeof(VkPhysicalDeviceASTCDecodeFeaturesEXT);
3441         }
3442 #endif
3443 #ifdef VK_EXT_pipeline_robustness
3444         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT: {
3445             return sizeof(VkPhysicalDevicePipelineRobustnessFeaturesEXT);
3446         }
3447         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT: {
3448             return sizeof(VkPhysicalDevicePipelineRobustnessPropertiesEXT);
3449         }
3450         case VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT: {
3451             return sizeof(VkPipelineRobustnessCreateInfoEXT);
3452         }
3453 #endif
3454 #ifdef VK_EXT_conditional_rendering
3455         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT: {
3456             return sizeof(VkPhysicalDeviceConditionalRenderingFeaturesEXT);
3457         }
3458         case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT: {
3459             return sizeof(VkCommandBufferInheritanceConditionalRenderingInfoEXT);
3460         }
3461 #endif
3462 #ifdef VK_NV_clip_space_w_scaling
3463         case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV: {
3464             return sizeof(VkPipelineViewportWScalingStateCreateInfoNV);
3465         }
3466 #endif
3467 #ifdef VK_EXT_display_control
3468         case VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT: {
3469             return sizeof(VkSwapchainCounterCreateInfoEXT);
3470         }
3471 #endif
3472 #ifdef VK_GOOGLE_display_timing
3473         case VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE: {
3474             return sizeof(VkPresentTimesInfoGOOGLE);
3475         }
3476 #endif
3477 #ifdef VK_NVX_multiview_per_view_attributes
3478         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX: {
3479             return sizeof(VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX);
3480         }
3481 #endif
3482 #ifdef VK_NV_viewport_swizzle
3483         case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV: {
3484             return sizeof(VkPipelineViewportSwizzleStateCreateInfoNV);
3485         }
3486 #endif
3487 #ifdef VK_EXT_discard_rectangles
3488         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT: {
3489             return sizeof(VkPhysicalDeviceDiscardRectanglePropertiesEXT);
3490         }
3491         case VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT: {
3492             return sizeof(VkPipelineDiscardRectangleStateCreateInfoEXT);
3493         }
3494 #endif
3495 #ifdef VK_EXT_conservative_rasterization
3496         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT: {
3497             return sizeof(VkPhysicalDeviceConservativeRasterizationPropertiesEXT);
3498         }
3499         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT: {
3500             return sizeof(VkPipelineRasterizationConservativeStateCreateInfoEXT);
3501         }
3502 #endif
3503 #ifdef VK_EXT_depth_clip_enable
3504         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT: {
3505             return sizeof(VkPhysicalDeviceDepthClipEnableFeaturesEXT);
3506         }
3507         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT: {
3508             return sizeof(VkPipelineRasterizationDepthClipStateCreateInfoEXT);
3509         }
3510 #endif
3511 #ifdef VK_EXT_debug_utils
3512         case VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT: {
3513             return sizeof(VkDebugUtilsObjectNameInfoEXT);
3514         }
3515         case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT: {
3516             return sizeof(VkDebugUtilsMessengerCreateInfoEXT);
3517         }
3518 #endif
3519 #ifdef VK_ANDROID_external_memory_android_hardware_buffer
3520         case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID: {
3521             return sizeof(VkAndroidHardwareBufferUsageANDROID);
3522         }
3523         case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID: {
3524             return sizeof(VkAndroidHardwareBufferFormatPropertiesANDROID);
3525         }
3526         case VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID: {
3527             return sizeof(VkImportAndroidHardwareBufferInfoANDROID);
3528         }
3529         case VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID: {
3530             return sizeof(VkExternalFormatANDROID);
3531         }
3532         case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID: {
3533             return sizeof(VkAndroidHardwareBufferFormatProperties2ANDROID);
3534         }
3535 #endif
3536 #ifdef VK_EXT_sample_locations
3537         case VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT: {
3538             return sizeof(VkSampleLocationsInfoEXT);
3539         }
3540         case VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT: {
3541             return sizeof(VkRenderPassSampleLocationsBeginInfoEXT);
3542         }
3543         case VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT: {
3544             return sizeof(VkPipelineSampleLocationsStateCreateInfoEXT);
3545         }
3546         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT: {
3547             return sizeof(VkPhysicalDeviceSampleLocationsPropertiesEXT);
3548         }
3549 #endif
3550 #ifdef VK_EXT_blend_operation_advanced
3551         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT: {
3552             return sizeof(VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT);
3553         }
3554         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT: {
3555             return sizeof(VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT);
3556         }
3557         case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT: {
3558             return sizeof(VkPipelineColorBlendAdvancedStateCreateInfoEXT);
3559         }
3560 #endif
3561 #ifdef VK_NV_fragment_coverage_to_color
3562         case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV: {
3563             return sizeof(VkPipelineCoverageToColorStateCreateInfoNV);
3564         }
3565 #endif
3566 #ifdef VK_NV_framebuffer_mixed_samples
3567         case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV: {
3568             return sizeof(VkPipelineCoverageModulationStateCreateInfoNV);
3569         }
3570 #endif
3571 #ifdef VK_NV_shader_sm_builtins
3572         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV: {
3573             return sizeof(VkPhysicalDeviceShaderSMBuiltinsPropertiesNV);
3574         }
3575         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV: {
3576             return sizeof(VkPhysicalDeviceShaderSMBuiltinsFeaturesNV);
3577         }
3578 #endif
3579 #ifdef VK_EXT_image_drm_format_modifier
3580         case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT: {
3581             return sizeof(VkDrmFormatModifierPropertiesListEXT);
3582         }
3583         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT: {
3584             return sizeof(VkPhysicalDeviceImageDrmFormatModifierInfoEXT);
3585         }
3586         case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT: {
3587             return sizeof(VkImageDrmFormatModifierListCreateInfoEXT);
3588         }
3589         case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT: {
3590             return sizeof(VkImageDrmFormatModifierExplicitCreateInfoEXT);
3591         }
3592         case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT: {
3593             return sizeof(VkDrmFormatModifierPropertiesList2EXT);
3594         }
3595 #endif
3596 #ifdef VK_EXT_validation_cache
3597         case VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT: {
3598             return sizeof(VkShaderModuleValidationCacheCreateInfoEXT);
3599         }
3600 #endif
3601 #ifdef VK_NV_shading_rate_image
3602         case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV: {
3603             return sizeof(VkPipelineViewportShadingRateImageStateCreateInfoNV);
3604         }
3605         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV: {
3606             return sizeof(VkPhysicalDeviceShadingRateImageFeaturesNV);
3607         }
3608         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV: {
3609             return sizeof(VkPhysicalDeviceShadingRateImagePropertiesNV);
3610         }
3611         case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV: {
3612             return sizeof(VkPipelineViewportCoarseSampleOrderStateCreateInfoNV);
3613         }
3614 #endif
3615 #ifdef VK_NV_ray_tracing
3616         case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV: {
3617             return sizeof(VkWriteDescriptorSetAccelerationStructureNV);
3618         }
3619         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV: {
3620             return sizeof(VkPhysicalDeviceRayTracingPropertiesNV);
3621         }
3622 #endif
3623 #ifdef VK_NV_representative_fragment_test
3624         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV: {
3625             return sizeof(VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV);
3626         }
3627         case VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV: {
3628             return sizeof(VkPipelineRepresentativeFragmentTestStateCreateInfoNV);
3629         }
3630 #endif
3631 #ifdef VK_EXT_filter_cubic
3632         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT: {
3633             return sizeof(VkPhysicalDeviceImageViewImageFormatInfoEXT);
3634         }
3635         case VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT: {
3636             return sizeof(VkFilterCubicImageViewImageFormatPropertiesEXT);
3637         }
3638 #endif
3639 #ifdef VK_EXT_external_memory_host
3640         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT: {
3641             return sizeof(VkImportMemoryHostPointerInfoEXT);
3642         }
3643         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT: {
3644             return sizeof(VkPhysicalDeviceExternalMemoryHostPropertiesEXT);
3645         }
3646 #endif
3647 #ifdef VK_AMD_pipeline_compiler_control
3648         case VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD: {
3649             return sizeof(VkPipelineCompilerControlCreateInfoAMD);
3650         }
3651 #endif
3652 #ifdef VK_AMD_shader_core_properties
3653         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD: {
3654             return sizeof(VkPhysicalDeviceShaderCorePropertiesAMD);
3655         }
3656 #endif
3657 #ifdef VK_AMD_memory_overallocation_behavior
3658         case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD: {
3659             return sizeof(VkDeviceMemoryOverallocationCreateInfoAMD);
3660         }
3661 #endif
3662 #ifdef VK_EXT_vertex_attribute_divisor
3663         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT: {
3664             return sizeof(VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT);
3665         }
3666         case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT: {
3667             return sizeof(VkPipelineVertexInputDivisorStateCreateInfoEXT);
3668         }
3669         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT: {
3670             return sizeof(VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT);
3671         }
3672 #endif
3673 #ifdef VK_GGP_frame_token
3674         case VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP: {
3675             return sizeof(VkPresentFrameTokenGGP);
3676         }
3677 #endif
3678 #ifdef VK_NV_compute_shader_derivatives
3679         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV: {
3680             return sizeof(VkPhysicalDeviceComputeShaderDerivativesFeaturesNV);
3681         }
3682 #endif
3683 #ifdef VK_NV_mesh_shader
3684         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV: {
3685             return sizeof(VkPhysicalDeviceMeshShaderFeaturesNV);
3686         }
3687         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV: {
3688             return sizeof(VkPhysicalDeviceMeshShaderPropertiesNV);
3689         }
3690 #endif
3691 #ifdef VK_NV_shader_image_footprint
3692         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV: {
3693             return sizeof(VkPhysicalDeviceShaderImageFootprintFeaturesNV);
3694         }
3695 #endif
3696 #ifdef VK_NV_scissor_exclusive
3697         case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV: {
3698             return sizeof(VkPipelineViewportExclusiveScissorStateCreateInfoNV);
3699         }
3700         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV: {
3701             return sizeof(VkPhysicalDeviceExclusiveScissorFeaturesNV);
3702         }
3703 #endif
3704 #ifdef VK_NV_device_diagnostic_checkpoints
3705         case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV: {
3706             return sizeof(VkQueueFamilyCheckpointPropertiesNV);
3707         }
3708 #endif
3709 #ifdef VK_INTEL_shader_integer_functions2
3710         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL: {
3711             return sizeof(VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL);
3712         }
3713 #endif
3714 #ifdef VK_INTEL_performance_query
3715         case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL: {
3716             return sizeof(VkQueryPoolPerformanceQueryCreateInfoINTEL);
3717         }
3718 #endif
3719 #ifdef VK_EXT_pci_bus_info
3720         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT: {
3721             return sizeof(VkPhysicalDevicePCIBusInfoPropertiesEXT);
3722         }
3723 #endif
3724 #ifdef VK_AMD_display_native_hdr
3725         case VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD: {
3726             return sizeof(VkDisplayNativeHdrSurfaceCapabilitiesAMD);
3727         }
3728         case VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD: {
3729             return sizeof(VkSwapchainDisplayNativeHdrCreateInfoAMD);
3730         }
3731 #endif
3732 #ifdef VK_EXT_fragment_density_map
3733         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT: {
3734             switch (rootType) {
3735                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2: {
3736                     return sizeof(VkPhysicalDeviceFragmentDensityMapFeaturesEXT);
3737                     break;
3738                 }
3739                 case VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO: {
3740                     return sizeof(VkPhysicalDeviceFragmentDensityMapFeaturesEXT);
3741                     break;
3742                 }
3743                 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
3744                     return sizeof(VkImportColorBufferGOOGLE);
3745                     break;
3746                 }
3747                 default: {
3748                     return sizeof(VkPhysicalDeviceFragmentDensityMapFeaturesEXT);
3749                     break;
3750                 }
3751             }
3752         }
3753         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT: {
3754             switch (rootType) {
3755                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2: {
3756                     return sizeof(VkPhysicalDeviceFragmentDensityMapPropertiesEXT);
3757                     break;
3758                 }
3759                 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
3760                     return sizeof(VkCreateBlobGOOGLE);
3761                     break;
3762                 }
3763                 default: {
3764                     return sizeof(VkPhysicalDeviceFragmentDensityMapPropertiesEXT);
3765                     break;
3766                 }
3767             }
3768         }
3769         case VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT: {
3770             switch (rootType) {
3771                 case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO: {
3772                     return sizeof(VkRenderPassFragmentDensityMapCreateInfoEXT);
3773                     break;
3774                 }
3775                 case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2: {
3776                     return sizeof(VkRenderPassFragmentDensityMapCreateInfoEXT);
3777                     break;
3778                 }
3779                 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
3780                     return sizeof(VkImportBufferGOOGLE);
3781                     break;
3782                 }
3783                 default: {
3784                     return sizeof(VkRenderPassFragmentDensityMapCreateInfoEXT);
3785                     break;
3786                 }
3787             }
3788         }
3789 #endif
3790 #ifdef VK_AMD_shader_core_properties2
3791         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD: {
3792             return sizeof(VkPhysicalDeviceShaderCoreProperties2AMD);
3793         }
3794 #endif
3795 #ifdef VK_AMD_device_coherent_memory
3796         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD: {
3797             return sizeof(VkPhysicalDeviceCoherentMemoryFeaturesAMD);
3798         }
3799 #endif
3800 #ifdef VK_EXT_shader_image_atomic_int64
3801         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT: {
3802             return sizeof(VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT);
3803         }
3804 #endif
3805 #ifdef VK_EXT_memory_budget
3806         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT: {
3807             return sizeof(VkPhysicalDeviceMemoryBudgetPropertiesEXT);
3808         }
3809 #endif
3810 #ifdef VK_EXT_memory_priority
3811         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT: {
3812             return sizeof(VkPhysicalDeviceMemoryPriorityFeaturesEXT);
3813         }
3814         case VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT: {
3815             return sizeof(VkMemoryPriorityAllocateInfoEXT);
3816         }
3817 #endif
3818 #ifdef VK_NV_dedicated_allocation_image_aliasing
3819         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV: {
3820             return sizeof(VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV);
3821         }
3822 #endif
3823 #ifdef VK_EXT_buffer_device_address
3824         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT: {
3825             return sizeof(VkPhysicalDeviceBufferDeviceAddressFeaturesEXT);
3826         }
3827         case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT: {
3828             return sizeof(VkBufferDeviceAddressCreateInfoEXT);
3829         }
3830 #endif
3831 #ifdef VK_EXT_validation_features
3832         case VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT: {
3833             return sizeof(VkValidationFeaturesEXT);
3834         }
3835 #endif
3836 #ifdef VK_NV_cooperative_matrix
3837         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV: {
3838             return sizeof(VkPhysicalDeviceCooperativeMatrixFeaturesNV);
3839         }
3840         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV: {
3841             return sizeof(VkPhysicalDeviceCooperativeMatrixPropertiesNV);
3842         }
3843 #endif
3844 #ifdef VK_NV_coverage_reduction_mode
3845         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV: {
3846             return sizeof(VkPhysicalDeviceCoverageReductionModeFeaturesNV);
3847         }
3848         case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV: {
3849             return sizeof(VkPipelineCoverageReductionStateCreateInfoNV);
3850         }
3851 #endif
3852 #ifdef VK_EXT_fragment_shader_interlock
3853         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT: {
3854             return sizeof(VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT);
3855         }
3856 #endif
3857 #ifdef VK_EXT_ycbcr_image_arrays
3858         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT: {
3859             return sizeof(VkPhysicalDeviceYcbcrImageArraysFeaturesEXT);
3860         }
3861 #endif
3862 #ifdef VK_EXT_provoking_vertex
3863         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT: {
3864             return sizeof(VkPhysicalDeviceProvokingVertexFeaturesEXT);
3865         }
3866         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT: {
3867             return sizeof(VkPhysicalDeviceProvokingVertexPropertiesEXT);
3868         }
3869         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT: {
3870             return sizeof(VkPipelineRasterizationProvokingVertexStateCreateInfoEXT);
3871         }
3872 #endif
3873 #ifdef VK_EXT_full_screen_exclusive
3874         case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT: {
3875             return sizeof(VkSurfaceFullScreenExclusiveInfoEXT);
3876         }
3877         case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT: {
3878             return sizeof(VkSurfaceCapabilitiesFullScreenExclusiveEXT);
3879         }
3880         case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT: {
3881             return sizeof(VkSurfaceFullScreenExclusiveWin32InfoEXT);
3882         }
3883 #endif
3884 #ifdef VK_EXT_line_rasterization
3885         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT: {
3886             return sizeof(VkPhysicalDeviceLineRasterizationFeaturesEXT);
3887         }
3888         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT: {
3889             return sizeof(VkPhysicalDeviceLineRasterizationPropertiesEXT);
3890         }
3891         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT: {
3892             return sizeof(VkPipelineRasterizationLineStateCreateInfoEXT);
3893         }
3894 #endif
3895 #ifdef VK_EXT_shader_atomic_float
3896         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT: {
3897             return sizeof(VkPhysicalDeviceShaderAtomicFloatFeaturesEXT);
3898         }
3899 #endif
3900 #ifdef VK_EXT_index_type_uint8
3901         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT: {
3902             return sizeof(VkPhysicalDeviceIndexTypeUint8FeaturesEXT);
3903         }
3904 #endif
3905 #ifdef VK_EXT_extended_dynamic_state
3906         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT: {
3907             return sizeof(VkPhysicalDeviceExtendedDynamicStateFeaturesEXT);
3908         }
3909 #endif
3910 #ifdef VK_EXT_shader_atomic_float2
3911         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT: {
3912             return sizeof(VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT);
3913         }
3914 #endif
3915 #ifdef VK_EXT_surface_maintenance1
3916         case VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT: {
3917             return sizeof(VkSurfacePresentModeEXT);
3918         }
3919         case VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT: {
3920             return sizeof(VkSurfacePresentScalingCapabilitiesEXT);
3921         }
3922         case VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT: {
3923             return sizeof(VkSurfacePresentModeCompatibilityEXT);
3924         }
3925 #endif
3926 #ifdef VK_EXT_swapchain_maintenance1
3927         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT: {
3928             return sizeof(VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT);
3929         }
3930         case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT: {
3931             return sizeof(VkSwapchainPresentFenceInfoEXT);
3932         }
3933         case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT: {
3934             return sizeof(VkSwapchainPresentModesCreateInfoEXT);
3935         }
3936         case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT: {
3937             return sizeof(VkSwapchainPresentModeInfoEXT);
3938         }
3939         case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT: {
3940             return sizeof(VkSwapchainPresentScalingCreateInfoEXT);
3941         }
3942 #endif
3943 #ifdef VK_NV_device_generated_commands
3944         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV: {
3945             return sizeof(VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV);
3946         }
3947         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV: {
3948             return sizeof(VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV);
3949         }
3950         case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV: {
3951             return sizeof(VkGraphicsPipelineShaderGroupsCreateInfoNV);
3952         }
3953 #endif
3954 #ifdef VK_NV_inherited_viewport_scissor
3955         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV: {
3956             return sizeof(VkPhysicalDeviceInheritedViewportScissorFeaturesNV);
3957         }
3958         case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV: {
3959             return sizeof(VkCommandBufferInheritanceViewportScissorInfoNV);
3960         }
3961 #endif
3962 #ifdef VK_EXT_texel_buffer_alignment
3963         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT: {
3964             return sizeof(VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT);
3965         }
3966 #endif
3967 #ifdef VK_QCOM_render_pass_transform
3968         case VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM: {
3969             return sizeof(VkRenderPassTransformBeginInfoQCOM);
3970         }
3971         case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM: {
3972             return sizeof(VkCommandBufferInheritanceRenderPassTransformInfoQCOM);
3973         }
3974 #endif
3975 #ifdef VK_EXT_device_memory_report
3976         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT: {
3977             return sizeof(VkPhysicalDeviceDeviceMemoryReportFeaturesEXT);
3978         }
3979         case VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT: {
3980             return sizeof(VkDeviceDeviceMemoryReportCreateInfoEXT);
3981         }
3982 #endif
3983 #ifdef VK_EXT_robustness2
3984         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT: {
3985             return sizeof(VkPhysicalDeviceRobustness2FeaturesEXT);
3986         }
3987         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT: {
3988             return sizeof(VkPhysicalDeviceRobustness2PropertiesEXT);
3989         }
3990 #endif
3991 #ifdef VK_EXT_custom_border_color
3992         case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT: {
3993             return sizeof(VkSamplerCustomBorderColorCreateInfoEXT);
3994         }
3995         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT: {
3996             return sizeof(VkPhysicalDeviceCustomBorderColorPropertiesEXT);
3997         }
3998         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT: {
3999             return sizeof(VkPhysicalDeviceCustomBorderColorFeaturesEXT);
4000         }
4001 #endif
4002 #ifdef VK_NV_present_barrier
4003         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV: {
4004             return sizeof(VkPhysicalDevicePresentBarrierFeaturesNV);
4005         }
4006         case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV: {
4007             return sizeof(VkSurfaceCapabilitiesPresentBarrierNV);
4008         }
4009         case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV: {
4010             return sizeof(VkSwapchainPresentBarrierCreateInfoNV);
4011         }
4012 #endif
4013 #ifdef VK_NV_device_diagnostics_config
4014         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV: {
4015             return sizeof(VkPhysicalDeviceDiagnosticsConfigFeaturesNV);
4016         }
4017         case VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV: {
4018             return sizeof(VkDeviceDiagnosticsConfigCreateInfoNV);
4019         }
4020 #endif
4021 #ifdef VK_NV_low_latency
4022         case VK_STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV: {
4023             return sizeof(VkQueryLowLatencySupportNV);
4024         }
4025 #endif
4026 #ifdef VK_EXT_metal_objects
4027         case VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT: {
4028             return sizeof(VkExportMetalObjectCreateInfoEXT);
4029         }
4030         case VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT: {
4031             return sizeof(VkExportMetalDeviceInfoEXT);
4032         }
4033         case VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT: {
4034             return sizeof(VkExportMetalCommandQueueInfoEXT);
4035         }
4036         case VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT: {
4037             return sizeof(VkExportMetalBufferInfoEXT);
4038         }
4039         case VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT: {
4040             return sizeof(VkImportMetalBufferInfoEXT);
4041         }
4042         case VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT: {
4043             return sizeof(VkExportMetalTextureInfoEXT);
4044         }
4045         case VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT: {
4046             return sizeof(VkImportMetalTextureInfoEXT);
4047         }
4048         case VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT: {
4049             return sizeof(VkExportMetalIOSurfaceInfoEXT);
4050         }
4051         case VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT: {
4052             return sizeof(VkImportMetalIOSurfaceInfoEXT);
4053         }
4054         case VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT: {
4055             return sizeof(VkExportMetalSharedEventInfoEXT);
4056         }
4057         case VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT: {
4058             return sizeof(VkImportMetalSharedEventInfoEXT);
4059         }
4060 #endif
4061 #ifdef VK_EXT_descriptor_buffer
4062         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT: {
4063             return sizeof(VkPhysicalDeviceDescriptorBufferPropertiesEXT);
4064         }
4065         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT: {
4066             return sizeof(VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT);
4067         }
4068         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT: {
4069             return sizeof(VkPhysicalDeviceDescriptorBufferFeaturesEXT);
4070         }
4071         case VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT: {
4072             return sizeof(VkDescriptorBufferBindingPushDescriptorBufferHandleEXT);
4073         }
4074         case VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT: {
4075             return sizeof(VkOpaqueCaptureDescriptorDataCreateInfoEXT);
4076         }
4077 #endif
4078 #ifdef VK_EXT_graphics_pipeline_library
4079         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT: {
4080             return sizeof(VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT);
4081         }
4082         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT: {
4083             return sizeof(VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT);
4084         }
4085         case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT: {
4086             return sizeof(VkGraphicsPipelineLibraryCreateInfoEXT);
4087         }
4088 #endif
4089 #ifdef VK_AMD_shader_early_and_late_fragment_tests
4090         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD: {
4091             return sizeof(VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD);
4092         }
4093 #endif
4094 #ifdef VK_NV_fragment_shading_rate_enums
4095         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV: {
4096             return sizeof(VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV);
4097         }
4098         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV: {
4099             return sizeof(VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV);
4100         }
4101         case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV: {
4102             return sizeof(VkPipelineFragmentShadingRateEnumStateCreateInfoNV);
4103         }
4104 #endif
4105 #ifdef VK_NV_ray_tracing_motion_blur
4106         case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV: {
4107             return sizeof(VkAccelerationStructureGeometryMotionTrianglesDataNV);
4108         }
4109         case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV: {
4110             return sizeof(VkAccelerationStructureMotionInfoNV);
4111         }
4112         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV: {
4113             return sizeof(VkPhysicalDeviceRayTracingMotionBlurFeaturesNV);
4114         }
4115 #endif
4116 #ifdef VK_EXT_ycbcr_2plane_444_formats
4117         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT: {
4118             return sizeof(VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT);
4119         }
4120 #endif
4121 #ifdef VK_EXT_fragment_density_map2
4122         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT: {
4123             return sizeof(VkPhysicalDeviceFragmentDensityMap2FeaturesEXT);
4124         }
4125         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT: {
4126             return sizeof(VkPhysicalDeviceFragmentDensityMap2PropertiesEXT);
4127         }
4128 #endif
4129 #ifdef VK_QCOM_rotated_copy_commands
4130         case VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM: {
4131             return sizeof(VkCopyCommandTransformInfoQCOM);
4132         }
4133 #endif
4134 #ifdef VK_EXT_image_compression_control
4135         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT: {
4136             return sizeof(VkPhysicalDeviceImageCompressionControlFeaturesEXT);
4137         }
4138         case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT: {
4139             return sizeof(VkImageCompressionControlEXT);
4140         }
4141         case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT: {
4142             return sizeof(VkImageCompressionPropertiesEXT);
4143         }
4144 #endif
4145 #ifdef VK_EXT_attachment_feedback_loop_layout
4146         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT: {
4147             return sizeof(VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT);
4148         }
4149 #endif
4150 #ifdef VK_EXT_4444_formats
4151         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT: {
4152             return sizeof(VkPhysicalDevice4444FormatsFeaturesEXT);
4153         }
4154 #endif
4155 #ifdef VK_EXT_device_fault
4156         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT: {
4157             return sizeof(VkPhysicalDeviceFaultFeaturesEXT);
4158         }
4159 #endif
4160 #ifdef VK_ARM_rasterization_order_attachment_access
4161         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT: {
4162             return sizeof(VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT);
4163         }
4164 #endif
4165 #ifdef VK_EXT_rgba10x6_formats
4166         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT: {
4167             return sizeof(VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT);
4168         }
4169 #endif
4170 #ifdef VK_VALVE_mutable_descriptor_type
4171         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT: {
4172             return sizeof(VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT);
4173         }
4174         case VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT: {
4175             return sizeof(VkMutableDescriptorTypeCreateInfoEXT);
4176         }
4177 #endif
4178 #ifdef VK_EXT_vertex_input_dynamic_state
4179         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT: {
4180             return sizeof(VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT);
4181         }
4182 #endif
4183 #ifdef VK_EXT_physical_device_drm
4184         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT: {
4185             return sizeof(VkPhysicalDeviceDrmPropertiesEXT);
4186         }
4187 #endif
4188 #ifdef VK_EXT_device_address_binding_report
4189         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT: {
4190             return sizeof(VkPhysicalDeviceAddressBindingReportFeaturesEXT);
4191         }
4192         case VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT: {
4193             return sizeof(VkDeviceAddressBindingCallbackDataEXT);
4194         }
4195 #endif
4196 #ifdef VK_EXT_depth_clip_control
4197         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT: {
4198             return sizeof(VkPhysicalDeviceDepthClipControlFeaturesEXT);
4199         }
4200         case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT: {
4201             return sizeof(VkPipelineViewportDepthClipControlCreateInfoEXT);
4202         }
4203 #endif
4204 #ifdef VK_EXT_primitive_topology_list_restart
4205         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT: {
4206             return sizeof(VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT);
4207         }
4208 #endif
4209 #ifdef VK_FUCHSIA_external_memory
4210         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA: {
4211             return sizeof(VkImportMemoryZirconHandleInfoFUCHSIA);
4212         }
4213 #endif
4214 #ifdef VK_FUCHSIA_buffer_collection
4215         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA: {
4216             return sizeof(VkImportMemoryBufferCollectionFUCHSIA);
4217         }
4218         case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA: {
4219             return sizeof(VkBufferCollectionImageCreateInfoFUCHSIA);
4220         }
4221         case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA: {
4222             return sizeof(VkBufferCollectionBufferCreateInfoFUCHSIA);
4223         }
4224 #endif
4225 #ifdef VK_HUAWEI_subpass_shading
4226         case VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI: {
4227             return sizeof(VkSubpassShadingPipelineCreateInfoHUAWEI);
4228         }
4229         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI: {
4230             return sizeof(VkPhysicalDeviceSubpassShadingFeaturesHUAWEI);
4231         }
4232         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI: {
4233             return sizeof(VkPhysicalDeviceSubpassShadingPropertiesHUAWEI);
4234         }
4235 #endif
4236 #ifdef VK_HUAWEI_invocation_mask
4237         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI: {
4238             return sizeof(VkPhysicalDeviceInvocationMaskFeaturesHUAWEI);
4239         }
4240 #endif
4241 #ifdef VK_NV_external_memory_rdma
4242         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV: {
4243             return sizeof(VkPhysicalDeviceExternalMemoryRDMAFeaturesNV);
4244         }
4245 #endif
4246 #ifdef VK_EXT_pipeline_properties
4247         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT: {
4248             return sizeof(VkPhysicalDevicePipelinePropertiesFeaturesEXT);
4249         }
4250 #endif
4251 #ifdef VK_EXT_multisampled_render_to_single_sampled
4252         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT: {
4253             return sizeof(VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT);
4254         }
4255         case VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT: {
4256             return sizeof(VkSubpassResolvePerformanceQueryEXT);
4257         }
4258         case VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT: {
4259             return sizeof(VkMultisampledRenderToSingleSampledInfoEXT);
4260         }
4261 #endif
4262 #ifdef VK_EXT_extended_dynamic_state2
4263         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT: {
4264             return sizeof(VkPhysicalDeviceExtendedDynamicState2FeaturesEXT);
4265         }
4266 #endif
4267 #ifdef VK_EXT_color_write_enable
4268         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT: {
4269             return sizeof(VkPhysicalDeviceColorWriteEnableFeaturesEXT);
4270         }
4271         case VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT: {
4272             return sizeof(VkPipelineColorWriteCreateInfoEXT);
4273         }
4274 #endif
4275 #ifdef VK_EXT_primitives_generated_query
4276         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT: {
4277             return sizeof(VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT);
4278         }
4279 #endif
4280 #ifdef VK_GOOGLE_gfxstream
4281         case VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE: {
4282             return sizeof(VkImportColorBufferGOOGLE);
4283         }
4284         case VK_STRUCTURE_TYPE_IMPORT_BUFFER_GOOGLE: {
4285             return sizeof(VkImportBufferGOOGLE);
4286         }
4287         case VK_STRUCTURE_TYPE_CREATE_BLOB_GOOGLE: {
4288             return sizeof(VkCreateBlobGOOGLE);
4289         }
4290 #endif
4291 #ifdef VK_EXT_image_view_min_lod
4292         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT: {
4293             return sizeof(VkPhysicalDeviceImageViewMinLodFeaturesEXT);
4294         }
4295         case VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT: {
4296             return sizeof(VkImageViewMinLodCreateInfoEXT);
4297         }
4298 #endif
4299 #ifdef VK_EXT_multi_draw
4300         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT: {
4301             return sizeof(VkPhysicalDeviceMultiDrawFeaturesEXT);
4302         }
4303         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT: {
4304             return sizeof(VkPhysicalDeviceMultiDrawPropertiesEXT);
4305         }
4306 #endif
4307 #ifdef VK_EXT_image_2d_view_of_3d
4308         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT: {
4309             return sizeof(VkPhysicalDeviceImage2DViewOf3DFeaturesEXT);
4310         }
4311 #endif
4312 #ifdef VK_EXT_shader_tile_image
4313         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT: {
4314             return sizeof(VkPhysicalDeviceShaderTileImageFeaturesEXT);
4315         }
4316         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT: {
4317             return sizeof(VkPhysicalDeviceShaderTileImagePropertiesEXT);
4318         }
4319 #endif
4320 #ifdef VK_EXT_opacity_micromap
4321         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT: {
4322             return sizeof(VkPhysicalDeviceOpacityMicromapFeaturesEXT);
4323         }
4324         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT: {
4325             return sizeof(VkPhysicalDeviceOpacityMicromapPropertiesEXT);
4326         }
4327         case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT: {
4328             return sizeof(VkAccelerationStructureTrianglesOpacityMicromapEXT);
4329         }
4330 #endif
4331 #ifdef VK_NV_displacement_micromap
4332 #ifdef VK_ENABLE_BETA_EXTENSIONS
4333         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV: {
4334             return sizeof(VkPhysicalDeviceDisplacementMicromapFeaturesNV);
4335         }
4336 #endif  // VK_ENABLE_BETA_EXTENSIONS
4337 #ifdef VK_ENABLE_BETA_EXTENSIONS
4338         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV: {
4339             return sizeof(VkPhysicalDeviceDisplacementMicromapPropertiesNV);
4340         }
4341 #endif  // VK_ENABLE_BETA_EXTENSIONS
4342 #ifdef VK_ENABLE_BETA_EXTENSIONS
4343         case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV: {
4344             return sizeof(VkAccelerationStructureTrianglesDisplacementMicromapNV);
4345         }
4346 #endif  // VK_ENABLE_BETA_EXTENSIONS
4347 #endif
4348 #ifdef VK_HUAWEI_cluster_culling_shader
4349         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI: {
4350             return sizeof(VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI);
4351         }
4352         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI: {
4353             return sizeof(VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI);
4354         }
4355 #endif
4356 #ifdef VK_EXT_border_color_swizzle
4357         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT: {
4358             return sizeof(VkPhysicalDeviceBorderColorSwizzleFeaturesEXT);
4359         }
4360         case VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT: {
4361             return sizeof(VkSamplerBorderColorComponentMappingCreateInfoEXT);
4362         }
4363 #endif
4364 #ifdef VK_EXT_pageable_device_local_memory
4365         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT: {
4366             return sizeof(VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT);
4367         }
4368 #endif
4369 #ifdef VK_ARM_shader_core_properties
4370         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM: {
4371             return sizeof(VkPhysicalDeviceShaderCorePropertiesARM);
4372         }
4373 #endif
4374 #ifdef VK_EXT_image_sliced_view_of_3d
4375         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT: {
4376             return sizeof(VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT);
4377         }
4378         case VK_STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT: {
4379             return sizeof(VkImageViewSlicedCreateInfoEXT);
4380         }
4381 #endif
4382 #ifdef VK_VALVE_descriptor_set_host_mapping
4383         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE: {
4384             return sizeof(VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE);
4385         }
4386 #endif
4387 #ifdef VK_EXT_depth_clamp_zero_one
4388         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT: {
4389             return sizeof(VkPhysicalDeviceDepthClampZeroOneFeaturesEXT);
4390         }
4391 #endif
4392 #ifdef VK_EXT_non_seamless_cube_map
4393         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT: {
4394             return sizeof(VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT);
4395         }
4396 #endif
4397 #ifdef VK_QCOM_fragment_density_map_offset
4398         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM: {
4399             return sizeof(VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM);
4400         }
4401         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM: {
4402             return sizeof(VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM);
4403         }
4404         case VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM: {
4405             return sizeof(VkSubpassFragmentDensityMapOffsetEndInfoQCOM);
4406         }
4407 #endif
4408 #ifdef VK_NV_copy_memory_indirect
4409         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV: {
4410             return sizeof(VkPhysicalDeviceCopyMemoryIndirectFeaturesNV);
4411         }
4412         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV: {
4413             return sizeof(VkPhysicalDeviceCopyMemoryIndirectPropertiesNV);
4414         }
4415 #endif
4416 #ifdef VK_NV_memory_decompression
4417         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV: {
4418             return sizeof(VkPhysicalDeviceMemoryDecompressionFeaturesNV);
4419         }
4420         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV: {
4421             return sizeof(VkPhysicalDeviceMemoryDecompressionPropertiesNV);
4422         }
4423 #endif
4424 #ifdef VK_NV_linear_color_attachment
4425         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV: {
4426             return sizeof(VkPhysicalDeviceLinearColorAttachmentFeaturesNV);
4427         }
4428 #endif
4429 #ifdef VK_EXT_image_compression_control_swapchain
4430         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT: {
4431             return sizeof(VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT);
4432         }
4433 #endif
4434 #ifdef VK_QCOM_image_processing
4435         case VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM: {
4436             return sizeof(VkImageViewSampleWeightCreateInfoQCOM);
4437         }
4438         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM: {
4439             return sizeof(VkPhysicalDeviceImageProcessingFeaturesQCOM);
4440         }
4441         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM: {
4442             return sizeof(VkPhysicalDeviceImageProcessingPropertiesQCOM);
4443         }
4444 #endif
4445 #ifdef VK_EXT_extended_dynamic_state3
4446         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT: {
4447             return sizeof(VkPhysicalDeviceExtendedDynamicState3FeaturesEXT);
4448         }
4449         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT: {
4450             return sizeof(VkPhysicalDeviceExtendedDynamicState3PropertiesEXT);
4451         }
4452 #endif
4453 #ifdef VK_EXT_subpass_merge_feedback
4454         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT: {
4455             return sizeof(VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT);
4456         }
4457         case VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT: {
4458             return sizeof(VkRenderPassCreationControlEXT);
4459         }
4460         case VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT: {
4461             return sizeof(VkRenderPassCreationFeedbackCreateInfoEXT);
4462         }
4463         case VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT: {
4464             return sizeof(VkRenderPassSubpassFeedbackCreateInfoEXT);
4465         }
4466 #endif
4467 #ifdef VK_LUNARG_direct_driver_loading
4468         case VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG: {
4469             return sizeof(VkDirectDriverLoadingListLUNARG);
4470         }
4471 #endif
4472 #ifdef VK_EXT_shader_module_identifier
4473         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT: {
4474             return sizeof(VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT);
4475         }
4476         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT: {
4477             return sizeof(VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT);
4478         }
4479         case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT: {
4480             return sizeof(VkPipelineShaderStageModuleIdentifierCreateInfoEXT);
4481         }
4482 #endif
4483 #ifdef VK_NV_optical_flow
4484         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV: {
4485             return sizeof(VkPhysicalDeviceOpticalFlowFeaturesNV);
4486         }
4487         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV: {
4488             return sizeof(VkPhysicalDeviceOpticalFlowPropertiesNV);
4489         }
4490         case VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV: {
4491             return sizeof(VkOpticalFlowImageFormatInfoNV);
4492         }
4493         case VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV: {
4494             return sizeof(VkOpticalFlowSessionCreatePrivateDataInfoNV);
4495         }
4496 #endif
4497 #ifdef VK_EXT_legacy_dithering
4498         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT: {
4499             return sizeof(VkPhysicalDeviceLegacyDitheringFeaturesEXT);
4500         }
4501 #endif
4502 #ifdef VK_EXT_pipeline_protected_access
4503         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT: {
4504             return sizeof(VkPhysicalDevicePipelineProtectedAccessFeaturesEXT);
4505         }
4506 #endif
4507 #ifdef VK_EXT_shader_object
4508         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT: {
4509             return sizeof(VkPhysicalDeviceShaderObjectFeaturesEXT);
4510         }
4511         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT: {
4512             return sizeof(VkPhysicalDeviceShaderObjectPropertiesEXT);
4513         }
4514 #endif
4515 #ifdef VK_QCOM_tile_properties
4516         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM: {
4517             return sizeof(VkPhysicalDeviceTilePropertiesFeaturesQCOM);
4518         }
4519 #endif
4520 #ifdef VK_SEC_amigo_profiling
4521         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC: {
4522             return sizeof(VkPhysicalDeviceAmigoProfilingFeaturesSEC);
4523         }
4524         case VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC: {
4525             return sizeof(VkAmigoProfilingSubmitInfoSEC);
4526         }
4527 #endif
4528 #ifdef VK_QCOM_multiview_per_view_viewports
4529         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM: {
4530             return sizeof(VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM);
4531         }
4532 #endif
4533 #ifdef VK_NV_ray_tracing_invocation_reorder
4534         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV: {
4535             return sizeof(VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV);
4536         }
4537         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV: {
4538             return sizeof(VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV);
4539         }
4540 #endif
4541 #ifdef VK_ARM_shader_core_builtins
4542         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM: {
4543             return sizeof(VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM);
4544         }
4545         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM: {
4546             return sizeof(VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM);
4547         }
4548 #endif
4549 #ifdef VK_EXT_pipeline_library_group_handles
4550         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT: {
4551             return sizeof(VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT);
4552         }
4553 #endif
4554 #ifdef VK_QCOM_multiview_per_view_render_areas
4555         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM: {
4556             return sizeof(VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM);
4557         }
4558         case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM: {
4559             return sizeof(VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM);
4560         }
4561 #endif
4562 #ifdef VK_EXT_attachment_feedback_loop_dynamic_state
4563         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT: {
4564             return sizeof(VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT);
4565         }
4566 #endif
4567 #ifdef VK_KHR_acceleration_structure
4568         case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR: {
4569             return sizeof(VkWriteDescriptorSetAccelerationStructureKHR);
4570         }
4571         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR: {
4572             return sizeof(VkPhysicalDeviceAccelerationStructureFeaturesKHR);
4573         }
4574         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR: {
4575             return sizeof(VkPhysicalDeviceAccelerationStructurePropertiesKHR);
4576         }
4577 #endif
4578 #ifdef VK_KHR_ray_tracing_pipeline
4579         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR: {
4580             return sizeof(VkPhysicalDeviceRayTracingPipelineFeaturesKHR);
4581         }
4582         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR: {
4583             return sizeof(VkPhysicalDeviceRayTracingPipelinePropertiesKHR);
4584         }
4585 #endif
4586 #ifdef VK_KHR_ray_query
4587         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR: {
4588             return sizeof(VkPhysicalDeviceRayQueryFeaturesKHR);
4589         }
4590 #endif
4591 #ifdef VK_EXT_mesh_shader
4592         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT: {
4593             return sizeof(VkPhysicalDeviceMeshShaderFeaturesEXT);
4594         }
4595         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT: {
4596             return sizeof(VkPhysicalDeviceMeshShaderPropertiesEXT);
4597         }
4598 #endif
4599         default: {
4600             return (size_t)0;
4601         }
4602     }
4603 }
4604 
4605 }  // namespace vk
4606 }  // namespace gfxstream
4607