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