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