Tests for VK_EXT_shader_module_identifier
[platform/upstream/VK-GL-CTS.git] / external / vulkancts / framework / vulkan / vkApiExtensionDependencyInfo.inl
1 /* WARNING: This is auto-generated file. Do not modify, since changes will
2  * be lost! Modify the generating script instead.
3  */
4
5 static const std::tuple<deUint32, deUint32, const char*, const char*>   instanceExtensionDependencies[] =
6 {
7         std::make_tuple(1, 0, "VK_EXT_acquire_drm_display", "VK_EXT_direct_mode_display"),
8         std::make_tuple(1, 1, "VK_EXT_acquire_drm_display", "VK_EXT_direct_mode_display"),
9         std::make_tuple(1, 2, "VK_EXT_acquire_drm_display", "VK_EXT_direct_mode_display"),
10         std::make_tuple(1, 3, "VK_EXT_acquire_drm_display", "VK_EXT_direct_mode_display"),
11         std::make_tuple(1, 0, "VK_EXT_acquire_xlib_display", "VK_EXT_direct_mode_display"),
12         std::make_tuple(1, 1, "VK_EXT_acquire_xlib_display", "VK_EXT_direct_mode_display"),
13         std::make_tuple(1, 2, "VK_EXT_acquire_xlib_display", "VK_EXT_direct_mode_display"),
14         std::make_tuple(1, 3, "VK_EXT_acquire_xlib_display", "VK_EXT_direct_mode_display"),
15         std::make_tuple(1, 0, "VK_EXT_direct_mode_display", "VK_KHR_display"),
16         std::make_tuple(1, 1, "VK_EXT_direct_mode_display", "VK_KHR_display"),
17         std::make_tuple(1, 2, "VK_EXT_direct_mode_display", "VK_KHR_display"),
18         std::make_tuple(1, 3, "VK_EXT_direct_mode_display", "VK_KHR_display"),
19         std::make_tuple(1, 0, "VK_EXT_directfb_surface", "VK_KHR_surface"),
20         std::make_tuple(1, 1, "VK_EXT_directfb_surface", "VK_KHR_surface"),
21         std::make_tuple(1, 2, "VK_EXT_directfb_surface", "VK_KHR_surface"),
22         std::make_tuple(1, 3, "VK_EXT_directfb_surface", "VK_KHR_surface"),
23         std::make_tuple(1, 0, "VK_EXT_display_surface_counter", "VK_KHR_display"),
24         std::make_tuple(1, 1, "VK_EXT_display_surface_counter", "VK_KHR_display"),
25         std::make_tuple(1, 2, "VK_EXT_display_surface_counter", "VK_KHR_display"),
26         std::make_tuple(1, 3, "VK_EXT_display_surface_counter", "VK_KHR_display"),
27         std::make_tuple(1, 0, "VK_EXT_headless_surface", "VK_KHR_surface"),
28         std::make_tuple(1, 1, "VK_EXT_headless_surface", "VK_KHR_surface"),
29         std::make_tuple(1, 2, "VK_EXT_headless_surface", "VK_KHR_surface"),
30         std::make_tuple(1, 3, "VK_EXT_headless_surface", "VK_KHR_surface"),
31         std::make_tuple(1, 0, "VK_EXT_metal_surface", "VK_KHR_surface"),
32         std::make_tuple(1, 1, "VK_EXT_metal_surface", "VK_KHR_surface"),
33         std::make_tuple(1, 2, "VK_EXT_metal_surface", "VK_KHR_surface"),
34         std::make_tuple(1, 3, "VK_EXT_metal_surface", "VK_KHR_surface"),
35         std::make_tuple(1, 0, "VK_EXT_swapchain_colorspace", "VK_KHR_surface"),
36         std::make_tuple(1, 1, "VK_EXT_swapchain_colorspace", "VK_KHR_surface"),
37         std::make_tuple(1, 2, "VK_EXT_swapchain_colorspace", "VK_KHR_surface"),
38         std::make_tuple(1, 3, "VK_EXT_swapchain_colorspace", "VK_KHR_surface"),
39         std::make_tuple(1, 0, "VK_FUCHSIA_imagepipe_surface", "VK_KHR_surface"),
40         std::make_tuple(1, 1, "VK_FUCHSIA_imagepipe_surface", "VK_KHR_surface"),
41         std::make_tuple(1, 2, "VK_FUCHSIA_imagepipe_surface", "VK_KHR_surface"),
42         std::make_tuple(1, 3, "VK_FUCHSIA_imagepipe_surface", "VK_KHR_surface"),
43         std::make_tuple(1, 0, "VK_GGP_stream_descriptor_surface", "VK_KHR_surface"),
44         std::make_tuple(1, 1, "VK_GGP_stream_descriptor_surface", "VK_KHR_surface"),
45         std::make_tuple(1, 2, "VK_GGP_stream_descriptor_surface", "VK_KHR_surface"),
46         std::make_tuple(1, 3, "VK_GGP_stream_descriptor_surface", "VK_KHR_surface"),
47         std::make_tuple(1, 0, "VK_GOOGLE_surfaceless_query", "VK_KHR_surface"),
48         std::make_tuple(1, 1, "VK_GOOGLE_surfaceless_query", "VK_KHR_surface"),
49         std::make_tuple(1, 2, "VK_GOOGLE_surfaceless_query", "VK_KHR_surface"),
50         std::make_tuple(1, 3, "VK_GOOGLE_surfaceless_query", "VK_KHR_surface"),
51         std::make_tuple(1, 0, "VK_KHR_android_surface", "VK_KHR_surface"),
52         std::make_tuple(1, 1, "VK_KHR_android_surface", "VK_KHR_surface"),
53         std::make_tuple(1, 2, "VK_KHR_android_surface", "VK_KHR_surface"),
54         std::make_tuple(1, 3, "VK_KHR_android_surface", "VK_KHR_surface"),
55         std::make_tuple(1, 0, "VK_KHR_display", "VK_KHR_surface"),
56         std::make_tuple(1, 1, "VK_KHR_display", "VK_KHR_surface"),
57         std::make_tuple(1, 2, "VK_KHR_display", "VK_KHR_surface"),
58         std::make_tuple(1, 3, "VK_KHR_display", "VK_KHR_surface"),
59         std::make_tuple(1, 0, "VK_KHR_external_fence_capabilities", "VK_KHR_get_physical_device_properties2"),
60         std::make_tuple(1, 0, "VK_KHR_external_memory_capabilities", "VK_KHR_get_physical_device_properties2"),
61         std::make_tuple(1, 0, "VK_KHR_external_semaphore_capabilities", "VK_KHR_get_physical_device_properties2"),
62         std::make_tuple(1, 0, "VK_KHR_get_display_properties2", "VK_KHR_display"),
63         std::make_tuple(1, 1, "VK_KHR_get_display_properties2", "VK_KHR_display"),
64         std::make_tuple(1, 2, "VK_KHR_get_display_properties2", "VK_KHR_display"),
65         std::make_tuple(1, 3, "VK_KHR_get_display_properties2", "VK_KHR_display"),
66         std::make_tuple(1, 0, "VK_KHR_get_surface_capabilities2", "VK_KHR_surface"),
67         std::make_tuple(1, 1, "VK_KHR_get_surface_capabilities2", "VK_KHR_surface"),
68         std::make_tuple(1, 2, "VK_KHR_get_surface_capabilities2", "VK_KHR_surface"),
69         std::make_tuple(1, 3, "VK_KHR_get_surface_capabilities2", "VK_KHR_surface"),
70         std::make_tuple(1, 1, "VK_KHR_surface_protected_capabilities", "VK_KHR_get_surface_capabilities2"),
71         std::make_tuple(1, 2, "VK_KHR_surface_protected_capabilities", "VK_KHR_get_surface_capabilities2"),
72         std::make_tuple(1, 3, "VK_KHR_surface_protected_capabilities", "VK_KHR_get_surface_capabilities2"),
73         std::make_tuple(1, 0, "VK_KHR_wayland_surface", "VK_KHR_surface"),
74         std::make_tuple(1, 1, "VK_KHR_wayland_surface", "VK_KHR_surface"),
75         std::make_tuple(1, 2, "VK_KHR_wayland_surface", "VK_KHR_surface"),
76         std::make_tuple(1, 3, "VK_KHR_wayland_surface", "VK_KHR_surface"),
77         std::make_tuple(1, 0, "VK_KHR_win32_surface", "VK_KHR_surface"),
78         std::make_tuple(1, 1, "VK_KHR_win32_surface", "VK_KHR_surface"),
79         std::make_tuple(1, 2, "VK_KHR_win32_surface", "VK_KHR_surface"),
80         std::make_tuple(1, 3, "VK_KHR_win32_surface", "VK_KHR_surface"),
81         std::make_tuple(1, 0, "VK_KHR_xcb_surface", "VK_KHR_surface"),
82         std::make_tuple(1, 1, "VK_KHR_xcb_surface", "VK_KHR_surface"),
83         std::make_tuple(1, 2, "VK_KHR_xcb_surface", "VK_KHR_surface"),
84         std::make_tuple(1, 3, "VK_KHR_xcb_surface", "VK_KHR_surface"),
85         std::make_tuple(1, 0, "VK_KHR_xlib_surface", "VK_KHR_surface"),
86         std::make_tuple(1, 1, "VK_KHR_xlib_surface", "VK_KHR_surface"),
87         std::make_tuple(1, 2, "VK_KHR_xlib_surface", "VK_KHR_surface"),
88         std::make_tuple(1, 3, "VK_KHR_xlib_surface", "VK_KHR_surface"),
89         std::make_tuple(1, 0, "VK_MVK_ios_surface", "VK_KHR_surface"),
90         std::make_tuple(1, 1, "VK_MVK_ios_surface", "VK_KHR_surface"),
91         std::make_tuple(1, 2, "VK_MVK_ios_surface", "VK_KHR_surface"),
92         std::make_tuple(1, 3, "VK_MVK_ios_surface", "VK_KHR_surface"),
93         std::make_tuple(1, 0, "VK_MVK_macos_surface", "VK_KHR_surface"),
94         std::make_tuple(1, 1, "VK_MVK_macos_surface", "VK_KHR_surface"),
95         std::make_tuple(1, 2, "VK_MVK_macos_surface", "VK_KHR_surface"),
96         std::make_tuple(1, 3, "VK_MVK_macos_surface", "VK_KHR_surface"),
97         std::make_tuple(1, 0, "VK_NN_vi_surface", "VK_KHR_surface"),
98         std::make_tuple(1, 1, "VK_NN_vi_surface", "VK_KHR_surface"),
99         std::make_tuple(1, 2, "VK_NN_vi_surface", "VK_KHR_surface"),
100         std::make_tuple(1, 3, "VK_NN_vi_surface", "VK_KHR_surface"),
101         std::make_tuple(1, 0, "VK_QNX_screen_surface", "VK_KHR_surface"),
102         std::make_tuple(1, 1, "VK_QNX_screen_surface", "VK_KHR_surface"),
103         std::make_tuple(1, 2, "VK_QNX_screen_surface", "VK_KHR_surface"),
104         std::make_tuple(1, 3, "VK_QNX_screen_surface", "VK_KHR_surface"),
105 };
106 static const std::tuple<deUint32, deUint32, const char*, const char*>   deviceExtensionDependencies[]   =
107 {
108         std::make_tuple(1, 0, "VK_AMD_display_native_hdr", "VK_KHR_get_physical_device_properties2"),
109         std::make_tuple(1, 0, "VK_AMD_display_native_hdr", "VK_KHR_get_surface_capabilities2"),
110         std::make_tuple(1, 0, "VK_AMD_display_native_hdr", "VK_KHR_swapchain"),
111         std::make_tuple(1, 1, "VK_AMD_display_native_hdr", "VK_KHR_get_surface_capabilities2"),
112         std::make_tuple(1, 1, "VK_AMD_display_native_hdr", "VK_KHR_swapchain"),
113         std::make_tuple(1, 2, "VK_AMD_display_native_hdr", "VK_KHR_get_surface_capabilities2"),
114         std::make_tuple(1, 2, "VK_AMD_display_native_hdr", "VK_KHR_swapchain"),
115         std::make_tuple(1, 3, "VK_AMD_display_native_hdr", "VK_KHR_get_surface_capabilities2"),
116         std::make_tuple(1, 3, "VK_AMD_display_native_hdr", "VK_KHR_swapchain"),
117         std::make_tuple(1, 0, "VK_AMD_shader_core_properties", "VK_KHR_get_physical_device_properties2"),
118         std::make_tuple(1, 0, "VK_AMD_shader_core_properties2", "VK_AMD_shader_core_properties"),
119         std::make_tuple(1, 1, "VK_AMD_shader_core_properties2", "VK_AMD_shader_core_properties"),
120         std::make_tuple(1, 2, "VK_AMD_shader_core_properties2", "VK_AMD_shader_core_properties"),
121         std::make_tuple(1, 3, "VK_AMD_shader_core_properties2", "VK_AMD_shader_core_properties"),
122         std::make_tuple(1, 0, "VK_AMD_texture_gather_bias_lod", "VK_KHR_get_physical_device_properties2"),
123         std::make_tuple(1, 0, "VK_ANDROID_external_memory_android_hardware_buffer", "VK_KHR_sampler_ycbcr_conversion"),
124         std::make_tuple(1, 0, "VK_ANDROID_external_memory_android_hardware_buffer", "VK_KHR_external_memory"),
125         std::make_tuple(1, 0, "VK_ANDROID_external_memory_android_hardware_buffer", "VK_EXT_queue_family_foreign"),
126         std::make_tuple(1, 0, "VK_ANDROID_external_memory_android_hardware_buffer", "VK_KHR_dedicated_allocation"),
127         std::make_tuple(1, 1, "VK_ANDROID_external_memory_android_hardware_buffer", "VK_EXT_queue_family_foreign"),
128         std::make_tuple(1, 2, "VK_ANDROID_external_memory_android_hardware_buffer", "VK_EXT_queue_family_foreign"),
129         std::make_tuple(1, 3, "VK_ANDROID_external_memory_android_hardware_buffer", "VK_EXT_queue_family_foreign"),
130         std::make_tuple(1, 0, "VK_ARM_rasterization_order_attachment_access", "VK_KHR_get_physical_device_properties2"),
131         std::make_tuple(1, 0, "VK_EXT_4444_formats", "VK_KHR_get_physical_device_properties2"),
132         std::make_tuple(1, 0, "VK_EXT_astc_decode_mode", "VK_KHR_get_physical_device_properties2"),
133         std::make_tuple(1, 0, "VK_EXT_border_color_swizzle", "VK_EXT_custom_border_color"),
134         std::make_tuple(1, 1, "VK_EXT_border_color_swizzle", "VK_EXT_custom_border_color"),
135         std::make_tuple(1, 2, "VK_EXT_border_color_swizzle", "VK_EXT_custom_border_color"),
136         std::make_tuple(1, 3, "VK_EXT_border_color_swizzle", "VK_EXT_custom_border_color"),
137         std::make_tuple(1, 0, "VK_EXT_buffer_device_address", "VK_KHR_get_physical_device_properties2"),
138         std::make_tuple(1, 0, "VK_EXT_calibrated_timestamps", "VK_KHR_get_physical_device_properties2"),
139         std::make_tuple(1, 0, "VK_EXT_color_write_enable", "VK_KHR_get_physical_device_properties2"),
140         std::make_tuple(1, 0, "VK_EXT_conservative_rasterization", "VK_KHR_get_physical_device_properties2"),
141         std::make_tuple(1, 0, "VK_EXT_debug_marker", "VK_EXT_debug_report"),
142         std::make_tuple(1, 1, "VK_EXT_debug_marker", "VK_EXT_debug_report"),
143         std::make_tuple(1, 2, "VK_EXT_debug_marker", "VK_EXT_debug_report"),
144         std::make_tuple(1, 3, "VK_EXT_debug_marker", "VK_EXT_debug_report"),
145         std::make_tuple(1, 0, "VK_EXT_depth_clip_control", "VK_KHR_get_physical_device_properties2"),
146         std::make_tuple(1, 0, "VK_EXT_descriptor_indexing", "VK_KHR_get_physical_device_properties2"),
147         std::make_tuple(1, 0, "VK_EXT_descriptor_indexing", "VK_KHR_maintenance3"),
148         std::make_tuple(1, 0, "VK_EXT_device_memory_report", "VK_KHR_get_physical_device_properties2"),
149         std::make_tuple(1, 0, "VK_EXT_discard_rectangles", "VK_KHR_get_physical_device_properties2"),
150         std::make_tuple(1, 0, "VK_EXT_display_control", "VK_EXT_display_surface_counter"),
151         std::make_tuple(1, 0, "VK_EXT_display_control", "VK_KHR_swapchain"),
152         std::make_tuple(1, 1, "VK_EXT_display_control", "VK_EXT_display_surface_counter"),
153         std::make_tuple(1, 1, "VK_EXT_display_control", "VK_KHR_swapchain"),
154         std::make_tuple(1, 2, "VK_EXT_display_control", "VK_EXT_display_surface_counter"),
155         std::make_tuple(1, 2, "VK_EXT_display_control", "VK_KHR_swapchain"),
156         std::make_tuple(1, 3, "VK_EXT_display_control", "VK_EXT_display_surface_counter"),
157         std::make_tuple(1, 3, "VK_EXT_display_control", "VK_KHR_swapchain"),
158         std::make_tuple(1, 0, "VK_EXT_extended_dynamic_state", "VK_KHR_get_physical_device_properties2"),
159         std::make_tuple(1, 0, "VK_EXT_extended_dynamic_state2", "VK_KHR_get_physical_device_properties2"),
160         std::make_tuple(1, 0, "VK_EXT_external_memory_dma_buf", "VK_KHR_external_memory_fd"),
161         std::make_tuple(1, 1, "VK_EXT_external_memory_dma_buf", "VK_KHR_external_memory_fd"),
162         std::make_tuple(1, 2, "VK_EXT_external_memory_dma_buf", "VK_KHR_external_memory_fd"),
163         std::make_tuple(1, 3, "VK_EXT_external_memory_dma_buf", "VK_KHR_external_memory_fd"),
164         std::make_tuple(1, 0, "VK_EXT_external_memory_host", "VK_KHR_external_memory"),
165         std::make_tuple(1, 0, "VK_EXT_fragment_density_map", "VK_KHR_get_physical_device_properties2"),
166         std::make_tuple(1, 0, "VK_EXT_fragment_density_map2", "VK_EXT_fragment_density_map"),
167         std::make_tuple(1, 1, "VK_EXT_fragment_density_map2", "VK_EXT_fragment_density_map"),
168         std::make_tuple(1, 2, "VK_EXT_fragment_density_map2", "VK_EXT_fragment_density_map"),
169         std::make_tuple(1, 3, "VK_EXT_fragment_density_map2", "VK_EXT_fragment_density_map"),
170         std::make_tuple(1, 0, "VK_EXT_fragment_shader_interlock", "VK_KHR_get_physical_device_properties2"),
171         std::make_tuple(1, 0, "VK_EXT_full_screen_exclusive", "VK_KHR_get_physical_device_properties2"),
172         std::make_tuple(1, 0, "VK_EXT_full_screen_exclusive", "VK_KHR_surface"),
173         std::make_tuple(1, 0, "VK_EXT_full_screen_exclusive", "VK_KHR_get_surface_capabilities2"),
174         std::make_tuple(1, 0, "VK_EXT_full_screen_exclusive", "VK_KHR_swapchain"),
175         std::make_tuple(1, 1, "VK_EXT_full_screen_exclusive", "VK_KHR_surface"),
176         std::make_tuple(1, 1, "VK_EXT_full_screen_exclusive", "VK_KHR_get_surface_capabilities2"),
177         std::make_tuple(1, 1, "VK_EXT_full_screen_exclusive", "VK_KHR_swapchain"),
178         std::make_tuple(1, 2, "VK_EXT_full_screen_exclusive", "VK_KHR_surface"),
179         std::make_tuple(1, 2, "VK_EXT_full_screen_exclusive", "VK_KHR_get_surface_capabilities2"),
180         std::make_tuple(1, 2, "VK_EXT_full_screen_exclusive", "VK_KHR_swapchain"),
181         std::make_tuple(1, 3, "VK_EXT_full_screen_exclusive", "VK_KHR_surface"),
182         std::make_tuple(1, 3, "VK_EXT_full_screen_exclusive", "VK_KHR_get_surface_capabilities2"),
183         std::make_tuple(1, 3, "VK_EXT_full_screen_exclusive", "VK_KHR_swapchain"),
184         std::make_tuple(1, 0, "VK_EXT_global_priority_query", "VK_EXT_global_priority"),
185         std::make_tuple(1, 0, "VK_EXT_global_priority_query", "VK_KHR_get_physical_device_properties2"),
186         std::make_tuple(1, 1, "VK_EXT_global_priority_query", "VK_EXT_global_priority"),
187         std::make_tuple(1, 2, "VK_EXT_global_priority_query", "VK_EXT_global_priority"),
188         std::make_tuple(1, 3, "VK_EXT_global_priority_query", "VK_EXT_global_priority"),
189         std::make_tuple(1, 0, "VK_EXT_graphics_pipeline_library", "VK_KHR_get_physical_device_properties2"),
190         std::make_tuple(1, 0, "VK_EXT_graphics_pipeline_library", "VK_KHR_pipeline_library"),
191         std::make_tuple(1, 1, "VK_EXT_graphics_pipeline_library", "VK_KHR_pipeline_library"),
192         std::make_tuple(1, 2, "VK_EXT_graphics_pipeline_library", "VK_KHR_pipeline_library"),
193         std::make_tuple(1, 3, "VK_EXT_graphics_pipeline_library", "VK_KHR_pipeline_library"),
194         std::make_tuple(1, 0, "VK_EXT_hdr_metadata", "VK_KHR_swapchain"),
195         std::make_tuple(1, 1, "VK_EXT_hdr_metadata", "VK_KHR_swapchain"),
196         std::make_tuple(1, 2, "VK_EXT_hdr_metadata", "VK_KHR_swapchain"),
197         std::make_tuple(1, 3, "VK_EXT_hdr_metadata", "VK_KHR_swapchain"),
198         std::make_tuple(1, 0, "VK_EXT_host_query_reset", "VK_KHR_get_physical_device_properties2"),
199         std::make_tuple(1, 0, "VK_EXT_image_2d_view_of_3d", "VK_KHR_maintenance1"),
200         std::make_tuple(1, 0, "VK_EXT_image_2d_view_of_3d", "VK_KHR_get_physical_device_properties2"),
201         std::make_tuple(1, 0, "VK_EXT_image_compression_control_swapchain", "VK_EXT_image_compression_control"),
202         std::make_tuple(1, 1, "VK_EXT_image_compression_control_swapchain", "VK_EXT_image_compression_control"),
203         std::make_tuple(1, 2, "VK_EXT_image_compression_control_swapchain", "VK_EXT_image_compression_control"),
204         std::make_tuple(1, 3, "VK_EXT_image_compression_control_swapchain", "VK_EXT_image_compression_control"),
205         std::make_tuple(1, 0, "VK_EXT_image_drm_format_modifier", "VK_KHR_bind_memory2"),
206         std::make_tuple(1, 0, "VK_EXT_image_drm_format_modifier", "VK_KHR_get_physical_device_properties2"),
207         std::make_tuple(1, 0, "VK_EXT_image_drm_format_modifier", "VK_KHR_image_format_list"),
208         std::make_tuple(1, 0, "VK_EXT_image_drm_format_modifier", "VK_KHR_sampler_ycbcr_conversion"),
209         std::make_tuple(1, 1, "VK_EXT_image_drm_format_modifier", "VK_KHR_image_format_list"),
210         std::make_tuple(1, 0, "VK_EXT_image_robustness", "VK_KHR_get_physical_device_properties2"),
211         std::make_tuple(1, 0, "VK_EXT_image_view_min_lod", "VK_KHR_get_physical_device_properties2"),
212         std::make_tuple(1, 0, "VK_EXT_inline_uniform_block", "VK_KHR_get_physical_device_properties2"),
213         std::make_tuple(1, 0, "VK_EXT_inline_uniform_block", "VK_KHR_maintenance1"),
214         std::make_tuple(1, 0, "VK_EXT_line_rasterization", "VK_KHR_get_physical_device_properties2"),
215         std::make_tuple(1, 0, "VK_EXT_memory_budget", "VK_KHR_get_physical_device_properties2"),
216         std::make_tuple(1, 0, "VK_EXT_memory_priority", "VK_KHR_get_physical_device_properties2"),
217         std::make_tuple(1, 0, "VK_EXT_pageable_device_local_memory", "VK_EXT_memory_priority"),
218         std::make_tuple(1, 1, "VK_EXT_pageable_device_local_memory", "VK_EXT_memory_priority"),
219         std::make_tuple(1, 2, "VK_EXT_pageable_device_local_memory", "VK_EXT_memory_priority"),
220         std::make_tuple(1, 3, "VK_EXT_pageable_device_local_memory", "VK_EXT_memory_priority"),
221         std::make_tuple(1, 0, "VK_EXT_pci_bus_info", "VK_KHR_get_physical_device_properties2"),
222         std::make_tuple(1, 0, "VK_EXT_physical_device_drm", "VK_KHR_get_physical_device_properties2"),
223         std::make_tuple(1, 0, "VK_EXT_pipeline_properties", "VK_KHR_get_physical_device_properties2"),
224         std::make_tuple(1, 0, "VK_EXT_primitives_generated_query", "VK_EXT_transform_feedback"),
225         std::make_tuple(1, 1, "VK_EXT_primitives_generated_query", "VK_EXT_transform_feedback"),
226         std::make_tuple(1, 2, "VK_EXT_primitives_generated_query", "VK_EXT_transform_feedback"),
227         std::make_tuple(1, 3, "VK_EXT_primitives_generated_query", "VK_EXT_transform_feedback"),
228         std::make_tuple(1, 0, "VK_EXT_provoking_vertex", "VK_KHR_get_physical_device_properties2"),
229         std::make_tuple(1, 0, "VK_EXT_queue_family_foreign", "VK_KHR_external_memory"),
230         std::make_tuple(1, 0, "VK_EXT_rgba10x6_formats", "VK_KHR_sampler_ycbcr_conversion"),
231         std::make_tuple(1, 0, "VK_EXT_sample_locations", "VK_KHR_get_physical_device_properties2"),
232         std::make_tuple(1, 0, "VK_EXT_sampler_filter_minmax", "VK_KHR_get_physical_device_properties2"),
233         std::make_tuple(1, 0, "VK_EXT_scalar_block_layout", "VK_KHR_get_physical_device_properties2"),
234         std::make_tuple(1, 0, "VK_EXT_shader_atomic_float", "VK_KHR_get_physical_device_properties2"),
235         std::make_tuple(1, 0, "VK_EXT_shader_atomic_float2", "VK_EXT_shader_atomic_float"),
236         std::make_tuple(1, 1, "VK_EXT_shader_atomic_float2", "VK_EXT_shader_atomic_float"),
237         std::make_tuple(1, 2, "VK_EXT_shader_atomic_float2", "VK_EXT_shader_atomic_float"),
238         std::make_tuple(1, 3, "VK_EXT_shader_atomic_float2", "VK_EXT_shader_atomic_float"),
239         std::make_tuple(1, 0, "VK_EXT_shader_demote_to_helper_invocation", "VK_KHR_get_physical_device_properties2"),
240         std::make_tuple(1, 0, "VK_EXT_shader_image_atomic_int64", "VK_KHR_get_physical_device_properties2"),
241         std::make_tuple(1, 0, "VK_EXT_shader_module_identifier", "VK_KHR_get_physical_device_properties2"),
242         std::make_tuple(1, 0, "VK_EXT_shader_module_identifier", "VK_EXT_pipeline_creation_cache_control"),
243         std::make_tuple(1, 1, "VK_EXT_shader_module_identifier", "VK_EXT_pipeline_creation_cache_control"),
244         std::make_tuple(1, 2, "VK_EXT_shader_module_identifier", "VK_EXT_pipeline_creation_cache_control"),
245         std::make_tuple(1, 0, "VK_EXT_texel_buffer_alignment", "VK_KHR_get_physical_device_properties2"),
246         std::make_tuple(1, 0, "VK_EXT_texture_compression_astc_hdr", "VK_KHR_get_physical_device_properties2"),
247         std::make_tuple(1, 0, "VK_EXT_transform_feedback", "VK_KHR_get_physical_device_properties2"),
248         std::make_tuple(1, 0, "VK_EXT_vertex_attribute_divisor", "VK_KHR_get_physical_device_properties2"),
249         std::make_tuple(1, 0, "VK_EXT_vertex_input_dynamic_state", "VK_KHR_get_physical_device_properties2"),
250         std::make_tuple(1, 0, "VK_EXT_video_decode_h264", "VK_KHR_video_decode_queue"),
251         std::make_tuple(1, 1, "VK_EXT_video_decode_h264", "VK_KHR_video_decode_queue"),
252         std::make_tuple(1, 2, "VK_EXT_video_decode_h264", "VK_KHR_video_decode_queue"),
253         std::make_tuple(1, 3, "VK_EXT_video_decode_h264", "VK_KHR_video_decode_queue"),
254         std::make_tuple(1, 0, "VK_EXT_video_decode_h265", "VK_KHR_video_decode_queue"),
255         std::make_tuple(1, 1, "VK_EXT_video_decode_h265", "VK_KHR_video_decode_queue"),
256         std::make_tuple(1, 2, "VK_EXT_video_decode_h265", "VK_KHR_video_decode_queue"),
257         std::make_tuple(1, 3, "VK_EXT_video_decode_h265", "VK_KHR_video_decode_queue"),
258         std::make_tuple(1, 0, "VK_EXT_video_encode_h264", "VK_KHR_video_encode_queue"),
259         std::make_tuple(1, 1, "VK_EXT_video_encode_h264", "VK_KHR_video_encode_queue"),
260         std::make_tuple(1, 2, "VK_EXT_video_encode_h264", "VK_KHR_video_encode_queue"),
261         std::make_tuple(1, 3, "VK_EXT_video_encode_h264", "VK_KHR_video_encode_queue"),
262         std::make_tuple(1, 0, "VK_EXT_video_encode_h265", "VK_KHR_video_encode_queue"),
263         std::make_tuple(1, 1, "VK_EXT_video_encode_h265", "VK_KHR_video_encode_queue"),
264         std::make_tuple(1, 2, "VK_EXT_video_encode_h265", "VK_KHR_video_encode_queue"),
265         std::make_tuple(1, 3, "VK_EXT_video_encode_h265", "VK_KHR_video_encode_queue"),
266         std::make_tuple(1, 0, "VK_EXT_ycbcr_2plane_444_formats", "VK_KHR_sampler_ycbcr_conversion"),
267         std::make_tuple(1, 0, "VK_EXT_ycbcr_image_arrays", "VK_KHR_sampler_ycbcr_conversion"),
268         std::make_tuple(1, 0, "VK_FUCHSIA_buffer_collection", "VK_FUCHSIA_external_memory"),
269         std::make_tuple(1, 0, "VK_FUCHSIA_buffer_collection", "VK_KHR_sampler_ycbcr_conversion"),
270         std::make_tuple(1, 1, "VK_FUCHSIA_buffer_collection", "VK_FUCHSIA_external_memory"),
271         std::make_tuple(1, 2, "VK_FUCHSIA_buffer_collection", "VK_FUCHSIA_external_memory"),
272         std::make_tuple(1, 3, "VK_FUCHSIA_buffer_collection", "VK_FUCHSIA_external_memory"),
273         std::make_tuple(1, 0, "VK_FUCHSIA_external_memory", "VK_KHR_external_memory_capabilities"),
274         std::make_tuple(1, 0, "VK_FUCHSIA_external_memory", "VK_KHR_external_memory"),
275         std::make_tuple(1, 0, "VK_FUCHSIA_external_semaphore", "VK_KHR_external_semaphore_capabilities"),
276         std::make_tuple(1, 0, "VK_FUCHSIA_external_semaphore", "VK_KHR_external_semaphore"),
277         std::make_tuple(1, 0, "VK_GGP_frame_token", "VK_KHR_swapchain"),
278         std::make_tuple(1, 0, "VK_GGP_frame_token", "VK_GGP_stream_descriptor_surface"),
279         std::make_tuple(1, 1, "VK_GGP_frame_token", "VK_KHR_swapchain"),
280         std::make_tuple(1, 1, "VK_GGP_frame_token", "VK_GGP_stream_descriptor_surface"),
281         std::make_tuple(1, 2, "VK_GGP_frame_token", "VK_KHR_swapchain"),
282         std::make_tuple(1, 2, "VK_GGP_frame_token", "VK_GGP_stream_descriptor_surface"),
283         std::make_tuple(1, 3, "VK_GGP_frame_token", "VK_KHR_swapchain"),
284         std::make_tuple(1, 3, "VK_GGP_frame_token", "VK_GGP_stream_descriptor_surface"),
285         std::make_tuple(1, 0, "VK_GOOGLE_display_timing", "VK_KHR_swapchain"),
286         std::make_tuple(1, 1, "VK_GOOGLE_display_timing", "VK_KHR_swapchain"),
287         std::make_tuple(1, 2, "VK_GOOGLE_display_timing", "VK_KHR_swapchain"),
288         std::make_tuple(1, 3, "VK_GOOGLE_display_timing", "VK_KHR_swapchain"),
289         std::make_tuple(1, 0, "VK_HUAWEI_invocation_mask", "VK_KHR_ray_tracing_pipeline"),
290         std::make_tuple(1, 0, "VK_HUAWEI_invocation_mask", "VK_KHR_synchronization2"),
291         std::make_tuple(1, 1, "VK_HUAWEI_invocation_mask", "VK_KHR_ray_tracing_pipeline"),
292         std::make_tuple(1, 1, "VK_HUAWEI_invocation_mask", "VK_KHR_synchronization2"),
293         std::make_tuple(1, 2, "VK_HUAWEI_invocation_mask", "VK_KHR_ray_tracing_pipeline"),
294         std::make_tuple(1, 2, "VK_HUAWEI_invocation_mask", "VK_KHR_synchronization2"),
295         std::make_tuple(1, 3, "VK_HUAWEI_invocation_mask", "VK_KHR_ray_tracing_pipeline"),
296         std::make_tuple(1, 0, "VK_HUAWEI_subpass_shading", "VK_KHR_create_renderpass2"),
297         std::make_tuple(1, 0, "VK_HUAWEI_subpass_shading", "VK_KHR_synchronization2"),
298         std::make_tuple(1, 1, "VK_HUAWEI_subpass_shading", "VK_KHR_create_renderpass2"),
299         std::make_tuple(1, 1, "VK_HUAWEI_subpass_shading", "VK_KHR_synchronization2"),
300         std::make_tuple(1, 2, "VK_HUAWEI_subpass_shading", "VK_KHR_synchronization2"),
301         std::make_tuple(1, 0, "VK_INTEL_shader_integer_functions2", "VK_KHR_get_physical_device_properties2"),
302         std::make_tuple(1, 0, "VK_KHR_16bit_storage", "VK_KHR_get_physical_device_properties2"),
303         std::make_tuple(1, 0, "VK_KHR_16bit_storage", "VK_KHR_storage_buffer_storage_class"),
304         std::make_tuple(1, 0, "VK_KHR_8bit_storage", "VK_KHR_get_physical_device_properties2"),
305         std::make_tuple(1, 0, "VK_KHR_8bit_storage", "VK_KHR_storage_buffer_storage_class"),
306         std::make_tuple(1, 1, "VK_KHR_acceleration_structure", "VK_EXT_descriptor_indexing"),
307         std::make_tuple(1, 1, "VK_KHR_acceleration_structure", "VK_KHR_buffer_device_address"),
308         std::make_tuple(1, 1, "VK_KHR_acceleration_structure", "VK_KHR_deferred_host_operations"),
309         std::make_tuple(1, 2, "VK_KHR_acceleration_structure", "VK_KHR_deferred_host_operations"),
310         std::make_tuple(1, 3, "VK_KHR_acceleration_structure", "VK_KHR_deferred_host_operations"),
311         std::make_tuple(1, 0, "VK_KHR_buffer_device_address", "VK_KHR_get_physical_device_properties2"),
312         std::make_tuple(1, 0, "VK_KHR_create_renderpass2", "VK_KHR_multiview"),
313         std::make_tuple(1, 0, "VK_KHR_create_renderpass2", "VK_KHR_maintenance2"),
314         std::make_tuple(1, 0, "VK_KHR_dedicated_allocation", "VK_KHR_get_memory_requirements2"),
315         std::make_tuple(1, 0, "VK_KHR_depth_stencil_resolve", "VK_KHR_create_renderpass2"),
316         std::make_tuple(1, 1, "VK_KHR_depth_stencil_resolve", "VK_KHR_create_renderpass2"),
317         std::make_tuple(1, 0, "VK_KHR_device_group", "VK_KHR_device_group_creation"),
318         std::make_tuple(1, 0, "VK_KHR_display_swapchain", "VK_KHR_swapchain"),
319         std::make_tuple(1, 0, "VK_KHR_display_swapchain", "VK_KHR_display"),
320         std::make_tuple(1, 1, "VK_KHR_display_swapchain", "VK_KHR_swapchain"),
321         std::make_tuple(1, 1, "VK_KHR_display_swapchain", "VK_KHR_display"),
322         std::make_tuple(1, 2, "VK_KHR_display_swapchain", "VK_KHR_swapchain"),
323         std::make_tuple(1, 2, "VK_KHR_display_swapchain", "VK_KHR_display"),
324         std::make_tuple(1, 3, "VK_KHR_display_swapchain", "VK_KHR_swapchain"),
325         std::make_tuple(1, 3, "VK_KHR_display_swapchain", "VK_KHR_display"),
326         std::make_tuple(1, 0, "VK_KHR_driver_properties", "VK_KHR_get_physical_device_properties2"),
327         std::make_tuple(1, 0, "VK_KHR_dynamic_rendering", "VK_KHR_get_physical_device_properties2"),
328         std::make_tuple(1, 0, "VK_KHR_external_fence", "VK_KHR_external_fence_capabilities"),
329         std::make_tuple(1, 0, "VK_KHR_external_fence_fd", "VK_KHR_external_fence"),
330         std::make_tuple(1, 0, "VK_KHR_external_fence_win32", "VK_KHR_external_fence"),
331         std::make_tuple(1, 0, "VK_KHR_external_memory", "VK_KHR_external_memory_capabilities"),
332         std::make_tuple(1, 0, "VK_KHR_external_memory_fd", "VK_KHR_external_memory"),
333         std::make_tuple(1, 0, "VK_KHR_external_memory_win32", "VK_KHR_external_memory"),
334         std::make_tuple(1, 0, "VK_KHR_external_semaphore", "VK_KHR_external_semaphore_capabilities"),
335         std::make_tuple(1, 0, "VK_KHR_external_semaphore_fd", "VK_KHR_external_semaphore"),
336         std::make_tuple(1, 0, "VK_KHR_external_semaphore_win32", "VK_KHR_external_semaphore"),
337         std::make_tuple(1, 0, "VK_KHR_format_feature_flags2", "VK_KHR_get_physical_device_properties2"),
338         std::make_tuple(1, 0, "VK_KHR_fragment_shading_rate", "VK_KHR_create_renderpass2"),
339         std::make_tuple(1, 0, "VK_KHR_fragment_shading_rate", "VK_KHR_get_physical_device_properties2"),
340         std::make_tuple(1, 1, "VK_KHR_fragment_shading_rate", "VK_KHR_create_renderpass2"),
341         std::make_tuple(1, 0, "VK_KHR_imageless_framebuffer", "VK_KHR_maintenance2"),
342         std::make_tuple(1, 0, "VK_KHR_imageless_framebuffer", "VK_KHR_image_format_list"),
343         std::make_tuple(1, 1, "VK_KHR_imageless_framebuffer", "VK_KHR_image_format_list"),
344         std::make_tuple(1, 0, "VK_KHR_incremental_present", "VK_KHR_swapchain"),
345         std::make_tuple(1, 1, "VK_KHR_incremental_present", "VK_KHR_swapchain"),
346         std::make_tuple(1, 2, "VK_KHR_incremental_present", "VK_KHR_swapchain"),
347         std::make_tuple(1, 3, "VK_KHR_incremental_present", "VK_KHR_swapchain"),
348         std::make_tuple(1, 0, "VK_KHR_maintenance3", "VK_KHR_get_physical_device_properties2"),
349         std::make_tuple(1, 0, "VK_KHR_multiview", "VK_KHR_get_physical_device_properties2"),
350         std::make_tuple(1, 0, "VK_KHR_performance_query", "VK_KHR_get_physical_device_properties2"),
351         std::make_tuple(1, 0, "VK_KHR_pipeline_executable_properties", "VK_KHR_get_physical_device_properties2"),
352         std::make_tuple(1, 0, "VK_KHR_portability_subset", "VK_KHR_get_physical_device_properties2"),
353         std::make_tuple(1, 0, "VK_KHR_present_id", "VK_KHR_swapchain"),
354         std::make_tuple(1, 1, "VK_KHR_present_id", "VK_KHR_swapchain"),
355         std::make_tuple(1, 2, "VK_KHR_present_id", "VK_KHR_swapchain"),
356         std::make_tuple(1, 3, "VK_KHR_present_id", "VK_KHR_swapchain"),
357         std::make_tuple(1, 0, "VK_KHR_present_wait", "VK_KHR_swapchain"),
358         std::make_tuple(1, 0, "VK_KHR_present_wait", "VK_KHR_present_id"),
359         std::make_tuple(1, 1, "VK_KHR_present_wait", "VK_KHR_swapchain"),
360         std::make_tuple(1, 1, "VK_KHR_present_wait", "VK_KHR_present_id"),
361         std::make_tuple(1, 2, "VK_KHR_present_wait", "VK_KHR_swapchain"),
362         std::make_tuple(1, 2, "VK_KHR_present_wait", "VK_KHR_present_id"),
363         std::make_tuple(1, 3, "VK_KHR_present_wait", "VK_KHR_swapchain"),
364         std::make_tuple(1, 3, "VK_KHR_present_wait", "VK_KHR_present_id"),
365         std::make_tuple(1, 0, "VK_KHR_push_descriptor", "VK_KHR_get_physical_device_properties2"),
366         std::make_tuple(1, 1, "VK_KHR_ray_query", "VK_KHR_spirv_1_4"),
367         std::make_tuple(1, 1, "VK_KHR_ray_query", "VK_KHR_acceleration_structure"),
368         std::make_tuple(1, 2, "VK_KHR_ray_query", "VK_KHR_acceleration_structure"),
369         std::make_tuple(1, 3, "VK_KHR_ray_query", "VK_KHR_acceleration_structure"),
370         std::make_tuple(1, 1, "VK_KHR_ray_tracing_maintenance1", "VK_KHR_acceleration_structure"),
371         std::make_tuple(1, 2, "VK_KHR_ray_tracing_maintenance1", "VK_KHR_acceleration_structure"),
372         std::make_tuple(1, 3, "VK_KHR_ray_tracing_maintenance1", "VK_KHR_acceleration_structure"),
373         std::make_tuple(1, 1, "VK_KHR_ray_tracing_pipeline", "VK_KHR_spirv_1_4"),
374         std::make_tuple(1, 1, "VK_KHR_ray_tracing_pipeline", "VK_KHR_acceleration_structure"),
375         std::make_tuple(1, 2, "VK_KHR_ray_tracing_pipeline", "VK_KHR_acceleration_structure"),
376         std::make_tuple(1, 3, "VK_KHR_ray_tracing_pipeline", "VK_KHR_acceleration_structure"),
377         std::make_tuple(1, 0, "VK_KHR_sampler_ycbcr_conversion", "VK_KHR_maintenance1"),
378         std::make_tuple(1, 0, "VK_KHR_sampler_ycbcr_conversion", "VK_KHR_bind_memory2"),
379         std::make_tuple(1, 0, "VK_KHR_sampler_ycbcr_conversion", "VK_KHR_get_memory_requirements2"),
380         std::make_tuple(1, 0, "VK_KHR_sampler_ycbcr_conversion", "VK_KHR_get_physical_device_properties2"),
381         std::make_tuple(1, 0, "VK_KHR_separate_depth_stencil_layouts", "VK_KHR_get_physical_device_properties2"),
382         std::make_tuple(1, 0, "VK_KHR_separate_depth_stencil_layouts", "VK_KHR_create_renderpass2"),
383         std::make_tuple(1, 1, "VK_KHR_separate_depth_stencil_layouts", "VK_KHR_create_renderpass2"),
384         std::make_tuple(1, 0, "VK_KHR_shader_atomic_int64", "VK_KHR_get_physical_device_properties2"),
385         std::make_tuple(1, 0, "VK_KHR_shader_clock", "VK_KHR_get_physical_device_properties2"),
386         std::make_tuple(1, 0, "VK_KHR_shader_float16_int8", "VK_KHR_get_physical_device_properties2"),
387         std::make_tuple(1, 0, "VK_KHR_shader_float_controls", "VK_KHR_get_physical_device_properties2"),
388         std::make_tuple(1, 0, "VK_KHR_shader_integer_dot_product", "VK_KHR_get_physical_device_properties2"),
389         std::make_tuple(1, 0, "VK_KHR_shader_terminate_invocation", "VK_KHR_get_physical_device_properties2"),
390         std::make_tuple(1, 0, "VK_KHR_shared_presentable_image", "VK_KHR_swapchain"),
391         std::make_tuple(1, 0, "VK_KHR_shared_presentable_image", "VK_KHR_get_physical_device_properties2"),
392         std::make_tuple(1, 0, "VK_KHR_shared_presentable_image", "VK_KHR_get_surface_capabilities2"),
393         std::make_tuple(1, 1, "VK_KHR_shared_presentable_image", "VK_KHR_swapchain"),
394         std::make_tuple(1, 1, "VK_KHR_shared_presentable_image", "VK_KHR_get_surface_capabilities2"),
395         std::make_tuple(1, 2, "VK_KHR_shared_presentable_image", "VK_KHR_swapchain"),
396         std::make_tuple(1, 2, "VK_KHR_shared_presentable_image", "VK_KHR_get_surface_capabilities2"),
397         std::make_tuple(1, 3, "VK_KHR_shared_presentable_image", "VK_KHR_swapchain"),
398         std::make_tuple(1, 3, "VK_KHR_shared_presentable_image", "VK_KHR_get_surface_capabilities2"),
399         std::make_tuple(1, 1, "VK_KHR_spirv_1_4", "VK_KHR_shader_float_controls"),
400         std::make_tuple(1, 0, "VK_KHR_swapchain", "VK_KHR_surface"),
401         std::make_tuple(1, 1, "VK_KHR_swapchain", "VK_KHR_surface"),
402         std::make_tuple(1, 2, "VK_KHR_swapchain", "VK_KHR_surface"),
403         std::make_tuple(1, 3, "VK_KHR_swapchain", "VK_KHR_surface"),
404         std::make_tuple(1, 0, "VK_KHR_swapchain_mutable_format", "VK_KHR_swapchain"),
405         std::make_tuple(1, 0, "VK_KHR_swapchain_mutable_format", "VK_KHR_maintenance2"),
406         std::make_tuple(1, 0, "VK_KHR_swapchain_mutable_format", "VK_KHR_image_format_list"),
407         std::make_tuple(1, 1, "VK_KHR_swapchain_mutable_format", "VK_KHR_swapchain"),
408         std::make_tuple(1, 1, "VK_KHR_swapchain_mutable_format", "VK_KHR_image_format_list"),
409         std::make_tuple(1, 2, "VK_KHR_swapchain_mutable_format", "VK_KHR_swapchain"),
410         std::make_tuple(1, 3, "VK_KHR_swapchain_mutable_format", "VK_KHR_swapchain"),
411         std::make_tuple(1, 0, "VK_KHR_synchronization2", "VK_KHR_get_physical_device_properties2"),
412         std::make_tuple(1, 0, "VK_KHR_timeline_semaphore", "VK_KHR_get_physical_device_properties2"),
413         std::make_tuple(1, 0, "VK_KHR_uniform_buffer_standard_layout", "VK_KHR_get_physical_device_properties2"),
414         std::make_tuple(1, 0, "VK_KHR_variable_pointers", "VK_KHR_get_physical_device_properties2"),
415         std::make_tuple(1, 0, "VK_KHR_variable_pointers", "VK_KHR_storage_buffer_storage_class"),
416         std::make_tuple(1, 0, "VK_KHR_video_decode_queue", "VK_KHR_video_queue"),
417         std::make_tuple(1, 0, "VK_KHR_video_decode_queue", "VK_KHR_synchronization2"),
418         std::make_tuple(1, 1, "VK_KHR_video_decode_queue", "VK_KHR_video_queue"),
419         std::make_tuple(1, 1, "VK_KHR_video_decode_queue", "VK_KHR_synchronization2"),
420         std::make_tuple(1, 2, "VK_KHR_video_decode_queue", "VK_KHR_video_queue"),
421         std::make_tuple(1, 2, "VK_KHR_video_decode_queue", "VK_KHR_synchronization2"),
422         std::make_tuple(1, 3, "VK_KHR_video_decode_queue", "VK_KHR_video_queue"),
423         std::make_tuple(1, 0, "VK_KHR_video_encode_queue", "VK_KHR_video_queue"),
424         std::make_tuple(1, 0, "VK_KHR_video_encode_queue", "VK_KHR_synchronization2"),
425         std::make_tuple(1, 1, "VK_KHR_video_encode_queue", "VK_KHR_video_queue"),
426         std::make_tuple(1, 1, "VK_KHR_video_encode_queue", "VK_KHR_synchronization2"),
427         std::make_tuple(1, 2, "VK_KHR_video_encode_queue", "VK_KHR_video_queue"),
428         std::make_tuple(1, 2, "VK_KHR_video_encode_queue", "VK_KHR_synchronization2"),
429         std::make_tuple(1, 3, "VK_KHR_video_encode_queue", "VK_KHR_video_queue"),
430         std::make_tuple(1, 0, "VK_KHR_video_queue", "VK_KHR_get_physical_device_properties2"),
431         std::make_tuple(1, 0, "VK_KHR_video_queue", "VK_KHR_sampler_ycbcr_conversion"),
432         std::make_tuple(1, 0, "VK_KHR_win32_keyed_mutex", "VK_KHR_external_memory_win32"),
433         std::make_tuple(1, 1, "VK_KHR_win32_keyed_mutex", "VK_KHR_external_memory_win32"),
434         std::make_tuple(1, 2, "VK_KHR_win32_keyed_mutex", "VK_KHR_external_memory_win32"),
435         std::make_tuple(1, 3, "VK_KHR_win32_keyed_mutex", "VK_KHR_external_memory_win32"),
436         std::make_tuple(1, 0, "VK_KHR_workgroup_memory_explicit_layout", "VK_KHR_get_physical_device_properties2"),
437         std::make_tuple(1, 0, "VK_KHR_zero_initialize_workgroup_memory", "VK_KHR_get_physical_device_properties2"),
438         std::make_tuple(1, 0, "VK_NVX_multiview_per_view_attributes", "VK_KHR_multiview"),
439         std::make_tuple(1, 0, "VK_NV_acquire_winrt_display", "VK_EXT_direct_mode_display"),
440         std::make_tuple(1, 1, "VK_NV_acquire_winrt_display", "VK_EXT_direct_mode_display"),
441         std::make_tuple(1, 2, "VK_NV_acquire_winrt_display", "VK_EXT_direct_mode_display"),
442         std::make_tuple(1, 3, "VK_NV_acquire_winrt_display", "VK_EXT_direct_mode_display"),
443         std::make_tuple(1, 0, "VK_NV_compute_shader_derivatives", "VK_KHR_get_physical_device_properties2"),
444         std::make_tuple(1, 0, "VK_NV_cooperative_matrix", "VK_KHR_get_physical_device_properties2"),
445         std::make_tuple(1, 0, "VK_NV_corner_sampled_image", "VK_KHR_get_physical_device_properties2"),
446         std::make_tuple(1, 0, "VK_NV_coverage_reduction_mode", "VK_NV_framebuffer_mixed_samples"),
447         std::make_tuple(1, 1, "VK_NV_coverage_reduction_mode", "VK_NV_framebuffer_mixed_samples"),
448         std::make_tuple(1, 2, "VK_NV_coverage_reduction_mode", "VK_NV_framebuffer_mixed_samples"),
449         std::make_tuple(1, 3, "VK_NV_coverage_reduction_mode", "VK_NV_framebuffer_mixed_samples"),
450         std::make_tuple(1, 0, "VK_NV_dedicated_allocation_image_aliasing", "VK_KHR_dedicated_allocation"),
451         std::make_tuple(1, 0, "VK_NV_device_diagnostic_checkpoints", "VK_KHR_get_physical_device_properties2"),
452         std::make_tuple(1, 0, "VK_NV_device_diagnostics_config", "VK_KHR_get_physical_device_properties2"),
453         std::make_tuple(1, 1, "VK_NV_device_generated_commands", "VK_KHR_buffer_device_address"),
454         std::make_tuple(1, 0, "VK_NV_external_memory", "VK_NV_external_memory_capabilities"),
455         std::make_tuple(1, 1, "VK_NV_external_memory", "VK_NV_external_memory_capabilities"),
456         std::make_tuple(1, 2, "VK_NV_external_memory", "VK_NV_external_memory_capabilities"),
457         std::make_tuple(1, 3, "VK_NV_external_memory", "VK_NV_external_memory_capabilities"),
458         std::make_tuple(1, 0, "VK_NV_external_memory_rdma", "VK_KHR_external_memory"),
459         std::make_tuple(1, 0, "VK_NV_external_memory_win32", "VK_NV_external_memory"),
460         std::make_tuple(1, 1, "VK_NV_external_memory_win32", "VK_NV_external_memory"),
461         std::make_tuple(1, 2, "VK_NV_external_memory_win32", "VK_NV_external_memory"),
462         std::make_tuple(1, 3, "VK_NV_external_memory_win32", "VK_NV_external_memory"),
463         std::make_tuple(1, 0, "VK_NV_fragment_shader_barycentric", "VK_KHR_get_physical_device_properties2"),
464         std::make_tuple(1, 0, "VK_NV_fragment_shading_rate_enums", "VK_KHR_fragment_shading_rate"),
465         std::make_tuple(1, 1, "VK_NV_fragment_shading_rate_enums", "VK_KHR_fragment_shading_rate"),
466         std::make_tuple(1, 2, "VK_NV_fragment_shading_rate_enums", "VK_KHR_fragment_shading_rate"),
467         std::make_tuple(1, 3, "VK_NV_fragment_shading_rate_enums", "VK_KHR_fragment_shading_rate"),
468         std::make_tuple(1, 0, "VK_NV_mesh_shader", "VK_KHR_get_physical_device_properties2"),
469         std::make_tuple(1, 0, "VK_NV_ray_tracing", "VK_KHR_get_physical_device_properties2"),
470         std::make_tuple(1, 0, "VK_NV_ray_tracing", "VK_KHR_get_memory_requirements2"),
471         std::make_tuple(1, 0, "VK_NV_ray_tracing_motion_blur", "VK_KHR_ray_tracing_pipeline"),
472         std::make_tuple(1, 1, "VK_NV_ray_tracing_motion_blur", "VK_KHR_ray_tracing_pipeline"),
473         std::make_tuple(1, 2, "VK_NV_ray_tracing_motion_blur", "VK_KHR_ray_tracing_pipeline"),
474         std::make_tuple(1, 3, "VK_NV_ray_tracing_motion_blur", "VK_KHR_ray_tracing_pipeline"),
475         std::make_tuple(1, 0, "VK_NV_scissor_exclusive", "VK_KHR_get_physical_device_properties2"),
476         std::make_tuple(1, 0, "VK_NV_shader_image_footprint", "VK_KHR_get_physical_device_properties2"),
477         std::make_tuple(1, 0, "VK_NV_shading_rate_image", "VK_KHR_get_physical_device_properties2"),
478         std::make_tuple(1, 0, "VK_NV_win32_keyed_mutex", "VK_NV_external_memory_win32"),
479         std::make_tuple(1, 1, "VK_NV_win32_keyed_mutex", "VK_NV_external_memory_win32"),
480         std::make_tuple(1, 2, "VK_NV_win32_keyed_mutex", "VK_NV_external_memory_win32"),
481         std::make_tuple(1, 3, "VK_NV_win32_keyed_mutex", "VK_NV_external_memory_win32"),
482         std::make_tuple(1, 0, "VK_QCOM_fragment_density_map_offset", "VK_KHR_get_physical_device_properties2"),
483         std::make_tuple(1, 0, "VK_QCOM_fragment_density_map_offset", "VK_EXT_fragment_density_map"),
484         std::make_tuple(1, 1, "VK_QCOM_fragment_density_map_offset", "VK_EXT_fragment_density_map"),
485         std::make_tuple(1, 2, "VK_QCOM_fragment_density_map_offset", "VK_EXT_fragment_density_map"),
486         std::make_tuple(1, 3, "VK_QCOM_fragment_density_map_offset", "VK_EXT_fragment_density_map"),
487         std::make_tuple(1, 0, "VK_QCOM_render_pass_transform", "VK_KHR_swapchain"),
488         std::make_tuple(1, 0, "VK_QCOM_render_pass_transform", "VK_KHR_surface"),
489         std::make_tuple(1, 1, "VK_QCOM_render_pass_transform", "VK_KHR_swapchain"),
490         std::make_tuple(1, 1, "VK_QCOM_render_pass_transform", "VK_KHR_surface"),
491         std::make_tuple(1, 2, "VK_QCOM_render_pass_transform", "VK_KHR_swapchain"),
492         std::make_tuple(1, 2, "VK_QCOM_render_pass_transform", "VK_KHR_surface"),
493         std::make_tuple(1, 3, "VK_QCOM_render_pass_transform", "VK_KHR_swapchain"),
494         std::make_tuple(1, 3, "VK_QCOM_render_pass_transform", "VK_KHR_surface"),
495         std::make_tuple(1, 0, "VK_QCOM_rotated_copy_commands", "VK_KHR_swapchain"),
496         std::make_tuple(1, 0, "VK_QCOM_rotated_copy_commands", "VK_KHR_copy_commands2"),
497         std::make_tuple(1, 1, "VK_QCOM_rotated_copy_commands", "VK_KHR_swapchain"),
498         std::make_tuple(1, 1, "VK_QCOM_rotated_copy_commands", "VK_KHR_copy_commands2"),
499         std::make_tuple(1, 2, "VK_QCOM_rotated_copy_commands", "VK_KHR_swapchain"),
500         std::make_tuple(1, 2, "VK_QCOM_rotated_copy_commands", "VK_KHR_copy_commands2"),
501         std::make_tuple(1, 3, "VK_QCOM_rotated_copy_commands", "VK_KHR_swapchain"),
502         std::make_tuple(1, 0, "VK_VALVE_mutable_descriptor_type", "VK_KHR_maintenance3"),
503 };
504 static const std::tuple<deUint32, deUint32, deUint32>   releasedApiVersions[]   =
505 {
506         std::make_tuple(4206592, 1, 3),
507         std::make_tuple(4202496, 1, 2),
508         std::make_tuple(4198400, 1, 1),
509         std::make_tuple(4194304, 1, 0),
510 };
511 static const std::tuple<deUint32, deUint32, const char*>        extensionRequiredCoreVersion[]   =
512 {
513         std::make_tuple(1, 0, "VK_AMD_buffer_marker"),
514         std::make_tuple(1, 0, "VK_AMD_device_coherent_memory"),
515         std::make_tuple(1, 0, "VK_AMD_display_native_hdr"),
516         std::make_tuple(1, 0, "VK_AMD_draw_indirect_count"),
517         std::make_tuple(1, 0, "VK_AMD_gcn_shader"),
518         std::make_tuple(1, 0, "VK_AMD_gpu_shader_half_float"),
519         std::make_tuple(1, 0, "VK_AMD_gpu_shader_int16"),
520         std::make_tuple(1, 0, "VK_AMD_memory_overallocation_behavior"),
521         std::make_tuple(1, 0, "VK_AMD_mixed_attachment_samples"),
522         std::make_tuple(1, 0, "VK_AMD_negative_viewport_height"),
523         std::make_tuple(1, 0, "VK_AMD_pipeline_compiler_control"),
524         std::make_tuple(1, 0, "VK_AMD_rasterization_order"),
525         std::make_tuple(1, 0, "VK_AMD_shader_ballot"),
526         std::make_tuple(1, 0, "VK_AMD_shader_core_properties"),
527         std::make_tuple(1, 0, "VK_AMD_shader_core_properties2"),
528         std::make_tuple(1, 0, "VK_AMD_shader_explicit_vertex_parameter"),
529         std::make_tuple(1, 0, "VK_AMD_shader_fragment_mask"),
530         std::make_tuple(1, 0, "VK_AMD_shader_image_load_store_lod"),
531         std::make_tuple(1, 0, "VK_AMD_shader_info"),
532         std::make_tuple(1, 0, "VK_AMD_shader_trinary_minmax"),
533         std::make_tuple(1, 0, "VK_AMD_texture_gather_bias_lod"),
534         std::make_tuple(1, 0, "VK_ANDROID_external_memory_android_hardware_buffer"),
535         std::make_tuple(1, 0, "VK_ARM_rasterization_order_attachment_access"),
536         std::make_tuple(1, 0, "VK_EXT_4444_formats"),
537         std::make_tuple(1, 0, "VK_EXT_acquire_drm_display"),
538         std::make_tuple(1, 0, "VK_EXT_acquire_xlib_display"),
539         std::make_tuple(1, 0, "VK_EXT_astc_decode_mode"),
540         std::make_tuple(1, 0, "VK_EXT_blend_operation_advanced"),
541         std::make_tuple(1, 0, "VK_EXT_border_color_swizzle"),
542         std::make_tuple(1, 0, "VK_EXT_buffer_device_address"),
543         std::make_tuple(1, 0, "VK_EXT_calibrated_timestamps"),
544         std::make_tuple(1, 0, "VK_EXT_color_write_enable"),
545         std::make_tuple(1, 0, "VK_EXT_conditional_rendering"),
546         std::make_tuple(1, 0, "VK_EXT_conservative_rasterization"),
547         std::make_tuple(1, 0, "VK_EXT_custom_border_color"),
548         std::make_tuple(1, 0, "VK_EXT_debug_marker"),
549         std::make_tuple(1, 0, "VK_EXT_debug_report"),
550         std::make_tuple(1, 0, "VK_EXT_debug_utils"),
551         std::make_tuple(1, 0, "VK_EXT_depth_clip_control"),
552         std::make_tuple(1, 0, "VK_EXT_depth_clip_enable"),
553         std::make_tuple(1, 0, "VK_EXT_depth_range_unrestricted"),
554         std::make_tuple(1, 0, "VK_EXT_descriptor_indexing"),
555         std::make_tuple(1, 0, "VK_EXT_device_memory_report"),
556         std::make_tuple(1, 0, "VK_EXT_direct_mode_display"),
557         std::make_tuple(1, 0, "VK_EXT_directfb_surface"),
558         std::make_tuple(1, 0, "VK_EXT_discard_rectangles"),
559         std::make_tuple(1, 0, "VK_EXT_display_control"),
560         std::make_tuple(1, 0, "VK_EXT_display_surface_counter"),
561         std::make_tuple(1, 0, "VK_EXT_extended_dynamic_state"),
562         std::make_tuple(1, 0, "VK_EXT_extended_dynamic_state2"),
563         std::make_tuple(1, 0, "VK_EXT_external_memory_dma_buf"),
564         std::make_tuple(1, 0, "VK_EXT_external_memory_host"),
565         std::make_tuple(1, 0, "VK_EXT_filter_cubic"),
566         std::make_tuple(1, 0, "VK_EXT_fragment_density_map"),
567         std::make_tuple(1, 0, "VK_EXT_fragment_density_map2"),
568         std::make_tuple(1, 0, "VK_EXT_fragment_shader_interlock"),
569         std::make_tuple(1, 0, "VK_EXT_full_screen_exclusive"),
570         std::make_tuple(1, 0, "VK_EXT_global_priority"),
571         std::make_tuple(1, 0, "VK_EXT_global_priority_query"),
572         std::make_tuple(1, 0, "VK_EXT_graphics_pipeline_library"),
573         std::make_tuple(1, 0, "VK_EXT_hdr_metadata"),
574         std::make_tuple(1, 0, "VK_EXT_headless_surface"),
575         std::make_tuple(1, 0, "VK_EXT_host_query_reset"),
576         std::make_tuple(1, 0, "VK_EXT_image_2d_view_of_3d"),
577         std::make_tuple(1, 0, "VK_EXT_image_compression_control"),
578         std::make_tuple(1, 0, "VK_EXT_image_compression_control_swapchain"),
579         std::make_tuple(1, 0, "VK_EXT_image_drm_format_modifier"),
580         std::make_tuple(1, 0, "VK_EXT_image_robustness"),
581         std::make_tuple(1, 0, "VK_EXT_image_view_min_lod"),
582         std::make_tuple(1, 0, "VK_EXT_index_type_uint8"),
583         std::make_tuple(1, 0, "VK_EXT_inline_uniform_block"),
584         std::make_tuple(1, 0, "VK_EXT_line_rasterization"),
585         std::make_tuple(1, 0, "VK_EXT_load_store_op_none"),
586         std::make_tuple(1, 0, "VK_EXT_memory_budget"),
587         std::make_tuple(1, 0, "VK_EXT_memory_priority"),
588         std::make_tuple(1, 0, "VK_EXT_metal_surface"),
589         std::make_tuple(1, 0, "VK_EXT_multi_draw"),
590         std::make_tuple(1, 0, "VK_EXT_pageable_device_local_memory"),
591         std::make_tuple(1, 0, "VK_EXT_pci_bus_info"),
592         std::make_tuple(1, 0, "VK_EXT_physical_device_drm"),
593         std::make_tuple(1, 0, "VK_EXT_pipeline_creation_cache_control"),
594         std::make_tuple(1, 0, "VK_EXT_pipeline_creation_feedback"),
595         std::make_tuple(1, 0, "VK_EXT_pipeline_properties"),
596         std::make_tuple(1, 0, "VK_EXT_post_depth_coverage"),
597         std::make_tuple(1, 0, "VK_EXT_primitive_topology_list_restart"),
598         std::make_tuple(1, 0, "VK_EXT_primitives_generated_query"),
599         std::make_tuple(1, 0, "VK_EXT_private_data"),
600         std::make_tuple(1, 0, "VK_EXT_provoking_vertex"),
601         std::make_tuple(1, 0, "VK_EXT_queue_family_foreign"),
602         std::make_tuple(1, 0, "VK_EXT_rgba10x6_formats"),
603         std::make_tuple(1, 0, "VK_EXT_robustness2"),
604         std::make_tuple(1, 0, "VK_EXT_sample_locations"),
605         std::make_tuple(1, 0, "VK_EXT_sampler_filter_minmax"),
606         std::make_tuple(1, 0, "VK_EXT_scalar_block_layout"),
607         std::make_tuple(1, 0, "VK_EXT_separate_stencil_usage"),
608         std::make_tuple(1, 0, "VK_EXT_shader_atomic_float"),
609         std::make_tuple(1, 0, "VK_EXT_shader_atomic_float2"),
610         std::make_tuple(1, 0, "VK_EXT_shader_demote_to_helper_invocation"),
611         std::make_tuple(1, 0, "VK_EXT_shader_image_atomic_int64"),
612         std::make_tuple(1, 0, "VK_EXT_shader_module_identifier"),
613         std::make_tuple(1, 0, "VK_EXT_shader_stencil_export"),
614         std::make_tuple(1, 0, "VK_EXT_shader_subgroup_ballot"),
615         std::make_tuple(1, 0, "VK_EXT_shader_subgroup_vote"),
616         std::make_tuple(1, 0, "VK_EXT_shader_viewport_index_layer"),
617         std::make_tuple(1, 1, "VK_EXT_subgroup_size_control"),
618         std::make_tuple(1, 0, "VK_EXT_subpass_merge_feedback"),
619         std::make_tuple(1, 0, "VK_EXT_swapchain_colorspace"),
620         std::make_tuple(1, 0, "VK_EXT_texel_buffer_alignment"),
621         std::make_tuple(1, 0, "VK_EXT_texture_compression_astc_hdr"),
622         std::make_tuple(1, 0, "VK_EXT_tooling_info"),
623         std::make_tuple(1, 0, "VK_EXT_transform_feedback"),
624         std::make_tuple(1, 0, "VK_EXT_validation_cache"),
625         std::make_tuple(1, 0, "VK_EXT_validation_features"),
626         std::make_tuple(1, 0, "VK_EXT_validation_flags"),
627         std::make_tuple(1, 0, "VK_EXT_vertex_attribute_divisor"),
628         std::make_tuple(1, 0, "VK_EXT_vertex_input_dynamic_state"),
629         std::make_tuple(1, 0, "VK_EXT_video_decode_h264"),
630         std::make_tuple(1, 0, "VK_EXT_video_decode_h265"),
631         std::make_tuple(1, 0, "VK_EXT_video_encode_h264"),
632         std::make_tuple(1, 0, "VK_EXT_video_encode_h265"),
633         std::make_tuple(1, 0, "VK_EXT_ycbcr_2plane_444_formats"),
634         std::make_tuple(1, 0, "VK_EXT_ycbcr_image_arrays"),
635         std::make_tuple(1, 0, "VK_FUCHSIA_buffer_collection"),
636         std::make_tuple(1, 0, "VK_FUCHSIA_external_memory"),
637         std::make_tuple(1, 0, "VK_FUCHSIA_external_semaphore"),
638         std::make_tuple(1, 0, "VK_FUCHSIA_imagepipe_surface"),
639         std::make_tuple(1, 0, "VK_GGP_frame_token"),
640         std::make_tuple(1, 0, "VK_GGP_stream_descriptor_surface"),
641         std::make_tuple(1, 0, "VK_GOOGLE_decorate_string"),
642         std::make_tuple(1, 0, "VK_GOOGLE_display_timing"),
643         std::make_tuple(1, 0, "VK_GOOGLE_hlsl_functionality1"),
644         std::make_tuple(1, 0, "VK_GOOGLE_surfaceless_query"),
645         std::make_tuple(1, 0, "VK_GOOGLE_user_type"),
646         std::make_tuple(1, 0, "VK_HUAWEI_invocation_mask"),
647         std::make_tuple(1, 0, "VK_HUAWEI_subpass_shading"),
648         std::make_tuple(1, 0, "VK_IMG_filter_cubic"),
649         std::make_tuple(1, 0, "VK_IMG_format_pvrtc"),
650         std::make_tuple(1, 0, "VK_INTEL_performance_query"),
651         std::make_tuple(1, 0, "VK_INTEL_shader_integer_functions2"),
652         std::make_tuple(1, 0, "VK_KHR_16bit_storage"),
653         std::make_tuple(1, 0, "VK_KHR_8bit_storage"),
654         std::make_tuple(1, 1, "VK_KHR_acceleration_structure"),
655         std::make_tuple(1, 0, "VK_KHR_android_surface"),
656         std::make_tuple(1, 0, "VK_KHR_bind_memory2"),
657         std::make_tuple(1, 0, "VK_KHR_buffer_device_address"),
658         std::make_tuple(1, 0, "VK_KHR_copy_commands2"),
659         std::make_tuple(1, 0, "VK_KHR_create_renderpass2"),
660         std::make_tuple(1, 0, "VK_KHR_dedicated_allocation"),
661         std::make_tuple(1, 0, "VK_KHR_deferred_host_operations"),
662         std::make_tuple(1, 0, "VK_KHR_depth_stencil_resolve"),
663         std::make_tuple(1, 0, "VK_KHR_descriptor_update_template"),
664         std::make_tuple(1, 0, "VK_KHR_device_group"),
665         std::make_tuple(1, 0, "VK_KHR_device_group_creation"),
666         std::make_tuple(1, 0, "VK_KHR_display"),
667         std::make_tuple(1, 0, "VK_KHR_display_swapchain"),
668         std::make_tuple(1, 0, "VK_KHR_draw_indirect_count"),
669         std::make_tuple(1, 0, "VK_KHR_driver_properties"),
670         std::make_tuple(1, 0, "VK_KHR_dynamic_rendering"),
671         std::make_tuple(1, 0, "VK_KHR_external_fence"),
672         std::make_tuple(1, 0, "VK_KHR_external_fence_capabilities"),
673         std::make_tuple(1, 0, "VK_KHR_external_fence_fd"),
674         std::make_tuple(1, 0, "VK_KHR_external_fence_win32"),
675         std::make_tuple(1, 0, "VK_KHR_external_memory"),
676         std::make_tuple(1, 0, "VK_KHR_external_memory_capabilities"),
677         std::make_tuple(1, 0, "VK_KHR_external_memory_fd"),
678         std::make_tuple(1, 0, "VK_KHR_external_memory_win32"),
679         std::make_tuple(1, 0, "VK_KHR_external_semaphore"),
680         std::make_tuple(1, 0, "VK_KHR_external_semaphore_capabilities"),
681         std::make_tuple(1, 0, "VK_KHR_external_semaphore_fd"),
682         std::make_tuple(1, 0, "VK_KHR_external_semaphore_win32"),
683         std::make_tuple(1, 0, "VK_KHR_format_feature_flags2"),
684         std::make_tuple(1, 0, "VK_KHR_fragment_shading_rate"),
685         std::make_tuple(1, 0, "VK_KHR_get_display_properties2"),
686         std::make_tuple(1, 0, "VK_KHR_get_memory_requirements2"),
687         std::make_tuple(1, 0, "VK_KHR_get_physical_device_properties2"),
688         std::make_tuple(1, 0, "VK_KHR_get_surface_capabilities2"),
689         std::make_tuple(1, 0, "VK_KHR_global_priority"),
690         std::make_tuple(1, 0, "VK_KHR_image_format_list"),
691         std::make_tuple(1, 0, "VK_KHR_imageless_framebuffer"),
692         std::make_tuple(1, 0, "VK_KHR_incremental_present"),
693         std::make_tuple(1, 0, "VK_KHR_maintenance1"),
694         std::make_tuple(1, 0, "VK_KHR_maintenance2"),
695         std::make_tuple(1, 0, "VK_KHR_maintenance3"),
696         std::make_tuple(1, 1, "VK_KHR_maintenance4"),
697         std::make_tuple(1, 0, "VK_KHR_multiview"),
698         std::make_tuple(1, 0, "VK_KHR_performance_query"),
699         std::make_tuple(1, 0, "VK_KHR_pipeline_executable_properties"),
700         std::make_tuple(1, 0, "VK_KHR_pipeline_library"),
701         std::make_tuple(1, 0, "VK_KHR_portability_enumeration"),
702         std::make_tuple(1, 0, "VK_KHR_portability_subset"),
703         std::make_tuple(1, 0, "VK_KHR_present_id"),
704         std::make_tuple(1, 0, "VK_KHR_present_wait"),
705         std::make_tuple(1, 0, "VK_KHR_push_descriptor"),
706         std::make_tuple(1, 1, "VK_KHR_ray_query"),
707         std::make_tuple(1, 1, "VK_KHR_ray_tracing_maintenance1"),
708         std::make_tuple(1, 1, "VK_KHR_ray_tracing_pipeline"),
709         std::make_tuple(1, 0, "VK_KHR_relaxed_block_layout"),
710         std::make_tuple(1, 0, "VK_KHR_sampler_mirror_clamp_to_edge"),
711         std::make_tuple(1, 0, "VK_KHR_sampler_ycbcr_conversion"),
712         std::make_tuple(1, 0, "VK_KHR_separate_depth_stencil_layouts"),
713         std::make_tuple(1, 0, "VK_KHR_shader_atomic_int64"),
714         std::make_tuple(1, 0, "VK_KHR_shader_clock"),
715         std::make_tuple(1, 0, "VK_KHR_shader_draw_parameters"),
716         std::make_tuple(1, 0, "VK_KHR_shader_float16_int8"),
717         std::make_tuple(1, 0, "VK_KHR_shader_float_controls"),
718         std::make_tuple(1, 0, "VK_KHR_shader_integer_dot_product"),
719         std::make_tuple(1, 0, "VK_KHR_shader_non_semantic_info"),
720         std::make_tuple(1, 1, "VK_KHR_shader_subgroup_extended_types"),
721         std::make_tuple(1, 1, "VK_KHR_shader_subgroup_uniform_control_flow"),
722         std::make_tuple(1, 0, "VK_KHR_shader_terminate_invocation"),
723         std::make_tuple(1, 0, "VK_KHR_shared_presentable_image"),
724         std::make_tuple(1, 1, "VK_KHR_spirv_1_4"),
725         std::make_tuple(1, 0, "VK_KHR_storage_buffer_storage_class"),
726         std::make_tuple(1, 0, "VK_KHR_surface"),
727         std::make_tuple(1, 1, "VK_KHR_surface_protected_capabilities"),
728         std::make_tuple(1, 0, "VK_KHR_swapchain"),
729         std::make_tuple(1, 0, "VK_KHR_swapchain_mutable_format"),
730         std::make_tuple(1, 0, "VK_KHR_synchronization2"),
731         std::make_tuple(1, 0, "VK_KHR_timeline_semaphore"),
732         std::make_tuple(1, 0, "VK_KHR_uniform_buffer_standard_layout"),
733         std::make_tuple(1, 0, "VK_KHR_variable_pointers"),
734         std::make_tuple(1, 0, "VK_KHR_video_decode_queue"),
735         std::make_tuple(1, 0, "VK_KHR_video_encode_queue"),
736         std::make_tuple(1, 0, "VK_KHR_video_queue"),
737         std::make_tuple(1, 0, "VK_KHR_vulkan_memory_model"),
738         std::make_tuple(1, 0, "VK_KHR_wayland_surface"),
739         std::make_tuple(1, 0, "VK_KHR_win32_keyed_mutex"),
740         std::make_tuple(1, 0, "VK_KHR_win32_surface"),
741         std::make_tuple(1, 0, "VK_KHR_workgroup_memory_explicit_layout"),
742         std::make_tuple(1, 0, "VK_KHR_xcb_surface"),
743         std::make_tuple(1, 0, "VK_KHR_xlib_surface"),
744         std::make_tuple(1, 0, "VK_KHR_zero_initialize_workgroup_memory"),
745         std::make_tuple(1, 0, "VK_MVK_ios_surface"),
746         std::make_tuple(1, 0, "VK_MVK_macos_surface"),
747         std::make_tuple(1, 0, "VK_NN_vi_surface"),
748         std::make_tuple(1, 0, "VK_NVX_binary_import"),
749         std::make_tuple(1, 0, "VK_NVX_image_view_handle"),
750         std::make_tuple(1, 0, "VK_NVX_multiview_per_view_attributes"),
751         std::make_tuple(1, 0, "VK_NV_acquire_winrt_display"),
752         std::make_tuple(1, 0, "VK_NV_clip_space_w_scaling"),
753         std::make_tuple(1, 0, "VK_NV_compute_shader_derivatives"),
754         std::make_tuple(1, 0, "VK_NV_cooperative_matrix"),
755         std::make_tuple(1, 0, "VK_NV_corner_sampled_image"),
756         std::make_tuple(1, 0, "VK_NV_coverage_reduction_mode"),
757         std::make_tuple(1, 0, "VK_NV_dedicated_allocation"),
758         std::make_tuple(1, 0, "VK_NV_dedicated_allocation_image_aliasing"),
759         std::make_tuple(1, 0, "VK_NV_device_diagnostic_checkpoints"),
760         std::make_tuple(1, 0, "VK_NV_device_diagnostics_config"),
761         std::make_tuple(1, 1, "VK_NV_device_generated_commands"),
762         std::make_tuple(1, 0, "VK_NV_external_memory"),
763         std::make_tuple(1, 0, "VK_NV_external_memory_capabilities"),
764         std::make_tuple(1, 0, "VK_NV_external_memory_rdma"),
765         std::make_tuple(1, 0, "VK_NV_external_memory_win32"),
766         std::make_tuple(1, 0, "VK_NV_fill_rectangle"),
767         std::make_tuple(1, 0, "VK_NV_fragment_coverage_to_color"),
768         std::make_tuple(1, 0, "VK_NV_fragment_shader_barycentric"),
769         std::make_tuple(1, 0, "VK_NV_fragment_shading_rate_enums"),
770         std::make_tuple(1, 0, "VK_NV_framebuffer_mixed_samples"),
771         std::make_tuple(1, 0, "VK_NV_geometry_shader_passthrough"),
772         std::make_tuple(1, 0, "VK_NV_glsl_shader"),
773         std::make_tuple(1, 0, "VK_NV_inherited_viewport_scissor"),
774         std::make_tuple(1, 0, "VK_NV_linear_color_attachment"),
775         std::make_tuple(1, 0, "VK_NV_mesh_shader"),
776         std::make_tuple(1, 0, "VK_NV_ray_tracing"),
777         std::make_tuple(1, 0, "VK_NV_ray_tracing_motion_blur"),
778         std::make_tuple(1, 0, "VK_NV_representative_fragment_test"),
779         std::make_tuple(1, 0, "VK_NV_sample_mask_override_coverage"),
780         std::make_tuple(1, 0, "VK_NV_scissor_exclusive"),
781         std::make_tuple(1, 0, "VK_NV_shader_image_footprint"),
782         std::make_tuple(1, 1, "VK_NV_shader_sm_builtins"),
783         std::make_tuple(1, 1, "VK_NV_shader_subgroup_partitioned"),
784         std::make_tuple(1, 0, "VK_NV_shading_rate_image"),
785         std::make_tuple(1, 0, "VK_NV_viewport_array2"),
786         std::make_tuple(1, 0, "VK_NV_viewport_swizzle"),
787         std::make_tuple(1, 0, "VK_NV_win32_keyed_mutex"),
788         std::make_tuple(1, 0, "VK_QCOM_fragment_density_map_offset"),
789         std::make_tuple(1, 0, "VK_QCOM_render_pass_shader_resolve"),
790         std::make_tuple(1, 0, "VK_QCOM_render_pass_store_ops"),
791         std::make_tuple(1, 0, "VK_QCOM_render_pass_transform"),
792         std::make_tuple(1, 0, "VK_QCOM_rotated_copy_commands"),
793         std::make_tuple(1, 0, "VK_QNX_screen_surface"),
794         std::make_tuple(1, 0, "VK_VALVE_descriptor_set_host_mapping"),
795         std::make_tuple(1, 0, "VK_VALVE_mutable_descriptor_type"),
796 };