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