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