xref: /aosp_15_r20/external/swiftshader/include/vulkan/vulkan_extension_inspection.hpp (revision 03ce13f70fcc45d86ee91b7ee4cab1936a95046e)
1 // Copyright 2015-2024 The Khronos Group Inc.
2 //
3 // SPDX-License-Identifier: Apache-2.0 OR MIT
4 //
5 
6 // This header is generated from the Khronos Vulkan XML API Registry.
7 
8 #ifndef VULKAN_EXTENSION_INSPECTION_HPP
9 #define VULKAN_EXTENSION_INSPECTION_HPP
10 
11 #include <map>
12 #include <set>
13 #include <string>
14 #include <vector>
15 #include <vulkan/vulkan.hpp>
16 
17 namespace VULKAN_HPP_NAMESPACE
18 {
19   //======================================
20   //=== Extension inspection functions ===
21   //======================================
22 
23   std::set<std::string> const &                                        getDeviceExtensions();
24   std::set<std::string> const &                                        getInstanceExtensions();
25   std::map<std::string, std::string> const &                           getDeprecatedExtensions();
26   std::map<std::string, std::vector<std::vector<std::string>>> const & getExtensionDepends( std::string const & extension );
27   std::pair<bool, std::vector<std::vector<std::string>> const &>       getExtensionDepends( std::string const & version, std::string const & extension );
28   std::map<std::string, std::string> const &                           getObsoletedExtensions();
29   std::map<std::string, std::string> const &                           getPromotedExtensions();
30   VULKAN_HPP_CONSTEXPR_20 std::string getExtensionDeprecatedBy( std::string const & extension );
31   VULKAN_HPP_CONSTEXPR_20 std::string getExtensionObsoletedBy( std::string const & extension );
32   VULKAN_HPP_CONSTEXPR_20 std::string getExtensionPromotedTo( std::string const & extension );
33   VULKAN_HPP_CONSTEXPR_20 bool        isDeprecatedExtension( std::string const & extension );
34   VULKAN_HPP_CONSTEXPR_20 bool        isDeviceExtension( std::string const & extension );
35   VULKAN_HPP_CONSTEXPR_20 bool        isInstanceExtension( std::string const & extension );
36   VULKAN_HPP_CONSTEXPR_20 bool        isObsoletedExtension( std::string const & extension );
37   VULKAN_HPP_CONSTEXPR_20 bool        isPromotedExtension( std::string const & extension );
38 
39   //=====================================================
40   //=== Extension inspection function implementations ===
41   //=====================================================
42 
getDeprecatedExtensions()43   VULKAN_HPP_INLINE std::map<std::string, std::string> const & getDeprecatedExtensions()
44   {
45     static std::map<std::string, std::string> deprecatedExtensions = {
46       { "VK_EXT_debug_report", "VK_EXT_debug_utils" },
47       { "VK_NV_glsl_shader", "" },
48       { "VK_NV_dedicated_allocation", "VK_KHR_dedicated_allocation" },
49       { "VK_AMD_gpu_shader_half_float", "VK_KHR_shader_float16_int8" },
50       { "VK_IMG_format_pvrtc", "" },
51       { "VK_NV_external_memory_capabilities", "VK_KHR_external_memory_capabilities" },
52       { "VK_NV_external_memory", "VK_KHR_external_memory" },
53 #if defined( VK_USE_PLATFORM_WIN32_KHR )
54       { "VK_NV_external_memory_win32", "VK_KHR_external_memory_win32" },
55 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
56       { "VK_EXT_validation_flags", "VK_EXT_layer_settings" },
57       { "VK_EXT_shader_subgroup_ballot", "VK_VERSION_1_2" },
58       { "VK_EXT_shader_subgroup_vote", "VK_VERSION_1_1" },
59 #if defined( VK_USE_PLATFORM_IOS_MVK )
60       { "VK_MVK_ios_surface", "VK_EXT_metal_surface" },
61 #endif /*VK_USE_PLATFORM_IOS_MVK*/
62 #if defined( VK_USE_PLATFORM_MACOS_MVK )
63       { "VK_MVK_macos_surface", "VK_EXT_metal_surface" },
64 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
65       { "VK_AMD_gpu_shader_int16", "VK_KHR_shader_float16_int8" },
66       { "VK_EXT_buffer_device_address", "VK_KHR_buffer_device_address" },
67       { "VK_EXT_validation_features", "VK_EXT_layer_settings" }
68     };
69     return deprecatedExtensions;
70   }
71 
getDeviceExtensions()72   VULKAN_HPP_INLINE std::set<std::string> const & getDeviceExtensions()
73   {
74     static std::set<std::string> deviceExtensions = {
75       "VK_KHR_swapchain",
76       "VK_KHR_display_swapchain",
77       "VK_NV_glsl_shader",
78       "VK_EXT_depth_range_unrestricted",
79       "VK_KHR_sampler_mirror_clamp_to_edge",
80       "VK_IMG_filter_cubic",
81       "VK_AMD_rasterization_order",
82       "VK_AMD_shader_trinary_minmax",
83       "VK_AMD_shader_explicit_vertex_parameter",
84       "VK_EXT_debug_marker",
85       "VK_KHR_video_queue",
86       "VK_KHR_video_decode_queue",
87       "VK_AMD_gcn_shader",
88       "VK_NV_dedicated_allocation",
89       "VK_EXT_transform_feedback",
90       "VK_NVX_binary_import",
91       "VK_NVX_image_view_handle",
92       "VK_AMD_draw_indirect_count",
93       "VK_AMD_negative_viewport_height",
94       "VK_AMD_gpu_shader_half_float",
95       "VK_AMD_shader_ballot",
96       "VK_KHR_video_encode_h264",
97       "VK_KHR_video_encode_h265",
98       "VK_KHR_video_decode_h264",
99       "VK_AMD_texture_gather_bias_lod",
100       "VK_AMD_shader_info",
101       "VK_KHR_dynamic_rendering",
102       "VK_AMD_shader_image_load_store_lod",
103       "VK_NV_corner_sampled_image",
104       "VK_KHR_multiview",
105       "VK_IMG_format_pvrtc",
106       "VK_NV_external_memory",
107 #if defined( VK_USE_PLATFORM_WIN32_KHR )
108       "VK_NV_external_memory_win32",
109       "VK_NV_win32_keyed_mutex",
110 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
111       "VK_KHR_device_group",
112       "VK_KHR_shader_draw_parameters",
113       "VK_EXT_shader_subgroup_ballot",
114       "VK_EXT_shader_subgroup_vote",
115       "VK_EXT_texture_compression_astc_hdr",
116       "VK_EXT_astc_decode_mode",
117       "VK_EXT_pipeline_robustness",
118       "VK_KHR_maintenance1",
119       "VK_KHR_external_memory",
120 #if defined( VK_USE_PLATFORM_WIN32_KHR )
121       "VK_KHR_external_memory_win32",
122 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
123       "VK_KHR_external_memory_fd",
124 #if defined( VK_USE_PLATFORM_WIN32_KHR )
125       "VK_KHR_win32_keyed_mutex",
126 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
127       "VK_KHR_external_semaphore",
128 #if defined( VK_USE_PLATFORM_WIN32_KHR )
129       "VK_KHR_external_semaphore_win32",
130 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
131       "VK_KHR_external_semaphore_fd",
132       "VK_KHR_push_descriptor",
133       "VK_EXT_conditional_rendering",
134       "VK_KHR_shader_float16_int8",
135       "VK_KHR_16bit_storage",
136       "VK_KHR_incremental_present",
137       "VK_KHR_descriptor_update_template",
138       "VK_NV_clip_space_w_scaling",
139       "VK_EXT_display_control",
140       "VK_GOOGLE_display_timing",
141       "VK_NV_sample_mask_override_coverage",
142       "VK_NV_geometry_shader_passthrough",
143       "VK_NV_viewport_array2",
144       "VK_NVX_multiview_per_view_attributes",
145       "VK_NV_viewport_swizzle",
146       "VK_EXT_discard_rectangles",
147       "VK_EXT_conservative_rasterization",
148       "VK_EXT_depth_clip_enable",
149       "VK_EXT_hdr_metadata",
150       "VK_KHR_imageless_framebuffer",
151       "VK_KHR_create_renderpass2",
152       "VK_IMG_relaxed_line_rasterization",
153       "VK_KHR_shared_presentable_image",
154       "VK_KHR_external_fence",
155 #if defined( VK_USE_PLATFORM_WIN32_KHR )
156       "VK_KHR_external_fence_win32",
157 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
158       "VK_KHR_external_fence_fd",
159       "VK_KHR_performance_query",
160       "VK_KHR_maintenance2",
161       "VK_KHR_variable_pointers",
162       "VK_EXT_external_memory_dma_buf",
163       "VK_EXT_queue_family_foreign",
164       "VK_KHR_dedicated_allocation",
165 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
166       "VK_ANDROID_external_memory_android_hardware_buffer",
167 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
168       "VK_EXT_sampler_filter_minmax",
169       "VK_KHR_storage_buffer_storage_class",
170       "VK_AMD_gpu_shader_int16",
171 #if defined( VK_ENABLE_BETA_EXTENSIONS )
172       "VK_AMDX_shader_enqueue",
173 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
174       "VK_AMD_mixed_attachment_samples",
175       "VK_AMD_shader_fragment_mask",
176       "VK_EXT_inline_uniform_block",
177       "VK_EXT_shader_stencil_export",
178       "VK_EXT_sample_locations",
179       "VK_KHR_relaxed_block_layout",
180       "VK_KHR_get_memory_requirements2",
181       "VK_KHR_image_format_list",
182       "VK_EXT_blend_operation_advanced",
183       "VK_NV_fragment_coverage_to_color",
184       "VK_KHR_acceleration_structure",
185       "VK_KHR_ray_tracing_pipeline",
186       "VK_KHR_ray_query",
187       "VK_NV_framebuffer_mixed_samples",
188       "VK_NV_fill_rectangle",
189       "VK_NV_shader_sm_builtins",
190       "VK_EXT_post_depth_coverage",
191       "VK_KHR_sampler_ycbcr_conversion",
192       "VK_KHR_bind_memory2",
193       "VK_EXT_image_drm_format_modifier",
194       "VK_EXT_validation_cache",
195       "VK_EXT_descriptor_indexing",
196       "VK_EXT_shader_viewport_index_layer",
197 #if defined( VK_ENABLE_BETA_EXTENSIONS )
198       "VK_KHR_portability_subset",
199 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
200       "VK_NV_shading_rate_image",
201       "VK_NV_ray_tracing",
202       "VK_NV_representative_fragment_test",
203       "VK_KHR_maintenance3",
204       "VK_KHR_draw_indirect_count",
205       "VK_EXT_filter_cubic",
206       "VK_QCOM_render_pass_shader_resolve",
207       "VK_EXT_global_priority",
208       "VK_KHR_shader_subgroup_extended_types",
209       "VK_KHR_8bit_storage",
210       "VK_EXT_external_memory_host",
211       "VK_AMD_buffer_marker",
212       "VK_KHR_shader_atomic_int64",
213       "VK_KHR_shader_clock",
214       "VK_AMD_pipeline_compiler_control",
215       "VK_EXT_calibrated_timestamps",
216       "VK_AMD_shader_core_properties",
217       "VK_KHR_video_decode_h265",
218       "VK_KHR_global_priority",
219       "VK_AMD_memory_overallocation_behavior",
220       "VK_EXT_vertex_attribute_divisor",
221 #if defined( VK_USE_PLATFORM_GGP )
222       "VK_GGP_frame_token",
223 #endif /*VK_USE_PLATFORM_GGP*/
224       "VK_EXT_pipeline_creation_feedback",
225       "VK_KHR_driver_properties",
226       "VK_KHR_shader_float_controls",
227       "VK_NV_shader_subgroup_partitioned",
228       "VK_KHR_depth_stencil_resolve",
229       "VK_KHR_swapchain_mutable_format",
230       "VK_NV_compute_shader_derivatives",
231       "VK_NV_mesh_shader",
232       "VK_NV_fragment_shader_barycentric",
233       "VK_NV_shader_image_footprint",
234       "VK_NV_scissor_exclusive",
235       "VK_NV_device_diagnostic_checkpoints",
236       "VK_KHR_timeline_semaphore",
237       "VK_INTEL_shader_integer_functions2",
238       "VK_INTEL_performance_query",
239       "VK_KHR_vulkan_memory_model",
240       "VK_EXT_pci_bus_info",
241       "VK_AMD_display_native_hdr",
242       "VK_KHR_shader_terminate_invocation",
243       "VK_EXT_fragment_density_map",
244       "VK_EXT_scalar_block_layout",
245       "VK_GOOGLE_hlsl_functionality1",
246       "VK_GOOGLE_decorate_string",
247       "VK_EXT_subgroup_size_control",
248       "VK_KHR_fragment_shading_rate",
249       "VK_AMD_shader_core_properties2",
250       "VK_AMD_device_coherent_memory",
251       "VK_KHR_dynamic_rendering_local_read",
252       "VK_EXT_shader_image_atomic_int64",
253       "VK_KHR_shader_quad_control",
254       "VK_KHR_spirv_1_4",
255       "VK_EXT_memory_budget",
256       "VK_EXT_memory_priority",
257       "VK_NV_dedicated_allocation_image_aliasing",
258       "VK_KHR_separate_depth_stencil_layouts",
259       "VK_EXT_buffer_device_address",
260       "VK_EXT_tooling_info",
261       "VK_EXT_separate_stencil_usage",
262       "VK_KHR_present_wait",
263       "VK_NV_cooperative_matrix",
264       "VK_NV_coverage_reduction_mode",
265       "VK_EXT_fragment_shader_interlock",
266       "VK_EXT_ycbcr_image_arrays",
267       "VK_KHR_uniform_buffer_standard_layout",
268       "VK_EXT_provoking_vertex",
269 #if defined( VK_USE_PLATFORM_WIN32_KHR )
270       "VK_EXT_full_screen_exclusive",
271 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
272       "VK_KHR_buffer_device_address",
273       "VK_EXT_line_rasterization",
274       "VK_EXT_shader_atomic_float",
275       "VK_EXT_host_query_reset",
276       "VK_EXT_index_type_uint8",
277       "VK_EXT_extended_dynamic_state",
278       "VK_KHR_deferred_host_operations",
279       "VK_KHR_pipeline_executable_properties",
280       "VK_EXT_host_image_copy",
281       "VK_KHR_map_memory2",
282       "VK_EXT_map_memory_placed",
283       "VK_EXT_shader_atomic_float2",
284       "VK_EXT_swapchain_maintenance1",
285       "VK_EXT_shader_demote_to_helper_invocation",
286       "VK_NV_device_generated_commands",
287       "VK_NV_inherited_viewport_scissor",
288       "VK_KHR_shader_integer_dot_product",
289       "VK_EXT_texel_buffer_alignment",
290       "VK_QCOM_render_pass_transform",
291       "VK_EXT_depth_bias_control",
292       "VK_EXT_device_memory_report",
293       "VK_EXT_robustness2",
294       "VK_EXT_custom_border_color",
295       "VK_GOOGLE_user_type",
296       "VK_KHR_pipeline_library",
297       "VK_NV_present_barrier",
298       "VK_KHR_shader_non_semantic_info",
299       "VK_KHR_present_id",
300       "VK_EXT_private_data",
301       "VK_EXT_pipeline_creation_cache_control",
302       "VK_KHR_video_encode_queue",
303       "VK_NV_device_diagnostics_config",
304       "VK_QCOM_render_pass_store_ops",
305 #if defined( VK_ENABLE_BETA_EXTENSIONS )
306       "VK_NV_cuda_kernel_launch",
307 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
308       "VK_NV_low_latency",
309 #if defined( VK_USE_PLATFORM_METAL_EXT )
310       "VK_EXT_metal_objects",
311 #endif /*VK_USE_PLATFORM_METAL_EXT*/
312       "VK_KHR_synchronization2",
313       "VK_EXT_descriptor_buffer",
314       "VK_EXT_graphics_pipeline_library",
315       "VK_AMD_shader_early_and_late_fragment_tests",
316       "VK_KHR_fragment_shader_barycentric",
317       "VK_KHR_shader_subgroup_uniform_control_flow",
318       "VK_KHR_zero_initialize_workgroup_memory",
319       "VK_NV_fragment_shading_rate_enums",
320       "VK_NV_ray_tracing_motion_blur",
321       "VK_EXT_mesh_shader",
322       "VK_EXT_ycbcr_2plane_444_formats",
323       "VK_EXT_fragment_density_map2",
324       "VK_QCOM_rotated_copy_commands",
325       "VK_EXT_image_robustness",
326       "VK_KHR_workgroup_memory_explicit_layout",
327       "VK_KHR_copy_commands2",
328       "VK_EXT_image_compression_control",
329       "VK_EXT_attachment_feedback_loop_layout",
330       "VK_EXT_4444_formats",
331       "VK_EXT_device_fault",
332       "VK_ARM_rasterization_order_attachment_access",
333       "VK_EXT_rgba10x6_formats",
334 #if defined( VK_USE_PLATFORM_WIN32_KHR )
335       "VK_NV_acquire_winrt_display",
336 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
337       "VK_VALVE_mutable_descriptor_type",
338       "VK_EXT_vertex_input_dynamic_state",
339       "VK_EXT_physical_device_drm",
340       "VK_EXT_device_address_binding_report",
341       "VK_EXT_depth_clip_control",
342       "VK_EXT_primitive_topology_list_restart",
343       "VK_KHR_format_feature_flags2",
344 #if defined( VK_USE_PLATFORM_FUCHSIA )
345       "VK_FUCHSIA_external_memory",
346       "VK_FUCHSIA_external_semaphore",
347       "VK_FUCHSIA_buffer_collection",
348 #endif /*VK_USE_PLATFORM_FUCHSIA*/
349       "VK_HUAWEI_subpass_shading",
350       "VK_HUAWEI_invocation_mask",
351       "VK_NV_external_memory_rdma",
352       "VK_EXT_pipeline_properties",
353       "VK_EXT_frame_boundary",
354       "VK_EXT_multisampled_render_to_single_sampled",
355       "VK_EXT_extended_dynamic_state2",
356       "VK_EXT_color_write_enable",
357       "VK_EXT_primitives_generated_query",
358       "VK_KHR_ray_tracing_maintenance1",
359       "VK_EXT_global_priority_query",
360       "VK_EXT_image_view_min_lod",
361       "VK_EXT_multi_draw",
362       "VK_EXT_image_2d_view_of_3d",
363       "VK_EXT_shader_tile_image",
364       "VK_EXT_opacity_micromap",
365 #if defined( VK_ENABLE_BETA_EXTENSIONS )
366       "VK_NV_displacement_micromap",
367 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
368       "VK_EXT_load_store_op_none",
369       "VK_HUAWEI_cluster_culling_shader",
370       "VK_EXT_border_color_swizzle",
371       "VK_EXT_pageable_device_local_memory",
372       "VK_KHR_maintenance4",
373       "VK_ARM_shader_core_properties",
374       "VK_KHR_shader_subgroup_rotate",
375       "VK_ARM_scheduling_controls",
376       "VK_EXT_image_sliced_view_of_3d",
377       "VK_VALVE_descriptor_set_host_mapping",
378       "VK_EXT_depth_clamp_zero_one",
379       "VK_EXT_non_seamless_cube_map",
380       "VK_ARM_render_pass_striped",
381       "VK_QCOM_fragment_density_map_offset",
382       "VK_NV_copy_memory_indirect",
383       "VK_NV_memory_decompression",
384       "VK_NV_device_generated_commands_compute",
385       "VK_NV_linear_color_attachment",
386       "VK_KHR_shader_maximal_reconvergence",
387       "VK_EXT_image_compression_control_swapchain",
388       "VK_QCOM_image_processing",
389       "VK_EXT_nested_command_buffer",
390       "VK_EXT_external_memory_acquire_unmodified",
391       "VK_EXT_extended_dynamic_state3",
392       "VK_EXT_subpass_merge_feedback",
393       "VK_EXT_shader_module_identifier",
394       "VK_EXT_rasterization_order_attachment_access",
395       "VK_NV_optical_flow",
396       "VK_EXT_legacy_dithering",
397       "VK_EXT_pipeline_protected_access",
398 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
399       "VK_ANDROID_external_format_resolve",
400 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
401       "VK_KHR_maintenance5",
402       "VK_KHR_ray_tracing_position_fetch",
403       "VK_EXT_shader_object",
404       "VK_QCOM_tile_properties",
405       "VK_SEC_amigo_profiling",
406       "VK_QCOM_multiview_per_view_viewports",
407       "VK_NV_ray_tracing_invocation_reorder",
408       "VK_NV_extended_sparse_address_space",
409       "VK_EXT_mutable_descriptor_type",
410       "VK_EXT_legacy_vertex_attributes",
411       "VK_ARM_shader_core_builtins",
412       "VK_EXT_pipeline_library_group_handles",
413       "VK_EXT_dynamic_rendering_unused_attachments",
414       "VK_NV_low_latency2",
415       "VK_KHR_cooperative_matrix",
416       "VK_QCOM_multiview_per_view_render_areas",
417       "VK_KHR_video_decode_av1",
418       "VK_KHR_video_maintenance1",
419       "VK_NV_per_stage_descriptor_set",
420       "VK_QCOM_image_processing2",
421       "VK_QCOM_filter_cubic_weights",
422       "VK_QCOM_ycbcr_degamma",
423       "VK_QCOM_filter_cubic_clamp",
424       "VK_EXT_attachment_feedback_loop_dynamic_state",
425       "VK_KHR_vertex_attribute_divisor",
426       "VK_KHR_load_store_op_none",
427       "VK_KHR_shader_float_controls2",
428 #if defined( VK_USE_PLATFORM_SCREEN_QNX )
429       "VK_QNX_external_memory_screen_buffer",
430 #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
431       "VK_MSFT_layered_driver",
432       "VK_KHR_index_type_uint8",
433       "VK_KHR_line_rasterization",
434       "VK_KHR_calibrated_timestamps",
435       "VK_KHR_shader_expect_assume",
436       "VK_KHR_maintenance6",
437       "VK_NV_descriptor_pool_overallocation",
438       "VK_NV_raw_access_chains",
439       "VK_NV_shader_atomic_float16_vector",
440       "VK_EXT_shader_replicated_composites",
441       "VK_NV_ray_tracing_validation",
442       "VK_MESA_image_alignment_control"
443     };
444     return deviceExtensions;
445   }
446 
getInstanceExtensions()447   VULKAN_HPP_INLINE std::set<std::string> const & getInstanceExtensions()
448   {
449     static std::set<std::string> instanceExtensions = {
450       "VK_KHR_surface",
451       "VK_KHR_display",
452 #if defined( VK_USE_PLATFORM_XLIB_KHR )
453       "VK_KHR_xlib_surface",
454 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
455 #if defined( VK_USE_PLATFORM_XCB_KHR )
456       "VK_KHR_xcb_surface",
457 #endif /*VK_USE_PLATFORM_XCB_KHR*/
458 #if defined( VK_USE_PLATFORM_WAYLAND_KHR )
459       "VK_KHR_wayland_surface",
460 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
461 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
462       "VK_KHR_android_surface",
463 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
464 #if defined( VK_USE_PLATFORM_WIN32_KHR )
465       "VK_KHR_win32_surface",
466 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
467       "VK_EXT_debug_report",
468 #if defined( VK_USE_PLATFORM_GGP )
469       "VK_GGP_stream_descriptor_surface",
470 #endif /*VK_USE_PLATFORM_GGP*/
471       "VK_NV_external_memory_capabilities",
472       "VK_KHR_get_physical_device_properties2",
473       "VK_EXT_validation_flags",
474 #if defined( VK_USE_PLATFORM_VI_NN )
475       "VK_NN_vi_surface",
476 #endif /*VK_USE_PLATFORM_VI_NN*/
477       "VK_KHR_device_group_creation",
478       "VK_KHR_external_memory_capabilities",
479       "VK_KHR_external_semaphore_capabilities",
480       "VK_EXT_direct_mode_display",
481 #if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT )
482       "VK_EXT_acquire_xlib_display",
483 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
484       "VK_EXT_display_surface_counter",
485       "VK_EXT_swapchain_colorspace",
486       "VK_KHR_external_fence_capabilities",
487       "VK_KHR_get_surface_capabilities2",
488       "VK_KHR_get_display_properties2",
489 #if defined( VK_USE_PLATFORM_IOS_MVK )
490       "VK_MVK_ios_surface",
491 #endif /*VK_USE_PLATFORM_IOS_MVK*/
492 #if defined( VK_USE_PLATFORM_MACOS_MVK )
493       "VK_MVK_macos_surface",
494 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
495       "VK_EXT_debug_utils",
496 #if defined( VK_USE_PLATFORM_FUCHSIA )
497       "VK_FUCHSIA_imagepipe_surface",
498 #endif /*VK_USE_PLATFORM_FUCHSIA*/
499 #if defined( VK_USE_PLATFORM_METAL_EXT )
500       "VK_EXT_metal_surface",
501 #endif /*VK_USE_PLATFORM_METAL_EXT*/
502       "VK_KHR_surface_protected_capabilities",
503       "VK_EXT_validation_features",
504       "VK_EXT_headless_surface",
505       "VK_EXT_surface_maintenance1",
506       "VK_EXT_acquire_drm_display",
507 #if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
508       "VK_EXT_directfb_surface",
509 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
510 #if defined( VK_USE_PLATFORM_SCREEN_QNX )
511       "VK_QNX_screen_surface",
512 #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
513       "VK_KHR_portability_enumeration",
514       "VK_GOOGLE_surfaceless_query",
515       "VK_LUNARG_direct_driver_loading",
516       "VK_EXT_layer_settings"
517     };
518     return instanceExtensions;
519   }
520 
getExtensionDepends(std::string const & extension)521   VULKAN_HPP_INLINE std::map<std::string, std::vector<std::vector<std::string>>> const & getExtensionDepends( std::string const & extension )
522   {
523     static std::map<std::string, std::vector<std::vector<std::string>>>                        noDependencies;
524     static std::map<std::string, std::map<std::string, std::vector<std::vector<std::string>>>> dependencies = {
525       { "VK_KHR_swapchain",
526         { { "VK_VERSION_1_0",
527             { {
528               "VK_KHR_surface",
529             } } } } },
530       { "VK_KHR_display",
531         { { "VK_VERSION_1_0",
532             { {
533               "VK_KHR_surface",
534             } } } } },
535       { "VK_KHR_display_swapchain",
536         { { "VK_VERSION_1_0",
537             { {
538               "VK_KHR_swapchain",
539               "VK_KHR_display",
540             } } } } },
541 #if defined( VK_USE_PLATFORM_XLIB_KHR )
542       { "VK_KHR_xlib_surface",
543         { { "VK_VERSION_1_0",
544             { {
545               "VK_KHR_surface",
546             } } } } },
547 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
548 #if defined( VK_USE_PLATFORM_XCB_KHR )
549       { "VK_KHR_xcb_surface",
550         { { "VK_VERSION_1_0",
551             { {
552               "VK_KHR_surface",
553             } } } } },
554 #endif /*VK_USE_PLATFORM_XCB_KHR*/
555 #if defined( VK_USE_PLATFORM_WAYLAND_KHR )
556       { "VK_KHR_wayland_surface",
557         { { "VK_VERSION_1_0",
558             { {
559               "VK_KHR_surface",
560             } } } } },
561 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
562 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
563       { "VK_KHR_android_surface",
564         { { "VK_VERSION_1_0",
565             { {
566               "VK_KHR_surface",
567             } } } } },
568 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
569 #if defined( VK_USE_PLATFORM_WIN32_KHR )
570       { "VK_KHR_win32_surface",
571         { { "VK_VERSION_1_0",
572             { {
573               "VK_KHR_surface",
574             } } } } },
575 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
576       { "VK_EXT_debug_marker",
577         { { "VK_VERSION_1_0",
578             { {
579               "VK_EXT_debug_report",
580             } } } } },
581       { "VK_KHR_video_queue",
582         { { "VK_VERSION_1_1",
583             { {
584               "VK_KHR_synchronization2",
585             } } },
586           { "VK_VERSION_1_3", { {} } } } },
587       { "VK_KHR_video_decode_queue",
588         { { "VK_VERSION_1_0",
589             { {
590               "VK_KHR_video_queue",
591               "VK_KHR_synchronization2",
592             } } },
593           { "VK_VERSION_1_3", { {} } } } },
594       { "VK_EXT_transform_feedback",
595         { { "VK_VERSION_1_0",
596             { {
597               "VK_KHR_get_physical_device_properties2",
598             } } },
599           { "VK_VERSION_1_1", { {} } } } },
600       { "VK_KHR_video_encode_h264",
601         { { "VK_VERSION_1_0",
602             { {
603               "VK_KHR_video_encode_queue",
604             } } } } },
605       { "VK_KHR_video_encode_h265",
606         { { "VK_VERSION_1_0",
607             { {
608               "VK_KHR_video_encode_queue",
609             } } } } },
610       { "VK_KHR_video_decode_h264",
611         { { "VK_VERSION_1_0",
612             { {
613               "VK_KHR_video_decode_queue",
614             } } } } },
615       { "VK_AMD_texture_gather_bias_lod",
616         { { "VK_VERSION_1_0",
617             { {
618               "VK_KHR_get_physical_device_properties2",
619             } } },
620           { "VK_VERSION_1_1", { {} } } } },
621       { "VK_KHR_dynamic_rendering",
622         { { "VK_VERSION_1_0",
623             { {
624               "VK_KHR_get_physical_device_properties2",
625             } } },
626           { "VK_VERSION_1_1",
627             { {
628               "VK_KHR_depth_stencil_resolve",
629             } } },
630           { "VK_VERSION_1_2", { {} } } } },
631 #if defined( VK_USE_PLATFORM_GGP )
632       { "VK_GGP_stream_descriptor_surface",
633         { { "VK_VERSION_1_0",
634             { {
635               "VK_KHR_surface",
636             } } } } },
637 #endif /*VK_USE_PLATFORM_GGP*/
638       { "VK_NV_corner_sampled_image",
639         { { "VK_VERSION_1_0",
640             { {
641               "VK_KHR_get_physical_device_properties2",
642             } } },
643           { "VK_VERSION_1_1", { {} } } } },
644       { "VK_KHR_multiview",
645         { { "VK_VERSION_1_0",
646             { {
647               "VK_KHR_get_physical_device_properties2",
648             } } },
649           { "VK_VERSION_1_1", { {} } } } },
650       { "VK_NV_external_memory",
651         { { "VK_VERSION_1_0",
652             { {
653               "VK_NV_external_memory_capabilities",
654             } } } } },
655 #if defined( VK_USE_PLATFORM_WIN32_KHR )
656       { "VK_NV_external_memory_win32",
657         { { "VK_VERSION_1_0",
658             { {
659               "VK_NV_external_memory",
660             } } } } },
661       { "VK_NV_win32_keyed_mutex",
662         { { "VK_VERSION_1_0",
663             { {
664               "VK_NV_external_memory_win32",
665             } } } } },
666 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
667       { "VK_KHR_device_group",
668         { { "VK_VERSION_1_0",
669             { {
670               "VK_KHR_device_group_creation",
671             } } } } },
672 #if defined( VK_USE_PLATFORM_VI_NN )
673       { "VK_NN_vi_surface",
674         { { "VK_VERSION_1_0",
675             { {
676               "VK_KHR_surface",
677             } } } } },
678 #endif /*VK_USE_PLATFORM_VI_NN*/
679       { "VK_EXT_texture_compression_astc_hdr",
680         { { "VK_VERSION_1_0",
681             { {
682               "VK_KHR_get_physical_device_properties2",
683             } } },
684           { "VK_VERSION_1_1", { {} } } } },
685       { "VK_EXT_astc_decode_mode",
686         { { "VK_VERSION_1_0",
687             { {
688               "VK_KHR_get_physical_device_properties2",
689             } } },
690           { "VK_VERSION_1_1", { {} } } } },
691       { "VK_EXT_pipeline_robustness",
692         { { "VK_VERSION_1_0",
693             { {
694               "VK_KHR_get_physical_device_properties2",
695             } } },
696           { "VK_VERSION_1_1", { {} } } } },
697       { "VK_KHR_external_memory_capabilities",
698         { { "VK_VERSION_1_0",
699             { {
700               "VK_KHR_get_physical_device_properties2",
701             } } },
702           { "VK_VERSION_1_1", { {} } } } },
703       { "VK_KHR_external_memory",
704         { { "VK_VERSION_1_0",
705             { {
706               "VK_KHR_external_memory_capabilities",
707             } } },
708           { "VK_VERSION_1_1", { {} } } } },
709 #if defined( VK_USE_PLATFORM_WIN32_KHR )
710       { "VK_KHR_external_memory_win32",
711         { { "VK_VERSION_1_0",
712             { {
713               "VK_KHR_external_memory",
714             } } },
715           { "VK_VERSION_1_1", { {} } } } },
716 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
717       { "VK_KHR_external_memory_fd",
718         { { "VK_VERSION_1_0",
719             { {
720               "VK_KHR_external_memory",
721             } } },
722           { "VK_VERSION_1_1", { {} } } } },
723 #if defined( VK_USE_PLATFORM_WIN32_KHR )
724       { "VK_KHR_win32_keyed_mutex",
725         { { "VK_VERSION_1_0",
726             { {
727               "VK_KHR_external_memory_win32",
728             } } } } },
729 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
730       { "VK_KHR_external_semaphore_capabilities",
731         { { "VK_VERSION_1_0",
732             { {
733               "VK_KHR_get_physical_device_properties2",
734             } } },
735           { "VK_VERSION_1_1", { {} } } } },
736       { "VK_KHR_external_semaphore",
737         { { "VK_VERSION_1_0",
738             { {
739               "VK_KHR_external_semaphore_capabilities",
740             } } } } },
741 #if defined( VK_USE_PLATFORM_WIN32_KHR )
742       { "VK_KHR_external_semaphore_win32",
743         { { "VK_VERSION_1_0",
744             { {
745               "VK_KHR_external_semaphore",
746             } } } } },
747 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
748       { "VK_KHR_external_semaphore_fd",
749         { { "VK_VERSION_1_0",
750             { {
751               "VK_KHR_external_semaphore",
752             } } },
753           { "VK_VERSION_1_1", { {} } } } },
754       { "VK_KHR_push_descriptor",
755         { { "VK_VERSION_1_0",
756             { {
757               "VK_KHR_get_physical_device_properties2",
758             } } },
759           { "VK_VERSION_1_1", { {} } } } },
760       { "VK_EXT_conditional_rendering",
761         { { "VK_VERSION_1_0",
762             { {
763               "VK_KHR_get_physical_device_properties2",
764             } } },
765           { "VK_VERSION_1_1", { {} } } } },
766       { "VK_KHR_shader_float16_int8",
767         { { "VK_VERSION_1_0",
768             { {
769               "VK_KHR_get_physical_device_properties2",
770             } } },
771           { "VK_VERSION_1_1", { {} } } } },
772       { "VK_KHR_16bit_storage",
773         { { "VK_VERSION_1_0",
774             { {
775               "VK_KHR_get_physical_device_properties2",
776               "VK_KHR_storage_buffer_storage_class",
777             } } },
778           { "VK_VERSION_1_1", { {} } } } },
779       { "VK_KHR_incremental_present",
780         { { "VK_VERSION_1_0",
781             { {
782               "VK_KHR_swapchain",
783             } } } } },
784       { "VK_EXT_direct_mode_display",
785         { { "VK_VERSION_1_0",
786             { {
787               "VK_KHR_display",
788             } } } } },
789 #if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT )
790       { "VK_EXT_acquire_xlib_display",
791         { { "VK_VERSION_1_0",
792             { {
793               "VK_EXT_direct_mode_display",
794             } } } } },
795 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
796       { "VK_EXT_display_surface_counter",
797         { { "VK_VERSION_1_0",
798             { {
799               "VK_KHR_display",
800             } } } } },
801       { "VK_EXT_display_control",
802         { { "VK_VERSION_1_0",
803             { {
804               "VK_EXT_display_surface_counter",
805               "VK_KHR_swapchain",
806             } } } } },
807       { "VK_GOOGLE_display_timing",
808         { { "VK_VERSION_1_0",
809             { {
810               "VK_KHR_swapchain",
811             } } } } },
812       { "VK_NVX_multiview_per_view_attributes",
813         { { "VK_VERSION_1_0",
814             { {
815               "VK_KHR_multiview",
816             } } },
817           { "VK_VERSION_1_1", { {} } } } },
818       { "VK_EXT_discard_rectangles",
819         { { "VK_VERSION_1_0",
820             { {
821               "VK_KHR_get_physical_device_properties2",
822             } } },
823           { "VK_VERSION_1_1", { {} } } } },
824       { "VK_EXT_conservative_rasterization",
825         { { "VK_VERSION_1_0",
826             { {
827               "VK_KHR_get_physical_device_properties2",
828             } } },
829           { "VK_VERSION_1_1", { {} } } } },
830       { "VK_EXT_depth_clip_enable",
831         { { "VK_VERSION_1_0",
832             { {
833               "VK_KHR_get_physical_device_properties2",
834             } } },
835           { "VK_VERSION_1_1", { {} } } } },
836       { "VK_EXT_swapchain_colorspace",
837         { { "VK_VERSION_1_0",
838             { {
839               "VK_KHR_surface",
840             } } } } },
841       { "VK_EXT_hdr_metadata",
842         { { "VK_VERSION_1_0",
843             { {
844               "VK_KHR_swapchain",
845             } } } } },
846       { "VK_KHR_imageless_framebuffer",
847         { { "VK_VERSION_1_0",
848             { {
849               "VK_KHR_get_physical_device_properties2",
850               "VK_KHR_maintenance2",
851             } } },
852           { "VK_VERSION_1_1",
853             { {
854               "VK_KHR_image_format_list",
855             } } },
856           { "VK_VERSION_1_2", { {} } } } },
857       { "VK_KHR_create_renderpass2",
858         { { "VK_VERSION_1_0",
859             { {
860               "VK_KHR_multiview",
861               "VK_KHR_maintenance2",
862             } } },
863           { "VK_VERSION_1_1", { {} } } } },
864       { "VK_IMG_relaxed_line_rasterization",
865         { { "VK_VERSION_1_0",
866             { {
867               "VK_KHR_get_physical_device_properties2",
868             } } },
869           { "VK_VERSION_1_1", { {} } } } },
870       { "VK_KHR_shared_presentable_image",
871         { { "VK_VERSION_1_0",
872             { {
873               "VK_KHR_swapchain",
874               "VK_KHR_get_surface_capabilities2",
875               "VK_KHR_get_physical_device_properties2",
876             } } },
877           { "VK_VERSION_1_1",
878             { {
879               "VK_KHR_swapchain",
880               "VK_KHR_get_surface_capabilities2",
881             } } } } },
882       { "VK_KHR_external_fence_capabilities",
883         { { "VK_VERSION_1_0",
884             { {
885               "VK_KHR_get_physical_device_properties2",
886             } } },
887           { "VK_VERSION_1_1", { {} } } } },
888       { "VK_KHR_external_fence",
889         { { "VK_VERSION_1_0",
890             { {
891               "VK_KHR_external_fence_capabilities",
892             } } } } },
893 #if defined( VK_USE_PLATFORM_WIN32_KHR )
894       { "VK_KHR_external_fence_win32",
895         { { "VK_VERSION_1_0",
896             { {
897               "VK_KHR_external_fence",
898             } } } } },
899 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
900       { "VK_KHR_external_fence_fd",
901         { { "VK_VERSION_1_0",
902             { {
903               "VK_KHR_external_fence",
904             } } },
905           { "VK_VERSION_1_1", { {} } } } },
906       { "VK_KHR_performance_query",
907         { { "VK_VERSION_1_0",
908             { {
909               "VK_KHR_get_physical_device_properties2",
910             } } },
911           { "VK_VERSION_1_1", { {} } } } },
912       { "VK_KHR_get_surface_capabilities2",
913         { { "VK_VERSION_1_0",
914             { {
915               "VK_KHR_surface",
916             } } } } },
917       { "VK_KHR_variable_pointers",
918         { { "VK_VERSION_1_0",
919             { {
920               "VK_KHR_get_physical_device_properties2",
921               "VK_KHR_storage_buffer_storage_class",
922             } } },
923           { "VK_VERSION_1_1", { {} } } } },
924       { "VK_KHR_get_display_properties2",
925         { { "VK_VERSION_1_0",
926             { {
927               "VK_KHR_display",
928             } } } } },
929 #if defined( VK_USE_PLATFORM_IOS_MVK )
930       { "VK_MVK_ios_surface",
931         { { "VK_VERSION_1_0",
932             { {
933               "VK_KHR_surface",
934             } } } } },
935 #endif /*VK_USE_PLATFORM_IOS_MVK*/
936 #if defined( VK_USE_PLATFORM_MACOS_MVK )
937       { "VK_MVK_macos_surface",
938         { { "VK_VERSION_1_0",
939             { {
940               "VK_KHR_surface",
941             } } } } },
942 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
943       { "VK_EXT_external_memory_dma_buf",
944         { { "VK_VERSION_1_0",
945             { {
946               "VK_KHR_external_memory_fd",
947             } } } } },
948       { "VK_EXT_queue_family_foreign",
949         { { "VK_VERSION_1_0",
950             { {
951               "VK_KHR_external_memory",
952             } } },
953           { "VK_VERSION_1_1", { {} } } } },
954       { "VK_KHR_dedicated_allocation",
955         { { "VK_VERSION_1_0",
956             { {
957               "VK_KHR_get_memory_requirements2",
958             } } },
959           { "VK_VERSION_1_1", { {} } } } },
960 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
961       { "VK_ANDROID_external_memory_android_hardware_buffer",
962         { { "VK_VERSION_1_0",
963             { {
964               "VK_KHR_sampler_ycbcr_conversion",
965               "VK_KHR_external_memory",
966               "VK_KHR_dedicated_allocation",
967             } } },
968           { "VK_VERSION_1_1",
969             { {
970               "VK_EXT_queue_family_foreign",
971             } } } } },
972 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
973       { "VK_EXT_sampler_filter_minmax",
974         { { "VK_VERSION_1_0",
975             { {
976               "VK_KHR_get_physical_device_properties2",
977             } } },
978           { "VK_VERSION_1_1", { {} } } } },
979 #if defined( VK_ENABLE_BETA_EXTENSIONS )
980       { "VK_AMDX_shader_enqueue",
981         { { "VK_VERSION_1_0",
982             { {
983               "VK_KHR_get_physical_device_properties2",
984             } } },
985           { "VK_VERSION_1_1",
986             { {
987               "VK_KHR_synchronization2",
988             } } },
989           { "VK_VERSION_1_3",
990             { {
991               "VK_KHR_pipeline_library",
992               "VK_KHR_spirv_1_4",
993             } } } } },
994 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
995       { "VK_EXT_inline_uniform_block",
996         { { "VK_VERSION_1_0",
997             { {
998               "VK_KHR_get_physical_device_properties2",
999               "VK_KHR_maintenance1",
1000             } } },
1001           { "VK_VERSION_1_1", { {} } } } },
1002       { "VK_EXT_sample_locations",
1003         { { "VK_VERSION_1_0",
1004             { {
1005               "VK_KHR_get_physical_device_properties2",
1006             } } },
1007           { "VK_VERSION_1_1", { {} } } } },
1008       { "VK_EXT_blend_operation_advanced",
1009         { { "VK_VERSION_1_0",
1010             { {
1011               "VK_KHR_get_physical_device_properties2",
1012             } } },
1013           { "VK_VERSION_1_1", { {} } } } },
1014       { "VK_KHR_acceleration_structure",
1015         { { "VK_VERSION_1_1",
1016             { {
1017               "VK_EXT_descriptor_indexing",
1018               "VK_KHR_buffer_device_address",
1019             } } },
1020           { "VK_VERSION_1_2",
1021             { {
1022               "VK_KHR_deferred_host_operations",
1023             } } } } },
1024       { "VK_KHR_ray_tracing_pipeline",
1025         { { "VK_VERSION_1_0",
1026             { {
1027               "VK_KHR_spirv_1_4",
1028               "VK_KHR_acceleration_structure",
1029             } } } } },
1030       { "VK_KHR_ray_query",
1031         { { "VK_VERSION_1_0",
1032             { {
1033               "VK_KHR_spirv_1_4",
1034               "VK_KHR_acceleration_structure",
1035             } } } } },
1036       { "VK_NV_shader_sm_builtins", { { "VK_VERSION_1_1", { {} } } } },
1037       { "VK_KHR_sampler_ycbcr_conversion",
1038         { { "VK_VERSION_1_0",
1039             { {
1040               "VK_KHR_maintenance1",
1041               "VK_KHR_bind_memory2",
1042               "VK_KHR_get_memory_requirements2",
1043               "VK_KHR_get_physical_device_properties2",
1044             } } },
1045           { "VK_VERSION_1_1", { {} } } } },
1046       { "VK_EXT_image_drm_format_modifier",
1047         { { "VK_VERSION_1_0",
1048             { {
1049               "VK_KHR_bind_memory2",
1050               "VK_KHR_get_physical_device_properties2",
1051               "VK_KHR_sampler_ycbcr_conversion",
1052             } } },
1053           { "VK_VERSION_1_1",
1054             { {
1055               "VK_KHR_image_format_list",
1056             } } },
1057           { "VK_VERSION_1_2", { {} } } } },
1058       { "VK_EXT_descriptor_indexing",
1059         { { "VK_VERSION_1_0",
1060             { {
1061               "VK_KHR_get_physical_device_properties2",
1062               "VK_KHR_maintenance3",
1063             } } },
1064           { "VK_VERSION_1_1", { {} } } } },
1065 #if defined( VK_ENABLE_BETA_EXTENSIONS )
1066       { "VK_KHR_portability_subset",
1067         { { "VK_VERSION_1_0",
1068             { {
1069               "VK_KHR_get_physical_device_properties2",
1070             } } },
1071           { "VK_VERSION_1_1", { {} } } } },
1072 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1073       { "VK_NV_shading_rate_image",
1074         { { "VK_VERSION_1_0",
1075             { {
1076               "VK_KHR_get_physical_device_properties2",
1077             } } },
1078           { "VK_VERSION_1_1", { {} } } } },
1079       { "VK_NV_ray_tracing",
1080         { { "VK_VERSION_1_0",
1081             { {
1082               "VK_KHR_get_physical_device_properties2",
1083               "VK_KHR_get_memory_requirements2",
1084             } } },
1085           { "VK_VERSION_1_1", { {} } } } },
1086       { "VK_NV_representative_fragment_test",
1087         { { "VK_VERSION_1_0",
1088             { {
1089               "VK_KHR_get_physical_device_properties2",
1090             } } },
1091           { "VK_VERSION_1_1", { {} } } } },
1092       { "VK_KHR_maintenance3",
1093         { { "VK_VERSION_1_0",
1094             { {
1095               "VK_KHR_get_physical_device_properties2",
1096             } } },
1097           { "VK_VERSION_1_1", { {} } } } },
1098       { "VK_KHR_shader_subgroup_extended_types", { { "VK_VERSION_1_1", { {} } } } },
1099       { "VK_KHR_8bit_storage",
1100         { { "VK_VERSION_1_0",
1101             { {
1102               "VK_KHR_get_physical_device_properties2",
1103               "VK_KHR_storage_buffer_storage_class",
1104             } } },
1105           { "VK_VERSION_1_1", { {} } } } },
1106       { "VK_EXT_external_memory_host",
1107         { { "VK_VERSION_1_0",
1108             { {
1109               "VK_KHR_external_memory",
1110             } } },
1111           { "VK_VERSION_1_1", { {} } } } },
1112       { "VK_KHR_shader_atomic_int64",
1113         { { "VK_VERSION_1_0",
1114             { {
1115               "VK_KHR_get_physical_device_properties2",
1116             } } },
1117           { "VK_VERSION_1_1", { {} } } } },
1118       { "VK_KHR_shader_clock",
1119         { { "VK_VERSION_1_0",
1120             { {
1121               "VK_KHR_get_physical_device_properties2",
1122             } } },
1123           { "VK_VERSION_1_1", { {} } } } },
1124       { "VK_EXT_calibrated_timestamps",
1125         { { "VK_VERSION_1_0",
1126             { {
1127               "VK_KHR_get_physical_device_properties2",
1128             } } },
1129           { "VK_VERSION_1_1", { {} } } } },
1130       { "VK_AMD_shader_core_properties",
1131         { { "VK_VERSION_1_0",
1132             { {
1133               "VK_KHR_get_physical_device_properties2",
1134             } } },
1135           { "VK_VERSION_1_1", { {} } } } },
1136       { "VK_KHR_video_decode_h265",
1137         { { "VK_VERSION_1_0",
1138             { {
1139               "VK_KHR_video_decode_queue",
1140             } } } } },
1141       { "VK_KHR_global_priority",
1142         { { "VK_VERSION_1_0",
1143             { {
1144               "VK_KHR_get_physical_device_properties2",
1145             } } },
1146           { "VK_VERSION_1_1", { {} } } } },
1147       { "VK_EXT_vertex_attribute_divisor",
1148         { { "VK_VERSION_1_0",
1149             { {
1150               "VK_KHR_get_physical_device_properties2",
1151             } } },
1152           { "VK_VERSION_1_1", { {} } } } },
1153 #if defined( VK_USE_PLATFORM_GGP )
1154       { "VK_GGP_frame_token",
1155         { { "VK_VERSION_1_0",
1156             { {
1157               "VK_KHR_swapchain",
1158               "VK_GGP_stream_descriptor_surface",
1159             } } } } },
1160 #endif /*VK_USE_PLATFORM_GGP*/
1161       { "VK_KHR_driver_properties",
1162         { { "VK_VERSION_1_0",
1163             { {
1164               "VK_KHR_get_physical_device_properties2",
1165             } } },
1166           { "VK_VERSION_1_1", { {} } } } },
1167       { "VK_KHR_shader_float_controls",
1168         { { "VK_VERSION_1_0",
1169             { {
1170               "VK_KHR_get_physical_device_properties2",
1171             } } },
1172           { "VK_VERSION_1_1", { {} } } } },
1173       { "VK_NV_shader_subgroup_partitioned", { { "VK_VERSION_1_1", { {} } } } },
1174       { "VK_KHR_depth_stencil_resolve",
1175         { { "VK_VERSION_1_0",
1176             { {
1177               "VK_KHR_create_renderpass2",
1178             } } },
1179           { "VK_VERSION_1_2", { {} } } } },
1180       { "VK_KHR_swapchain_mutable_format",
1181         { { "VK_VERSION_1_0",
1182             { {
1183               "VK_KHR_swapchain",
1184               "VK_KHR_maintenance2",
1185               "VK_KHR_image_format_list",
1186             } } },
1187           { "VK_VERSION_1_1",
1188             { {
1189               "VK_KHR_swapchain",
1190               "VK_KHR_image_format_list",
1191             } } },
1192           { "VK_VERSION_1_2",
1193             { {
1194               "VK_KHR_swapchain",
1195             } } } } },
1196       { "VK_NV_compute_shader_derivatives",
1197         { { "VK_VERSION_1_0",
1198             { {
1199               "VK_KHR_get_physical_device_properties2",
1200             } } },
1201           { "VK_VERSION_1_1", { {} } } } },
1202       { "VK_NV_mesh_shader",
1203         { { "VK_VERSION_1_0",
1204             { {
1205               "VK_KHR_get_physical_device_properties2",
1206             } } },
1207           { "VK_VERSION_1_1", { {} } } } },
1208       { "VK_NV_fragment_shader_barycentric",
1209         { { "VK_VERSION_1_0",
1210             { {
1211               "VK_KHR_get_physical_device_properties2",
1212             } } },
1213           { "VK_VERSION_1_1", { {} } } } },
1214       { "VK_NV_shader_image_footprint",
1215         { { "VK_VERSION_1_0",
1216             { {
1217               "VK_KHR_get_physical_device_properties2",
1218             } } },
1219           { "VK_VERSION_1_1", { {} } } } },
1220       { "VK_NV_scissor_exclusive",
1221         { { "VK_VERSION_1_0",
1222             { {
1223               "VK_KHR_get_physical_device_properties2",
1224             } } },
1225           { "VK_VERSION_1_1", { {} } } } },
1226       { "VK_NV_device_diagnostic_checkpoints",
1227         { { "VK_VERSION_1_0",
1228             { {
1229               "VK_KHR_get_physical_device_properties2",
1230             } } },
1231           { "VK_VERSION_1_1", { {} } } } },
1232       { "VK_KHR_timeline_semaphore",
1233         { { "VK_VERSION_1_0",
1234             { {
1235               "VK_KHR_get_physical_device_properties2",
1236             } } },
1237           { "VK_VERSION_1_1", { {} } } } },
1238       { "VK_INTEL_shader_integer_functions2",
1239         { { "VK_VERSION_1_0",
1240             { {
1241               "VK_KHR_get_physical_device_properties2",
1242             } } },
1243           { "VK_VERSION_1_1", { {} } } } },
1244       { "VK_KHR_vulkan_memory_model",
1245         { { "VK_VERSION_1_0",
1246             { {
1247               "VK_KHR_get_physical_device_properties2",
1248             } } },
1249           { "VK_VERSION_1_1", { {} } } } },
1250       { "VK_EXT_pci_bus_info",
1251         { { "VK_VERSION_1_0",
1252             { {
1253               "VK_KHR_get_physical_device_properties2",
1254             } } },
1255           { "VK_VERSION_1_1", { {} } } } },
1256       { "VK_AMD_display_native_hdr",
1257         { { "VK_VERSION_1_0",
1258             { {
1259               "VK_KHR_get_physical_device_properties2",
1260             } } },
1261           { "VK_VERSION_1_1",
1262             { {
1263               "VK_KHR_get_surface_capabilities2",
1264               "VK_KHR_swapchain",
1265             } } } } },
1266 #if defined( VK_USE_PLATFORM_FUCHSIA )
1267       { "VK_FUCHSIA_imagepipe_surface",
1268         { { "VK_VERSION_1_0",
1269             { {
1270               "VK_KHR_surface",
1271             } } } } },
1272 #endif /*VK_USE_PLATFORM_FUCHSIA*/
1273       { "VK_KHR_shader_terminate_invocation",
1274         { { "VK_VERSION_1_0",
1275             { {
1276               "VK_KHR_get_physical_device_properties2",
1277             } } },
1278           { "VK_VERSION_1_1", { {} } } } },
1279 #if defined( VK_USE_PLATFORM_METAL_EXT )
1280       { "VK_EXT_metal_surface",
1281         { { "VK_VERSION_1_0",
1282             { {
1283               "VK_KHR_surface",
1284             } } } } },
1285 #endif /*VK_USE_PLATFORM_METAL_EXT*/
1286       { "VK_EXT_fragment_density_map",
1287         { { "VK_VERSION_1_0",
1288             { {
1289               "VK_KHR_get_physical_device_properties2",
1290             } } },
1291           { "VK_VERSION_1_1", { {} } } } },
1292       { "VK_EXT_scalar_block_layout",
1293         { { "VK_VERSION_1_0",
1294             { {
1295               "VK_KHR_get_physical_device_properties2",
1296             } } },
1297           { "VK_VERSION_1_1", { {} } } } },
1298       { "VK_EXT_subgroup_size_control", { { "VK_VERSION_1_1", { {} } } } },
1299       { "VK_KHR_fragment_shading_rate",
1300         { { "VK_VERSION_1_0",
1301             { {
1302               "VK_KHR_get_physical_device_properties2",
1303             } } },
1304           { "VK_VERSION_1_1",
1305             { {
1306               "VK_KHR_create_renderpass2",
1307             } } },
1308           { "VK_VERSION_1_2", { {} } } } },
1309       { "VK_AMD_shader_core_properties2",
1310         { { "VK_VERSION_1_0",
1311             { {
1312               "VK_AMD_shader_core_properties",
1313             } } } } },
1314       { "VK_AMD_device_coherent_memory",
1315         { { "VK_VERSION_1_0",
1316             { {
1317               "VK_KHR_get_physical_device_properties2",
1318             } } },
1319           { "VK_VERSION_1_1", { {} } } } },
1320       { "VK_KHR_dynamic_rendering_local_read",
1321         { { "VK_VERSION_1_0",
1322             { {
1323               "VK_KHR_dynamic_rendering",
1324             } } },
1325           { "VK_VERSION_1_3", { {} } } } },
1326       { "VK_EXT_shader_image_atomic_int64",
1327         { { "VK_VERSION_1_0",
1328             { {
1329               "VK_KHR_get_physical_device_properties2",
1330             } } },
1331           { "VK_VERSION_1_1", { {} } } } },
1332       { "VK_KHR_shader_quad_control",
1333         { { "VK_VERSION_1_1",
1334             { {
1335               "VK_KHR_vulkan_memory_model",
1336               "VK_KHR_shader_maximal_reconvergence",
1337             } } } } },
1338       { "VK_KHR_spirv_1_4",
1339         { { "VK_VERSION_1_1",
1340             { {
1341               "VK_KHR_shader_float_controls",
1342             } } } } },
1343       { "VK_EXT_memory_budget",
1344         { { "VK_VERSION_1_0",
1345             { {
1346               "VK_KHR_get_physical_device_properties2",
1347             } } },
1348           { "VK_VERSION_1_1", { {} } } } },
1349       { "VK_EXT_memory_priority",
1350         { { "VK_VERSION_1_0",
1351             { {
1352               "VK_KHR_get_physical_device_properties2",
1353             } } },
1354           { "VK_VERSION_1_1", { {} } } } },
1355       { "VK_KHR_surface_protected_capabilities",
1356         { { "VK_VERSION_1_1",
1357             { {
1358               "VK_KHR_get_surface_capabilities2",
1359             } } } } },
1360       { "VK_NV_dedicated_allocation_image_aliasing",
1361         { { "VK_VERSION_1_0",
1362             { {
1363               "VK_KHR_dedicated_allocation",
1364               "VK_KHR_get_physical_device_properties2",
1365             } } },
1366           { "VK_VERSION_1_1", { {} } } } },
1367       { "VK_KHR_separate_depth_stencil_layouts",
1368         { { "VK_VERSION_1_0",
1369             { {
1370               "VK_KHR_get_physical_device_properties2",
1371             } } },
1372           { "VK_VERSION_1_1",
1373             { {
1374               "VK_KHR_create_renderpass2",
1375             } } },
1376           { "VK_VERSION_1_2", { {} } } } },
1377       { "VK_EXT_buffer_device_address",
1378         { { "VK_VERSION_1_0",
1379             { {
1380               "VK_KHR_get_physical_device_properties2",
1381             } } },
1382           { "VK_VERSION_1_1", { {} } } } },
1383       { "VK_KHR_present_wait",
1384         { { "VK_VERSION_1_0",
1385             { {
1386               "VK_KHR_swapchain",
1387               "VK_KHR_present_id",
1388             } } } } },
1389       { "VK_NV_cooperative_matrix",
1390         { { "VK_VERSION_1_0",
1391             { {
1392               "VK_KHR_get_physical_device_properties2",
1393             } } },
1394           { "VK_VERSION_1_1", { {} } } } },
1395       { "VK_NV_coverage_reduction_mode",
1396         { { "VK_VERSION_1_0",
1397             { {
1398               "VK_NV_framebuffer_mixed_samples",
1399               "VK_KHR_get_physical_device_properties2",
1400             } } },
1401           { "VK_VERSION_1_1", { {} } } } },
1402       { "VK_EXT_fragment_shader_interlock",
1403         { { "VK_VERSION_1_0",
1404             { {
1405               "VK_KHR_get_physical_device_properties2",
1406             } } },
1407           { "VK_VERSION_1_1", { {} } } } },
1408       { "VK_EXT_ycbcr_image_arrays",
1409         { { "VK_VERSION_1_0",
1410             { {
1411               "VK_KHR_sampler_ycbcr_conversion",
1412             } } },
1413           { "VK_VERSION_1_1", { {} } } } },
1414       { "VK_KHR_uniform_buffer_standard_layout",
1415         { { "VK_VERSION_1_0",
1416             { {
1417               "VK_KHR_get_physical_device_properties2",
1418             } } },
1419           { "VK_VERSION_1_1", { {} } } } },
1420       { "VK_EXT_provoking_vertex",
1421         { { "VK_VERSION_1_0",
1422             { {
1423               "VK_KHR_get_physical_device_properties2",
1424             } } },
1425           { "VK_VERSION_1_1", { {} } } } },
1426 #if defined( VK_USE_PLATFORM_WIN32_KHR )
1427       { "VK_EXT_full_screen_exclusive",
1428         { { "VK_VERSION_1_0",
1429             { {
1430               "VK_KHR_get_physical_device_properties2",
1431             } } },
1432           { "VK_VERSION_1_1",
1433             { {
1434               "VK_KHR_surface",
1435               "VK_KHR_get_surface_capabilities2",
1436               "VK_KHR_swapchain",
1437             } } } } },
1438 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
1439       { "VK_EXT_headless_surface",
1440         { { "VK_VERSION_1_0",
1441             { {
1442               "VK_KHR_surface",
1443             } } } } },
1444       { "VK_KHR_buffer_device_address",
1445         { { "VK_VERSION_1_0",
1446             { {
1447               "VK_KHR_get_physical_device_properties2",
1448               "VK_KHR_device_group",
1449             } } },
1450           { "VK_VERSION_1_1", { {} } } } },
1451       { "VK_EXT_line_rasterization",
1452         { { "VK_VERSION_1_0",
1453             { {
1454               "VK_KHR_get_physical_device_properties2",
1455             } } },
1456           { "VK_VERSION_1_1", { {} } } } },
1457       { "VK_EXT_shader_atomic_float",
1458         { { "VK_VERSION_1_0",
1459             { {
1460               "VK_KHR_get_physical_device_properties2",
1461             } } },
1462           { "VK_VERSION_1_1", { {} } } } },
1463       { "VK_EXT_host_query_reset",
1464         { { "VK_VERSION_1_0",
1465             { {
1466               "VK_KHR_get_physical_device_properties2",
1467             } } },
1468           { "VK_VERSION_1_1", { {} } } } },
1469       { "VK_EXT_index_type_uint8",
1470         { { "VK_VERSION_1_0",
1471             { {
1472               "VK_KHR_get_physical_device_properties2",
1473             } } },
1474           { "VK_VERSION_1_1", { {} } } } },
1475       { "VK_EXT_extended_dynamic_state",
1476         { { "VK_VERSION_1_0",
1477             { {
1478               "VK_KHR_get_physical_device_properties2",
1479             } } },
1480           { "VK_VERSION_1_1", { {} } } } },
1481       { "VK_KHR_pipeline_executable_properties",
1482         { { "VK_VERSION_1_0",
1483             { {
1484               "VK_KHR_get_physical_device_properties2",
1485             } } },
1486           { "VK_VERSION_1_1", { {} } } } },
1487       { "VK_EXT_host_image_copy",
1488         { { "VK_VERSION_1_0",
1489             { {
1490               "VK_KHR_get_physical_device_properties2",
1491             } } },
1492           { "VK_VERSION_1_1",
1493             { {
1494               "VK_KHR_copy_commands2",
1495               "VK_KHR_format_feature_flags2",
1496             } } },
1497           { "VK_VERSION_1_3", { {} } } } },
1498       { "VK_EXT_map_memory_placed",
1499         { { "VK_VERSION_1_0",
1500             { {
1501               "VK_KHR_map_memory2",
1502             } } } } },
1503       { "VK_EXT_shader_atomic_float2",
1504         { { "VK_VERSION_1_0",
1505             { {
1506               "VK_EXT_shader_atomic_float",
1507             } } } } },
1508       { "VK_EXT_surface_maintenance1",
1509         { { "VK_VERSION_1_0",
1510             { {
1511               "VK_KHR_surface",
1512               "VK_KHR_get_surface_capabilities2",
1513             } } } } },
1514       { "VK_EXT_swapchain_maintenance1",
1515         { { "VK_VERSION_1_0",
1516             { {
1517               "VK_KHR_swapchain",
1518               "VK_EXT_surface_maintenance1",
1519               "VK_KHR_get_physical_device_properties2",
1520             } } },
1521           { "VK_VERSION_1_1", { {} } } } },
1522       { "VK_EXT_shader_demote_to_helper_invocation",
1523         { { "VK_VERSION_1_0",
1524             { {
1525               "VK_KHR_get_physical_device_properties2",
1526             } } },
1527           { "VK_VERSION_1_1", { {} } } } },
1528       { "VK_NV_device_generated_commands",
1529         { { "VK_VERSION_1_1",
1530             { {
1531               "VK_KHR_buffer_device_address",
1532             } } },
1533           { "VK_VERSION_1_2", { {} } } } },
1534       { "VK_NV_inherited_viewport_scissor",
1535         { { "VK_VERSION_1_0",
1536             { {
1537               "VK_KHR_get_physical_device_properties2",
1538             } } },
1539           { "VK_VERSION_1_1", { {} } } } },
1540       { "VK_KHR_shader_integer_dot_product",
1541         { { "VK_VERSION_1_0",
1542             { {
1543               "VK_KHR_get_physical_device_properties2",
1544             } } },
1545           { "VK_VERSION_1_1", { {} } } } },
1546       { "VK_EXT_texel_buffer_alignment",
1547         { { "VK_VERSION_1_0",
1548             { {
1549               "VK_KHR_get_physical_device_properties2",
1550             } } },
1551           { "VK_VERSION_1_1", { {} } } } },
1552       { "VK_EXT_depth_bias_control",
1553         { { "VK_VERSION_1_0",
1554             { {
1555               "VK_KHR_get_physical_device_properties2",
1556             } } },
1557           { "VK_VERSION_1_1", { {} } } } },
1558       { "VK_EXT_device_memory_report",
1559         { { "VK_VERSION_1_0",
1560             { {
1561               "VK_KHR_get_physical_device_properties2",
1562             } } },
1563           { "VK_VERSION_1_1", { {} } } } },
1564       { "VK_EXT_acquire_drm_display",
1565         { { "VK_VERSION_1_0",
1566             { {
1567               "VK_EXT_direct_mode_display",
1568             } } } } },
1569       { "VK_EXT_robustness2",
1570         { { "VK_VERSION_1_0",
1571             { {
1572               "VK_KHR_get_physical_device_properties2",
1573             } } },
1574           { "VK_VERSION_1_1", { {} } } } },
1575       { "VK_EXT_custom_border_color",
1576         { { "VK_VERSION_1_0",
1577             { {
1578               "VK_KHR_get_physical_device_properties2",
1579             } } },
1580           { "VK_VERSION_1_1", { {} } } } },
1581       { "VK_NV_present_barrier",
1582         { { "VK_VERSION_1_0",
1583             { {
1584               "VK_KHR_get_physical_device_properties2",
1585             } } },
1586           { "VK_VERSION_1_1",
1587             { {
1588               "VK_KHR_surface",
1589               "VK_KHR_get_surface_capabilities2",
1590               "VK_KHR_swapchain",
1591             } } } } },
1592       { "VK_KHR_present_id",
1593         { { "VK_VERSION_1_0",
1594             { {
1595               "VK_KHR_swapchain",
1596               "VK_KHR_get_physical_device_properties2",
1597             } } },
1598           { "VK_VERSION_1_1", { {} } } } },
1599       { "VK_EXT_private_data",
1600         { { "VK_VERSION_1_0",
1601             { {
1602               "VK_KHR_get_physical_device_properties2",
1603             } } },
1604           { "VK_VERSION_1_1", { {} } } } },
1605       { "VK_EXT_pipeline_creation_cache_control",
1606         { { "VK_VERSION_1_0",
1607             { {
1608               "VK_KHR_get_physical_device_properties2",
1609             } } },
1610           { "VK_VERSION_1_1", { {} } } } },
1611       { "VK_KHR_video_encode_queue",
1612         { { "VK_VERSION_1_0",
1613             { {
1614               "VK_KHR_video_queue",
1615               "VK_KHR_synchronization2",
1616             } } },
1617           { "VK_VERSION_1_3", { {} } } } },
1618       { "VK_NV_device_diagnostics_config",
1619         { { "VK_VERSION_1_0",
1620             { {
1621               "VK_KHR_get_physical_device_properties2",
1622             } } },
1623           { "VK_VERSION_1_1", { {} } } } },
1624       { "VK_KHR_synchronization2",
1625         { { "VK_VERSION_1_0",
1626             { {
1627               "VK_KHR_get_physical_device_properties2",
1628             } } },
1629           { "VK_VERSION_1_1", { {} } } } },
1630       { "VK_EXT_descriptor_buffer",
1631         { { "VK_VERSION_1_0",
1632             { {
1633               "VK_KHR_get_physical_device_properties2",
1634             } } },
1635           { "VK_VERSION_1_1",
1636             { {
1637               "VK_KHR_buffer_device_address",
1638               "VK_EXT_descriptor_indexing",
1639             } } },
1640           { "VK_VERSION_1_2",
1641             { {
1642               "VK_KHR_synchronization2",
1643             } } },
1644           { "VK_VERSION_1_3", { {} } } } },
1645       { "VK_EXT_graphics_pipeline_library",
1646         { { "VK_VERSION_1_0",
1647             { {
1648               "VK_KHR_get_physical_device_properties2",
1649             } } },
1650           { "VK_VERSION_1_1",
1651             { {
1652               "VK_KHR_pipeline_library",
1653             } } } } },
1654       { "VK_AMD_shader_early_and_late_fragment_tests",
1655         { { "VK_VERSION_1_0",
1656             { {
1657               "VK_KHR_get_physical_device_properties2",
1658             } } },
1659           { "VK_VERSION_1_1", { {} } } } },
1660       { "VK_KHR_fragment_shader_barycentric",
1661         { { "VK_VERSION_1_0",
1662             { {
1663               "VK_KHR_get_physical_device_properties2",
1664             } } },
1665           { "VK_VERSION_1_1", { {} } } } },
1666       { "VK_KHR_shader_subgroup_uniform_control_flow", { { "VK_VERSION_1_1", { {} } } } },
1667       { "VK_KHR_zero_initialize_workgroup_memory",
1668         { { "VK_VERSION_1_0",
1669             { {
1670               "VK_KHR_get_physical_device_properties2",
1671             } } },
1672           { "VK_VERSION_1_1", { {} } } } },
1673       { "VK_NV_fragment_shading_rate_enums",
1674         { { "VK_VERSION_1_0",
1675             { {
1676               "VK_KHR_fragment_shading_rate",
1677             } } } } },
1678       { "VK_NV_ray_tracing_motion_blur",
1679         { { "VK_VERSION_1_0",
1680             { {
1681               "VK_KHR_ray_tracing_pipeline",
1682             } } } } },
1683       { "VK_EXT_mesh_shader",
1684         { { "VK_VERSION_1_0",
1685             { {
1686               "VK_KHR_spirv_1_4",
1687             } } } } },
1688       { "VK_EXT_ycbcr_2plane_444_formats",
1689         { { "VK_VERSION_1_0",
1690             { {
1691               "VK_KHR_sampler_ycbcr_conversion",
1692             } } },
1693           { "VK_VERSION_1_1", { {} } } } },
1694       { "VK_EXT_fragment_density_map2",
1695         { { "VK_VERSION_1_0",
1696             { {
1697               "VK_EXT_fragment_density_map",
1698             } } } } },
1699       { "VK_QCOM_rotated_copy_commands",
1700         { { "VK_VERSION_1_0",
1701             { {
1702               "VK_KHR_copy_commands2",
1703             } } },
1704           { "VK_VERSION_1_3", { {} } } } },
1705       { "VK_EXT_image_robustness",
1706         { { "VK_VERSION_1_0",
1707             { {
1708               "VK_KHR_get_physical_device_properties2",
1709             } } },
1710           { "VK_VERSION_1_1", { {} } } } },
1711       { "VK_KHR_workgroup_memory_explicit_layout",
1712         { { "VK_VERSION_1_0",
1713             { {
1714               "VK_KHR_get_physical_device_properties2",
1715             } } },
1716           { "VK_VERSION_1_1", { {} } } } },
1717       { "VK_KHR_copy_commands2",
1718         { { "VK_VERSION_1_0",
1719             { {
1720               "VK_KHR_get_physical_device_properties2",
1721             } } },
1722           { "VK_VERSION_1_1", { {} } } } },
1723       { "VK_EXT_image_compression_control",
1724         { { "VK_VERSION_1_0",
1725             { {
1726               "VK_KHR_get_physical_device_properties2",
1727             } } },
1728           { "VK_VERSION_1_1", { {} } } } },
1729       { "VK_EXT_attachment_feedback_loop_layout",
1730         { { "VK_VERSION_1_0",
1731             { {
1732               "VK_KHR_get_physical_device_properties2",
1733             } } },
1734           { "VK_VERSION_1_1", { {} } } } },
1735       { "VK_EXT_4444_formats",
1736         { { "VK_VERSION_1_0",
1737             { {
1738               "VK_KHR_get_physical_device_properties2",
1739             } } },
1740           { "VK_VERSION_1_1", { {} } } } },
1741       { "VK_EXT_device_fault",
1742         { { "VK_VERSION_1_0",
1743             { {
1744               "VK_KHR_get_physical_device_properties2",
1745             } } },
1746           { "VK_VERSION_1_1", { {} } } } },
1747       { "VK_ARM_rasterization_order_attachment_access",
1748         { { "VK_VERSION_1_0",
1749             { {
1750               "VK_KHR_get_physical_device_properties2",
1751             } } },
1752           { "VK_VERSION_1_1", { {} } } } },
1753       { "VK_EXT_rgba10x6_formats",
1754         { { "VK_VERSION_1_0",
1755             { {
1756               "VK_KHR_sampler_ycbcr_conversion",
1757             } } },
1758           { "VK_VERSION_1_1", { {} } } } },
1759 #if defined( VK_USE_PLATFORM_WIN32_KHR )
1760       { "VK_NV_acquire_winrt_display",
1761         { { "VK_VERSION_1_0",
1762             { {
1763               "VK_EXT_direct_mode_display",
1764             } } } } },
1765 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
1766 #if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
1767       { "VK_EXT_directfb_surface",
1768         { { "VK_VERSION_1_0",
1769             { {
1770               "VK_KHR_surface",
1771             } } } } },
1772 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
1773       { "VK_VALVE_mutable_descriptor_type",
1774         { { "VK_VERSION_1_0",
1775             { {
1776               "VK_KHR_maintenance3",
1777             } } } } },
1778       { "VK_EXT_vertex_input_dynamic_state",
1779         { { "VK_VERSION_1_0",
1780             { {
1781               "VK_KHR_get_physical_device_properties2",
1782             } } },
1783           { "VK_VERSION_1_1", { {} } } } },
1784       { "VK_EXT_physical_device_drm",
1785         { { "VK_VERSION_1_0",
1786             { {
1787               "VK_KHR_get_physical_device_properties2",
1788             } } },
1789           { "VK_VERSION_1_1", { {} } } } },
1790       { "VK_EXT_device_address_binding_report",
1791         { { "VK_VERSION_1_0",
1792             { {
1793               "VK_KHR_get_physical_device_properties2",
1794             } } },
1795           { "VK_VERSION_1_1",
1796             { {
1797               "VK_EXT_debug_utils",
1798             } } } } },
1799       { "VK_EXT_depth_clip_control",
1800         { { "VK_VERSION_1_0",
1801             { {
1802               "VK_KHR_get_physical_device_properties2",
1803             } } },
1804           { "VK_VERSION_1_1", { {} } } } },
1805       { "VK_EXT_primitive_topology_list_restart",
1806         { { "VK_VERSION_1_0",
1807             { {
1808               "VK_KHR_get_physical_device_properties2",
1809             } } },
1810           { "VK_VERSION_1_1", { {} } } } },
1811       { "VK_KHR_format_feature_flags2",
1812         { { "VK_VERSION_1_0",
1813             { {
1814               "VK_KHR_get_physical_device_properties2",
1815             } } },
1816           { "VK_VERSION_1_1", { {} } } } },
1817 #if defined( VK_USE_PLATFORM_FUCHSIA )
1818       { "VK_FUCHSIA_external_memory",
1819         { { "VK_VERSION_1_0",
1820             { {
1821               "VK_KHR_external_memory_capabilities",
1822               "VK_KHR_external_memory",
1823             } } },
1824           { "VK_VERSION_1_1", { {} } } } },
1825       { "VK_FUCHSIA_external_semaphore",
1826         { { "VK_VERSION_1_0",
1827             { {
1828               "VK_KHR_external_semaphore_capabilities",
1829               "VK_KHR_external_semaphore",
1830             } } } } },
1831       { "VK_FUCHSIA_buffer_collection",
1832         { { "VK_VERSION_1_0",
1833             { {
1834               "VK_FUCHSIA_external_memory",
1835               "VK_KHR_sampler_ycbcr_conversion",
1836             } } },
1837           { "VK_VERSION_1_1", { {} } } } },
1838 #endif /*VK_USE_PLATFORM_FUCHSIA*/
1839       { "VK_HUAWEI_subpass_shading",
1840         { { "VK_VERSION_1_0",
1841             { {
1842               "VK_KHR_create_renderpass2",
1843             } } },
1844           { "VK_VERSION_1_2",
1845             { {
1846               "VK_KHR_synchronization2",
1847             } } },
1848           { "VK_VERSION_1_3", { {} } } } },
1849       { "VK_HUAWEI_invocation_mask",
1850         { { "VK_VERSION_1_0",
1851             { {
1852               "VK_KHR_ray_tracing_pipeline",
1853               "VK_KHR_synchronization2",
1854             } } },
1855           { "VK_VERSION_1_3", { {} } } } },
1856       { "VK_NV_external_memory_rdma",
1857         { { "VK_VERSION_1_0",
1858             { {
1859               "VK_KHR_external_memory",
1860             } } },
1861           { "VK_VERSION_1_1", { {} } } } },
1862       { "VK_EXT_pipeline_properties",
1863         { { "VK_VERSION_1_0",
1864             { {
1865               "VK_KHR_get_physical_device_properties2",
1866             } } },
1867           { "VK_VERSION_1_1", { {} } } } },
1868       { "VK_EXT_multisampled_render_to_single_sampled",
1869         { { "VK_VERSION_1_0",
1870             { {
1871               "VK_KHR_create_renderpass2",
1872               "VK_KHR_depth_stencil_resolve",
1873             } } },
1874           { "VK_VERSION_1_2", { {} } } } },
1875       { "VK_EXT_extended_dynamic_state2",
1876         { { "VK_VERSION_1_0",
1877             { {
1878               "VK_KHR_get_physical_device_properties2",
1879             } } },
1880           { "VK_VERSION_1_1", { {} } } } },
1881 #if defined( VK_USE_PLATFORM_SCREEN_QNX )
1882       { "VK_QNX_screen_surface",
1883         { { "VK_VERSION_1_0",
1884             { {
1885               "VK_KHR_surface",
1886             } } } } },
1887 #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
1888       { "VK_EXT_color_write_enable",
1889         { { "VK_VERSION_1_0",
1890             { {
1891               "VK_KHR_get_physical_device_properties2",
1892             } } },
1893           { "VK_VERSION_1_1", { {} } } } },
1894       { "VK_EXT_primitives_generated_query",
1895         { { "VK_VERSION_1_0",
1896             { {
1897               "VK_EXT_transform_feedback",
1898             } } } } },
1899       { "VK_KHR_ray_tracing_maintenance1",
1900         { { "VK_VERSION_1_0",
1901             { {
1902               "VK_KHR_acceleration_structure",
1903             } } } } },
1904       { "VK_EXT_global_priority_query",
1905         { { "VK_VERSION_1_0",
1906             { {
1907               "VK_EXT_global_priority",
1908               "VK_KHR_get_physical_device_properties2",
1909             } } },
1910           { "VK_VERSION_1_1", { {} } } } },
1911       { "VK_EXT_image_view_min_lod",
1912         { { "VK_VERSION_1_0",
1913             { {
1914               "VK_KHR_get_physical_device_properties2",
1915             } } },
1916           { "VK_VERSION_1_1", { {} } } } },
1917       { "VK_EXT_multi_draw",
1918         { { "VK_VERSION_1_0",
1919             { {
1920               "VK_KHR_get_physical_device_properties2",
1921             } } },
1922           { "VK_VERSION_1_1", { {} } } } },
1923       { "VK_EXT_image_2d_view_of_3d",
1924         { { "VK_VERSION_1_0",
1925             { {
1926               "VK_KHR_maintenance1",
1927               "VK_KHR_get_physical_device_properties2",
1928             } } },
1929           { "VK_VERSION_1_1", { {} } } } },
1930       { "VK_EXT_shader_tile_image", { { "VK_VERSION_1_3", { {} } } } },
1931       { "VK_EXT_opacity_micromap",
1932         { { "VK_VERSION_1_0",
1933             { {
1934               "VK_KHR_acceleration_structure",
1935               "VK_KHR_synchronization2",
1936             } } },
1937           { "VK_VERSION_1_3", { {} } } } },
1938 #if defined( VK_ENABLE_BETA_EXTENSIONS )
1939       { "VK_NV_displacement_micromap",
1940         { { "VK_VERSION_1_0",
1941             { {
1942               "VK_EXT_opacity_micromap",
1943             } } } } },
1944 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1945       { "VK_HUAWEI_cluster_culling_shader",
1946         { { "VK_VERSION_1_0",
1947             { {
1948               "VK_KHR_get_physical_device_properties2",
1949             } } },
1950           { "VK_VERSION_1_1", { {} } } } },
1951       { "VK_EXT_border_color_swizzle",
1952         { { "VK_VERSION_1_0",
1953             { {
1954               "VK_EXT_custom_border_color",
1955             } } } } },
1956       { "VK_EXT_pageable_device_local_memory",
1957         { { "VK_VERSION_1_0",
1958             { {
1959               "VK_EXT_memory_priority",
1960             } } } } },
1961       { "VK_KHR_maintenance4", { { "VK_VERSION_1_1", { {} } } } },
1962       { "VK_ARM_shader_core_properties", { { "VK_VERSION_1_1", { {} } } } },
1963       { "VK_ARM_scheduling_controls",
1964         { { "VK_VERSION_1_0",
1965             { {
1966               "VK_ARM_shader_core_builtins",
1967             } } } } },
1968       { "VK_EXT_image_sliced_view_of_3d",
1969         { { "VK_VERSION_1_0",
1970             { {
1971               "VK_KHR_maintenance1",
1972               "VK_KHR_get_physical_device_properties2",
1973             } } },
1974           { "VK_VERSION_1_1", { {} } } } },
1975       { "VK_VALVE_descriptor_set_host_mapping",
1976         { { "VK_VERSION_1_0",
1977             { {
1978               "VK_KHR_get_physical_device_properties2",
1979             } } },
1980           { "VK_VERSION_1_1", { {} } } } },
1981       { "VK_EXT_depth_clamp_zero_one",
1982         { { "VK_VERSION_1_0",
1983             { {
1984               "VK_KHR_get_physical_device_properties2",
1985             } } },
1986           { "VK_VERSION_1_1", { {} } } } },
1987       { "VK_EXT_non_seamless_cube_map",
1988         { { "VK_VERSION_1_0",
1989             { {
1990               "VK_KHR_get_physical_device_properties2",
1991             } } },
1992           { "VK_VERSION_1_1", { {} } } } },
1993       { "VK_ARM_render_pass_striped",
1994         { { "VK_VERSION_1_0",
1995             { {
1996               "VK_KHR_get_physical_device_properties2",
1997             } } },
1998           { "VK_VERSION_1_1",
1999             { {
2000               "VK_KHR_synchronization2",
2001             } } },
2002           { "VK_VERSION_1_3", { {} } } } },
2003       { "VK_QCOM_fragment_density_map_offset",
2004         { { "VK_VERSION_1_0",
2005             { {
2006               "VK_KHR_get_physical_device_properties2",
2007             } } },
2008           { "VK_VERSION_1_1",
2009             { {
2010               "VK_EXT_fragment_density_map",
2011             } } } } },
2012       { "VK_NV_copy_memory_indirect",
2013         { { "VK_VERSION_1_0",
2014             { {
2015               "VK_KHR_get_physical_device_properties2",
2016             } } },
2017           { "VK_VERSION_1_1",
2018             { {
2019               "VK_KHR_buffer_device_address",
2020             } } },
2021           { "VK_VERSION_1_2", { {} } } } },
2022       { "VK_NV_memory_decompression",
2023         { { "VK_VERSION_1_0",
2024             { {
2025               "VK_KHR_get_physical_device_properties2",
2026             } } },
2027           { "VK_VERSION_1_1",
2028             { {
2029               "VK_KHR_buffer_device_address",
2030             } } },
2031           { "VK_VERSION_1_2", { {} } } } },
2032       { "VK_NV_device_generated_commands_compute",
2033         { { "VK_VERSION_1_0",
2034             { {
2035               "VK_NV_device_generated_commands",
2036             } } } } },
2037       { "VK_NV_linear_color_attachment",
2038         { { "VK_VERSION_1_0",
2039             { {
2040               "VK_KHR_get_physical_device_properties2",
2041             } } },
2042           { "VK_VERSION_1_1", { {} } } } },
2043       { "VK_GOOGLE_surfaceless_query",
2044         { { "VK_VERSION_1_0",
2045             { {
2046               "VK_KHR_surface",
2047             } } } } },
2048       { "VK_KHR_shader_maximal_reconvergence", { { "VK_VERSION_1_1", { {} } } } },
2049       { "VK_EXT_image_compression_control_swapchain",
2050         { { "VK_VERSION_1_0",
2051             { {
2052               "VK_EXT_image_compression_control",
2053             } } } } },
2054       { "VK_QCOM_image_processing",
2055         { { "VK_VERSION_1_0",
2056             { {
2057               "VK_KHR_format_feature_flags2",
2058             } } },
2059           { "VK_VERSION_1_3", { {} } } } },
2060       { "VK_EXT_nested_command_buffer",
2061         { { "VK_VERSION_1_0",
2062             { {
2063               "VK_KHR_get_physical_device_properties2",
2064             } } },
2065           { "VK_VERSION_1_1", { {} } } } },
2066       { "VK_EXT_external_memory_acquire_unmodified",
2067         { { "VK_VERSION_1_0",
2068             { {
2069               "VK_KHR_external_memory",
2070             } } },
2071           { "VK_VERSION_1_1", { {} } } } },
2072       { "VK_EXT_extended_dynamic_state3",
2073         { { "VK_VERSION_1_0",
2074             { {
2075               "VK_KHR_get_physical_device_properties2",
2076             } } },
2077           { "VK_VERSION_1_1", { {} } } } },
2078       { "VK_EXT_subpass_merge_feedback",
2079         { { "VK_VERSION_1_0",
2080             { {
2081               "VK_KHR_get_physical_device_properties2",
2082             } } },
2083           { "VK_VERSION_1_1", { {} } } } },
2084       { "VK_EXT_shader_module_identifier",
2085         { { "VK_VERSION_1_0",
2086             { {
2087               "VK_KHR_get_physical_device_properties2",
2088             } } },
2089           { "VK_VERSION_1_1",
2090             { {
2091               "VK_EXT_pipeline_creation_cache_control",
2092             } } },
2093           { "VK_VERSION_1_3", { {} } } } },
2094       { "VK_EXT_rasterization_order_attachment_access",
2095         { { "VK_VERSION_1_0",
2096             { {
2097               "VK_KHR_get_physical_device_properties2",
2098             } } },
2099           { "VK_VERSION_1_1", { {} } } } },
2100       { "VK_NV_optical_flow",
2101         { { "VK_VERSION_1_0",
2102             { {
2103               "VK_KHR_get_physical_device_properties2",
2104             } } },
2105           { "VK_VERSION_1_1",
2106             { {
2107               "VK_KHR_format_feature_flags2",
2108               "VK_KHR_synchronization2",
2109             } } },
2110           { "VK_VERSION_1_3", { {} } } } },
2111       { "VK_EXT_legacy_dithering",
2112         { { "VK_VERSION_1_0",
2113             { {
2114               "VK_KHR_get_physical_device_properties2",
2115             } } },
2116           { "VK_VERSION_1_1", { {} } } } },
2117       { "VK_EXT_pipeline_protected_access",
2118         { { "VK_VERSION_1_0",
2119             { {
2120               "VK_KHR_get_physical_device_properties2",
2121             } } },
2122           { "VK_VERSION_1_1", { {} } } } },
2123 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
2124       { "VK_ANDROID_external_format_resolve",
2125         { { "VK_VERSION_1_0",
2126             { {
2127               "VK_ANDROID_external_memory_android_hardware_buffer",
2128             } } } } },
2129 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
2130       { "VK_KHR_maintenance5",
2131         { { "VK_VERSION_1_1",
2132             { {
2133               "VK_KHR_dynamic_rendering",
2134             } } },
2135           { "VK_VERSION_1_3", { {} } } } },
2136       { "VK_KHR_ray_tracing_position_fetch",
2137         { { "VK_VERSION_1_0",
2138             { {
2139               "VK_KHR_acceleration_structure",
2140             } } } } },
2141       { "VK_EXT_shader_object",
2142         { { "VK_VERSION_1_0",
2143             { {
2144               "VK_KHR_get_physical_device_properties2",
2145             } } },
2146           { "VK_VERSION_1_1",
2147             { {
2148               "VK_KHR_dynamic_rendering",
2149             } } },
2150           { "VK_VERSION_1_3", { {} } } } },
2151       { "VK_QCOM_tile_properties",
2152         { { "VK_VERSION_1_0",
2153             { {
2154               "VK_KHR_get_physical_device_properties2",
2155             } } },
2156           { "VK_VERSION_1_1", { {} } } } },
2157       { "VK_SEC_amigo_profiling",
2158         { { "VK_VERSION_1_0",
2159             { {
2160               "VK_KHR_get_physical_device_properties2",
2161             } } },
2162           { "VK_VERSION_1_1", { {} } } } },
2163       { "VK_QCOM_multiview_per_view_viewports",
2164         { { "VK_VERSION_1_0",
2165             { {
2166               "VK_KHR_get_physical_device_properties2",
2167             } } },
2168           { "VK_VERSION_1_1", { {} } } } },
2169       { "VK_NV_ray_tracing_invocation_reorder",
2170         { { "VK_VERSION_1_0",
2171             { {
2172               "VK_KHR_ray_tracing_pipeline",
2173             } } } } },
2174       { "VK_EXT_mutable_descriptor_type",
2175         { { "VK_VERSION_1_0",
2176             { {
2177               "VK_KHR_maintenance3",
2178             } } } } },
2179       { "VK_EXT_legacy_vertex_attributes",
2180         { { "VK_VERSION_1_0",
2181             { {
2182               "VK_EXT_vertex_input_dynamic_state",
2183             } } } } },
2184       { "VK_ARM_shader_core_builtins",
2185         { { "VK_VERSION_1_0",
2186             { {
2187               "VK_KHR_get_physical_device_properties2",
2188             } } },
2189           { "VK_VERSION_1_1", { {} } } } },
2190       { "VK_EXT_pipeline_library_group_handles",
2191         { { "VK_VERSION_1_0",
2192             { {
2193               "VK_KHR_ray_tracing_pipeline",
2194               "VK_KHR_pipeline_library",
2195             } } } } },
2196       { "VK_EXT_dynamic_rendering_unused_attachments",
2197         { { "VK_VERSION_1_0",
2198             { {
2199               "VK_KHR_get_physical_device_properties2",
2200             } } },
2201           { "VK_VERSION_1_1",
2202             { {
2203               "VK_KHR_dynamic_rendering",
2204             } } },
2205           { "VK_VERSION_1_3", { {} } } } },
2206       { "VK_NV_low_latency2",
2207         { { "VK_VERSION_1_0",
2208             { {
2209               "VK_KHR_timeline_semaphore",
2210             } } },
2211           { "VK_VERSION_1_2", { {} } } } },
2212       { "VK_KHR_cooperative_matrix",
2213         { { "VK_VERSION_1_0",
2214             { {
2215               "VK_KHR_get_physical_device_properties2",
2216             } } },
2217           { "VK_VERSION_1_1", { {} } } } },
2218       { "VK_KHR_video_decode_av1",
2219         { { "VK_VERSION_1_0",
2220             { {
2221               "VK_KHR_video_decode_queue",
2222             } } } } },
2223       { "VK_KHR_video_maintenance1",
2224         { { "VK_VERSION_1_0",
2225             { {
2226               "VK_KHR_video_queue",
2227             } } } } },
2228       { "VK_NV_per_stage_descriptor_set",
2229         { { "VK_VERSION_1_0",
2230             { {
2231               "VK_KHR_maintenance6",
2232             } } } } },
2233       { "VK_QCOM_image_processing2",
2234         { { "VK_VERSION_1_0",
2235             { {
2236               "VK_QCOM_image_processing",
2237             } } } } },
2238       { "VK_QCOM_filter_cubic_weights",
2239         { { "VK_VERSION_1_0",
2240             { {
2241               "VK_EXT_filter_cubic",
2242             } } } } },
2243       { "VK_QCOM_filter_cubic_clamp",
2244         { { "VK_VERSION_1_0",
2245             { {
2246               "VK_EXT_filter_cubic",
2247               "VK_EXT_sampler_filter_minmax",
2248             } } },
2249           { "VK_VERSION_1_2",
2250             { {
2251               "VK_EXT_filter_cubic",
2252             } } } } },
2253       { "VK_EXT_attachment_feedback_loop_dynamic_state",
2254         { { "VK_VERSION_1_0",
2255             { {
2256               "VK_KHR_get_physical_device_properties2",
2257             } } },
2258           { "VK_VERSION_1_1",
2259             { {
2260               "VK_EXT_attachment_feedback_loop_layout",
2261             } } } } },
2262       { "VK_KHR_vertex_attribute_divisor",
2263         { { "VK_VERSION_1_0",
2264             { {
2265               "VK_KHR_get_physical_device_properties2",
2266             } } },
2267           { "VK_VERSION_1_1", { {} } } } },
2268       { "VK_KHR_shader_float_controls2",
2269         { { "VK_VERSION_1_1",
2270             { {
2271               "VK_KHR_shader_float_controls",
2272             } } } } },
2273 #if defined( VK_USE_PLATFORM_SCREEN_QNX )
2274       { "VK_QNX_external_memory_screen_buffer",
2275         { { "VK_VERSION_1_0",
2276             { {
2277               "VK_KHR_sampler_ycbcr_conversion",
2278               "VK_KHR_external_memory",
2279               "VK_KHR_dedicated_allocation",
2280             } } },
2281           { "VK_VERSION_1_1",
2282             { {
2283               "VK_EXT_queue_family_foreign",
2284             } } } } },
2285 #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
2286       { "VK_MSFT_layered_driver",
2287         { { "VK_VERSION_1_0",
2288             { {
2289               "VK_KHR_get_physical_device_properties2",
2290             } } },
2291           { "VK_VERSION_1_1", { {} } } } },
2292       { "VK_KHR_index_type_uint8",
2293         { { "VK_VERSION_1_0",
2294             { {
2295               "VK_KHR_get_physical_device_properties2",
2296             } } },
2297           { "VK_VERSION_1_1", { {} } } } },
2298       { "VK_KHR_line_rasterization",
2299         { { "VK_VERSION_1_0",
2300             { {
2301               "VK_KHR_get_physical_device_properties2",
2302             } } },
2303           { "VK_VERSION_1_1", { {} } } } },
2304       { "VK_KHR_calibrated_timestamps",
2305         { { "VK_VERSION_1_0",
2306             { {
2307               "VK_KHR_get_physical_device_properties2",
2308             } } },
2309           { "VK_VERSION_1_1", { {} } } } },
2310       { "VK_KHR_shader_expect_assume",
2311         { { "VK_VERSION_1_0",
2312             { {
2313               "VK_KHR_get_physical_device_properties2",
2314             } } },
2315           { "VK_VERSION_1_1", { {} } } } },
2316       { "VK_KHR_maintenance6", { { "VK_VERSION_1_1", { {} } } } },
2317       { "VK_NV_descriptor_pool_overallocation", { { "VK_VERSION_1_1", { {} } } } },
2318       { "VK_MESA_image_alignment_control",
2319         { { "VK_VERSION_1_0",
2320             { {
2321               "VK_KHR_get_physical_device_properties2",
2322             } } },
2323           { "VK_VERSION_1_1", { {} } } } }
2324     };
2325     auto depIt = dependencies.find( extension );
2326     return ( depIt != dependencies.end() ) ? depIt->second : noDependencies;
2327   }
2328 
getExtensionDepends(std::string const & version,std::string const & extension)2329   VULKAN_HPP_INLINE std::pair<bool, std::vector<std::vector<std::string>> const &> getExtensionDepends( std::string const & version,
2330                                                                                                         std::string const & extension )
2331   {
2332 #if !defined( NDEBUG )
2333     static std::set<std::string> versions = { "VK_VERSION_1_0", "VK_VERSION_1_1", "VK_VERSION_1_2", "VK_VERSION_1_3" };
2334     assert( versions.find( version ) != versions.end() );
2335 #endif
2336     static std::vector<std::vector<std::string>> noDependencies;
2337 
2338     std::map<std::string, std::vector<std::vector<std::string>>> const & dependencies = getExtensionDepends( extension );
2339     if ( dependencies.empty() )
2340     {
2341       return { true, noDependencies };
2342     }
2343     auto depIt = dependencies.lower_bound( version );
2344     if ( ( depIt == dependencies.end() ) || ( depIt->first != version ) )
2345     {
2346       depIt = std::prev( depIt );
2347     }
2348     if ( depIt == dependencies.end() )
2349     {
2350       return { false, noDependencies };
2351     }
2352     else
2353     {
2354       return { true, depIt->second };
2355     }
2356   }
2357 
getObsoletedExtensions()2358   VULKAN_HPP_INLINE std::map<std::string, std::string> const & getObsoletedExtensions()
2359   {
2360     static std::map<std::string, std::string> obsoletedExtensions = { { "VK_AMD_negative_viewport_height", "VK_KHR_maintenance1" } };
2361     return obsoletedExtensions;
2362   }
2363 
getPromotedExtensions()2364   VULKAN_HPP_INLINE std::map<std::string, std::string> const & getPromotedExtensions()
2365   {
2366     static std::map<std::string, std::string> promotedExtensions = {
2367       { "VK_KHR_sampler_mirror_clamp_to_edge", "VK_VERSION_1_2" },
2368       { "VK_EXT_debug_marker", "VK_EXT_debug_utils" },
2369       { "VK_AMD_draw_indirect_count", "VK_KHR_draw_indirect_count" },
2370       { "VK_KHR_dynamic_rendering", "VK_VERSION_1_3" },
2371       { "VK_KHR_multiview", "VK_VERSION_1_1" },
2372 #if defined( VK_USE_PLATFORM_WIN32_KHR )
2373       { "VK_NV_win32_keyed_mutex", "VK_KHR_win32_keyed_mutex" },
2374 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
2375       { "VK_KHR_get_physical_device_properties2", "VK_VERSION_1_1" },
2376       { "VK_KHR_device_group", "VK_VERSION_1_1" },
2377       { "VK_KHR_shader_draw_parameters", "VK_VERSION_1_1" },
2378       { "VK_EXT_texture_compression_astc_hdr", "VK_VERSION_1_3" },
2379       { "VK_KHR_maintenance1", "VK_VERSION_1_1" },
2380       { "VK_KHR_device_group_creation", "VK_VERSION_1_1" },
2381       { "VK_KHR_external_memory_capabilities", "VK_VERSION_1_1" },
2382       { "VK_KHR_external_memory", "VK_VERSION_1_1" },
2383       { "VK_KHR_external_semaphore_capabilities", "VK_VERSION_1_1" },
2384       { "VK_KHR_external_semaphore", "VK_VERSION_1_1" },
2385       { "VK_KHR_shader_float16_int8", "VK_VERSION_1_2" },
2386       { "VK_KHR_16bit_storage", "VK_VERSION_1_1" },
2387       { "VK_KHR_descriptor_update_template", "VK_VERSION_1_1" },
2388       { "VK_KHR_imageless_framebuffer", "VK_VERSION_1_2" },
2389       { "VK_KHR_create_renderpass2", "VK_VERSION_1_2" },
2390       { "VK_KHR_external_fence_capabilities", "VK_VERSION_1_1" },
2391       { "VK_KHR_external_fence", "VK_VERSION_1_1" },
2392       { "VK_KHR_maintenance2", "VK_VERSION_1_1" },
2393       { "VK_KHR_variable_pointers", "VK_VERSION_1_1" },
2394       { "VK_KHR_dedicated_allocation", "VK_VERSION_1_1" },
2395       { "VK_EXT_sampler_filter_minmax", "VK_VERSION_1_2" },
2396       { "VK_KHR_storage_buffer_storage_class", "VK_VERSION_1_1" },
2397       { "VK_EXT_inline_uniform_block", "VK_VERSION_1_3" },
2398       { "VK_KHR_relaxed_block_layout", "VK_VERSION_1_1" },
2399       { "VK_KHR_get_memory_requirements2", "VK_VERSION_1_1" },
2400       { "VK_KHR_image_format_list", "VK_VERSION_1_2" },
2401       { "VK_KHR_sampler_ycbcr_conversion", "VK_VERSION_1_1" },
2402       { "VK_KHR_bind_memory2", "VK_VERSION_1_1" },
2403       { "VK_EXT_descriptor_indexing", "VK_VERSION_1_2" },
2404       { "VK_EXT_shader_viewport_index_layer", "VK_VERSION_1_2" },
2405       { "VK_KHR_maintenance3", "VK_VERSION_1_1" },
2406       { "VK_KHR_draw_indirect_count", "VK_VERSION_1_2" },
2407       { "VK_EXT_global_priority", "VK_KHR_global_priority" },
2408       { "VK_KHR_shader_subgroup_extended_types", "VK_VERSION_1_2" },
2409       { "VK_KHR_8bit_storage", "VK_VERSION_1_2" },
2410       { "VK_KHR_shader_atomic_int64", "VK_VERSION_1_2" },
2411       { "VK_EXT_calibrated_timestamps", "VK_KHR_calibrated_timestamps" },
2412       { "VK_EXT_vertex_attribute_divisor", "VK_KHR_vertex_attribute_divisor" },
2413       { "VK_EXT_pipeline_creation_feedback", "VK_VERSION_1_3" },
2414       { "VK_KHR_driver_properties", "VK_VERSION_1_2" },
2415       { "VK_KHR_shader_float_controls", "VK_VERSION_1_2" },
2416       { "VK_KHR_depth_stencil_resolve", "VK_VERSION_1_2" },
2417       { "VK_NV_fragment_shader_barycentric", "VK_KHR_fragment_shader_barycentric" },
2418       { "VK_KHR_timeline_semaphore", "VK_VERSION_1_2" },
2419       { "VK_KHR_vulkan_memory_model", "VK_VERSION_1_2" },
2420       { "VK_KHR_shader_terminate_invocation", "VK_VERSION_1_3" },
2421       { "VK_EXT_scalar_block_layout", "VK_VERSION_1_2" },
2422       { "VK_EXT_subgroup_size_control", "VK_VERSION_1_3" },
2423       { "VK_KHR_spirv_1_4", "VK_VERSION_1_2" },
2424       { "VK_KHR_separate_depth_stencil_layouts", "VK_VERSION_1_2" },
2425       { "VK_EXT_tooling_info", "VK_VERSION_1_3" },
2426       { "VK_EXT_separate_stencil_usage", "VK_VERSION_1_2" },
2427       { "VK_KHR_uniform_buffer_standard_layout", "VK_VERSION_1_2" },
2428       { "VK_KHR_buffer_device_address", "VK_VERSION_1_2" },
2429       { "VK_EXT_line_rasterization", "VK_KHR_line_rasterization" },
2430       { "VK_EXT_host_query_reset", "VK_VERSION_1_2" },
2431       { "VK_EXT_index_type_uint8", "VK_KHR_index_type_uint8" },
2432       { "VK_EXT_extended_dynamic_state", "VK_VERSION_1_3" },
2433       { "VK_EXT_shader_demote_to_helper_invocation", "VK_VERSION_1_3" },
2434       { "VK_KHR_shader_integer_dot_product", "VK_VERSION_1_3" },
2435       { "VK_EXT_texel_buffer_alignment", "VK_VERSION_1_3" },
2436       { "VK_KHR_shader_non_semantic_info", "VK_VERSION_1_3" },
2437       { "VK_EXT_private_data", "VK_VERSION_1_3" },
2438       { "VK_EXT_pipeline_creation_cache_control", "VK_VERSION_1_3" },
2439       { "VK_KHR_synchronization2", "VK_VERSION_1_3" },
2440       { "VK_KHR_zero_initialize_workgroup_memory", "VK_VERSION_1_3" },
2441       { "VK_EXT_ycbcr_2plane_444_formats", "VK_VERSION_1_3" },
2442       { "VK_EXT_image_robustness", "VK_VERSION_1_3" },
2443       { "VK_KHR_copy_commands2", "VK_VERSION_1_3" },
2444       { "VK_EXT_4444_formats", "VK_VERSION_1_3" },
2445       { "VK_ARM_rasterization_order_attachment_access", "VK_EXT_rasterization_order_attachment_access" },
2446       { "VK_VALVE_mutable_descriptor_type", "VK_EXT_mutable_descriptor_type" },
2447       { "VK_KHR_format_feature_flags2", "VK_VERSION_1_3" },
2448       { "VK_EXT_extended_dynamic_state2", "VK_VERSION_1_3" },
2449       { "VK_EXT_global_priority_query", "VK_KHR_global_priority" },
2450       { "VK_EXT_load_store_op_none", "VK_KHR_load_store_op_none" },
2451       { "VK_KHR_maintenance4", "VK_VERSION_1_3" }
2452     };
2453     return promotedExtensions;
2454   }
2455 
getExtensionDeprecatedBy(std::string const & extension)2456   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_20 std::string getExtensionDeprecatedBy( std::string const & extension )
2457   {
2458     if ( extension == "VK_EXT_debug_report" )
2459     {
2460       return "VK_EXT_debug_utils";
2461     }
2462     if ( extension == "VK_NV_glsl_shader" )
2463     {
2464       return "";
2465     }
2466     if ( extension == "VK_NV_dedicated_allocation" )
2467     {
2468       return "VK_KHR_dedicated_allocation";
2469     }
2470     if ( extension == "VK_AMD_gpu_shader_half_float" )
2471     {
2472       return "VK_KHR_shader_float16_int8";
2473     }
2474     if ( extension == "VK_IMG_format_pvrtc" )
2475     {
2476       return "";
2477     }
2478     if ( extension == "VK_NV_external_memory_capabilities" )
2479     {
2480       return "VK_KHR_external_memory_capabilities";
2481     }
2482     if ( extension == "VK_NV_external_memory" )
2483     {
2484       return "VK_KHR_external_memory";
2485     }
2486 #if defined( VK_USE_PLATFORM_WIN32_KHR )
2487     if ( extension == "VK_NV_external_memory_win32" )
2488     {
2489       return "VK_KHR_external_memory_win32";
2490     }
2491 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
2492     if ( extension == "VK_EXT_validation_flags" )
2493     {
2494       return "VK_EXT_layer_settings";
2495     }
2496     if ( extension == "VK_EXT_shader_subgroup_ballot" )
2497     {
2498       return "VK_VERSION_1_2";
2499     }
2500     if ( extension == "VK_EXT_shader_subgroup_vote" )
2501     {
2502       return "VK_VERSION_1_1";
2503     }
2504 #if defined( VK_USE_PLATFORM_IOS_MVK )
2505     if ( extension == "VK_MVK_ios_surface" )
2506     {
2507       return "VK_EXT_metal_surface";
2508     }
2509 #endif /*VK_USE_PLATFORM_IOS_MVK*/
2510 #if defined( VK_USE_PLATFORM_MACOS_MVK )
2511     if ( extension == "VK_MVK_macos_surface" )
2512     {
2513       return "VK_EXT_metal_surface";
2514     }
2515 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
2516     if ( extension == "VK_AMD_gpu_shader_int16" )
2517     {
2518       return "VK_KHR_shader_float16_int8";
2519     }
2520     if ( extension == "VK_EXT_buffer_device_address" )
2521     {
2522       return "VK_KHR_buffer_device_address";
2523     }
2524     if ( extension == "VK_EXT_validation_features" )
2525     {
2526       return "VK_EXT_layer_settings";
2527     }
2528     return "";
2529   }
2530 
getExtensionObsoletedBy(std::string const & extension)2531   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_20 std::string getExtensionObsoletedBy( std::string const & extension )
2532   {
2533     if ( extension == "VK_AMD_negative_viewport_height" )
2534     {
2535       return "VK_KHR_maintenance1";
2536     }
2537     return "";
2538   }
2539 
getExtensionPromotedTo(std::string const & extension)2540   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_20 std::string getExtensionPromotedTo( std::string const & extension )
2541   {
2542     if ( extension == "VK_KHR_sampler_mirror_clamp_to_edge" )
2543     {
2544       return "VK_VERSION_1_2";
2545     }
2546     if ( extension == "VK_EXT_debug_marker" )
2547     {
2548       return "VK_EXT_debug_utils";
2549     }
2550     if ( extension == "VK_AMD_draw_indirect_count" )
2551     {
2552       return "VK_KHR_draw_indirect_count";
2553     }
2554     if ( extension == "VK_KHR_dynamic_rendering" )
2555     {
2556       return "VK_VERSION_1_3";
2557     }
2558     if ( extension == "VK_KHR_multiview" )
2559     {
2560       return "VK_VERSION_1_1";
2561     }
2562 #if defined( VK_USE_PLATFORM_WIN32_KHR )
2563     if ( extension == "VK_NV_win32_keyed_mutex" )
2564     {
2565       return "VK_KHR_win32_keyed_mutex";
2566     }
2567 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
2568     if ( extension == "VK_KHR_get_physical_device_properties2" )
2569     {
2570       return "VK_VERSION_1_1";
2571     }
2572     if ( extension == "VK_KHR_device_group" )
2573     {
2574       return "VK_VERSION_1_1";
2575     }
2576     if ( extension == "VK_KHR_shader_draw_parameters" )
2577     {
2578       return "VK_VERSION_1_1";
2579     }
2580     if ( extension == "VK_EXT_texture_compression_astc_hdr" )
2581     {
2582       return "VK_VERSION_1_3";
2583     }
2584     if ( extension == "VK_KHR_maintenance1" )
2585     {
2586       return "VK_VERSION_1_1";
2587     }
2588     if ( extension == "VK_KHR_device_group_creation" )
2589     {
2590       return "VK_VERSION_1_1";
2591     }
2592     if ( extension == "VK_KHR_external_memory_capabilities" )
2593     {
2594       return "VK_VERSION_1_1";
2595     }
2596     if ( extension == "VK_KHR_external_memory" )
2597     {
2598       return "VK_VERSION_1_1";
2599     }
2600     if ( extension == "VK_KHR_external_semaphore_capabilities" )
2601     {
2602       return "VK_VERSION_1_1";
2603     }
2604     if ( extension == "VK_KHR_external_semaphore" )
2605     {
2606       return "VK_VERSION_1_1";
2607     }
2608     if ( extension == "VK_KHR_shader_float16_int8" )
2609     {
2610       return "VK_VERSION_1_2";
2611     }
2612     if ( extension == "VK_KHR_16bit_storage" )
2613     {
2614       return "VK_VERSION_1_1";
2615     }
2616     if ( extension == "VK_KHR_descriptor_update_template" )
2617     {
2618       return "VK_VERSION_1_1";
2619     }
2620     if ( extension == "VK_KHR_imageless_framebuffer" )
2621     {
2622       return "VK_VERSION_1_2";
2623     }
2624     if ( extension == "VK_KHR_create_renderpass2" )
2625     {
2626       return "VK_VERSION_1_2";
2627     }
2628     if ( extension == "VK_KHR_external_fence_capabilities" )
2629     {
2630       return "VK_VERSION_1_1";
2631     }
2632     if ( extension == "VK_KHR_external_fence" )
2633     {
2634       return "VK_VERSION_1_1";
2635     }
2636     if ( extension == "VK_KHR_maintenance2" )
2637     {
2638       return "VK_VERSION_1_1";
2639     }
2640     if ( extension == "VK_KHR_variable_pointers" )
2641     {
2642       return "VK_VERSION_1_1";
2643     }
2644     if ( extension == "VK_KHR_dedicated_allocation" )
2645     {
2646       return "VK_VERSION_1_1";
2647     }
2648     if ( extension == "VK_EXT_sampler_filter_minmax" )
2649     {
2650       return "VK_VERSION_1_2";
2651     }
2652     if ( extension == "VK_KHR_storage_buffer_storage_class" )
2653     {
2654       return "VK_VERSION_1_1";
2655     }
2656     if ( extension == "VK_EXT_inline_uniform_block" )
2657     {
2658       return "VK_VERSION_1_3";
2659     }
2660     if ( extension == "VK_KHR_relaxed_block_layout" )
2661     {
2662       return "VK_VERSION_1_1";
2663     }
2664     if ( extension == "VK_KHR_get_memory_requirements2" )
2665     {
2666       return "VK_VERSION_1_1";
2667     }
2668     if ( extension == "VK_KHR_image_format_list" )
2669     {
2670       return "VK_VERSION_1_2";
2671     }
2672     if ( extension == "VK_KHR_sampler_ycbcr_conversion" )
2673     {
2674       return "VK_VERSION_1_1";
2675     }
2676     if ( extension == "VK_KHR_bind_memory2" )
2677     {
2678       return "VK_VERSION_1_1";
2679     }
2680     if ( extension == "VK_EXT_descriptor_indexing" )
2681     {
2682       return "VK_VERSION_1_2";
2683     }
2684     if ( extension == "VK_EXT_shader_viewport_index_layer" )
2685     {
2686       return "VK_VERSION_1_2";
2687     }
2688     if ( extension == "VK_KHR_maintenance3" )
2689     {
2690       return "VK_VERSION_1_1";
2691     }
2692     if ( extension == "VK_KHR_draw_indirect_count" )
2693     {
2694       return "VK_VERSION_1_2";
2695     }
2696     if ( extension == "VK_EXT_global_priority" )
2697     {
2698       return "VK_KHR_global_priority";
2699     }
2700     if ( extension == "VK_KHR_shader_subgroup_extended_types" )
2701     {
2702       return "VK_VERSION_1_2";
2703     }
2704     if ( extension == "VK_KHR_8bit_storage" )
2705     {
2706       return "VK_VERSION_1_2";
2707     }
2708     if ( extension == "VK_KHR_shader_atomic_int64" )
2709     {
2710       return "VK_VERSION_1_2";
2711     }
2712     if ( extension == "VK_EXT_calibrated_timestamps" )
2713     {
2714       return "VK_KHR_calibrated_timestamps";
2715     }
2716     if ( extension == "VK_EXT_vertex_attribute_divisor" )
2717     {
2718       return "VK_KHR_vertex_attribute_divisor";
2719     }
2720     if ( extension == "VK_EXT_pipeline_creation_feedback" )
2721     {
2722       return "VK_VERSION_1_3";
2723     }
2724     if ( extension == "VK_KHR_driver_properties" )
2725     {
2726       return "VK_VERSION_1_2";
2727     }
2728     if ( extension == "VK_KHR_shader_float_controls" )
2729     {
2730       return "VK_VERSION_1_2";
2731     }
2732     if ( extension == "VK_KHR_depth_stencil_resolve" )
2733     {
2734       return "VK_VERSION_1_2";
2735     }
2736     if ( extension == "VK_NV_fragment_shader_barycentric" )
2737     {
2738       return "VK_KHR_fragment_shader_barycentric";
2739     }
2740     if ( extension == "VK_KHR_timeline_semaphore" )
2741     {
2742       return "VK_VERSION_1_2";
2743     }
2744     if ( extension == "VK_KHR_vulkan_memory_model" )
2745     {
2746       return "VK_VERSION_1_2";
2747     }
2748     if ( extension == "VK_KHR_shader_terminate_invocation" )
2749     {
2750       return "VK_VERSION_1_3";
2751     }
2752     if ( extension == "VK_EXT_scalar_block_layout" )
2753     {
2754       return "VK_VERSION_1_2";
2755     }
2756     if ( extension == "VK_EXT_subgroup_size_control" )
2757     {
2758       return "VK_VERSION_1_3";
2759     }
2760     if ( extension == "VK_KHR_spirv_1_4" )
2761     {
2762       return "VK_VERSION_1_2";
2763     }
2764     if ( extension == "VK_KHR_separate_depth_stencil_layouts" )
2765     {
2766       return "VK_VERSION_1_2";
2767     }
2768     if ( extension == "VK_EXT_tooling_info" )
2769     {
2770       return "VK_VERSION_1_3";
2771     }
2772     if ( extension == "VK_EXT_separate_stencil_usage" )
2773     {
2774       return "VK_VERSION_1_2";
2775     }
2776     if ( extension == "VK_KHR_uniform_buffer_standard_layout" )
2777     {
2778       return "VK_VERSION_1_2";
2779     }
2780     if ( extension == "VK_KHR_buffer_device_address" )
2781     {
2782       return "VK_VERSION_1_2";
2783     }
2784     if ( extension == "VK_EXT_line_rasterization" )
2785     {
2786       return "VK_KHR_line_rasterization";
2787     }
2788     if ( extension == "VK_EXT_host_query_reset" )
2789     {
2790       return "VK_VERSION_1_2";
2791     }
2792     if ( extension == "VK_EXT_index_type_uint8" )
2793     {
2794       return "VK_KHR_index_type_uint8";
2795     }
2796     if ( extension == "VK_EXT_extended_dynamic_state" )
2797     {
2798       return "VK_VERSION_1_3";
2799     }
2800     if ( extension == "VK_EXT_shader_demote_to_helper_invocation" )
2801     {
2802       return "VK_VERSION_1_3";
2803     }
2804     if ( extension == "VK_KHR_shader_integer_dot_product" )
2805     {
2806       return "VK_VERSION_1_3";
2807     }
2808     if ( extension == "VK_EXT_texel_buffer_alignment" )
2809     {
2810       return "VK_VERSION_1_3";
2811     }
2812     if ( extension == "VK_KHR_shader_non_semantic_info" )
2813     {
2814       return "VK_VERSION_1_3";
2815     }
2816     if ( extension == "VK_EXT_private_data" )
2817     {
2818       return "VK_VERSION_1_3";
2819     }
2820     if ( extension == "VK_EXT_pipeline_creation_cache_control" )
2821     {
2822       return "VK_VERSION_1_3";
2823     }
2824     if ( extension == "VK_KHR_synchronization2" )
2825     {
2826       return "VK_VERSION_1_3";
2827     }
2828     if ( extension == "VK_KHR_zero_initialize_workgroup_memory" )
2829     {
2830       return "VK_VERSION_1_3";
2831     }
2832     if ( extension == "VK_EXT_ycbcr_2plane_444_formats" )
2833     {
2834       return "VK_VERSION_1_3";
2835     }
2836     if ( extension == "VK_EXT_image_robustness" )
2837     {
2838       return "VK_VERSION_1_3";
2839     }
2840     if ( extension == "VK_KHR_copy_commands2" )
2841     {
2842       return "VK_VERSION_1_3";
2843     }
2844     if ( extension == "VK_EXT_4444_formats" )
2845     {
2846       return "VK_VERSION_1_3";
2847     }
2848     if ( extension == "VK_ARM_rasterization_order_attachment_access" )
2849     {
2850       return "VK_EXT_rasterization_order_attachment_access";
2851     }
2852     if ( extension == "VK_VALVE_mutable_descriptor_type" )
2853     {
2854       return "VK_EXT_mutable_descriptor_type";
2855     }
2856     if ( extension == "VK_KHR_format_feature_flags2" )
2857     {
2858       return "VK_VERSION_1_3";
2859     }
2860     if ( extension == "VK_EXT_extended_dynamic_state2" )
2861     {
2862       return "VK_VERSION_1_3";
2863     }
2864     if ( extension == "VK_EXT_global_priority_query" )
2865     {
2866       return "VK_KHR_global_priority";
2867     }
2868     if ( extension == "VK_EXT_load_store_op_none" )
2869     {
2870       return "VK_KHR_load_store_op_none";
2871     }
2872     if ( extension == "VK_KHR_maintenance4" )
2873     {
2874       return "VK_VERSION_1_3";
2875     }
2876     return "";
2877   }
2878 
isDeprecatedExtension(std::string const & extension)2879   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_20 bool isDeprecatedExtension( std::string const & extension )
2880   {
2881     return ( extension == "VK_EXT_debug_report" ) || ( extension == "VK_NV_glsl_shader" ) || ( extension == "VK_NV_dedicated_allocation" ) ||
2882            ( extension == "VK_AMD_gpu_shader_half_float" ) || ( extension == "VK_IMG_format_pvrtc" ) || ( extension == "VK_NV_external_memory_capabilities" ) ||
2883            ( extension == "VK_NV_external_memory" ) ||
2884 #if defined( VK_USE_PLATFORM_WIN32_KHR )
2885            ( extension == "VK_NV_external_memory_win32" ) ||
2886 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
2887            ( extension == "VK_EXT_validation_flags" ) || ( extension == "VK_EXT_shader_subgroup_ballot" ) || ( extension == "VK_EXT_shader_subgroup_vote" ) ||
2888 #if defined( VK_USE_PLATFORM_IOS_MVK )
2889            ( extension == "VK_MVK_ios_surface" ) ||
2890 #endif /*VK_USE_PLATFORM_IOS_MVK*/
2891 #if defined( VK_USE_PLATFORM_MACOS_MVK )
2892            ( extension == "VK_MVK_macos_surface" ) ||
2893 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
2894            ( extension == "VK_AMD_gpu_shader_int16" ) || ( extension == "VK_EXT_buffer_device_address" ) || ( extension == "VK_EXT_validation_features" );
2895   }
2896 
isDeviceExtension(std::string const & extension)2897   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_20 bool isDeviceExtension( std::string const & extension )
2898   {
2899     return ( extension == "VK_KHR_swapchain" ) || ( extension == "VK_KHR_display_swapchain" ) || ( extension == "VK_NV_glsl_shader" ) ||
2900            ( extension == "VK_EXT_depth_range_unrestricted" ) || ( extension == "VK_KHR_sampler_mirror_clamp_to_edge" ) ||
2901            ( extension == "VK_IMG_filter_cubic" ) || ( extension == "VK_AMD_rasterization_order" ) || ( extension == "VK_AMD_shader_trinary_minmax" ) ||
2902            ( extension == "VK_AMD_shader_explicit_vertex_parameter" ) || ( extension == "VK_EXT_debug_marker" ) || ( extension == "VK_KHR_video_queue" ) ||
2903            ( extension == "VK_KHR_video_decode_queue" ) || ( extension == "VK_AMD_gcn_shader" ) || ( extension == "VK_NV_dedicated_allocation" ) ||
2904            ( extension == "VK_EXT_transform_feedback" ) || ( extension == "VK_NVX_binary_import" ) || ( extension == "VK_NVX_image_view_handle" ) ||
2905            ( extension == "VK_AMD_draw_indirect_count" ) || ( extension == "VK_AMD_negative_viewport_height" ) ||
2906            ( extension == "VK_AMD_gpu_shader_half_float" ) || ( extension == "VK_AMD_shader_ballot" ) || ( extension == "VK_KHR_video_encode_h264" ) ||
2907            ( extension == "VK_KHR_video_encode_h265" ) || ( extension == "VK_KHR_video_decode_h264" ) || ( extension == "VK_AMD_texture_gather_bias_lod" ) ||
2908            ( extension == "VK_AMD_shader_info" ) || ( extension == "VK_KHR_dynamic_rendering" ) || ( extension == "VK_AMD_shader_image_load_store_lod" ) ||
2909            ( extension == "VK_NV_corner_sampled_image" ) || ( extension == "VK_KHR_multiview" ) || ( extension == "VK_IMG_format_pvrtc" ) ||
2910            ( extension == "VK_NV_external_memory" )
2911 #if defined( VK_USE_PLATFORM_WIN32_KHR )
2912         || ( extension == "VK_NV_external_memory_win32" ) || ( extension == "VK_NV_win32_keyed_mutex" )
2913 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
2914         || ( extension == "VK_KHR_device_group" ) || ( extension == "VK_KHR_shader_draw_parameters" ) || ( extension == "VK_EXT_shader_subgroup_ballot" ) ||
2915            ( extension == "VK_EXT_shader_subgroup_vote" ) || ( extension == "VK_EXT_texture_compression_astc_hdr" ) ||
2916            ( extension == "VK_EXT_astc_decode_mode" ) || ( extension == "VK_EXT_pipeline_robustness" ) || ( extension == "VK_KHR_maintenance1" ) ||
2917            ( extension == "VK_KHR_external_memory" )
2918 #if defined( VK_USE_PLATFORM_WIN32_KHR )
2919         || ( extension == "VK_KHR_external_memory_win32" )
2920 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
2921         || ( extension == "VK_KHR_external_memory_fd" )
2922 #if defined( VK_USE_PLATFORM_WIN32_KHR )
2923         || ( extension == "VK_KHR_win32_keyed_mutex" )
2924 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
2925         || ( extension == "VK_KHR_external_semaphore" )
2926 #if defined( VK_USE_PLATFORM_WIN32_KHR )
2927         || ( extension == "VK_KHR_external_semaphore_win32" )
2928 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
2929         || ( extension == "VK_KHR_external_semaphore_fd" ) || ( extension == "VK_KHR_push_descriptor" ) || ( extension == "VK_EXT_conditional_rendering" ) ||
2930            ( extension == "VK_KHR_shader_float16_int8" ) || ( extension == "VK_KHR_16bit_storage" ) || ( extension == "VK_KHR_incremental_present" ) ||
2931            ( extension == "VK_KHR_descriptor_update_template" ) || ( extension == "VK_NV_clip_space_w_scaling" ) || ( extension == "VK_EXT_display_control" ) ||
2932            ( extension == "VK_GOOGLE_display_timing" ) || ( extension == "VK_NV_sample_mask_override_coverage" ) ||
2933            ( extension == "VK_NV_geometry_shader_passthrough" ) || ( extension == "VK_NV_viewport_array2" ) ||
2934            ( extension == "VK_NVX_multiview_per_view_attributes" ) || ( extension == "VK_NV_viewport_swizzle" ) ||
2935            ( extension == "VK_EXT_discard_rectangles" ) || ( extension == "VK_EXT_conservative_rasterization" ) ||
2936            ( extension == "VK_EXT_depth_clip_enable" ) || ( extension == "VK_EXT_hdr_metadata" ) || ( extension == "VK_KHR_imageless_framebuffer" ) ||
2937            ( extension == "VK_KHR_create_renderpass2" ) || ( extension == "VK_IMG_relaxed_line_rasterization" ) ||
2938            ( extension == "VK_KHR_shared_presentable_image" ) || ( extension == "VK_KHR_external_fence" )
2939 #if defined( VK_USE_PLATFORM_WIN32_KHR )
2940         || ( extension == "VK_KHR_external_fence_win32" )
2941 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
2942         || ( extension == "VK_KHR_external_fence_fd" ) || ( extension == "VK_KHR_performance_query" ) || ( extension == "VK_KHR_maintenance2" ) ||
2943            ( extension == "VK_KHR_variable_pointers" ) || ( extension == "VK_EXT_external_memory_dma_buf" ) || ( extension == "VK_EXT_queue_family_foreign" ) ||
2944            ( extension == "VK_KHR_dedicated_allocation" )
2945 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
2946         || ( extension == "VK_ANDROID_external_memory_android_hardware_buffer" )
2947 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
2948         || ( extension == "VK_EXT_sampler_filter_minmax" ) || ( extension == "VK_KHR_storage_buffer_storage_class" ) ||
2949            ( extension == "VK_AMD_gpu_shader_int16" )
2950 #if defined( VK_ENABLE_BETA_EXTENSIONS )
2951         || ( extension == "VK_AMDX_shader_enqueue" )
2952 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2953         || ( extension == "VK_AMD_mixed_attachment_samples" ) || ( extension == "VK_AMD_shader_fragment_mask" ) ||
2954            ( extension == "VK_EXT_inline_uniform_block" ) || ( extension == "VK_EXT_shader_stencil_export" ) || ( extension == "VK_EXT_sample_locations" ) ||
2955            ( extension == "VK_KHR_relaxed_block_layout" ) || ( extension == "VK_KHR_get_memory_requirements2" ) ||
2956            ( extension == "VK_KHR_image_format_list" ) || ( extension == "VK_EXT_blend_operation_advanced" ) ||
2957            ( extension == "VK_NV_fragment_coverage_to_color" ) || ( extension == "VK_KHR_acceleration_structure" ) ||
2958            ( extension == "VK_KHR_ray_tracing_pipeline" ) || ( extension == "VK_KHR_ray_query" ) || ( extension == "VK_NV_framebuffer_mixed_samples" ) ||
2959            ( extension == "VK_NV_fill_rectangle" ) || ( extension == "VK_NV_shader_sm_builtins" ) || ( extension == "VK_EXT_post_depth_coverage" ) ||
2960            ( extension == "VK_KHR_sampler_ycbcr_conversion" ) || ( extension == "VK_KHR_bind_memory2" ) ||
2961            ( extension == "VK_EXT_image_drm_format_modifier" ) || ( extension == "VK_EXT_validation_cache" ) || ( extension == "VK_EXT_descriptor_indexing" ) ||
2962            ( extension == "VK_EXT_shader_viewport_index_layer" )
2963 #if defined( VK_ENABLE_BETA_EXTENSIONS )
2964         || ( extension == "VK_KHR_portability_subset" )
2965 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2966         || ( extension == "VK_NV_shading_rate_image" ) || ( extension == "VK_NV_ray_tracing" ) || ( extension == "VK_NV_representative_fragment_test" ) ||
2967            ( extension == "VK_KHR_maintenance3" ) || ( extension == "VK_KHR_draw_indirect_count" ) || ( extension == "VK_EXT_filter_cubic" ) ||
2968            ( extension == "VK_QCOM_render_pass_shader_resolve" ) || ( extension == "VK_EXT_global_priority" ) ||
2969            ( extension == "VK_KHR_shader_subgroup_extended_types" ) || ( extension == "VK_KHR_8bit_storage" ) ||
2970            ( extension == "VK_EXT_external_memory_host" ) || ( extension == "VK_AMD_buffer_marker" ) || ( extension == "VK_KHR_shader_atomic_int64" ) ||
2971            ( extension == "VK_KHR_shader_clock" ) || ( extension == "VK_AMD_pipeline_compiler_control" ) || ( extension == "VK_EXT_calibrated_timestamps" ) ||
2972            ( extension == "VK_AMD_shader_core_properties" ) || ( extension == "VK_KHR_video_decode_h265" ) || ( extension == "VK_KHR_global_priority" ) ||
2973            ( extension == "VK_AMD_memory_overallocation_behavior" ) || ( extension == "VK_EXT_vertex_attribute_divisor" )
2974 #if defined( VK_USE_PLATFORM_GGP )
2975         || ( extension == "VK_GGP_frame_token" )
2976 #endif /*VK_USE_PLATFORM_GGP*/
2977         || ( extension == "VK_EXT_pipeline_creation_feedback" ) || ( extension == "VK_KHR_driver_properties" ) ||
2978            ( extension == "VK_KHR_shader_float_controls" ) || ( extension == "VK_NV_shader_subgroup_partitioned" ) ||
2979            ( extension == "VK_KHR_depth_stencil_resolve" ) || ( extension == "VK_KHR_swapchain_mutable_format" ) ||
2980            ( extension == "VK_NV_compute_shader_derivatives" ) || ( extension == "VK_NV_mesh_shader" ) ||
2981            ( extension == "VK_NV_fragment_shader_barycentric" ) || ( extension == "VK_NV_shader_image_footprint" ) ||
2982            ( extension == "VK_NV_scissor_exclusive" ) || ( extension == "VK_NV_device_diagnostic_checkpoints" ) ||
2983            ( extension == "VK_KHR_timeline_semaphore" ) || ( extension == "VK_INTEL_shader_integer_functions2" ) ||
2984            ( extension == "VK_INTEL_performance_query" ) || ( extension == "VK_KHR_vulkan_memory_model" ) || ( extension == "VK_EXT_pci_bus_info" ) ||
2985            ( extension == "VK_AMD_display_native_hdr" ) || ( extension == "VK_KHR_shader_terminate_invocation" ) ||
2986            ( extension == "VK_EXT_fragment_density_map" ) || ( extension == "VK_EXT_scalar_block_layout" ) ||
2987            ( extension == "VK_GOOGLE_hlsl_functionality1" ) || ( extension == "VK_GOOGLE_decorate_string" ) ||
2988            ( extension == "VK_EXT_subgroup_size_control" ) || ( extension == "VK_KHR_fragment_shading_rate" ) ||
2989            ( extension == "VK_AMD_shader_core_properties2" ) || ( extension == "VK_AMD_device_coherent_memory" ) ||
2990            ( extension == "VK_KHR_dynamic_rendering_local_read" ) || ( extension == "VK_EXT_shader_image_atomic_int64" ) ||
2991            ( extension == "VK_KHR_shader_quad_control" ) || ( extension == "VK_KHR_spirv_1_4" ) || ( extension == "VK_EXT_memory_budget" ) ||
2992            ( extension == "VK_EXT_memory_priority" ) || ( extension == "VK_NV_dedicated_allocation_image_aliasing" ) ||
2993            ( extension == "VK_KHR_separate_depth_stencil_layouts" ) || ( extension == "VK_EXT_buffer_device_address" ) ||
2994            ( extension == "VK_EXT_tooling_info" ) || ( extension == "VK_EXT_separate_stencil_usage" ) || ( extension == "VK_KHR_present_wait" ) ||
2995            ( extension == "VK_NV_cooperative_matrix" ) || ( extension == "VK_NV_coverage_reduction_mode" ) ||
2996            ( extension == "VK_EXT_fragment_shader_interlock" ) || ( extension == "VK_EXT_ycbcr_image_arrays" ) ||
2997            ( extension == "VK_KHR_uniform_buffer_standard_layout" ) || ( extension == "VK_EXT_provoking_vertex" )
2998 #if defined( VK_USE_PLATFORM_WIN32_KHR )
2999         || ( extension == "VK_EXT_full_screen_exclusive" )
3000 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
3001         || ( extension == "VK_KHR_buffer_device_address" ) || ( extension == "VK_EXT_line_rasterization" ) || ( extension == "VK_EXT_shader_atomic_float" ) ||
3002            ( extension == "VK_EXT_host_query_reset" ) || ( extension == "VK_EXT_index_type_uint8" ) || ( extension == "VK_EXT_extended_dynamic_state" ) ||
3003            ( extension == "VK_KHR_deferred_host_operations" ) || ( extension == "VK_KHR_pipeline_executable_properties" ) ||
3004            ( extension == "VK_EXT_host_image_copy" ) || ( extension == "VK_KHR_map_memory2" ) || ( extension == "VK_EXT_map_memory_placed" ) ||
3005            ( extension == "VK_EXT_shader_atomic_float2" ) || ( extension == "VK_EXT_swapchain_maintenance1" ) ||
3006            ( extension == "VK_EXT_shader_demote_to_helper_invocation" ) || ( extension == "VK_NV_device_generated_commands" ) ||
3007            ( extension == "VK_NV_inherited_viewport_scissor" ) || ( extension == "VK_KHR_shader_integer_dot_product" ) ||
3008            ( extension == "VK_EXT_texel_buffer_alignment" ) || ( extension == "VK_QCOM_render_pass_transform" ) ||
3009            ( extension == "VK_EXT_depth_bias_control" ) || ( extension == "VK_EXT_device_memory_report" ) || ( extension == "VK_EXT_robustness2" ) ||
3010            ( extension == "VK_EXT_custom_border_color" ) || ( extension == "VK_GOOGLE_user_type" ) || ( extension == "VK_KHR_pipeline_library" ) ||
3011            ( extension == "VK_NV_present_barrier" ) || ( extension == "VK_KHR_shader_non_semantic_info" ) || ( extension == "VK_KHR_present_id" ) ||
3012            ( extension == "VK_EXT_private_data" ) || ( extension == "VK_EXT_pipeline_creation_cache_control" ) ||
3013            ( extension == "VK_KHR_video_encode_queue" ) || ( extension == "VK_NV_device_diagnostics_config" ) ||
3014            ( extension == "VK_QCOM_render_pass_store_ops" )
3015 #if defined( VK_ENABLE_BETA_EXTENSIONS )
3016         || ( extension == "VK_NV_cuda_kernel_launch" )
3017 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3018         || ( extension == "VK_NV_low_latency" )
3019 #if defined( VK_USE_PLATFORM_METAL_EXT )
3020         || ( extension == "VK_EXT_metal_objects" )
3021 #endif /*VK_USE_PLATFORM_METAL_EXT*/
3022         || ( extension == "VK_KHR_synchronization2" ) || ( extension == "VK_EXT_descriptor_buffer" ) || ( extension == "VK_EXT_graphics_pipeline_library" ) ||
3023            ( extension == "VK_AMD_shader_early_and_late_fragment_tests" ) || ( extension == "VK_KHR_fragment_shader_barycentric" ) ||
3024            ( extension == "VK_KHR_shader_subgroup_uniform_control_flow" ) || ( extension == "VK_KHR_zero_initialize_workgroup_memory" ) ||
3025            ( extension == "VK_NV_fragment_shading_rate_enums" ) || ( extension == "VK_NV_ray_tracing_motion_blur" ) || ( extension == "VK_EXT_mesh_shader" ) ||
3026            ( extension == "VK_EXT_ycbcr_2plane_444_formats" ) || ( extension == "VK_EXT_fragment_density_map2" ) ||
3027            ( extension == "VK_QCOM_rotated_copy_commands" ) || ( extension == "VK_EXT_image_robustness" ) ||
3028            ( extension == "VK_KHR_workgroup_memory_explicit_layout" ) || ( extension == "VK_KHR_copy_commands2" ) ||
3029            ( extension == "VK_EXT_image_compression_control" ) || ( extension == "VK_EXT_attachment_feedback_loop_layout" ) ||
3030            ( extension == "VK_EXT_4444_formats" ) || ( extension == "VK_EXT_device_fault" ) ||
3031            ( extension == "VK_ARM_rasterization_order_attachment_access" ) || ( extension == "VK_EXT_rgba10x6_formats" )
3032 #if defined( VK_USE_PLATFORM_WIN32_KHR )
3033         || ( extension == "VK_NV_acquire_winrt_display" )
3034 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
3035         || ( extension == "VK_VALVE_mutable_descriptor_type" ) || ( extension == "VK_EXT_vertex_input_dynamic_state" ) ||
3036            ( extension == "VK_EXT_physical_device_drm" ) || ( extension == "VK_EXT_device_address_binding_report" ) ||
3037            ( extension == "VK_EXT_depth_clip_control" ) || ( extension == "VK_EXT_primitive_topology_list_restart" ) ||
3038            ( extension == "VK_KHR_format_feature_flags2" )
3039 #if defined( VK_USE_PLATFORM_FUCHSIA )
3040         || ( extension == "VK_FUCHSIA_external_memory" ) || ( extension == "VK_FUCHSIA_external_semaphore" ) || ( extension == "VK_FUCHSIA_buffer_collection" )
3041 #endif /*VK_USE_PLATFORM_FUCHSIA*/
3042         || ( extension == "VK_HUAWEI_subpass_shading" ) || ( extension == "VK_HUAWEI_invocation_mask" ) || ( extension == "VK_NV_external_memory_rdma" ) ||
3043            ( extension == "VK_EXT_pipeline_properties" ) || ( extension == "VK_EXT_frame_boundary" ) ||
3044            ( extension == "VK_EXT_multisampled_render_to_single_sampled" ) || ( extension == "VK_EXT_extended_dynamic_state2" ) ||
3045            ( extension == "VK_EXT_color_write_enable" ) || ( extension == "VK_EXT_primitives_generated_query" ) ||
3046            ( extension == "VK_KHR_ray_tracing_maintenance1" ) || ( extension == "VK_EXT_global_priority_query" ) ||
3047            ( extension == "VK_EXT_image_view_min_lod" ) || ( extension == "VK_EXT_multi_draw" ) || ( extension == "VK_EXT_image_2d_view_of_3d" ) ||
3048            ( extension == "VK_EXT_shader_tile_image" ) || ( extension == "VK_EXT_opacity_micromap" )
3049 #if defined( VK_ENABLE_BETA_EXTENSIONS )
3050         || ( extension == "VK_NV_displacement_micromap" )
3051 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3052         || ( extension == "VK_EXT_load_store_op_none" ) || ( extension == "VK_HUAWEI_cluster_culling_shader" ) ||
3053            ( extension == "VK_EXT_border_color_swizzle" ) || ( extension == "VK_EXT_pageable_device_local_memory" ) || ( extension == "VK_KHR_maintenance4" ) ||
3054            ( extension == "VK_ARM_shader_core_properties" ) || ( extension == "VK_KHR_shader_subgroup_rotate" ) ||
3055            ( extension == "VK_ARM_scheduling_controls" ) || ( extension == "VK_EXT_image_sliced_view_of_3d" ) ||
3056            ( extension == "VK_VALVE_descriptor_set_host_mapping" ) || ( extension == "VK_EXT_depth_clamp_zero_one" ) ||
3057            ( extension == "VK_EXT_non_seamless_cube_map" ) || ( extension == "VK_ARM_render_pass_striped" ) ||
3058            ( extension == "VK_QCOM_fragment_density_map_offset" ) || ( extension == "VK_NV_copy_memory_indirect" ) ||
3059            ( extension == "VK_NV_memory_decompression" ) || ( extension == "VK_NV_device_generated_commands_compute" ) ||
3060            ( extension == "VK_NV_linear_color_attachment" ) || ( extension == "VK_KHR_shader_maximal_reconvergence" ) ||
3061            ( extension == "VK_EXT_image_compression_control_swapchain" ) || ( extension == "VK_QCOM_image_processing" ) ||
3062            ( extension == "VK_EXT_nested_command_buffer" ) || ( extension == "VK_EXT_external_memory_acquire_unmodified" ) ||
3063            ( extension == "VK_EXT_extended_dynamic_state3" ) || ( extension == "VK_EXT_subpass_merge_feedback" ) ||
3064            ( extension == "VK_EXT_shader_module_identifier" ) || ( extension == "VK_EXT_rasterization_order_attachment_access" ) ||
3065            ( extension == "VK_NV_optical_flow" ) || ( extension == "VK_EXT_legacy_dithering" ) || ( extension == "VK_EXT_pipeline_protected_access" )
3066 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
3067         || ( extension == "VK_ANDROID_external_format_resolve" )
3068 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
3069         || ( extension == "VK_KHR_maintenance5" ) || ( extension == "VK_KHR_ray_tracing_position_fetch" ) || ( extension == "VK_EXT_shader_object" ) ||
3070            ( extension == "VK_QCOM_tile_properties" ) || ( extension == "VK_SEC_amigo_profiling" ) || ( extension == "VK_QCOM_multiview_per_view_viewports" ) ||
3071            ( extension == "VK_NV_ray_tracing_invocation_reorder" ) || ( extension == "VK_NV_extended_sparse_address_space" ) ||
3072            ( extension == "VK_EXT_mutable_descriptor_type" ) || ( extension == "VK_EXT_legacy_vertex_attributes" ) ||
3073            ( extension == "VK_ARM_shader_core_builtins" ) || ( extension == "VK_EXT_pipeline_library_group_handles" ) ||
3074            ( extension == "VK_EXT_dynamic_rendering_unused_attachments" ) || ( extension == "VK_NV_low_latency2" ) ||
3075            ( extension == "VK_KHR_cooperative_matrix" ) || ( extension == "VK_QCOM_multiview_per_view_render_areas" ) ||
3076            ( extension == "VK_KHR_video_decode_av1" ) || ( extension == "VK_KHR_video_maintenance1" ) || ( extension == "VK_NV_per_stage_descriptor_set" ) ||
3077            ( extension == "VK_QCOM_image_processing2" ) || ( extension == "VK_QCOM_filter_cubic_weights" ) || ( extension == "VK_QCOM_ycbcr_degamma" ) ||
3078            ( extension == "VK_QCOM_filter_cubic_clamp" ) || ( extension == "VK_EXT_attachment_feedback_loop_dynamic_state" ) ||
3079            ( extension == "VK_KHR_vertex_attribute_divisor" ) || ( extension == "VK_KHR_load_store_op_none" ) ||
3080            ( extension == "VK_KHR_shader_float_controls2" )
3081 #if defined( VK_USE_PLATFORM_SCREEN_QNX )
3082         || ( extension == "VK_QNX_external_memory_screen_buffer" )
3083 #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
3084         || ( extension == "VK_MSFT_layered_driver" ) || ( extension == "VK_KHR_index_type_uint8" ) || ( extension == "VK_KHR_line_rasterization" ) ||
3085            ( extension == "VK_KHR_calibrated_timestamps" ) || ( extension == "VK_KHR_shader_expect_assume" ) || ( extension == "VK_KHR_maintenance6" ) ||
3086            ( extension == "VK_NV_descriptor_pool_overallocation" ) || ( extension == "VK_NV_raw_access_chains" ) ||
3087            ( extension == "VK_NV_shader_atomic_float16_vector" ) || ( extension == "VK_EXT_shader_replicated_composites" ) ||
3088            ( extension == "VK_NV_ray_tracing_validation" ) || ( extension == "VK_MESA_image_alignment_control" );
3089   }
3090 
isInstanceExtension(std::string const & extension)3091   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_20 bool isInstanceExtension( std::string const & extension )
3092   {
3093     return ( extension == "VK_KHR_surface" ) || ( extension == "VK_KHR_display" )
3094 #if defined( VK_USE_PLATFORM_XLIB_KHR )
3095         || ( extension == "VK_KHR_xlib_surface" )
3096 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
3097 #if defined( VK_USE_PLATFORM_XCB_KHR )
3098         || ( extension == "VK_KHR_xcb_surface" )
3099 #endif /*VK_USE_PLATFORM_XCB_KHR*/
3100 #if defined( VK_USE_PLATFORM_WAYLAND_KHR )
3101         || ( extension == "VK_KHR_wayland_surface" )
3102 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
3103 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
3104         || ( extension == "VK_KHR_android_surface" )
3105 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
3106 #if defined( VK_USE_PLATFORM_WIN32_KHR )
3107         || ( extension == "VK_KHR_win32_surface" )
3108 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
3109         || ( extension == "VK_EXT_debug_report" )
3110 #if defined( VK_USE_PLATFORM_GGP )
3111         || ( extension == "VK_GGP_stream_descriptor_surface" )
3112 #endif /*VK_USE_PLATFORM_GGP*/
3113         || ( extension == "VK_NV_external_memory_capabilities" ) || ( extension == "VK_KHR_get_physical_device_properties2" ) ||
3114            ( extension == "VK_EXT_validation_flags" )
3115 #if defined( VK_USE_PLATFORM_VI_NN )
3116         || ( extension == "VK_NN_vi_surface" )
3117 #endif /*VK_USE_PLATFORM_VI_NN*/
3118         || ( extension == "VK_KHR_device_group_creation" ) || ( extension == "VK_KHR_external_memory_capabilities" ) ||
3119            ( extension == "VK_KHR_external_semaphore_capabilities" ) || ( extension == "VK_EXT_direct_mode_display" )
3120 #if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT )
3121         || ( extension == "VK_EXT_acquire_xlib_display" )
3122 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
3123         || ( extension == "VK_EXT_display_surface_counter" ) || ( extension == "VK_EXT_swapchain_colorspace" ) ||
3124            ( extension == "VK_KHR_external_fence_capabilities" ) || ( extension == "VK_KHR_get_surface_capabilities2" ) ||
3125            ( extension == "VK_KHR_get_display_properties2" )
3126 #if defined( VK_USE_PLATFORM_IOS_MVK )
3127         || ( extension == "VK_MVK_ios_surface" )
3128 #endif /*VK_USE_PLATFORM_IOS_MVK*/
3129 #if defined( VK_USE_PLATFORM_MACOS_MVK )
3130         || ( extension == "VK_MVK_macos_surface" )
3131 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
3132         || ( extension == "VK_EXT_debug_utils" )
3133 #if defined( VK_USE_PLATFORM_FUCHSIA )
3134         || ( extension == "VK_FUCHSIA_imagepipe_surface" )
3135 #endif /*VK_USE_PLATFORM_FUCHSIA*/
3136 #if defined( VK_USE_PLATFORM_METAL_EXT )
3137         || ( extension == "VK_EXT_metal_surface" )
3138 #endif /*VK_USE_PLATFORM_METAL_EXT*/
3139         || ( extension == "VK_KHR_surface_protected_capabilities" ) || ( extension == "VK_EXT_validation_features" ) ||
3140            ( extension == "VK_EXT_headless_surface" ) || ( extension == "VK_EXT_surface_maintenance1" ) || ( extension == "VK_EXT_acquire_drm_display" )
3141 #if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
3142         || ( extension == "VK_EXT_directfb_surface" )
3143 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
3144 #if defined( VK_USE_PLATFORM_SCREEN_QNX )
3145         || ( extension == "VK_QNX_screen_surface" )
3146 #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
3147         || ( extension == "VK_KHR_portability_enumeration" ) || ( extension == "VK_GOOGLE_surfaceless_query" ) ||
3148            ( extension == "VK_LUNARG_direct_driver_loading" ) || ( extension == "VK_EXT_layer_settings" );
3149   }
3150 
isObsoletedExtension(std::string const & extension)3151   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_20 bool isObsoletedExtension( std::string const & extension )
3152   {
3153     return ( extension == "VK_AMD_negative_viewport_height" );
3154   }
3155 
isPromotedExtension(std::string const & extension)3156   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_20 bool isPromotedExtension( std::string const & extension )
3157   {
3158     return ( extension == "VK_KHR_sampler_mirror_clamp_to_edge" ) || ( extension == "VK_EXT_debug_marker" ) || ( extension == "VK_AMD_draw_indirect_count" ) ||
3159            ( extension == "VK_KHR_dynamic_rendering" ) || ( extension == "VK_KHR_multiview" ) ||
3160 #if defined( VK_USE_PLATFORM_WIN32_KHR )
3161            ( extension == "VK_NV_win32_keyed_mutex" ) ||
3162 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
3163            ( extension == "VK_KHR_get_physical_device_properties2" ) || ( extension == "VK_KHR_device_group" ) ||
3164            ( extension == "VK_KHR_shader_draw_parameters" ) || ( extension == "VK_EXT_texture_compression_astc_hdr" ) ||
3165            ( extension == "VK_KHR_maintenance1" ) || ( extension == "VK_KHR_device_group_creation" ) ||
3166            ( extension == "VK_KHR_external_memory_capabilities" ) || ( extension == "VK_KHR_external_memory" ) ||
3167            ( extension == "VK_KHR_external_semaphore_capabilities" ) || ( extension == "VK_KHR_external_semaphore" ) ||
3168            ( extension == "VK_KHR_shader_float16_int8" ) || ( extension == "VK_KHR_16bit_storage" ) || ( extension == "VK_KHR_descriptor_update_template" ) ||
3169            ( extension == "VK_KHR_imageless_framebuffer" ) || ( extension == "VK_KHR_create_renderpass2" ) ||
3170            ( extension == "VK_KHR_external_fence_capabilities" ) || ( extension == "VK_KHR_external_fence" ) || ( extension == "VK_KHR_maintenance2" ) ||
3171            ( extension == "VK_KHR_variable_pointers" ) || ( extension == "VK_KHR_dedicated_allocation" ) || ( extension == "VK_EXT_sampler_filter_minmax" ) ||
3172            ( extension == "VK_KHR_storage_buffer_storage_class" ) || ( extension == "VK_EXT_inline_uniform_block" ) ||
3173            ( extension == "VK_KHR_relaxed_block_layout" ) || ( extension == "VK_KHR_get_memory_requirements2" ) ||
3174            ( extension == "VK_KHR_image_format_list" ) || ( extension == "VK_KHR_sampler_ycbcr_conversion" ) || ( extension == "VK_KHR_bind_memory2" ) ||
3175            ( extension == "VK_EXT_descriptor_indexing" ) || ( extension == "VK_EXT_shader_viewport_index_layer" ) || ( extension == "VK_KHR_maintenance3" ) ||
3176            ( extension == "VK_KHR_draw_indirect_count" ) || ( extension == "VK_EXT_global_priority" ) ||
3177            ( extension == "VK_KHR_shader_subgroup_extended_types" ) || ( extension == "VK_KHR_8bit_storage" ) ||
3178            ( extension == "VK_KHR_shader_atomic_int64" ) || ( extension == "VK_EXT_calibrated_timestamps" ) ||
3179            ( extension == "VK_EXT_vertex_attribute_divisor" ) || ( extension == "VK_EXT_pipeline_creation_feedback" ) ||
3180            ( extension == "VK_KHR_driver_properties" ) || ( extension == "VK_KHR_shader_float_controls" ) || ( extension == "VK_KHR_depth_stencil_resolve" ) ||
3181            ( extension == "VK_NV_fragment_shader_barycentric" ) || ( extension == "VK_KHR_timeline_semaphore" ) ||
3182            ( extension == "VK_KHR_vulkan_memory_model" ) || ( extension == "VK_KHR_shader_terminate_invocation" ) ||
3183            ( extension == "VK_EXT_scalar_block_layout" ) || ( extension == "VK_EXT_subgroup_size_control" ) || ( extension == "VK_KHR_spirv_1_4" ) ||
3184            ( extension == "VK_KHR_separate_depth_stencil_layouts" ) || ( extension == "VK_EXT_tooling_info" ) ||
3185            ( extension == "VK_EXT_separate_stencil_usage" ) || ( extension == "VK_KHR_uniform_buffer_standard_layout" ) ||
3186            ( extension == "VK_KHR_buffer_device_address" ) || ( extension == "VK_EXT_line_rasterization" ) || ( extension == "VK_EXT_host_query_reset" ) ||
3187            ( extension == "VK_EXT_index_type_uint8" ) || ( extension == "VK_EXT_extended_dynamic_state" ) ||
3188            ( extension == "VK_EXT_shader_demote_to_helper_invocation" ) || ( extension == "VK_KHR_shader_integer_dot_product" ) ||
3189            ( extension == "VK_EXT_texel_buffer_alignment" ) || ( extension == "VK_KHR_shader_non_semantic_info" ) || ( extension == "VK_EXT_private_data" ) ||
3190            ( extension == "VK_EXT_pipeline_creation_cache_control" ) || ( extension == "VK_KHR_synchronization2" ) ||
3191            ( extension == "VK_KHR_zero_initialize_workgroup_memory" ) || ( extension == "VK_EXT_ycbcr_2plane_444_formats" ) ||
3192            ( extension == "VK_EXT_image_robustness" ) || ( extension == "VK_KHR_copy_commands2" ) || ( extension == "VK_EXT_4444_formats" ) ||
3193            ( extension == "VK_ARM_rasterization_order_attachment_access" ) || ( extension == "VK_VALVE_mutable_descriptor_type" ) ||
3194            ( extension == "VK_KHR_format_feature_flags2" ) || ( extension == "VK_EXT_extended_dynamic_state2" ) ||
3195            ( extension == "VK_EXT_global_priority_query" ) || ( extension == "VK_EXT_load_store_op_none" ) || ( extension == "VK_KHR_maintenance4" );
3196   }
3197 }  // namespace VULKAN_HPP_NAMESPACE
3198 
3199 #endif
3200