• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (C) 2018 The Android Open Source Project
2 // Copyright (C) 2018 Google Inc.
3 //
4 // Licensed under the Apache License, Version 2.0 (the "License");
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
7 //
8 // http://www.apache.org/licenses/LICENSE-2.0
9 //
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
15 
16 // Autogenerated module goldfish_vk_dispatch
17 // (impl) generated by protocols/vulkan/xml/genvk.py -registry protocols/vulkan/xml/vk.xml cereal -o stream-servers/vulkan/cereal
18 // Please do not modify directly;
19 // re-run generate-vulkan-sources.sh,
20 // or directly from Python by defining:
21 // VULKAN_REGISTRY_XML_DIR : Directory containing genvk.py and vk.xml
22 // CEREAL_OUTPUT_DIR: Where to put the generated sources.
23 // python3 $VULKAN_REGISTRY_XML_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $CEREAL_OUTPUT_DIR
24 
25 #include "goldfish_vk_dispatch.h"
26 
27 
28 #include <stdio.h>
29 #include <stdlib.h>
30 #include <string.h>
31 
32 
33 namespace goldfish_vk {
34 
35 #ifdef VK_VERSION_1_0
36 #endif
37 #ifdef VK_VERSION_1_1
38 #endif
39 #ifdef VK_VERSION_1_2
40 #endif
41 #ifdef VK_KHR_surface
42 #endif
43 #ifdef VK_KHR_swapchain
44 #endif
45 #ifdef VK_KHR_display
46 #endif
47 #ifdef VK_KHR_display_swapchain
48 #endif
49 #ifdef VK_KHR_xlib_surface
50 #endif
51 #ifdef VK_KHR_xcb_surface
52 #endif
53 #ifdef VK_KHR_wayland_surface
54 #endif
55 #ifdef VK_KHR_android_surface
56 #endif
57 #ifdef VK_KHR_win32_surface
58 #endif
59 #ifdef VK_KHR_sampler_mirror_clamp_to_edge
60 #endif
61 #ifdef VK_KHR_multiview
62 #endif
63 #ifdef VK_KHR_get_physical_device_properties2
64 #endif
65 #ifdef VK_KHR_device_group
66 #endif
67 #ifdef VK_KHR_shader_draw_parameters
68 #endif
69 #ifdef VK_KHR_maintenance1
70 #endif
71 #ifdef VK_KHR_device_group_creation
72 #endif
73 #ifdef VK_KHR_external_memory_capabilities
74 #endif
75 #ifdef VK_KHR_external_memory
76 #endif
77 #ifdef VK_KHR_external_memory_win32
78 #endif
79 #ifdef VK_KHR_external_memory_fd
80 #endif
81 #ifdef VK_KHR_win32_keyed_mutex
82 #endif
83 #ifdef VK_KHR_external_semaphore_capabilities
84 #endif
85 #ifdef VK_KHR_external_semaphore
86 #endif
87 #ifdef VK_KHR_external_semaphore_win32
88 #endif
89 #ifdef VK_KHR_external_semaphore_fd
90 #endif
91 #ifdef VK_KHR_push_descriptor
92 #endif
93 #ifdef VK_KHR_shader_float16_int8
94 #endif
95 #ifdef VK_KHR_16bit_storage
96 #endif
97 #ifdef VK_KHR_incremental_present
98 #endif
99 #ifdef VK_KHR_descriptor_update_template
100 #endif
101 #ifdef VK_KHR_imageless_framebuffer
102 #endif
103 #ifdef VK_KHR_create_renderpass2
104 #endif
105 #ifdef VK_KHR_shared_presentable_image
106 #endif
107 #ifdef VK_KHR_external_fence_capabilities
108 #endif
109 #ifdef VK_KHR_external_fence
110 #endif
111 #ifdef VK_KHR_external_fence_win32
112 #endif
113 #ifdef VK_KHR_external_fence_fd
114 #endif
115 #ifdef VK_KHR_performance_query
116 #endif
117 #ifdef VK_KHR_maintenance2
118 #endif
119 #ifdef VK_KHR_get_surface_capabilities2
120 #endif
121 #ifdef VK_KHR_variable_pointers
122 #endif
123 #ifdef VK_KHR_get_display_properties2
124 #endif
125 #ifdef VK_KHR_dedicated_allocation
126 #endif
127 #ifdef VK_KHR_storage_buffer_storage_class
128 #endif
129 #ifdef VK_KHR_relaxed_block_layout
130 #endif
131 #ifdef VK_KHR_get_memory_requirements2
132 #endif
133 #ifdef VK_KHR_image_format_list
134 #endif
135 #ifdef VK_KHR_sampler_ycbcr_conversion
136 #endif
137 #ifdef VK_KHR_bind_memory2
138 #endif
139 #ifdef VK_KHR_portability_subset
140 #endif
141 #ifdef VK_KHR_maintenance3
142 #endif
143 #ifdef VK_KHR_draw_indirect_count
144 #endif
145 #ifdef VK_KHR_shader_subgroup_extended_types
146 #endif
147 #ifdef VK_KHR_8bit_storage
148 #endif
149 #ifdef VK_KHR_shader_atomic_int64
150 #endif
151 #ifdef VK_KHR_shader_clock
152 #endif
153 #ifdef VK_KHR_driver_properties
154 #endif
155 #ifdef VK_KHR_shader_float_controls
156 #endif
157 #ifdef VK_KHR_depth_stencil_resolve
158 #endif
159 #ifdef VK_KHR_swapchain_mutable_format
160 #endif
161 #ifdef VK_KHR_timeline_semaphore
162 #endif
163 #ifdef VK_KHR_vulkan_memory_model
164 #endif
165 #ifdef VK_KHR_shader_terminate_invocation
166 #endif
167 #ifdef VK_KHR_fragment_shading_rate
168 #endif
169 #ifdef VK_KHR_spirv_1_4
170 #endif
171 #ifdef VK_KHR_surface_protected_capabilities
172 #endif
173 #ifdef VK_KHR_separate_depth_stencil_layouts
174 #endif
175 #ifdef VK_KHR_uniform_buffer_standard_layout
176 #endif
177 #ifdef VK_KHR_buffer_device_address
178 #endif
179 #ifdef VK_KHR_deferred_host_operations
180 #endif
181 #ifdef VK_KHR_pipeline_executable_properties
182 #endif
183 #ifdef VK_KHR_pipeline_library
184 #endif
185 #ifdef VK_KHR_shader_non_semantic_info
186 #endif
187 #ifdef VK_KHR_copy_commands2
188 #endif
189 #ifdef VK_ANDROID_native_buffer
190 #endif
191 #ifdef VK_EXT_debug_report
192 #endif
193 #ifdef VK_NV_glsl_shader
194 #endif
195 #ifdef VK_EXT_depth_range_unrestricted
196 #endif
197 #ifdef VK_IMG_filter_cubic
198 #endif
199 #ifdef VK_AMD_rasterization_order
200 #endif
201 #ifdef VK_AMD_shader_trinary_minmax
202 #endif
203 #ifdef VK_AMD_shader_explicit_vertex_parameter
204 #endif
205 #ifdef VK_EXT_debug_marker
206 #endif
207 #ifdef VK_AMD_gcn_shader
208 #endif
209 #ifdef VK_NV_dedicated_allocation
210 #endif
211 #ifdef VK_EXT_transform_feedback
212 #endif
213 #ifdef VK_NVX_image_view_handle
214 #endif
215 #ifdef VK_AMD_draw_indirect_count
216 #endif
217 #ifdef VK_AMD_negative_viewport_height
218 #endif
219 #ifdef VK_AMD_gpu_shader_half_float
220 #endif
221 #ifdef VK_AMD_shader_ballot
222 #endif
223 #ifdef VK_AMD_texture_gather_bias_lod
224 #endif
225 #ifdef VK_AMD_shader_info
226 #endif
227 #ifdef VK_AMD_shader_image_load_store_lod
228 #endif
229 #ifdef VK_GGP_stream_descriptor_surface
230 #endif
231 #ifdef VK_NV_corner_sampled_image
232 #endif
233 #ifdef VK_IMG_format_pvrtc
234 #endif
235 #ifdef VK_NV_external_memory_capabilities
236 #endif
237 #ifdef VK_NV_external_memory
238 #endif
239 #ifdef VK_NV_external_memory_win32
240 #endif
241 #ifdef VK_NV_win32_keyed_mutex
242 #endif
243 #ifdef VK_EXT_validation_flags
244 #endif
245 #ifdef VK_NN_vi_surface
246 #endif
247 #ifdef VK_EXT_shader_subgroup_ballot
248 #endif
249 #ifdef VK_EXT_shader_subgroup_vote
250 #endif
251 #ifdef VK_EXT_texture_compression_astc_hdr
252 #endif
253 #ifdef VK_EXT_astc_decode_mode
254 #endif
255 #ifdef VK_EXT_conditional_rendering
256 #endif
257 #ifdef VK_NV_clip_space_w_scaling
258 #endif
259 #ifdef VK_EXT_direct_mode_display
260 #endif
261 #ifdef VK_EXT_acquire_xlib_display
262 #endif
263 #ifdef VK_EXT_display_surface_counter
264 #endif
265 #ifdef VK_EXT_display_control
266 #endif
267 #ifdef VK_GOOGLE_display_timing
268 #endif
269 #ifdef VK_NV_sample_mask_override_coverage
270 #endif
271 #ifdef VK_NV_geometry_shader_passthrough
272 #endif
273 #ifdef VK_NV_viewport_array2
274 #endif
275 #ifdef VK_NVX_multiview_per_view_attributes
276 #endif
277 #ifdef VK_NV_viewport_swizzle
278 #endif
279 #ifdef VK_EXT_discard_rectangles
280 #endif
281 #ifdef VK_EXT_conservative_rasterization
282 #endif
283 #ifdef VK_EXT_depth_clip_enable
284 #endif
285 #ifdef VK_EXT_swapchain_colorspace
286 #endif
287 #ifdef VK_EXT_hdr_metadata
288 #endif
289 #ifdef VK_MVK_ios_surface
290 #endif
291 #ifdef VK_MVK_macos_surface
292 #endif
293 #ifdef VK_MVK_moltenvk
294 #endif
295 #ifdef VK_EXT_external_memory_dma_buf
296 #endif
297 #ifdef VK_EXT_queue_family_foreign
298 #endif
299 #ifdef VK_EXT_debug_utils
300 #endif
301 #ifdef VK_ANDROID_external_memory_android_hardware_buffer
302 #endif
303 #ifdef VK_EXT_sampler_filter_minmax
304 #endif
305 #ifdef VK_AMD_gpu_shader_int16
306 #endif
307 #ifdef VK_AMD_mixed_attachment_samples
308 #endif
309 #ifdef VK_AMD_shader_fragment_mask
310 #endif
311 #ifdef VK_EXT_inline_uniform_block
312 #endif
313 #ifdef VK_EXT_shader_stencil_export
314 #endif
315 #ifdef VK_EXT_sample_locations
316 #endif
317 #ifdef VK_EXT_blend_operation_advanced
318 #endif
319 #ifdef VK_NV_fragment_coverage_to_color
320 #endif
321 #ifdef VK_NV_framebuffer_mixed_samples
322 #endif
323 #ifdef VK_NV_fill_rectangle
324 #endif
325 #ifdef VK_NV_shader_sm_builtins
326 #endif
327 #ifdef VK_EXT_post_depth_coverage
328 #endif
329 #ifdef VK_EXT_image_drm_format_modifier
330 #endif
331 #ifdef VK_EXT_validation_cache
332 #endif
333 #ifdef VK_EXT_descriptor_indexing
334 #endif
335 #ifdef VK_EXT_shader_viewport_index_layer
336 #endif
337 #ifdef VK_NV_shading_rate_image
338 #endif
339 #ifdef VK_NV_ray_tracing
340 #endif
341 #ifdef VK_NV_representative_fragment_test
342 #endif
343 #ifdef VK_EXT_filter_cubic
344 #endif
345 #ifdef VK_QCOM_render_pass_shader_resolve
346 #endif
347 #ifdef VK_EXT_global_priority
348 #endif
349 #ifdef VK_EXT_external_memory_host
350 #endif
351 #ifdef VK_AMD_buffer_marker
352 #endif
353 #ifdef VK_AMD_pipeline_compiler_control
354 #endif
355 #ifdef VK_EXT_calibrated_timestamps
356 #endif
357 #ifdef VK_AMD_shader_core_properties
358 #endif
359 #ifdef VK_AMD_memory_overallocation_behavior
360 #endif
361 #ifdef VK_EXT_vertex_attribute_divisor
362 #endif
363 #ifdef VK_GGP_frame_token
364 #endif
365 #ifdef VK_EXT_pipeline_creation_feedback
366 #endif
367 #ifdef VK_NV_shader_subgroup_partitioned
368 #endif
369 #ifdef VK_NV_compute_shader_derivatives
370 #endif
371 #ifdef VK_NV_mesh_shader
372 #endif
373 #ifdef VK_NV_fragment_shader_barycentric
374 #endif
375 #ifdef VK_NV_shader_image_footprint
376 #endif
377 #ifdef VK_NV_scissor_exclusive
378 #endif
379 #ifdef VK_NV_device_diagnostic_checkpoints
380 #endif
381 #ifdef VK_INTEL_shader_integer_functions2
382 #endif
383 #ifdef VK_INTEL_performance_query
384 #endif
385 #ifdef VK_EXT_pci_bus_info
386 #endif
387 #ifdef VK_AMD_display_native_hdr
388 #endif
389 #ifdef VK_FUCHSIA_imagepipe_surface
390 #endif
391 #ifdef VK_EXT_metal_surface
392 #endif
393 #ifdef VK_EXT_fragment_density_map
394 #endif
395 #ifdef VK_EXT_scalar_block_layout
396 #endif
397 #ifdef VK_GOOGLE_hlsl_functionality1
398 #endif
399 #ifdef VK_GOOGLE_decorate_string
400 #endif
401 #ifdef VK_EXT_subgroup_size_control
402 #endif
403 #ifdef VK_AMD_shader_core_properties2
404 #endif
405 #ifdef VK_AMD_device_coherent_memory
406 #endif
407 #ifdef VK_EXT_shader_image_atomic_int64
408 #endif
409 #ifdef VK_EXT_memory_budget
410 #endif
411 #ifdef VK_EXT_memory_priority
412 #endif
413 #ifdef VK_NV_dedicated_allocation_image_aliasing
414 #endif
415 #ifdef VK_EXT_buffer_device_address
416 #endif
417 #ifdef VK_EXT_tooling_info
418 #endif
419 #ifdef VK_EXT_separate_stencil_usage
420 #endif
421 #ifdef VK_EXT_validation_features
422 #endif
423 #ifdef VK_NV_cooperative_matrix
424 #endif
425 #ifdef VK_NV_coverage_reduction_mode
426 #endif
427 #ifdef VK_EXT_fragment_shader_interlock
428 #endif
429 #ifdef VK_EXT_ycbcr_image_arrays
430 #endif
431 #ifdef VK_EXT_full_screen_exclusive
432 #endif
433 #ifdef VK_EXT_headless_surface
434 #endif
435 #ifdef VK_EXT_line_rasterization
436 #endif
437 #ifdef VK_EXT_shader_atomic_float
438 #endif
439 #ifdef VK_EXT_host_query_reset
440 #endif
441 #ifdef VK_EXT_index_type_uint8
442 #endif
443 #ifdef VK_EXT_extended_dynamic_state
444 #endif
445 #ifdef VK_EXT_shader_demote_to_helper_invocation
446 #endif
447 #ifdef VK_NV_device_generated_commands
448 #endif
449 #ifdef VK_EXT_texel_buffer_alignment
450 #endif
451 #ifdef VK_QCOM_render_pass_transform
452 #endif
453 #ifdef VK_EXT_device_memory_report
454 #endif
455 #ifdef VK_EXT_robustness2
456 #endif
457 #ifdef VK_EXT_custom_border_color
458 #endif
459 #ifdef VK_GOOGLE_user_type
460 #endif
461 #ifdef VK_EXT_private_data
462 #endif
463 #ifdef VK_EXT_pipeline_creation_cache_control
464 #endif
465 #ifdef VK_NV_device_diagnostics_config
466 #endif
467 #ifdef VK_QCOM_render_pass_store_ops
468 #endif
469 #ifdef VK_NV_fragment_shading_rate_enums
470 #endif
471 #ifdef VK_EXT_fragment_density_map2
472 #endif
473 #ifdef VK_QCOM_rotated_copy_commands
474 #endif
475 #ifdef VK_EXT_image_robustness
476 #endif
477 #ifdef VK_EXT_4444_formats
478 #endif
479 #ifdef VK_EXT_directfb_surface
480 #endif
481 #ifdef VK_GOOGLE_gfxstream
482 #endif
483 #ifdef VK_KHR_acceleration_structure
484 #endif
485 #ifdef VK_KHR_ray_tracing_pipeline
486 #endif
487 #ifdef VK_KHR_ray_query
488 #endif
489 
init_vulkan_dispatch_from_system_loader(DlOpenFunc dlOpenFunc,DlSymFunc dlSymFunc,VulkanDispatch * out)490 void init_vulkan_dispatch_from_system_loader(
491     DlOpenFunc dlOpenFunc,
492     DlSymFunc dlSymFunc,
493     VulkanDispatch* out)
494 {
495     memset(out, 0x0, sizeof(VulkanDispatch));
496     void* lib = dlOpenFunc();
497     if (!lib) return;
498 #ifdef VK_VERSION_1_0
499     out->vkDestroyInstance = (PFN_vkDestroyInstance)dlSymFunc(lib, "vkDestroyInstance");
500     out->vkEnumeratePhysicalDevices = (PFN_vkEnumeratePhysicalDevices)dlSymFunc(lib, "vkEnumeratePhysicalDevices");
501     out->vkGetPhysicalDeviceFeatures = (PFN_vkGetPhysicalDeviceFeatures)dlSymFunc(lib, "vkGetPhysicalDeviceFeatures");
502     out->vkGetPhysicalDeviceFormatProperties = (PFN_vkGetPhysicalDeviceFormatProperties)dlSymFunc(lib, "vkGetPhysicalDeviceFormatProperties");
503     out->vkGetPhysicalDeviceImageFormatProperties = (PFN_vkGetPhysicalDeviceImageFormatProperties)dlSymFunc(lib, "vkGetPhysicalDeviceImageFormatProperties");
504     out->vkGetPhysicalDeviceProperties = (PFN_vkGetPhysicalDeviceProperties)dlSymFunc(lib, "vkGetPhysicalDeviceProperties");
505     out->vkGetPhysicalDeviceQueueFamilyProperties = (PFN_vkGetPhysicalDeviceQueueFamilyProperties)dlSymFunc(lib, "vkGetPhysicalDeviceQueueFamilyProperties");
506     out->vkGetPhysicalDeviceMemoryProperties = (PFN_vkGetPhysicalDeviceMemoryProperties)dlSymFunc(lib, "vkGetPhysicalDeviceMemoryProperties");
507     out->vkGetInstanceProcAddr = (PFN_vkGetInstanceProcAddr)dlSymFunc(lib, "vkGetInstanceProcAddr");
508     out->vkCreateDevice = (PFN_vkCreateDevice)dlSymFunc(lib, "vkCreateDevice");
509     out->vkDestroyDevice = (PFN_vkDestroyDevice)dlSymFunc(lib, "vkDestroyDevice");
510     out->vkEnumerateDeviceExtensionProperties = (PFN_vkEnumerateDeviceExtensionProperties)dlSymFunc(lib, "vkEnumerateDeviceExtensionProperties");
511     out->vkEnumerateDeviceLayerProperties = (PFN_vkEnumerateDeviceLayerProperties)dlSymFunc(lib, "vkEnumerateDeviceLayerProperties");
512     out->vkCreateInstance = (PFN_vkCreateInstance)dlSymFunc(lib, "vkCreateInstance");
513     out->vkEnumerateInstanceExtensionProperties = (PFN_vkEnumerateInstanceExtensionProperties)dlSymFunc(lib, "vkEnumerateInstanceExtensionProperties");
514     out->vkEnumerateInstanceLayerProperties = (PFN_vkEnumerateInstanceLayerProperties)dlSymFunc(lib, "vkEnumerateInstanceLayerProperties");
515     out->vkGetDeviceProcAddr = (PFN_vkGetDeviceProcAddr)dlSymFunc(lib, "vkGetDeviceProcAddr");
516     out->vkGetPhysicalDeviceSparseImageFormatProperties = (PFN_vkGetPhysicalDeviceSparseImageFormatProperties)dlSymFunc(lib, "vkGetPhysicalDeviceSparseImageFormatProperties");
517 #endif
518 #ifdef VK_VERSION_1_1
519     out->vkEnumerateInstanceVersion = (PFN_vkEnumerateInstanceVersion)dlSymFunc(lib, "vkEnumerateInstanceVersion");
520     out->vkEnumeratePhysicalDeviceGroups = (PFN_vkEnumeratePhysicalDeviceGroups)dlSymFunc(lib, "vkEnumeratePhysicalDeviceGroups");
521     out->vkGetPhysicalDeviceFeatures2 = (PFN_vkGetPhysicalDeviceFeatures2)dlSymFunc(lib, "vkGetPhysicalDeviceFeatures2");
522     out->vkGetPhysicalDeviceProperties2 = (PFN_vkGetPhysicalDeviceProperties2)dlSymFunc(lib, "vkGetPhysicalDeviceProperties2");
523     out->vkGetPhysicalDeviceFormatProperties2 = (PFN_vkGetPhysicalDeviceFormatProperties2)dlSymFunc(lib, "vkGetPhysicalDeviceFormatProperties2");
524     out->vkGetPhysicalDeviceImageFormatProperties2 = (PFN_vkGetPhysicalDeviceImageFormatProperties2)dlSymFunc(lib, "vkGetPhysicalDeviceImageFormatProperties2");
525     out->vkGetPhysicalDeviceQueueFamilyProperties2 = (PFN_vkGetPhysicalDeviceQueueFamilyProperties2)dlSymFunc(lib, "vkGetPhysicalDeviceQueueFamilyProperties2");
526     out->vkGetPhysicalDeviceMemoryProperties2 = (PFN_vkGetPhysicalDeviceMemoryProperties2)dlSymFunc(lib, "vkGetPhysicalDeviceMemoryProperties2");
527     out->vkGetPhysicalDeviceSparseImageFormatProperties2 = (PFN_vkGetPhysicalDeviceSparseImageFormatProperties2)dlSymFunc(lib, "vkGetPhysicalDeviceSparseImageFormatProperties2");
528     out->vkGetPhysicalDeviceExternalBufferProperties = (PFN_vkGetPhysicalDeviceExternalBufferProperties)dlSymFunc(lib, "vkGetPhysicalDeviceExternalBufferProperties");
529     out->vkGetPhysicalDeviceExternalFenceProperties = (PFN_vkGetPhysicalDeviceExternalFenceProperties)dlSymFunc(lib, "vkGetPhysicalDeviceExternalFenceProperties");
530     out->vkGetPhysicalDeviceExternalSemaphoreProperties = (PFN_vkGetPhysicalDeviceExternalSemaphoreProperties)dlSymFunc(lib, "vkGetPhysicalDeviceExternalSemaphoreProperties");
531 #endif
532 #ifdef VK_KHR_surface
533     out->vkDestroySurfaceKHR = (PFN_vkDestroySurfaceKHR)dlSymFunc(lib, "vkDestroySurfaceKHR");
534 #endif
535 #ifdef VK_KHR_swapchain
536     out->vkCreateSwapchainKHR = (PFN_vkCreateSwapchainKHR)dlSymFunc(lib, "vkCreateSwapchainKHR");
537     out->vkDestroySwapchainKHR = (PFN_vkDestroySwapchainKHR)dlSymFunc(lib, "vkDestroySwapchainKHR");
538     out->vkGetSwapchainImagesKHR = (PFN_vkGetSwapchainImagesKHR)dlSymFunc(lib, "vkGetSwapchainImagesKHR");
539     out->vkAcquireNextImageKHR = (PFN_vkAcquireNextImageKHR)dlSymFunc(lib, "vkAcquireNextImageKHR");
540     out->vkQueuePresentKHR = (PFN_vkQueuePresentKHR)dlSymFunc(lib, "vkQueuePresentKHR");
541 #endif
542 #ifdef VK_KHR_display
543     out->vkCreateDisplayPlaneSurfaceKHR = (PFN_vkCreateDisplayPlaneSurfaceKHR)dlSymFunc(lib, "vkCreateDisplayPlaneSurfaceKHR");
544 #endif
545 #ifdef VK_KHR_xlib_surface
546     out->vkCreateXlibSurfaceKHR = (PFN_vkCreateXlibSurfaceKHR)dlSymFunc(lib, "vkCreateXlibSurfaceKHR");
547     out->vkGetPhysicalDeviceXlibPresentationSupportKHR = (PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR)dlSymFunc(lib, "vkGetPhysicalDeviceXlibPresentationSupportKHR");
548 #endif
549 #ifdef VK_KHR_xcb_surface
550     out->vkCreateXcbSurfaceKHR = (PFN_vkCreateXcbSurfaceKHR)dlSymFunc(lib, "vkCreateXcbSurfaceKHR");
551     out->vkGetPhysicalDeviceXcbPresentationSupportKHR = (PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR)dlSymFunc(lib, "vkGetPhysicalDeviceXcbPresentationSupportKHR");
552 #endif
553 #ifdef VK_KHR_wayland_surface
554     out->vkCreateWaylandSurfaceKHR = (PFN_vkCreateWaylandSurfaceKHR)dlSymFunc(lib, "vkCreateWaylandSurfaceKHR");
555 #endif
556 #ifdef VK_KHR_android_surface
557     out->vkCreateAndroidSurfaceKHR = (PFN_vkCreateAndroidSurfaceKHR)dlSymFunc(lib, "vkCreateAndroidSurfaceKHR");
558 #endif
559 #ifdef VK_KHR_win32_surface
560     out->vkCreateWin32SurfaceKHR = (PFN_vkCreateWin32SurfaceKHR)dlSymFunc(lib, "vkCreateWin32SurfaceKHR");
561     out->vkGetPhysicalDeviceWin32PresentationSupportKHR = (PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)dlSymFunc(lib, "vkGetPhysicalDeviceWin32PresentationSupportKHR");
562 #endif
563 #ifdef VK_KHR_device_group_creation
564     out->vkEnumeratePhysicalDeviceGroupsKHR = (PFN_vkEnumeratePhysicalDeviceGroupsKHR)dlSymFunc(lib, "vkEnumeratePhysicalDeviceGroupsKHR");
565 #endif
566 #ifdef VK_EXT_debug_report
567     out->vkCreateDebugReportCallbackEXT = (PFN_vkCreateDebugReportCallbackEXT)dlSymFunc(lib, "vkCreateDebugReportCallbackEXT");
568     out->vkDestroyDebugReportCallbackEXT = (PFN_vkDestroyDebugReportCallbackEXT)dlSymFunc(lib, "vkDestroyDebugReportCallbackEXT");
569     out->vkDebugReportMessageEXT = (PFN_vkDebugReportMessageEXT)dlSymFunc(lib, "vkDebugReportMessageEXT");
570 #endif
571 #ifdef VK_GGP_stream_descriptor_surface
572     out->vkCreateStreamDescriptorSurfaceGGP = (PFN_vkCreateStreamDescriptorSurfaceGGP)dlSymFunc(lib, "vkCreateStreamDescriptorSurfaceGGP");
573 #endif
574 #ifdef VK_NN_vi_surface
575     out->vkCreateViSurfaceNN = (PFN_vkCreateViSurfaceNN)dlSymFunc(lib, "vkCreateViSurfaceNN");
576 #endif
577 #ifdef VK_MVK_ios_surface
578     out->vkCreateIOSSurfaceMVK = (PFN_vkCreateIOSSurfaceMVK)dlSymFunc(lib, "vkCreateIOSSurfaceMVK");
579 #endif
580 #ifdef VK_MVK_macos_surface
581     out->vkCreateMacOSSurfaceMVK = (PFN_vkCreateMacOSSurfaceMVK)dlSymFunc(lib, "vkCreateMacOSSurfaceMVK");
582 #endif
583 #ifdef VK_EXT_debug_utils
584     out->vkCreateDebugUtilsMessengerEXT = (PFN_vkCreateDebugUtilsMessengerEXT)dlSymFunc(lib, "vkCreateDebugUtilsMessengerEXT");
585     out->vkDestroyDebugUtilsMessengerEXT = (PFN_vkDestroyDebugUtilsMessengerEXT)dlSymFunc(lib, "vkDestroyDebugUtilsMessengerEXT");
586     out->vkSubmitDebugUtilsMessageEXT = (PFN_vkSubmitDebugUtilsMessageEXT)dlSymFunc(lib, "vkSubmitDebugUtilsMessageEXT");
587 #endif
588 #ifdef VK_FUCHSIA_imagepipe_surface
589     out->vkCreateImagePipeSurfaceFUCHSIA = (PFN_vkCreateImagePipeSurfaceFUCHSIA)dlSymFunc(lib, "vkCreateImagePipeSurfaceFUCHSIA");
590 #endif
591 #ifdef VK_EXT_metal_surface
592     out->vkCreateMetalSurfaceEXT = (PFN_vkCreateMetalSurfaceEXT)dlSymFunc(lib, "vkCreateMetalSurfaceEXT");
593 #endif
594 #ifdef VK_EXT_headless_surface
595     out->vkCreateHeadlessSurfaceEXT = (PFN_vkCreateHeadlessSurfaceEXT)dlSymFunc(lib, "vkCreateHeadlessSurfaceEXT");
596 #endif
597 #ifdef VK_EXT_directfb_surface
598     out->vkCreateDirectFBSurfaceEXT = (PFN_vkCreateDirectFBSurfaceEXT)dlSymFunc(lib, "vkCreateDirectFBSurfaceEXT");
599 #endif
600 #ifdef VK_VERSION_1_0
601     out->vkGetDeviceQueue = (PFN_vkGetDeviceQueue)dlSymFunc(lib, "vkGetDeviceQueue");
602     out->vkQueueSubmit = (PFN_vkQueueSubmit)dlSymFunc(lib, "vkQueueSubmit");
603     out->vkQueueWaitIdle = (PFN_vkQueueWaitIdle)dlSymFunc(lib, "vkQueueWaitIdle");
604     out->vkDeviceWaitIdle = (PFN_vkDeviceWaitIdle)dlSymFunc(lib, "vkDeviceWaitIdle");
605     out->vkAllocateMemory = (PFN_vkAllocateMemory)dlSymFunc(lib, "vkAllocateMemory");
606     out->vkFreeMemory = (PFN_vkFreeMemory)dlSymFunc(lib, "vkFreeMemory");
607     out->vkMapMemory = (PFN_vkMapMemory)dlSymFunc(lib, "vkMapMemory");
608     out->vkUnmapMemory = (PFN_vkUnmapMemory)dlSymFunc(lib, "vkUnmapMemory");
609     out->vkFlushMappedMemoryRanges = (PFN_vkFlushMappedMemoryRanges)dlSymFunc(lib, "vkFlushMappedMemoryRanges");
610     out->vkInvalidateMappedMemoryRanges = (PFN_vkInvalidateMappedMemoryRanges)dlSymFunc(lib, "vkInvalidateMappedMemoryRanges");
611     out->vkGetDeviceMemoryCommitment = (PFN_vkGetDeviceMemoryCommitment)dlSymFunc(lib, "vkGetDeviceMemoryCommitment");
612     out->vkBindBufferMemory = (PFN_vkBindBufferMemory)dlSymFunc(lib, "vkBindBufferMemory");
613     out->vkBindImageMemory = (PFN_vkBindImageMemory)dlSymFunc(lib, "vkBindImageMemory");
614     out->vkGetBufferMemoryRequirements = (PFN_vkGetBufferMemoryRequirements)dlSymFunc(lib, "vkGetBufferMemoryRequirements");
615     out->vkGetImageMemoryRequirements = (PFN_vkGetImageMemoryRequirements)dlSymFunc(lib, "vkGetImageMemoryRequirements");
616     out->vkGetImageSparseMemoryRequirements = (PFN_vkGetImageSparseMemoryRequirements)dlSymFunc(lib, "vkGetImageSparseMemoryRequirements");
617     out->vkQueueBindSparse = (PFN_vkQueueBindSparse)dlSymFunc(lib, "vkQueueBindSparse");
618     out->vkCreateFence = (PFN_vkCreateFence)dlSymFunc(lib, "vkCreateFence");
619     out->vkDestroyFence = (PFN_vkDestroyFence)dlSymFunc(lib, "vkDestroyFence");
620     out->vkResetFences = (PFN_vkResetFences)dlSymFunc(lib, "vkResetFences");
621     out->vkGetFenceStatus = (PFN_vkGetFenceStatus)dlSymFunc(lib, "vkGetFenceStatus");
622     out->vkWaitForFences = (PFN_vkWaitForFences)dlSymFunc(lib, "vkWaitForFences");
623     out->vkCreateSemaphore = (PFN_vkCreateSemaphore)dlSymFunc(lib, "vkCreateSemaphore");
624     out->vkDestroySemaphore = (PFN_vkDestroySemaphore)dlSymFunc(lib, "vkDestroySemaphore");
625     out->vkCreateEvent = (PFN_vkCreateEvent)dlSymFunc(lib, "vkCreateEvent");
626     out->vkDestroyEvent = (PFN_vkDestroyEvent)dlSymFunc(lib, "vkDestroyEvent");
627     out->vkGetEventStatus = (PFN_vkGetEventStatus)dlSymFunc(lib, "vkGetEventStatus");
628     out->vkSetEvent = (PFN_vkSetEvent)dlSymFunc(lib, "vkSetEvent");
629     out->vkResetEvent = (PFN_vkResetEvent)dlSymFunc(lib, "vkResetEvent");
630     out->vkCreateQueryPool = (PFN_vkCreateQueryPool)dlSymFunc(lib, "vkCreateQueryPool");
631     out->vkDestroyQueryPool = (PFN_vkDestroyQueryPool)dlSymFunc(lib, "vkDestroyQueryPool");
632     out->vkGetQueryPoolResults = (PFN_vkGetQueryPoolResults)dlSymFunc(lib, "vkGetQueryPoolResults");
633     out->vkCreateBuffer = (PFN_vkCreateBuffer)dlSymFunc(lib, "vkCreateBuffer");
634     out->vkDestroyBuffer = (PFN_vkDestroyBuffer)dlSymFunc(lib, "vkDestroyBuffer");
635     out->vkCreateBufferView = (PFN_vkCreateBufferView)dlSymFunc(lib, "vkCreateBufferView");
636     out->vkDestroyBufferView = (PFN_vkDestroyBufferView)dlSymFunc(lib, "vkDestroyBufferView");
637     out->vkCreateImage = (PFN_vkCreateImage)dlSymFunc(lib, "vkCreateImage");
638     out->vkDestroyImage = (PFN_vkDestroyImage)dlSymFunc(lib, "vkDestroyImage");
639     out->vkGetImageSubresourceLayout = (PFN_vkGetImageSubresourceLayout)dlSymFunc(lib, "vkGetImageSubresourceLayout");
640     out->vkCreateImageView = (PFN_vkCreateImageView)dlSymFunc(lib, "vkCreateImageView");
641     out->vkDestroyImageView = (PFN_vkDestroyImageView)dlSymFunc(lib, "vkDestroyImageView");
642     out->vkCreateShaderModule = (PFN_vkCreateShaderModule)dlSymFunc(lib, "vkCreateShaderModule");
643     out->vkDestroyShaderModule = (PFN_vkDestroyShaderModule)dlSymFunc(lib, "vkDestroyShaderModule");
644     out->vkCreatePipelineCache = (PFN_vkCreatePipelineCache)dlSymFunc(lib, "vkCreatePipelineCache");
645     out->vkDestroyPipelineCache = (PFN_vkDestroyPipelineCache)dlSymFunc(lib, "vkDestroyPipelineCache");
646     out->vkGetPipelineCacheData = (PFN_vkGetPipelineCacheData)dlSymFunc(lib, "vkGetPipelineCacheData");
647     out->vkMergePipelineCaches = (PFN_vkMergePipelineCaches)dlSymFunc(lib, "vkMergePipelineCaches");
648     out->vkCreateGraphicsPipelines = (PFN_vkCreateGraphicsPipelines)dlSymFunc(lib, "vkCreateGraphicsPipelines");
649     out->vkCreateComputePipelines = (PFN_vkCreateComputePipelines)dlSymFunc(lib, "vkCreateComputePipelines");
650     out->vkDestroyPipeline = (PFN_vkDestroyPipeline)dlSymFunc(lib, "vkDestroyPipeline");
651     out->vkCreatePipelineLayout = (PFN_vkCreatePipelineLayout)dlSymFunc(lib, "vkCreatePipelineLayout");
652     out->vkDestroyPipelineLayout = (PFN_vkDestroyPipelineLayout)dlSymFunc(lib, "vkDestroyPipelineLayout");
653     out->vkCreateSampler = (PFN_vkCreateSampler)dlSymFunc(lib, "vkCreateSampler");
654     out->vkDestroySampler = (PFN_vkDestroySampler)dlSymFunc(lib, "vkDestroySampler");
655     out->vkCreateDescriptorSetLayout = (PFN_vkCreateDescriptorSetLayout)dlSymFunc(lib, "vkCreateDescriptorSetLayout");
656     out->vkDestroyDescriptorSetLayout = (PFN_vkDestroyDescriptorSetLayout)dlSymFunc(lib, "vkDestroyDescriptorSetLayout");
657     out->vkCreateDescriptorPool = (PFN_vkCreateDescriptorPool)dlSymFunc(lib, "vkCreateDescriptorPool");
658     out->vkDestroyDescriptorPool = (PFN_vkDestroyDescriptorPool)dlSymFunc(lib, "vkDestroyDescriptorPool");
659     out->vkResetDescriptorPool = (PFN_vkResetDescriptorPool)dlSymFunc(lib, "vkResetDescriptorPool");
660     out->vkAllocateDescriptorSets = (PFN_vkAllocateDescriptorSets)dlSymFunc(lib, "vkAllocateDescriptorSets");
661     out->vkFreeDescriptorSets = (PFN_vkFreeDescriptorSets)dlSymFunc(lib, "vkFreeDescriptorSets");
662     out->vkUpdateDescriptorSets = (PFN_vkUpdateDescriptorSets)dlSymFunc(lib, "vkUpdateDescriptorSets");
663     out->vkCreateFramebuffer = (PFN_vkCreateFramebuffer)dlSymFunc(lib, "vkCreateFramebuffer");
664     out->vkDestroyFramebuffer = (PFN_vkDestroyFramebuffer)dlSymFunc(lib, "vkDestroyFramebuffer");
665     out->vkCreateRenderPass = (PFN_vkCreateRenderPass)dlSymFunc(lib, "vkCreateRenderPass");
666     out->vkDestroyRenderPass = (PFN_vkDestroyRenderPass)dlSymFunc(lib, "vkDestroyRenderPass");
667     out->vkGetRenderAreaGranularity = (PFN_vkGetRenderAreaGranularity)dlSymFunc(lib, "vkGetRenderAreaGranularity");
668     out->vkCreateCommandPool = (PFN_vkCreateCommandPool)dlSymFunc(lib, "vkCreateCommandPool");
669     out->vkDestroyCommandPool = (PFN_vkDestroyCommandPool)dlSymFunc(lib, "vkDestroyCommandPool");
670     out->vkResetCommandPool = (PFN_vkResetCommandPool)dlSymFunc(lib, "vkResetCommandPool");
671     out->vkAllocateCommandBuffers = (PFN_vkAllocateCommandBuffers)dlSymFunc(lib, "vkAllocateCommandBuffers");
672     out->vkFreeCommandBuffers = (PFN_vkFreeCommandBuffers)dlSymFunc(lib, "vkFreeCommandBuffers");
673     out->vkBeginCommandBuffer = (PFN_vkBeginCommandBuffer)dlSymFunc(lib, "vkBeginCommandBuffer");
674     out->vkEndCommandBuffer = (PFN_vkEndCommandBuffer)dlSymFunc(lib, "vkEndCommandBuffer");
675     out->vkResetCommandBuffer = (PFN_vkResetCommandBuffer)dlSymFunc(lib, "vkResetCommandBuffer");
676     out->vkCmdBindPipeline = (PFN_vkCmdBindPipeline)dlSymFunc(lib, "vkCmdBindPipeline");
677     out->vkCmdSetViewport = (PFN_vkCmdSetViewport)dlSymFunc(lib, "vkCmdSetViewport");
678     out->vkCmdSetScissor = (PFN_vkCmdSetScissor)dlSymFunc(lib, "vkCmdSetScissor");
679     out->vkCmdSetLineWidth = (PFN_vkCmdSetLineWidth)dlSymFunc(lib, "vkCmdSetLineWidth");
680     out->vkCmdSetDepthBias = (PFN_vkCmdSetDepthBias)dlSymFunc(lib, "vkCmdSetDepthBias");
681     out->vkCmdSetBlendConstants = (PFN_vkCmdSetBlendConstants)dlSymFunc(lib, "vkCmdSetBlendConstants");
682     out->vkCmdSetDepthBounds = (PFN_vkCmdSetDepthBounds)dlSymFunc(lib, "vkCmdSetDepthBounds");
683     out->vkCmdSetStencilCompareMask = (PFN_vkCmdSetStencilCompareMask)dlSymFunc(lib, "vkCmdSetStencilCompareMask");
684     out->vkCmdSetStencilWriteMask = (PFN_vkCmdSetStencilWriteMask)dlSymFunc(lib, "vkCmdSetStencilWriteMask");
685     out->vkCmdSetStencilReference = (PFN_vkCmdSetStencilReference)dlSymFunc(lib, "vkCmdSetStencilReference");
686     out->vkCmdBindDescriptorSets = (PFN_vkCmdBindDescriptorSets)dlSymFunc(lib, "vkCmdBindDescriptorSets");
687     out->vkCmdBindIndexBuffer = (PFN_vkCmdBindIndexBuffer)dlSymFunc(lib, "vkCmdBindIndexBuffer");
688     out->vkCmdBindVertexBuffers = (PFN_vkCmdBindVertexBuffers)dlSymFunc(lib, "vkCmdBindVertexBuffers");
689     out->vkCmdDraw = (PFN_vkCmdDraw)dlSymFunc(lib, "vkCmdDraw");
690     out->vkCmdDrawIndexed = (PFN_vkCmdDrawIndexed)dlSymFunc(lib, "vkCmdDrawIndexed");
691     out->vkCmdDrawIndirect = (PFN_vkCmdDrawIndirect)dlSymFunc(lib, "vkCmdDrawIndirect");
692     out->vkCmdDrawIndexedIndirect = (PFN_vkCmdDrawIndexedIndirect)dlSymFunc(lib, "vkCmdDrawIndexedIndirect");
693     out->vkCmdDispatch = (PFN_vkCmdDispatch)dlSymFunc(lib, "vkCmdDispatch");
694     out->vkCmdDispatchIndirect = (PFN_vkCmdDispatchIndirect)dlSymFunc(lib, "vkCmdDispatchIndirect");
695     out->vkCmdCopyBuffer = (PFN_vkCmdCopyBuffer)dlSymFunc(lib, "vkCmdCopyBuffer");
696     out->vkCmdCopyImage = (PFN_vkCmdCopyImage)dlSymFunc(lib, "vkCmdCopyImage");
697     out->vkCmdBlitImage = (PFN_vkCmdBlitImage)dlSymFunc(lib, "vkCmdBlitImage");
698     out->vkCmdCopyBufferToImage = (PFN_vkCmdCopyBufferToImage)dlSymFunc(lib, "vkCmdCopyBufferToImage");
699     out->vkCmdCopyImageToBuffer = (PFN_vkCmdCopyImageToBuffer)dlSymFunc(lib, "vkCmdCopyImageToBuffer");
700     out->vkCmdUpdateBuffer = (PFN_vkCmdUpdateBuffer)dlSymFunc(lib, "vkCmdUpdateBuffer");
701     out->vkCmdFillBuffer = (PFN_vkCmdFillBuffer)dlSymFunc(lib, "vkCmdFillBuffer");
702     out->vkCmdClearColorImage = (PFN_vkCmdClearColorImage)dlSymFunc(lib, "vkCmdClearColorImage");
703     out->vkCmdClearDepthStencilImage = (PFN_vkCmdClearDepthStencilImage)dlSymFunc(lib, "vkCmdClearDepthStencilImage");
704     out->vkCmdClearAttachments = (PFN_vkCmdClearAttachments)dlSymFunc(lib, "vkCmdClearAttachments");
705     out->vkCmdResolveImage = (PFN_vkCmdResolveImage)dlSymFunc(lib, "vkCmdResolveImage");
706     out->vkCmdSetEvent = (PFN_vkCmdSetEvent)dlSymFunc(lib, "vkCmdSetEvent");
707     out->vkCmdResetEvent = (PFN_vkCmdResetEvent)dlSymFunc(lib, "vkCmdResetEvent");
708     out->vkCmdWaitEvents = (PFN_vkCmdWaitEvents)dlSymFunc(lib, "vkCmdWaitEvents");
709     out->vkCmdPipelineBarrier = (PFN_vkCmdPipelineBarrier)dlSymFunc(lib, "vkCmdPipelineBarrier");
710     out->vkCmdBeginQuery = (PFN_vkCmdBeginQuery)dlSymFunc(lib, "vkCmdBeginQuery");
711     out->vkCmdEndQuery = (PFN_vkCmdEndQuery)dlSymFunc(lib, "vkCmdEndQuery");
712     out->vkCmdResetQueryPool = (PFN_vkCmdResetQueryPool)dlSymFunc(lib, "vkCmdResetQueryPool");
713     out->vkCmdWriteTimestamp = (PFN_vkCmdWriteTimestamp)dlSymFunc(lib, "vkCmdWriteTimestamp");
714     out->vkCmdCopyQueryPoolResults = (PFN_vkCmdCopyQueryPoolResults)dlSymFunc(lib, "vkCmdCopyQueryPoolResults");
715     out->vkCmdPushConstants = (PFN_vkCmdPushConstants)dlSymFunc(lib, "vkCmdPushConstants");
716     out->vkCmdBeginRenderPass = (PFN_vkCmdBeginRenderPass)dlSymFunc(lib, "vkCmdBeginRenderPass");
717     out->vkCmdNextSubpass = (PFN_vkCmdNextSubpass)dlSymFunc(lib, "vkCmdNextSubpass");
718     out->vkCmdEndRenderPass = (PFN_vkCmdEndRenderPass)dlSymFunc(lib, "vkCmdEndRenderPass");
719     out->vkCmdExecuteCommands = (PFN_vkCmdExecuteCommands)dlSymFunc(lib, "vkCmdExecuteCommands");
720 #endif
721 #ifdef VK_VERSION_1_1
722     out->vkBindBufferMemory2 = (PFN_vkBindBufferMemory2)dlSymFunc(lib, "vkBindBufferMemory2");
723     out->vkBindImageMemory2 = (PFN_vkBindImageMemory2)dlSymFunc(lib, "vkBindImageMemory2");
724     out->vkGetDeviceGroupPeerMemoryFeatures = (PFN_vkGetDeviceGroupPeerMemoryFeatures)dlSymFunc(lib, "vkGetDeviceGroupPeerMemoryFeatures");
725     out->vkCmdSetDeviceMask = (PFN_vkCmdSetDeviceMask)dlSymFunc(lib, "vkCmdSetDeviceMask");
726     out->vkCmdDispatchBase = (PFN_vkCmdDispatchBase)dlSymFunc(lib, "vkCmdDispatchBase");
727     out->vkGetImageMemoryRequirements2 = (PFN_vkGetImageMemoryRequirements2)dlSymFunc(lib, "vkGetImageMemoryRequirements2");
728     out->vkGetBufferMemoryRequirements2 = (PFN_vkGetBufferMemoryRequirements2)dlSymFunc(lib, "vkGetBufferMemoryRequirements2");
729     out->vkGetImageSparseMemoryRequirements2 = (PFN_vkGetImageSparseMemoryRequirements2)dlSymFunc(lib, "vkGetImageSparseMemoryRequirements2");
730     out->vkTrimCommandPool = (PFN_vkTrimCommandPool)dlSymFunc(lib, "vkTrimCommandPool");
731     out->vkGetDeviceQueue2 = (PFN_vkGetDeviceQueue2)dlSymFunc(lib, "vkGetDeviceQueue2");
732     out->vkCreateSamplerYcbcrConversion = (PFN_vkCreateSamplerYcbcrConversion)dlSymFunc(lib, "vkCreateSamplerYcbcrConversion");
733     out->vkDestroySamplerYcbcrConversion = (PFN_vkDestroySamplerYcbcrConversion)dlSymFunc(lib, "vkDestroySamplerYcbcrConversion");
734     out->vkCreateDescriptorUpdateTemplate = (PFN_vkCreateDescriptorUpdateTemplate)dlSymFunc(lib, "vkCreateDescriptorUpdateTemplate");
735     out->vkDestroyDescriptorUpdateTemplate = (PFN_vkDestroyDescriptorUpdateTemplate)dlSymFunc(lib, "vkDestroyDescriptorUpdateTemplate");
736     out->vkUpdateDescriptorSetWithTemplate = (PFN_vkUpdateDescriptorSetWithTemplate)dlSymFunc(lib, "vkUpdateDescriptorSetWithTemplate");
737     out->vkGetDescriptorSetLayoutSupport = (PFN_vkGetDescriptorSetLayoutSupport)dlSymFunc(lib, "vkGetDescriptorSetLayoutSupport");
738 #endif
739 #ifdef VK_VERSION_1_2
740     out->vkCmdDrawIndirectCount = (PFN_vkCmdDrawIndirectCount)dlSymFunc(lib, "vkCmdDrawIndirectCount");
741     out->vkCmdDrawIndexedIndirectCount = (PFN_vkCmdDrawIndexedIndirectCount)dlSymFunc(lib, "vkCmdDrawIndexedIndirectCount");
742     out->vkCreateRenderPass2 = (PFN_vkCreateRenderPass2)dlSymFunc(lib, "vkCreateRenderPass2");
743     out->vkCmdBeginRenderPass2 = (PFN_vkCmdBeginRenderPass2)dlSymFunc(lib, "vkCmdBeginRenderPass2");
744     out->vkCmdNextSubpass2 = (PFN_vkCmdNextSubpass2)dlSymFunc(lib, "vkCmdNextSubpass2");
745     out->vkCmdEndRenderPass2 = (PFN_vkCmdEndRenderPass2)dlSymFunc(lib, "vkCmdEndRenderPass2");
746     out->vkResetQueryPool = (PFN_vkResetQueryPool)dlSymFunc(lib, "vkResetQueryPool");
747     out->vkGetSemaphoreCounterValue = (PFN_vkGetSemaphoreCounterValue)dlSymFunc(lib, "vkGetSemaphoreCounterValue");
748     out->vkWaitSemaphores = (PFN_vkWaitSemaphores)dlSymFunc(lib, "vkWaitSemaphores");
749     out->vkSignalSemaphore = (PFN_vkSignalSemaphore)dlSymFunc(lib, "vkSignalSemaphore");
750     out->vkGetBufferDeviceAddress = (PFN_vkGetBufferDeviceAddress)dlSymFunc(lib, "vkGetBufferDeviceAddress");
751     out->vkGetBufferOpaqueCaptureAddress = (PFN_vkGetBufferOpaqueCaptureAddress)dlSymFunc(lib, "vkGetBufferOpaqueCaptureAddress");
752     out->vkGetDeviceMemoryOpaqueCaptureAddress = (PFN_vkGetDeviceMemoryOpaqueCaptureAddress)dlSymFunc(lib, "vkGetDeviceMemoryOpaqueCaptureAddress");
753 #endif
754 #ifdef VK_KHR_surface
755     out->vkGetPhysicalDeviceSurfaceSupportKHR = (PFN_vkGetPhysicalDeviceSurfaceSupportKHR)dlSymFunc(lib, "vkGetPhysicalDeviceSurfaceSupportKHR");
756     out->vkGetPhysicalDeviceSurfaceCapabilitiesKHR = (PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)dlSymFunc(lib, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR");
757     out->vkGetPhysicalDeviceSurfaceFormatsKHR = (PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)dlSymFunc(lib, "vkGetPhysicalDeviceSurfaceFormatsKHR");
758     out->vkGetPhysicalDeviceSurfacePresentModesKHR = (PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)dlSymFunc(lib, "vkGetPhysicalDeviceSurfacePresentModesKHR");
759 #endif
760 #ifdef VK_KHR_swapchain
761     out->vkGetDeviceGroupPresentCapabilitiesKHR = (PFN_vkGetDeviceGroupPresentCapabilitiesKHR)dlSymFunc(lib, "vkGetDeviceGroupPresentCapabilitiesKHR");
762     out->vkGetDeviceGroupSurfacePresentModesKHR = (PFN_vkGetDeviceGroupSurfacePresentModesKHR)dlSymFunc(lib, "vkGetDeviceGroupSurfacePresentModesKHR");
763     out->vkGetPhysicalDevicePresentRectanglesKHR = (PFN_vkGetPhysicalDevicePresentRectanglesKHR)dlSymFunc(lib, "vkGetPhysicalDevicePresentRectanglesKHR");
764     out->vkAcquireNextImage2KHR = (PFN_vkAcquireNextImage2KHR)dlSymFunc(lib, "vkAcquireNextImage2KHR");
765 #endif
766 #ifdef VK_KHR_display
767     out->vkGetPhysicalDeviceDisplayPropertiesKHR = (PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)dlSymFunc(lib, "vkGetPhysicalDeviceDisplayPropertiesKHR");
768     out->vkGetPhysicalDeviceDisplayPlanePropertiesKHR = (PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)dlSymFunc(lib, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR");
769     out->vkGetDisplayPlaneSupportedDisplaysKHR = (PFN_vkGetDisplayPlaneSupportedDisplaysKHR)dlSymFunc(lib, "vkGetDisplayPlaneSupportedDisplaysKHR");
770     out->vkGetDisplayModePropertiesKHR = (PFN_vkGetDisplayModePropertiesKHR)dlSymFunc(lib, "vkGetDisplayModePropertiesKHR");
771     out->vkCreateDisplayModeKHR = (PFN_vkCreateDisplayModeKHR)dlSymFunc(lib, "vkCreateDisplayModeKHR");
772     out->vkGetDisplayPlaneCapabilitiesKHR = (PFN_vkGetDisplayPlaneCapabilitiesKHR)dlSymFunc(lib, "vkGetDisplayPlaneCapabilitiesKHR");
773 #endif
774 #ifdef VK_KHR_display_swapchain
775     out->vkCreateSharedSwapchainsKHR = (PFN_vkCreateSharedSwapchainsKHR)dlSymFunc(lib, "vkCreateSharedSwapchainsKHR");
776 #endif
777 #ifdef VK_KHR_wayland_surface
778     out->vkGetPhysicalDeviceWaylandPresentationSupportKHR = (PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR)dlSymFunc(lib, "vkGetPhysicalDeviceWaylandPresentationSupportKHR");
779 #endif
780 #ifdef VK_KHR_get_physical_device_properties2
781     out->vkGetPhysicalDeviceFeatures2KHR = (PFN_vkGetPhysicalDeviceFeatures2KHR)dlSymFunc(lib, "vkGetPhysicalDeviceFeatures2KHR");
782     out->vkGetPhysicalDeviceProperties2KHR = (PFN_vkGetPhysicalDeviceProperties2KHR)dlSymFunc(lib, "vkGetPhysicalDeviceProperties2KHR");
783     out->vkGetPhysicalDeviceFormatProperties2KHR = (PFN_vkGetPhysicalDeviceFormatProperties2KHR)dlSymFunc(lib, "vkGetPhysicalDeviceFormatProperties2KHR");
784     out->vkGetPhysicalDeviceImageFormatProperties2KHR = (PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)dlSymFunc(lib, "vkGetPhysicalDeviceImageFormatProperties2KHR");
785     out->vkGetPhysicalDeviceQueueFamilyProperties2KHR = (PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)dlSymFunc(lib, "vkGetPhysicalDeviceQueueFamilyProperties2KHR");
786     out->vkGetPhysicalDeviceMemoryProperties2KHR = (PFN_vkGetPhysicalDeviceMemoryProperties2KHR)dlSymFunc(lib, "vkGetPhysicalDeviceMemoryProperties2KHR");
787     out->vkGetPhysicalDeviceSparseImageFormatProperties2KHR = (PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)dlSymFunc(lib, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR");
788 #endif
789 #ifdef VK_KHR_device_group
790     out->vkGetDeviceGroupPeerMemoryFeaturesKHR = (PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR)dlSymFunc(lib, "vkGetDeviceGroupPeerMemoryFeaturesKHR");
791     out->vkCmdSetDeviceMaskKHR = (PFN_vkCmdSetDeviceMaskKHR)dlSymFunc(lib, "vkCmdSetDeviceMaskKHR");
792     out->vkCmdDispatchBaseKHR = (PFN_vkCmdDispatchBaseKHR)dlSymFunc(lib, "vkCmdDispatchBaseKHR");
793 #endif
794 #ifdef VK_KHR_maintenance1
795     out->vkTrimCommandPoolKHR = (PFN_vkTrimCommandPoolKHR)dlSymFunc(lib, "vkTrimCommandPoolKHR");
796 #endif
797 #ifdef VK_KHR_external_memory_capabilities
798     out->vkGetPhysicalDeviceExternalBufferPropertiesKHR = (PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)dlSymFunc(lib, "vkGetPhysicalDeviceExternalBufferPropertiesKHR");
799 #endif
800 #ifdef VK_KHR_external_memory_win32
801     out->vkGetMemoryWin32HandleKHR = (PFN_vkGetMemoryWin32HandleKHR)dlSymFunc(lib, "vkGetMemoryWin32HandleKHR");
802     out->vkGetMemoryWin32HandlePropertiesKHR = (PFN_vkGetMemoryWin32HandlePropertiesKHR)dlSymFunc(lib, "vkGetMemoryWin32HandlePropertiesKHR");
803 #endif
804 #ifdef VK_KHR_external_memory_fd
805     out->vkGetMemoryFdKHR = (PFN_vkGetMemoryFdKHR)dlSymFunc(lib, "vkGetMemoryFdKHR");
806     out->vkGetMemoryFdPropertiesKHR = (PFN_vkGetMemoryFdPropertiesKHR)dlSymFunc(lib, "vkGetMemoryFdPropertiesKHR");
807 #endif
808 #ifdef VK_KHR_external_semaphore_capabilities
809     out->vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = (PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)dlSymFunc(lib, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR");
810 #endif
811 #ifdef VK_KHR_external_semaphore_win32
812     out->vkImportSemaphoreWin32HandleKHR = (PFN_vkImportSemaphoreWin32HandleKHR)dlSymFunc(lib, "vkImportSemaphoreWin32HandleKHR");
813     out->vkGetSemaphoreWin32HandleKHR = (PFN_vkGetSemaphoreWin32HandleKHR)dlSymFunc(lib, "vkGetSemaphoreWin32HandleKHR");
814 #endif
815 #ifdef VK_KHR_external_semaphore_fd
816     out->vkImportSemaphoreFdKHR = (PFN_vkImportSemaphoreFdKHR)dlSymFunc(lib, "vkImportSemaphoreFdKHR");
817     out->vkGetSemaphoreFdKHR = (PFN_vkGetSemaphoreFdKHR)dlSymFunc(lib, "vkGetSemaphoreFdKHR");
818 #endif
819 #ifdef VK_KHR_push_descriptor
820     out->vkCmdPushDescriptorSetKHR = (PFN_vkCmdPushDescriptorSetKHR)dlSymFunc(lib, "vkCmdPushDescriptorSetKHR");
821     out->vkCmdPushDescriptorSetWithTemplateKHR = (PFN_vkCmdPushDescriptorSetWithTemplateKHR)dlSymFunc(lib, "vkCmdPushDescriptorSetWithTemplateKHR");
822 #endif
823 #ifdef VK_KHR_descriptor_update_template
824     out->vkCreateDescriptorUpdateTemplateKHR = (PFN_vkCreateDescriptorUpdateTemplateKHR)dlSymFunc(lib, "vkCreateDescriptorUpdateTemplateKHR");
825     out->vkDestroyDescriptorUpdateTemplateKHR = (PFN_vkDestroyDescriptorUpdateTemplateKHR)dlSymFunc(lib, "vkDestroyDescriptorUpdateTemplateKHR");
826     out->vkUpdateDescriptorSetWithTemplateKHR = (PFN_vkUpdateDescriptorSetWithTemplateKHR)dlSymFunc(lib, "vkUpdateDescriptorSetWithTemplateKHR");
827 #endif
828 #ifdef VK_KHR_create_renderpass2
829     out->vkCreateRenderPass2KHR = (PFN_vkCreateRenderPass2KHR)dlSymFunc(lib, "vkCreateRenderPass2KHR");
830     out->vkCmdBeginRenderPass2KHR = (PFN_vkCmdBeginRenderPass2KHR)dlSymFunc(lib, "vkCmdBeginRenderPass2KHR");
831     out->vkCmdNextSubpass2KHR = (PFN_vkCmdNextSubpass2KHR)dlSymFunc(lib, "vkCmdNextSubpass2KHR");
832     out->vkCmdEndRenderPass2KHR = (PFN_vkCmdEndRenderPass2KHR)dlSymFunc(lib, "vkCmdEndRenderPass2KHR");
833 #endif
834 #ifdef VK_KHR_shared_presentable_image
835     out->vkGetSwapchainStatusKHR = (PFN_vkGetSwapchainStatusKHR)dlSymFunc(lib, "vkGetSwapchainStatusKHR");
836 #endif
837 #ifdef VK_KHR_external_fence_capabilities
838     out->vkGetPhysicalDeviceExternalFencePropertiesKHR = (PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)dlSymFunc(lib, "vkGetPhysicalDeviceExternalFencePropertiesKHR");
839 #endif
840 #ifdef VK_KHR_external_fence_win32
841     out->vkImportFenceWin32HandleKHR = (PFN_vkImportFenceWin32HandleKHR)dlSymFunc(lib, "vkImportFenceWin32HandleKHR");
842     out->vkGetFenceWin32HandleKHR = (PFN_vkGetFenceWin32HandleKHR)dlSymFunc(lib, "vkGetFenceWin32HandleKHR");
843 #endif
844 #ifdef VK_KHR_external_fence_fd
845     out->vkImportFenceFdKHR = (PFN_vkImportFenceFdKHR)dlSymFunc(lib, "vkImportFenceFdKHR");
846     out->vkGetFenceFdKHR = (PFN_vkGetFenceFdKHR)dlSymFunc(lib, "vkGetFenceFdKHR");
847 #endif
848 #ifdef VK_KHR_performance_query
849     out->vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = (PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR)dlSymFunc(lib, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR");
850     out->vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = (PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR)dlSymFunc(lib, "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR");
851     out->vkAcquireProfilingLockKHR = (PFN_vkAcquireProfilingLockKHR)dlSymFunc(lib, "vkAcquireProfilingLockKHR");
852     out->vkReleaseProfilingLockKHR = (PFN_vkReleaseProfilingLockKHR)dlSymFunc(lib, "vkReleaseProfilingLockKHR");
853 #endif
854 #ifdef VK_KHR_get_surface_capabilities2
855     out->vkGetPhysicalDeviceSurfaceCapabilities2KHR = (PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR)dlSymFunc(lib, "vkGetPhysicalDeviceSurfaceCapabilities2KHR");
856     out->vkGetPhysicalDeviceSurfaceFormats2KHR = (PFN_vkGetPhysicalDeviceSurfaceFormats2KHR)dlSymFunc(lib, "vkGetPhysicalDeviceSurfaceFormats2KHR");
857 #endif
858 #ifdef VK_KHR_get_display_properties2
859     out->vkGetPhysicalDeviceDisplayProperties2KHR = (PFN_vkGetPhysicalDeviceDisplayProperties2KHR)dlSymFunc(lib, "vkGetPhysicalDeviceDisplayProperties2KHR");
860     out->vkGetPhysicalDeviceDisplayPlaneProperties2KHR = (PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR)dlSymFunc(lib, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR");
861     out->vkGetDisplayModeProperties2KHR = (PFN_vkGetDisplayModeProperties2KHR)dlSymFunc(lib, "vkGetDisplayModeProperties2KHR");
862     out->vkGetDisplayPlaneCapabilities2KHR = (PFN_vkGetDisplayPlaneCapabilities2KHR)dlSymFunc(lib, "vkGetDisplayPlaneCapabilities2KHR");
863 #endif
864 #ifdef VK_KHR_get_memory_requirements2
865     out->vkGetImageMemoryRequirements2KHR = (PFN_vkGetImageMemoryRequirements2KHR)dlSymFunc(lib, "vkGetImageMemoryRequirements2KHR");
866     out->vkGetBufferMemoryRequirements2KHR = (PFN_vkGetBufferMemoryRequirements2KHR)dlSymFunc(lib, "vkGetBufferMemoryRequirements2KHR");
867     out->vkGetImageSparseMemoryRequirements2KHR = (PFN_vkGetImageSparseMemoryRequirements2KHR)dlSymFunc(lib, "vkGetImageSparseMemoryRequirements2KHR");
868 #endif
869 #ifdef VK_KHR_sampler_ycbcr_conversion
870     out->vkCreateSamplerYcbcrConversionKHR = (PFN_vkCreateSamplerYcbcrConversionKHR)dlSymFunc(lib, "vkCreateSamplerYcbcrConversionKHR");
871     out->vkDestroySamplerYcbcrConversionKHR = (PFN_vkDestroySamplerYcbcrConversionKHR)dlSymFunc(lib, "vkDestroySamplerYcbcrConversionKHR");
872 #endif
873 #ifdef VK_KHR_bind_memory2
874     out->vkBindBufferMemory2KHR = (PFN_vkBindBufferMemory2KHR)dlSymFunc(lib, "vkBindBufferMemory2KHR");
875     out->vkBindImageMemory2KHR = (PFN_vkBindImageMemory2KHR)dlSymFunc(lib, "vkBindImageMemory2KHR");
876 #endif
877 #ifdef VK_KHR_maintenance3
878     out->vkGetDescriptorSetLayoutSupportKHR = (PFN_vkGetDescriptorSetLayoutSupportKHR)dlSymFunc(lib, "vkGetDescriptorSetLayoutSupportKHR");
879 #endif
880 #ifdef VK_KHR_draw_indirect_count
881     out->vkCmdDrawIndirectCountKHR = (PFN_vkCmdDrawIndirectCountKHR)dlSymFunc(lib, "vkCmdDrawIndirectCountKHR");
882     out->vkCmdDrawIndexedIndirectCountKHR = (PFN_vkCmdDrawIndexedIndirectCountKHR)dlSymFunc(lib, "vkCmdDrawIndexedIndirectCountKHR");
883 #endif
884 #ifdef VK_KHR_timeline_semaphore
885     out->vkGetSemaphoreCounterValueKHR = (PFN_vkGetSemaphoreCounterValueKHR)dlSymFunc(lib, "vkGetSemaphoreCounterValueKHR");
886     out->vkWaitSemaphoresKHR = (PFN_vkWaitSemaphoresKHR)dlSymFunc(lib, "vkWaitSemaphoresKHR");
887     out->vkSignalSemaphoreKHR = (PFN_vkSignalSemaphoreKHR)dlSymFunc(lib, "vkSignalSemaphoreKHR");
888 #endif
889 #ifdef VK_KHR_fragment_shading_rate
890     out->vkGetPhysicalDeviceFragmentShadingRatesKHR = (PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR)dlSymFunc(lib, "vkGetPhysicalDeviceFragmentShadingRatesKHR");
891     out->vkCmdSetFragmentShadingRateKHR = (PFN_vkCmdSetFragmentShadingRateKHR)dlSymFunc(lib, "vkCmdSetFragmentShadingRateKHR");
892 #endif
893 #ifdef VK_KHR_buffer_device_address
894     out->vkGetBufferDeviceAddressKHR = (PFN_vkGetBufferDeviceAddressKHR)dlSymFunc(lib, "vkGetBufferDeviceAddressKHR");
895     out->vkGetBufferOpaqueCaptureAddressKHR = (PFN_vkGetBufferOpaqueCaptureAddressKHR)dlSymFunc(lib, "vkGetBufferOpaqueCaptureAddressKHR");
896     out->vkGetDeviceMemoryOpaqueCaptureAddressKHR = (PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR)dlSymFunc(lib, "vkGetDeviceMemoryOpaqueCaptureAddressKHR");
897 #endif
898 #ifdef VK_KHR_deferred_host_operations
899     out->vkCreateDeferredOperationKHR = (PFN_vkCreateDeferredOperationKHR)dlSymFunc(lib, "vkCreateDeferredOperationKHR");
900     out->vkDestroyDeferredOperationKHR = (PFN_vkDestroyDeferredOperationKHR)dlSymFunc(lib, "vkDestroyDeferredOperationKHR");
901     out->vkGetDeferredOperationMaxConcurrencyKHR = (PFN_vkGetDeferredOperationMaxConcurrencyKHR)dlSymFunc(lib, "vkGetDeferredOperationMaxConcurrencyKHR");
902     out->vkGetDeferredOperationResultKHR = (PFN_vkGetDeferredOperationResultKHR)dlSymFunc(lib, "vkGetDeferredOperationResultKHR");
903     out->vkDeferredOperationJoinKHR = (PFN_vkDeferredOperationJoinKHR)dlSymFunc(lib, "vkDeferredOperationJoinKHR");
904 #endif
905 #ifdef VK_KHR_pipeline_executable_properties
906     out->vkGetPipelineExecutablePropertiesKHR = (PFN_vkGetPipelineExecutablePropertiesKHR)dlSymFunc(lib, "vkGetPipelineExecutablePropertiesKHR");
907     out->vkGetPipelineExecutableStatisticsKHR = (PFN_vkGetPipelineExecutableStatisticsKHR)dlSymFunc(lib, "vkGetPipelineExecutableStatisticsKHR");
908     out->vkGetPipelineExecutableInternalRepresentationsKHR = (PFN_vkGetPipelineExecutableInternalRepresentationsKHR)dlSymFunc(lib, "vkGetPipelineExecutableInternalRepresentationsKHR");
909 #endif
910 #ifdef VK_KHR_copy_commands2
911     out->vkCmdCopyBuffer2KHR = (PFN_vkCmdCopyBuffer2KHR)dlSymFunc(lib, "vkCmdCopyBuffer2KHR");
912     out->vkCmdCopyImage2KHR = (PFN_vkCmdCopyImage2KHR)dlSymFunc(lib, "vkCmdCopyImage2KHR");
913     out->vkCmdCopyBufferToImage2KHR = (PFN_vkCmdCopyBufferToImage2KHR)dlSymFunc(lib, "vkCmdCopyBufferToImage2KHR");
914     out->vkCmdCopyImageToBuffer2KHR = (PFN_vkCmdCopyImageToBuffer2KHR)dlSymFunc(lib, "vkCmdCopyImageToBuffer2KHR");
915     out->vkCmdBlitImage2KHR = (PFN_vkCmdBlitImage2KHR)dlSymFunc(lib, "vkCmdBlitImage2KHR");
916     out->vkCmdResolveImage2KHR = (PFN_vkCmdResolveImage2KHR)dlSymFunc(lib, "vkCmdResolveImage2KHR");
917 #endif
918 #ifdef VK_ANDROID_native_buffer
919     out->vkGetSwapchainGrallocUsageANDROID = (PFN_vkGetSwapchainGrallocUsageANDROID)dlSymFunc(lib, "vkGetSwapchainGrallocUsageANDROID");
920     out->vkAcquireImageANDROID = (PFN_vkAcquireImageANDROID)dlSymFunc(lib, "vkAcquireImageANDROID");
921     out->vkQueueSignalReleaseImageANDROID = (PFN_vkQueueSignalReleaseImageANDROID)dlSymFunc(lib, "vkQueueSignalReleaseImageANDROID");
922 #endif
923 #ifdef VK_EXT_debug_marker
924     out->vkDebugMarkerSetObjectTagEXT = (PFN_vkDebugMarkerSetObjectTagEXT)dlSymFunc(lib, "vkDebugMarkerSetObjectTagEXT");
925     out->vkDebugMarkerSetObjectNameEXT = (PFN_vkDebugMarkerSetObjectNameEXT)dlSymFunc(lib, "vkDebugMarkerSetObjectNameEXT");
926     out->vkCmdDebugMarkerBeginEXT = (PFN_vkCmdDebugMarkerBeginEXT)dlSymFunc(lib, "vkCmdDebugMarkerBeginEXT");
927     out->vkCmdDebugMarkerEndEXT = (PFN_vkCmdDebugMarkerEndEXT)dlSymFunc(lib, "vkCmdDebugMarkerEndEXT");
928     out->vkCmdDebugMarkerInsertEXT = (PFN_vkCmdDebugMarkerInsertEXT)dlSymFunc(lib, "vkCmdDebugMarkerInsertEXT");
929 #endif
930 #ifdef VK_EXT_transform_feedback
931     out->vkCmdBindTransformFeedbackBuffersEXT = (PFN_vkCmdBindTransformFeedbackBuffersEXT)dlSymFunc(lib, "vkCmdBindTransformFeedbackBuffersEXT");
932     out->vkCmdBeginTransformFeedbackEXT = (PFN_vkCmdBeginTransformFeedbackEXT)dlSymFunc(lib, "vkCmdBeginTransformFeedbackEXT");
933     out->vkCmdEndTransformFeedbackEXT = (PFN_vkCmdEndTransformFeedbackEXT)dlSymFunc(lib, "vkCmdEndTransformFeedbackEXT");
934     out->vkCmdBeginQueryIndexedEXT = (PFN_vkCmdBeginQueryIndexedEXT)dlSymFunc(lib, "vkCmdBeginQueryIndexedEXT");
935     out->vkCmdEndQueryIndexedEXT = (PFN_vkCmdEndQueryIndexedEXT)dlSymFunc(lib, "vkCmdEndQueryIndexedEXT");
936     out->vkCmdDrawIndirectByteCountEXT = (PFN_vkCmdDrawIndirectByteCountEXT)dlSymFunc(lib, "vkCmdDrawIndirectByteCountEXT");
937 #endif
938 #ifdef VK_NVX_image_view_handle
939     out->vkGetImageViewHandleNVX = (PFN_vkGetImageViewHandleNVX)dlSymFunc(lib, "vkGetImageViewHandleNVX");
940     out->vkGetImageViewAddressNVX = (PFN_vkGetImageViewAddressNVX)dlSymFunc(lib, "vkGetImageViewAddressNVX");
941 #endif
942 #ifdef VK_AMD_draw_indirect_count
943     out->vkCmdDrawIndirectCountAMD = (PFN_vkCmdDrawIndirectCountAMD)dlSymFunc(lib, "vkCmdDrawIndirectCountAMD");
944     out->vkCmdDrawIndexedIndirectCountAMD = (PFN_vkCmdDrawIndexedIndirectCountAMD)dlSymFunc(lib, "vkCmdDrawIndexedIndirectCountAMD");
945 #endif
946 #ifdef VK_AMD_shader_info
947     out->vkGetShaderInfoAMD = (PFN_vkGetShaderInfoAMD)dlSymFunc(lib, "vkGetShaderInfoAMD");
948 #endif
949 #ifdef VK_NV_external_memory_capabilities
950     out->vkGetPhysicalDeviceExternalImageFormatPropertiesNV = (PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)dlSymFunc(lib, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV");
951 #endif
952 #ifdef VK_NV_external_memory_win32
953     out->vkGetMemoryWin32HandleNV = (PFN_vkGetMemoryWin32HandleNV)dlSymFunc(lib, "vkGetMemoryWin32HandleNV");
954 #endif
955 #ifdef VK_EXT_conditional_rendering
956     out->vkCmdBeginConditionalRenderingEXT = (PFN_vkCmdBeginConditionalRenderingEXT)dlSymFunc(lib, "vkCmdBeginConditionalRenderingEXT");
957     out->vkCmdEndConditionalRenderingEXT = (PFN_vkCmdEndConditionalRenderingEXT)dlSymFunc(lib, "vkCmdEndConditionalRenderingEXT");
958 #endif
959 #ifdef VK_NV_clip_space_w_scaling
960     out->vkCmdSetViewportWScalingNV = (PFN_vkCmdSetViewportWScalingNV)dlSymFunc(lib, "vkCmdSetViewportWScalingNV");
961 #endif
962 #ifdef VK_EXT_direct_mode_display
963     out->vkReleaseDisplayEXT = (PFN_vkReleaseDisplayEXT)dlSymFunc(lib, "vkReleaseDisplayEXT");
964 #endif
965 #ifdef VK_EXT_acquire_xlib_display
966     out->vkAcquireXlibDisplayEXT = (PFN_vkAcquireXlibDisplayEXT)dlSymFunc(lib, "vkAcquireXlibDisplayEXT");
967     out->vkGetRandROutputDisplayEXT = (PFN_vkGetRandROutputDisplayEXT)dlSymFunc(lib, "vkGetRandROutputDisplayEXT");
968 #endif
969 #ifdef VK_EXT_display_surface_counter
970     out->vkGetPhysicalDeviceSurfaceCapabilities2EXT = (PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)dlSymFunc(lib, "vkGetPhysicalDeviceSurfaceCapabilities2EXT");
971 #endif
972 #ifdef VK_EXT_display_control
973     out->vkDisplayPowerControlEXT = (PFN_vkDisplayPowerControlEXT)dlSymFunc(lib, "vkDisplayPowerControlEXT");
974     out->vkRegisterDeviceEventEXT = (PFN_vkRegisterDeviceEventEXT)dlSymFunc(lib, "vkRegisterDeviceEventEXT");
975     out->vkRegisterDisplayEventEXT = (PFN_vkRegisterDisplayEventEXT)dlSymFunc(lib, "vkRegisterDisplayEventEXT");
976     out->vkGetSwapchainCounterEXT = (PFN_vkGetSwapchainCounterEXT)dlSymFunc(lib, "vkGetSwapchainCounterEXT");
977 #endif
978 #ifdef VK_GOOGLE_display_timing
979     out->vkGetRefreshCycleDurationGOOGLE = (PFN_vkGetRefreshCycleDurationGOOGLE)dlSymFunc(lib, "vkGetRefreshCycleDurationGOOGLE");
980     out->vkGetPastPresentationTimingGOOGLE = (PFN_vkGetPastPresentationTimingGOOGLE)dlSymFunc(lib, "vkGetPastPresentationTimingGOOGLE");
981 #endif
982 #ifdef VK_EXT_discard_rectangles
983     out->vkCmdSetDiscardRectangleEXT = (PFN_vkCmdSetDiscardRectangleEXT)dlSymFunc(lib, "vkCmdSetDiscardRectangleEXT");
984 #endif
985 #ifdef VK_EXT_hdr_metadata
986     out->vkSetHdrMetadataEXT = (PFN_vkSetHdrMetadataEXT)dlSymFunc(lib, "vkSetHdrMetadataEXT");
987 #endif
988 #ifdef VK_EXT_debug_utils
989     out->vkSetDebugUtilsObjectNameEXT = (PFN_vkSetDebugUtilsObjectNameEXT)dlSymFunc(lib, "vkSetDebugUtilsObjectNameEXT");
990     out->vkSetDebugUtilsObjectTagEXT = (PFN_vkSetDebugUtilsObjectTagEXT)dlSymFunc(lib, "vkSetDebugUtilsObjectTagEXT");
991     out->vkQueueBeginDebugUtilsLabelEXT = (PFN_vkQueueBeginDebugUtilsLabelEXT)dlSymFunc(lib, "vkQueueBeginDebugUtilsLabelEXT");
992     out->vkQueueEndDebugUtilsLabelEXT = (PFN_vkQueueEndDebugUtilsLabelEXT)dlSymFunc(lib, "vkQueueEndDebugUtilsLabelEXT");
993     out->vkQueueInsertDebugUtilsLabelEXT = (PFN_vkQueueInsertDebugUtilsLabelEXT)dlSymFunc(lib, "vkQueueInsertDebugUtilsLabelEXT");
994     out->vkCmdBeginDebugUtilsLabelEXT = (PFN_vkCmdBeginDebugUtilsLabelEXT)dlSymFunc(lib, "vkCmdBeginDebugUtilsLabelEXT");
995     out->vkCmdEndDebugUtilsLabelEXT = (PFN_vkCmdEndDebugUtilsLabelEXT)dlSymFunc(lib, "vkCmdEndDebugUtilsLabelEXT");
996     out->vkCmdInsertDebugUtilsLabelEXT = (PFN_vkCmdInsertDebugUtilsLabelEXT)dlSymFunc(lib, "vkCmdInsertDebugUtilsLabelEXT");
997 #endif
998 #ifdef VK_ANDROID_external_memory_android_hardware_buffer
999     out->vkGetAndroidHardwareBufferPropertiesANDROID = (PFN_vkGetAndroidHardwareBufferPropertiesANDROID)dlSymFunc(lib, "vkGetAndroidHardwareBufferPropertiesANDROID");
1000     out->vkGetMemoryAndroidHardwareBufferANDROID = (PFN_vkGetMemoryAndroidHardwareBufferANDROID)dlSymFunc(lib, "vkGetMemoryAndroidHardwareBufferANDROID");
1001 #endif
1002 #ifdef VK_EXT_sample_locations
1003     out->vkCmdSetSampleLocationsEXT = (PFN_vkCmdSetSampleLocationsEXT)dlSymFunc(lib, "vkCmdSetSampleLocationsEXT");
1004     out->vkGetPhysicalDeviceMultisamplePropertiesEXT = (PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT)dlSymFunc(lib, "vkGetPhysicalDeviceMultisamplePropertiesEXT");
1005 #endif
1006 #ifdef VK_EXT_image_drm_format_modifier
1007     out->vkGetImageDrmFormatModifierPropertiesEXT = (PFN_vkGetImageDrmFormatModifierPropertiesEXT)dlSymFunc(lib, "vkGetImageDrmFormatModifierPropertiesEXT");
1008 #endif
1009 #ifdef VK_EXT_validation_cache
1010     out->vkCreateValidationCacheEXT = (PFN_vkCreateValidationCacheEXT)dlSymFunc(lib, "vkCreateValidationCacheEXT");
1011     out->vkDestroyValidationCacheEXT = (PFN_vkDestroyValidationCacheEXT)dlSymFunc(lib, "vkDestroyValidationCacheEXT");
1012     out->vkMergeValidationCachesEXT = (PFN_vkMergeValidationCachesEXT)dlSymFunc(lib, "vkMergeValidationCachesEXT");
1013     out->vkGetValidationCacheDataEXT = (PFN_vkGetValidationCacheDataEXT)dlSymFunc(lib, "vkGetValidationCacheDataEXT");
1014 #endif
1015 #ifdef VK_NV_shading_rate_image
1016     out->vkCmdBindShadingRateImageNV = (PFN_vkCmdBindShadingRateImageNV)dlSymFunc(lib, "vkCmdBindShadingRateImageNV");
1017     out->vkCmdSetViewportShadingRatePaletteNV = (PFN_vkCmdSetViewportShadingRatePaletteNV)dlSymFunc(lib, "vkCmdSetViewportShadingRatePaletteNV");
1018     out->vkCmdSetCoarseSampleOrderNV = (PFN_vkCmdSetCoarseSampleOrderNV)dlSymFunc(lib, "vkCmdSetCoarseSampleOrderNV");
1019 #endif
1020 #ifdef VK_NV_ray_tracing
1021     out->vkCreateAccelerationStructureNV = (PFN_vkCreateAccelerationStructureNV)dlSymFunc(lib, "vkCreateAccelerationStructureNV");
1022     out->vkDestroyAccelerationStructureNV = (PFN_vkDestroyAccelerationStructureNV)dlSymFunc(lib, "vkDestroyAccelerationStructureNV");
1023     out->vkGetAccelerationStructureMemoryRequirementsNV = (PFN_vkGetAccelerationStructureMemoryRequirementsNV)dlSymFunc(lib, "vkGetAccelerationStructureMemoryRequirementsNV");
1024     out->vkBindAccelerationStructureMemoryNV = (PFN_vkBindAccelerationStructureMemoryNV)dlSymFunc(lib, "vkBindAccelerationStructureMemoryNV");
1025     out->vkCmdBuildAccelerationStructureNV = (PFN_vkCmdBuildAccelerationStructureNV)dlSymFunc(lib, "vkCmdBuildAccelerationStructureNV");
1026     out->vkCmdCopyAccelerationStructureNV = (PFN_vkCmdCopyAccelerationStructureNV)dlSymFunc(lib, "vkCmdCopyAccelerationStructureNV");
1027     out->vkCmdTraceRaysNV = (PFN_vkCmdTraceRaysNV)dlSymFunc(lib, "vkCmdTraceRaysNV");
1028     out->vkCreateRayTracingPipelinesNV = (PFN_vkCreateRayTracingPipelinesNV)dlSymFunc(lib, "vkCreateRayTracingPipelinesNV");
1029     out->vkGetRayTracingShaderGroupHandlesKHR = (PFN_vkGetRayTracingShaderGroupHandlesKHR)dlSymFunc(lib, "vkGetRayTracingShaderGroupHandlesKHR");
1030     out->vkGetRayTracingShaderGroupHandlesNV = (PFN_vkGetRayTracingShaderGroupHandlesNV)dlSymFunc(lib, "vkGetRayTracingShaderGroupHandlesNV");
1031     out->vkGetAccelerationStructureHandleNV = (PFN_vkGetAccelerationStructureHandleNV)dlSymFunc(lib, "vkGetAccelerationStructureHandleNV");
1032     out->vkCmdWriteAccelerationStructuresPropertiesNV = (PFN_vkCmdWriteAccelerationStructuresPropertiesNV)dlSymFunc(lib, "vkCmdWriteAccelerationStructuresPropertiesNV");
1033     out->vkCompileDeferredNV = (PFN_vkCompileDeferredNV)dlSymFunc(lib, "vkCompileDeferredNV");
1034 #endif
1035 #ifdef VK_EXT_external_memory_host
1036     out->vkGetMemoryHostPointerPropertiesEXT = (PFN_vkGetMemoryHostPointerPropertiesEXT)dlSymFunc(lib, "vkGetMemoryHostPointerPropertiesEXT");
1037 #endif
1038 #ifdef VK_AMD_buffer_marker
1039     out->vkCmdWriteBufferMarkerAMD = (PFN_vkCmdWriteBufferMarkerAMD)dlSymFunc(lib, "vkCmdWriteBufferMarkerAMD");
1040 #endif
1041 #ifdef VK_EXT_calibrated_timestamps
1042     out->vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = (PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)dlSymFunc(lib, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT");
1043     out->vkGetCalibratedTimestampsEXT = (PFN_vkGetCalibratedTimestampsEXT)dlSymFunc(lib, "vkGetCalibratedTimestampsEXT");
1044 #endif
1045 #ifdef VK_NV_mesh_shader
1046     out->vkCmdDrawMeshTasksNV = (PFN_vkCmdDrawMeshTasksNV)dlSymFunc(lib, "vkCmdDrawMeshTasksNV");
1047     out->vkCmdDrawMeshTasksIndirectNV = (PFN_vkCmdDrawMeshTasksIndirectNV)dlSymFunc(lib, "vkCmdDrawMeshTasksIndirectNV");
1048     out->vkCmdDrawMeshTasksIndirectCountNV = (PFN_vkCmdDrawMeshTasksIndirectCountNV)dlSymFunc(lib, "vkCmdDrawMeshTasksIndirectCountNV");
1049 #endif
1050 #ifdef VK_NV_scissor_exclusive
1051     out->vkCmdSetExclusiveScissorNV = (PFN_vkCmdSetExclusiveScissorNV)dlSymFunc(lib, "vkCmdSetExclusiveScissorNV");
1052 #endif
1053 #ifdef VK_NV_device_diagnostic_checkpoints
1054     out->vkCmdSetCheckpointNV = (PFN_vkCmdSetCheckpointNV)dlSymFunc(lib, "vkCmdSetCheckpointNV");
1055     out->vkGetQueueCheckpointDataNV = (PFN_vkGetQueueCheckpointDataNV)dlSymFunc(lib, "vkGetQueueCheckpointDataNV");
1056 #endif
1057 #ifdef VK_INTEL_performance_query
1058     out->vkInitializePerformanceApiINTEL = (PFN_vkInitializePerformanceApiINTEL)dlSymFunc(lib, "vkInitializePerformanceApiINTEL");
1059     out->vkUninitializePerformanceApiINTEL = (PFN_vkUninitializePerformanceApiINTEL)dlSymFunc(lib, "vkUninitializePerformanceApiINTEL");
1060     out->vkCmdSetPerformanceMarkerINTEL = (PFN_vkCmdSetPerformanceMarkerINTEL)dlSymFunc(lib, "vkCmdSetPerformanceMarkerINTEL");
1061     out->vkCmdSetPerformanceStreamMarkerINTEL = (PFN_vkCmdSetPerformanceStreamMarkerINTEL)dlSymFunc(lib, "vkCmdSetPerformanceStreamMarkerINTEL");
1062     out->vkCmdSetPerformanceOverrideINTEL = (PFN_vkCmdSetPerformanceOverrideINTEL)dlSymFunc(lib, "vkCmdSetPerformanceOverrideINTEL");
1063     out->vkAcquirePerformanceConfigurationINTEL = (PFN_vkAcquirePerformanceConfigurationINTEL)dlSymFunc(lib, "vkAcquirePerformanceConfigurationINTEL");
1064     out->vkReleasePerformanceConfigurationINTEL = (PFN_vkReleasePerformanceConfigurationINTEL)dlSymFunc(lib, "vkReleasePerformanceConfigurationINTEL");
1065     out->vkQueueSetPerformanceConfigurationINTEL = (PFN_vkQueueSetPerformanceConfigurationINTEL)dlSymFunc(lib, "vkQueueSetPerformanceConfigurationINTEL");
1066     out->vkGetPerformanceParameterINTEL = (PFN_vkGetPerformanceParameterINTEL)dlSymFunc(lib, "vkGetPerformanceParameterINTEL");
1067 #endif
1068 #ifdef VK_AMD_display_native_hdr
1069     out->vkSetLocalDimmingAMD = (PFN_vkSetLocalDimmingAMD)dlSymFunc(lib, "vkSetLocalDimmingAMD");
1070 #endif
1071 #ifdef VK_EXT_buffer_device_address
1072     out->vkGetBufferDeviceAddressEXT = (PFN_vkGetBufferDeviceAddressEXT)dlSymFunc(lib, "vkGetBufferDeviceAddressEXT");
1073 #endif
1074 #ifdef VK_EXT_tooling_info
1075     out->vkGetPhysicalDeviceToolPropertiesEXT = (PFN_vkGetPhysicalDeviceToolPropertiesEXT)dlSymFunc(lib, "vkGetPhysicalDeviceToolPropertiesEXT");
1076 #endif
1077 #ifdef VK_NV_cooperative_matrix
1078     out->vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = (PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV)dlSymFunc(lib, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV");
1079 #endif
1080 #ifdef VK_NV_coverage_reduction_mode
1081     out->vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = (PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV)dlSymFunc(lib, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV");
1082 #endif
1083 #ifdef VK_EXT_full_screen_exclusive
1084     out->vkGetPhysicalDeviceSurfacePresentModes2EXT = (PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT)dlSymFunc(lib, "vkGetPhysicalDeviceSurfacePresentModes2EXT");
1085     out->vkAcquireFullScreenExclusiveModeEXT = (PFN_vkAcquireFullScreenExclusiveModeEXT)dlSymFunc(lib, "vkAcquireFullScreenExclusiveModeEXT");
1086     out->vkReleaseFullScreenExclusiveModeEXT = (PFN_vkReleaseFullScreenExclusiveModeEXT)dlSymFunc(lib, "vkReleaseFullScreenExclusiveModeEXT");
1087     out->vkGetDeviceGroupSurfacePresentModes2EXT = (PFN_vkGetDeviceGroupSurfacePresentModes2EXT)dlSymFunc(lib, "vkGetDeviceGroupSurfacePresentModes2EXT");
1088 #endif
1089 #ifdef VK_EXT_line_rasterization
1090     out->vkCmdSetLineStippleEXT = (PFN_vkCmdSetLineStippleEXT)dlSymFunc(lib, "vkCmdSetLineStippleEXT");
1091 #endif
1092 #ifdef VK_EXT_host_query_reset
1093     out->vkResetQueryPoolEXT = (PFN_vkResetQueryPoolEXT)dlSymFunc(lib, "vkResetQueryPoolEXT");
1094 #endif
1095 #ifdef VK_EXT_extended_dynamic_state
1096     out->vkCmdSetCullModeEXT = (PFN_vkCmdSetCullModeEXT)dlSymFunc(lib, "vkCmdSetCullModeEXT");
1097     out->vkCmdSetFrontFaceEXT = (PFN_vkCmdSetFrontFaceEXT)dlSymFunc(lib, "vkCmdSetFrontFaceEXT");
1098     out->vkCmdSetPrimitiveTopologyEXT = (PFN_vkCmdSetPrimitiveTopologyEXT)dlSymFunc(lib, "vkCmdSetPrimitiveTopologyEXT");
1099     out->vkCmdSetViewportWithCountEXT = (PFN_vkCmdSetViewportWithCountEXT)dlSymFunc(lib, "vkCmdSetViewportWithCountEXT");
1100     out->vkCmdSetScissorWithCountEXT = (PFN_vkCmdSetScissorWithCountEXT)dlSymFunc(lib, "vkCmdSetScissorWithCountEXT");
1101     out->vkCmdBindVertexBuffers2EXT = (PFN_vkCmdBindVertexBuffers2EXT)dlSymFunc(lib, "vkCmdBindVertexBuffers2EXT");
1102     out->vkCmdSetDepthTestEnableEXT = (PFN_vkCmdSetDepthTestEnableEXT)dlSymFunc(lib, "vkCmdSetDepthTestEnableEXT");
1103     out->vkCmdSetDepthWriteEnableEXT = (PFN_vkCmdSetDepthWriteEnableEXT)dlSymFunc(lib, "vkCmdSetDepthWriteEnableEXT");
1104     out->vkCmdSetDepthCompareOpEXT = (PFN_vkCmdSetDepthCompareOpEXT)dlSymFunc(lib, "vkCmdSetDepthCompareOpEXT");
1105     out->vkCmdSetDepthBoundsTestEnableEXT = (PFN_vkCmdSetDepthBoundsTestEnableEXT)dlSymFunc(lib, "vkCmdSetDepthBoundsTestEnableEXT");
1106     out->vkCmdSetStencilTestEnableEXT = (PFN_vkCmdSetStencilTestEnableEXT)dlSymFunc(lib, "vkCmdSetStencilTestEnableEXT");
1107     out->vkCmdSetStencilOpEXT = (PFN_vkCmdSetStencilOpEXT)dlSymFunc(lib, "vkCmdSetStencilOpEXT");
1108 #endif
1109 #ifdef VK_NV_device_generated_commands
1110     out->vkGetGeneratedCommandsMemoryRequirementsNV = (PFN_vkGetGeneratedCommandsMemoryRequirementsNV)dlSymFunc(lib, "vkGetGeneratedCommandsMemoryRequirementsNV");
1111     out->vkCmdPreprocessGeneratedCommandsNV = (PFN_vkCmdPreprocessGeneratedCommandsNV)dlSymFunc(lib, "vkCmdPreprocessGeneratedCommandsNV");
1112     out->vkCmdExecuteGeneratedCommandsNV = (PFN_vkCmdExecuteGeneratedCommandsNV)dlSymFunc(lib, "vkCmdExecuteGeneratedCommandsNV");
1113     out->vkCmdBindPipelineShaderGroupNV = (PFN_vkCmdBindPipelineShaderGroupNV)dlSymFunc(lib, "vkCmdBindPipelineShaderGroupNV");
1114     out->vkCreateIndirectCommandsLayoutNV = (PFN_vkCreateIndirectCommandsLayoutNV)dlSymFunc(lib, "vkCreateIndirectCommandsLayoutNV");
1115     out->vkDestroyIndirectCommandsLayoutNV = (PFN_vkDestroyIndirectCommandsLayoutNV)dlSymFunc(lib, "vkDestroyIndirectCommandsLayoutNV");
1116 #endif
1117 #ifdef VK_EXT_private_data
1118     out->vkCreatePrivateDataSlotEXT = (PFN_vkCreatePrivateDataSlotEXT)dlSymFunc(lib, "vkCreatePrivateDataSlotEXT");
1119     out->vkDestroyPrivateDataSlotEXT = (PFN_vkDestroyPrivateDataSlotEXT)dlSymFunc(lib, "vkDestroyPrivateDataSlotEXT");
1120     out->vkSetPrivateDataEXT = (PFN_vkSetPrivateDataEXT)dlSymFunc(lib, "vkSetPrivateDataEXT");
1121     out->vkGetPrivateDataEXT = (PFN_vkGetPrivateDataEXT)dlSymFunc(lib, "vkGetPrivateDataEXT");
1122 #endif
1123 #ifdef VK_NV_fragment_shading_rate_enums
1124     out->vkCmdSetFragmentShadingRateEnumNV = (PFN_vkCmdSetFragmentShadingRateEnumNV)dlSymFunc(lib, "vkCmdSetFragmentShadingRateEnumNV");
1125 #endif
1126 #ifdef VK_EXT_directfb_surface
1127     out->vkGetPhysicalDeviceDirectFBPresentationSupportEXT = (PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT)dlSymFunc(lib, "vkGetPhysicalDeviceDirectFBPresentationSupportEXT");
1128 #endif
1129 #ifdef VK_GOOGLE_gfxstream
1130     out->vkRegisterImageColorBufferGOOGLE = (PFN_vkRegisterImageColorBufferGOOGLE)dlSymFunc(lib, "vkRegisterImageColorBufferGOOGLE");
1131     out->vkRegisterBufferColorBufferGOOGLE = (PFN_vkRegisterBufferColorBufferGOOGLE)dlSymFunc(lib, "vkRegisterBufferColorBufferGOOGLE");
1132     out->vkMapMemoryIntoAddressSpaceGOOGLE = (PFN_vkMapMemoryIntoAddressSpaceGOOGLE)dlSymFunc(lib, "vkMapMemoryIntoAddressSpaceGOOGLE");
1133     out->vkUpdateDescriptorSetWithTemplateSizedGOOGLE = (PFN_vkUpdateDescriptorSetWithTemplateSizedGOOGLE)dlSymFunc(lib, "vkUpdateDescriptorSetWithTemplateSizedGOOGLE");
1134     out->vkBeginCommandBufferAsyncGOOGLE = (PFN_vkBeginCommandBufferAsyncGOOGLE)dlSymFunc(lib, "vkBeginCommandBufferAsyncGOOGLE");
1135     out->vkEndCommandBufferAsyncGOOGLE = (PFN_vkEndCommandBufferAsyncGOOGLE)dlSymFunc(lib, "vkEndCommandBufferAsyncGOOGLE");
1136     out->vkResetCommandBufferAsyncGOOGLE = (PFN_vkResetCommandBufferAsyncGOOGLE)dlSymFunc(lib, "vkResetCommandBufferAsyncGOOGLE");
1137     out->vkCommandBufferHostSyncGOOGLE = (PFN_vkCommandBufferHostSyncGOOGLE)dlSymFunc(lib, "vkCommandBufferHostSyncGOOGLE");
1138     out->vkCreateImageWithRequirementsGOOGLE = (PFN_vkCreateImageWithRequirementsGOOGLE)dlSymFunc(lib, "vkCreateImageWithRequirementsGOOGLE");
1139     out->vkCreateBufferWithRequirementsGOOGLE = (PFN_vkCreateBufferWithRequirementsGOOGLE)dlSymFunc(lib, "vkCreateBufferWithRequirementsGOOGLE");
1140     out->vkGetMemoryHostAddressInfoGOOGLE = (PFN_vkGetMemoryHostAddressInfoGOOGLE)dlSymFunc(lib, "vkGetMemoryHostAddressInfoGOOGLE");
1141     out->vkFreeMemorySyncGOOGLE = (PFN_vkFreeMemorySyncGOOGLE)dlSymFunc(lib, "vkFreeMemorySyncGOOGLE");
1142     out->vkQueueHostSyncGOOGLE = (PFN_vkQueueHostSyncGOOGLE)dlSymFunc(lib, "vkQueueHostSyncGOOGLE");
1143     out->vkQueueSubmitAsyncGOOGLE = (PFN_vkQueueSubmitAsyncGOOGLE)dlSymFunc(lib, "vkQueueSubmitAsyncGOOGLE");
1144     out->vkQueueWaitIdleAsyncGOOGLE = (PFN_vkQueueWaitIdleAsyncGOOGLE)dlSymFunc(lib, "vkQueueWaitIdleAsyncGOOGLE");
1145     out->vkQueueBindSparseAsyncGOOGLE = (PFN_vkQueueBindSparseAsyncGOOGLE)dlSymFunc(lib, "vkQueueBindSparseAsyncGOOGLE");
1146     out->vkGetLinearImageLayoutGOOGLE = (PFN_vkGetLinearImageLayoutGOOGLE)dlSymFunc(lib, "vkGetLinearImageLayoutGOOGLE");
1147     out->vkQueueFlushCommandsGOOGLE = (PFN_vkQueueFlushCommandsGOOGLE)dlSymFunc(lib, "vkQueueFlushCommandsGOOGLE");
1148     out->vkQueueCommitDescriptorSetUpdatesGOOGLE = (PFN_vkQueueCommitDescriptorSetUpdatesGOOGLE)dlSymFunc(lib, "vkQueueCommitDescriptorSetUpdatesGOOGLE");
1149     out->vkCollectDescriptorPoolIdsGOOGLE = (PFN_vkCollectDescriptorPoolIdsGOOGLE)dlSymFunc(lib, "vkCollectDescriptorPoolIdsGOOGLE");
1150 #endif
1151 #ifdef VK_KHR_acceleration_structure
1152     out->vkCreateAccelerationStructureKHR = (PFN_vkCreateAccelerationStructureKHR)dlSymFunc(lib, "vkCreateAccelerationStructureKHR");
1153     out->vkDestroyAccelerationStructureKHR = (PFN_vkDestroyAccelerationStructureKHR)dlSymFunc(lib, "vkDestroyAccelerationStructureKHR");
1154     out->vkCmdBuildAccelerationStructuresKHR = (PFN_vkCmdBuildAccelerationStructuresKHR)dlSymFunc(lib, "vkCmdBuildAccelerationStructuresKHR");
1155     out->vkCmdBuildAccelerationStructuresIndirectKHR = (PFN_vkCmdBuildAccelerationStructuresIndirectKHR)dlSymFunc(lib, "vkCmdBuildAccelerationStructuresIndirectKHR");
1156     out->vkBuildAccelerationStructuresKHR = (PFN_vkBuildAccelerationStructuresKHR)dlSymFunc(lib, "vkBuildAccelerationStructuresKHR");
1157     out->vkCopyAccelerationStructureKHR = (PFN_vkCopyAccelerationStructureKHR)dlSymFunc(lib, "vkCopyAccelerationStructureKHR");
1158     out->vkCopyAccelerationStructureToMemoryKHR = (PFN_vkCopyAccelerationStructureToMemoryKHR)dlSymFunc(lib, "vkCopyAccelerationStructureToMemoryKHR");
1159     out->vkCopyMemoryToAccelerationStructureKHR = (PFN_vkCopyMemoryToAccelerationStructureKHR)dlSymFunc(lib, "vkCopyMemoryToAccelerationStructureKHR");
1160     out->vkWriteAccelerationStructuresPropertiesKHR = (PFN_vkWriteAccelerationStructuresPropertiesKHR)dlSymFunc(lib, "vkWriteAccelerationStructuresPropertiesKHR");
1161     out->vkCmdCopyAccelerationStructureKHR = (PFN_vkCmdCopyAccelerationStructureKHR)dlSymFunc(lib, "vkCmdCopyAccelerationStructureKHR");
1162     out->vkCmdCopyAccelerationStructureToMemoryKHR = (PFN_vkCmdCopyAccelerationStructureToMemoryKHR)dlSymFunc(lib, "vkCmdCopyAccelerationStructureToMemoryKHR");
1163     out->vkCmdCopyMemoryToAccelerationStructureKHR = (PFN_vkCmdCopyMemoryToAccelerationStructureKHR)dlSymFunc(lib, "vkCmdCopyMemoryToAccelerationStructureKHR");
1164     out->vkGetAccelerationStructureDeviceAddressKHR = (PFN_vkGetAccelerationStructureDeviceAddressKHR)dlSymFunc(lib, "vkGetAccelerationStructureDeviceAddressKHR");
1165     out->vkCmdWriteAccelerationStructuresPropertiesKHR = (PFN_vkCmdWriteAccelerationStructuresPropertiesKHR)dlSymFunc(lib, "vkCmdWriteAccelerationStructuresPropertiesKHR");
1166     out->vkGetDeviceAccelerationStructureCompatibilityKHR = (PFN_vkGetDeviceAccelerationStructureCompatibilityKHR)dlSymFunc(lib, "vkGetDeviceAccelerationStructureCompatibilityKHR");
1167     out->vkGetAccelerationStructureBuildSizesKHR = (PFN_vkGetAccelerationStructureBuildSizesKHR)dlSymFunc(lib, "vkGetAccelerationStructureBuildSizesKHR");
1168 #endif
1169 #ifdef VK_KHR_ray_tracing_pipeline
1170     out->vkCmdTraceRaysKHR = (PFN_vkCmdTraceRaysKHR)dlSymFunc(lib, "vkCmdTraceRaysKHR");
1171     out->vkCreateRayTracingPipelinesKHR = (PFN_vkCreateRayTracingPipelinesKHR)dlSymFunc(lib, "vkCreateRayTracingPipelinesKHR");
1172     out->vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = (PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR)dlSymFunc(lib, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR");
1173     out->vkCmdTraceRaysIndirectKHR = (PFN_vkCmdTraceRaysIndirectKHR)dlSymFunc(lib, "vkCmdTraceRaysIndirectKHR");
1174     out->vkGetRayTracingShaderGroupStackSizeKHR = (PFN_vkGetRayTracingShaderGroupStackSizeKHR)dlSymFunc(lib, "vkGetRayTracingShaderGroupStackSizeKHR");
1175     out->vkCmdSetRayTracingPipelineStackSizeKHR = (PFN_vkCmdSetRayTracingPipelineStackSizeKHR)dlSymFunc(lib, "vkCmdSetRayTracingPipelineStackSizeKHR");
1176 #endif
1177 #ifdef VK_VERSION_1_0
1178     out->vkDestroyInstance = (PFN_vkDestroyInstance)dlSymFunc(lib, "vkDestroyInstance");
1179     out->vkEnumeratePhysicalDevices = (PFN_vkEnumeratePhysicalDevices)dlSymFunc(lib, "vkEnumeratePhysicalDevices");
1180     out->vkGetPhysicalDeviceFeatures = (PFN_vkGetPhysicalDeviceFeatures)dlSymFunc(lib, "vkGetPhysicalDeviceFeatures");
1181     out->vkGetPhysicalDeviceFormatProperties = (PFN_vkGetPhysicalDeviceFormatProperties)dlSymFunc(lib, "vkGetPhysicalDeviceFormatProperties");
1182     out->vkGetPhysicalDeviceImageFormatProperties = (PFN_vkGetPhysicalDeviceImageFormatProperties)dlSymFunc(lib, "vkGetPhysicalDeviceImageFormatProperties");
1183     out->vkGetPhysicalDeviceProperties = (PFN_vkGetPhysicalDeviceProperties)dlSymFunc(lib, "vkGetPhysicalDeviceProperties");
1184     out->vkGetPhysicalDeviceQueueFamilyProperties = (PFN_vkGetPhysicalDeviceQueueFamilyProperties)dlSymFunc(lib, "vkGetPhysicalDeviceQueueFamilyProperties");
1185     out->vkGetPhysicalDeviceMemoryProperties = (PFN_vkGetPhysicalDeviceMemoryProperties)dlSymFunc(lib, "vkGetPhysicalDeviceMemoryProperties");
1186     out->vkGetInstanceProcAddr = (PFN_vkGetInstanceProcAddr)dlSymFunc(lib, "vkGetInstanceProcAddr");
1187     out->vkCreateDevice = (PFN_vkCreateDevice)dlSymFunc(lib, "vkCreateDevice");
1188     out->vkDestroyDevice = (PFN_vkDestroyDevice)dlSymFunc(lib, "vkDestroyDevice");
1189     out->vkEnumerateDeviceExtensionProperties = (PFN_vkEnumerateDeviceExtensionProperties)dlSymFunc(lib, "vkEnumerateDeviceExtensionProperties");
1190     out->vkEnumerateDeviceLayerProperties = (PFN_vkEnumerateDeviceLayerProperties)dlSymFunc(lib, "vkEnumerateDeviceLayerProperties");
1191     out->vkDestroyInstance = (PFN_vkDestroyInstance)dlSymFunc(lib, "vkDestroyInstance");
1192     out->vkEnumeratePhysicalDevices = (PFN_vkEnumeratePhysicalDevices)dlSymFunc(lib, "vkEnumeratePhysicalDevices");
1193     out->vkGetPhysicalDeviceFeatures = (PFN_vkGetPhysicalDeviceFeatures)dlSymFunc(lib, "vkGetPhysicalDeviceFeatures");
1194     out->vkGetPhysicalDeviceFormatProperties = (PFN_vkGetPhysicalDeviceFormatProperties)dlSymFunc(lib, "vkGetPhysicalDeviceFormatProperties");
1195     out->vkGetPhysicalDeviceImageFormatProperties = (PFN_vkGetPhysicalDeviceImageFormatProperties)dlSymFunc(lib, "vkGetPhysicalDeviceImageFormatProperties");
1196     out->vkGetPhysicalDeviceProperties = (PFN_vkGetPhysicalDeviceProperties)dlSymFunc(lib, "vkGetPhysicalDeviceProperties");
1197     out->vkGetPhysicalDeviceQueueFamilyProperties = (PFN_vkGetPhysicalDeviceQueueFamilyProperties)dlSymFunc(lib, "vkGetPhysicalDeviceQueueFamilyProperties");
1198     out->vkGetPhysicalDeviceMemoryProperties = (PFN_vkGetPhysicalDeviceMemoryProperties)dlSymFunc(lib, "vkGetPhysicalDeviceMemoryProperties");
1199     out->vkGetInstanceProcAddr = (PFN_vkGetInstanceProcAddr)dlSymFunc(lib, "vkGetInstanceProcAddr");
1200     out->vkCreateDevice = (PFN_vkCreateDevice)dlSymFunc(lib, "vkCreateDevice");
1201     out->vkDestroyDevice = (PFN_vkDestroyDevice)dlSymFunc(lib, "vkDestroyDevice");
1202     out->vkEnumerateDeviceExtensionProperties = (PFN_vkEnumerateDeviceExtensionProperties)dlSymFunc(lib, "vkEnumerateDeviceExtensionProperties");
1203     out->vkEnumerateDeviceLayerProperties = (PFN_vkEnumerateDeviceLayerProperties)dlSymFunc(lib, "vkEnumerateDeviceLayerProperties");
1204 #endif
1205 }
1206 
init_vulkan_dispatch_from_instance(VulkanDispatch * vk,VkInstance instance,VulkanDispatch * out)1207 void init_vulkan_dispatch_from_instance(
1208     VulkanDispatch* vk,
1209     VkInstance instance,
1210     VulkanDispatch* out)
1211 {
1212     memset(out, 0x0, sizeof(VulkanDispatch));
1213 #ifdef VK_VERSION_1_0
1214     out->vkDestroyInstance = (PFN_vkDestroyInstance)vk->vkGetInstanceProcAddr(instance, "vkDestroyInstance");
1215     out->vkEnumeratePhysicalDevices = (PFN_vkEnumeratePhysicalDevices)vk->vkGetInstanceProcAddr(instance, "vkEnumeratePhysicalDevices");
1216     out->vkGetPhysicalDeviceFeatures = (PFN_vkGetPhysicalDeviceFeatures)vk->vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceFeatures");
1217     out->vkGetPhysicalDeviceFormatProperties = (PFN_vkGetPhysicalDeviceFormatProperties)vk->vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceFormatProperties");
1218     out->vkGetPhysicalDeviceImageFormatProperties = (PFN_vkGetPhysicalDeviceImageFormatProperties)vk->vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceImageFormatProperties");
1219     out->vkGetPhysicalDeviceProperties = (PFN_vkGetPhysicalDeviceProperties)vk->vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceProperties");
1220     out->vkGetPhysicalDeviceQueueFamilyProperties = (PFN_vkGetPhysicalDeviceQueueFamilyProperties)vk->vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceQueueFamilyProperties");
1221     out->vkGetPhysicalDeviceMemoryProperties = (PFN_vkGetPhysicalDeviceMemoryProperties)vk->vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceMemoryProperties");
1222     out->vkGetInstanceProcAddr = (PFN_vkGetInstanceProcAddr)vk->vkGetInstanceProcAddr(instance, "vkGetInstanceProcAddr");
1223     out->vkCreateDevice = (PFN_vkCreateDevice)vk->vkGetInstanceProcAddr(instance, "vkCreateDevice");
1224     out->vkDestroyDevice = (PFN_vkDestroyDevice)vk->vkGetInstanceProcAddr(instance, "vkDestroyDevice");
1225     out->vkEnumerateDeviceExtensionProperties = (PFN_vkEnumerateDeviceExtensionProperties)vk->vkGetInstanceProcAddr(instance, "vkEnumerateDeviceExtensionProperties");
1226     out->vkEnumerateDeviceLayerProperties = (PFN_vkEnumerateDeviceLayerProperties)vk->vkGetInstanceProcAddr(instance, "vkEnumerateDeviceLayerProperties");
1227     out->vkCreateInstance = (PFN_vkCreateInstance)vk->vkGetInstanceProcAddr(instance, "vkCreateInstance");
1228     out->vkEnumerateInstanceExtensionProperties = (PFN_vkEnumerateInstanceExtensionProperties)vk->vkGetInstanceProcAddr(instance, "vkEnumerateInstanceExtensionProperties");
1229     out->vkEnumerateInstanceLayerProperties = (PFN_vkEnumerateInstanceLayerProperties)vk->vkGetInstanceProcAddr(instance, "vkEnumerateInstanceLayerProperties");
1230     out->vkGetDeviceProcAddr = (PFN_vkGetDeviceProcAddr)vk->vkGetInstanceProcAddr(instance, "vkGetDeviceProcAddr");
1231     out->vkGetPhysicalDeviceSparseImageFormatProperties = (PFN_vkGetPhysicalDeviceSparseImageFormatProperties)vk->vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSparseImageFormatProperties");
1232 #endif
1233 #ifdef VK_VERSION_1_1
1234     out->vkEnumerateInstanceVersion = (PFN_vkEnumerateInstanceVersion)vk->vkGetInstanceProcAddr(instance, "vkEnumerateInstanceVersion");
1235     out->vkEnumeratePhysicalDeviceGroups = (PFN_vkEnumeratePhysicalDeviceGroups)vk->vkGetInstanceProcAddr(instance, "vkEnumeratePhysicalDeviceGroups");
1236     out->vkGetPhysicalDeviceFeatures2 = (PFN_vkGetPhysicalDeviceFeatures2)vk->vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceFeatures2");
1237     out->vkGetPhysicalDeviceProperties2 = (PFN_vkGetPhysicalDeviceProperties2)vk->vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceProperties2");
1238     out->vkGetPhysicalDeviceFormatProperties2 = (PFN_vkGetPhysicalDeviceFormatProperties2)vk->vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceFormatProperties2");
1239     out->vkGetPhysicalDeviceImageFormatProperties2 = (PFN_vkGetPhysicalDeviceImageFormatProperties2)vk->vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceImageFormatProperties2");
1240     out->vkGetPhysicalDeviceQueueFamilyProperties2 = (PFN_vkGetPhysicalDeviceQueueFamilyProperties2)vk->vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceQueueFamilyProperties2");
1241     out->vkGetPhysicalDeviceMemoryProperties2 = (PFN_vkGetPhysicalDeviceMemoryProperties2)vk->vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceMemoryProperties2");
1242     out->vkGetPhysicalDeviceSparseImageFormatProperties2 = (PFN_vkGetPhysicalDeviceSparseImageFormatProperties2)vk->vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSparseImageFormatProperties2");
1243     out->vkGetPhysicalDeviceExternalBufferProperties = (PFN_vkGetPhysicalDeviceExternalBufferProperties)vk->vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceExternalBufferProperties");
1244     out->vkGetPhysicalDeviceExternalFenceProperties = (PFN_vkGetPhysicalDeviceExternalFenceProperties)vk->vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceExternalFenceProperties");
1245     out->vkGetPhysicalDeviceExternalSemaphoreProperties = (PFN_vkGetPhysicalDeviceExternalSemaphoreProperties)vk->vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceExternalSemaphoreProperties");
1246 #endif
1247 #ifdef VK_KHR_surface
1248     out->vkDestroySurfaceKHR = (PFN_vkDestroySurfaceKHR)vk->vkGetInstanceProcAddr(instance, "vkDestroySurfaceKHR");
1249 #endif
1250 #ifdef VK_KHR_swapchain
1251     out->vkCreateSwapchainKHR = (PFN_vkCreateSwapchainKHR)vk->vkGetInstanceProcAddr(instance, "vkCreateSwapchainKHR");
1252     out->vkDestroySwapchainKHR = (PFN_vkDestroySwapchainKHR)vk->vkGetInstanceProcAddr(instance, "vkDestroySwapchainKHR");
1253     out->vkGetSwapchainImagesKHR = (PFN_vkGetSwapchainImagesKHR)vk->vkGetInstanceProcAddr(instance, "vkGetSwapchainImagesKHR");
1254     out->vkAcquireNextImageKHR = (PFN_vkAcquireNextImageKHR)vk->vkGetInstanceProcAddr(instance, "vkAcquireNextImageKHR");
1255     out->vkQueuePresentKHR = (PFN_vkQueuePresentKHR)vk->vkGetInstanceProcAddr(instance, "vkQueuePresentKHR");
1256 #endif
1257 #ifdef VK_KHR_display
1258     out->vkCreateDisplayPlaneSurfaceKHR = (PFN_vkCreateDisplayPlaneSurfaceKHR)vk->vkGetInstanceProcAddr(instance, "vkCreateDisplayPlaneSurfaceKHR");
1259 #endif
1260 #ifdef VK_KHR_xlib_surface
1261     out->vkCreateXlibSurfaceKHR = (PFN_vkCreateXlibSurfaceKHR)vk->vkGetInstanceProcAddr(instance, "vkCreateXlibSurfaceKHR");
1262     out->vkGetPhysicalDeviceXlibPresentationSupportKHR = (PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR)vk->vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceXlibPresentationSupportKHR");
1263 #endif
1264 #ifdef VK_KHR_xcb_surface
1265     out->vkCreateXcbSurfaceKHR = (PFN_vkCreateXcbSurfaceKHR)vk->vkGetInstanceProcAddr(instance, "vkCreateXcbSurfaceKHR");
1266     out->vkGetPhysicalDeviceXcbPresentationSupportKHR = (PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR)vk->vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceXcbPresentationSupportKHR");
1267 #endif
1268 #ifdef VK_KHR_wayland_surface
1269     out->vkCreateWaylandSurfaceKHR = (PFN_vkCreateWaylandSurfaceKHR)vk->vkGetInstanceProcAddr(instance, "vkCreateWaylandSurfaceKHR");
1270 #endif
1271 #ifdef VK_KHR_android_surface
1272     out->vkCreateAndroidSurfaceKHR = (PFN_vkCreateAndroidSurfaceKHR)vk->vkGetInstanceProcAddr(instance, "vkCreateAndroidSurfaceKHR");
1273 #endif
1274 #ifdef VK_KHR_win32_surface
1275     out->vkCreateWin32SurfaceKHR = (PFN_vkCreateWin32SurfaceKHR)vk->vkGetInstanceProcAddr(instance, "vkCreateWin32SurfaceKHR");
1276     out->vkGetPhysicalDeviceWin32PresentationSupportKHR = (PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)vk->vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceWin32PresentationSupportKHR");
1277 #endif
1278 #ifdef VK_KHR_device_group_creation
1279     out->vkEnumeratePhysicalDeviceGroupsKHR = (PFN_vkEnumeratePhysicalDeviceGroupsKHR)vk->vkGetInstanceProcAddr(instance, "vkEnumeratePhysicalDeviceGroupsKHR");
1280 #endif
1281 #ifdef VK_EXT_debug_report
1282     out->vkCreateDebugReportCallbackEXT = (PFN_vkCreateDebugReportCallbackEXT)vk->vkGetInstanceProcAddr(instance, "vkCreateDebugReportCallbackEXT");
1283     out->vkDestroyDebugReportCallbackEXT = (PFN_vkDestroyDebugReportCallbackEXT)vk->vkGetInstanceProcAddr(instance, "vkDestroyDebugReportCallbackEXT");
1284     out->vkDebugReportMessageEXT = (PFN_vkDebugReportMessageEXT)vk->vkGetInstanceProcAddr(instance, "vkDebugReportMessageEXT");
1285 #endif
1286 #ifdef VK_GGP_stream_descriptor_surface
1287     out->vkCreateStreamDescriptorSurfaceGGP = (PFN_vkCreateStreamDescriptorSurfaceGGP)vk->vkGetInstanceProcAddr(instance, "vkCreateStreamDescriptorSurfaceGGP");
1288 #endif
1289 #ifdef VK_NN_vi_surface
1290     out->vkCreateViSurfaceNN = (PFN_vkCreateViSurfaceNN)vk->vkGetInstanceProcAddr(instance, "vkCreateViSurfaceNN");
1291 #endif
1292 #ifdef VK_MVK_ios_surface
1293     out->vkCreateIOSSurfaceMVK = (PFN_vkCreateIOSSurfaceMVK)vk->vkGetInstanceProcAddr(instance, "vkCreateIOSSurfaceMVK");
1294 #endif
1295 #ifdef VK_MVK_macos_surface
1296     out->vkCreateMacOSSurfaceMVK = (PFN_vkCreateMacOSSurfaceMVK)vk->vkGetInstanceProcAddr(instance, "vkCreateMacOSSurfaceMVK");
1297 #endif
1298 #ifdef VK_EXT_debug_utils
1299     out->vkCreateDebugUtilsMessengerEXT = (PFN_vkCreateDebugUtilsMessengerEXT)vk->vkGetInstanceProcAddr(instance, "vkCreateDebugUtilsMessengerEXT");
1300     out->vkDestroyDebugUtilsMessengerEXT = (PFN_vkDestroyDebugUtilsMessengerEXT)vk->vkGetInstanceProcAddr(instance, "vkDestroyDebugUtilsMessengerEXT");
1301     out->vkSubmitDebugUtilsMessageEXT = (PFN_vkSubmitDebugUtilsMessageEXT)vk->vkGetInstanceProcAddr(instance, "vkSubmitDebugUtilsMessageEXT");
1302 #endif
1303 #ifdef VK_FUCHSIA_imagepipe_surface
1304     out->vkCreateImagePipeSurfaceFUCHSIA = (PFN_vkCreateImagePipeSurfaceFUCHSIA)vk->vkGetInstanceProcAddr(instance, "vkCreateImagePipeSurfaceFUCHSIA");
1305 #endif
1306 #ifdef VK_EXT_metal_surface
1307     out->vkCreateMetalSurfaceEXT = (PFN_vkCreateMetalSurfaceEXT)vk->vkGetInstanceProcAddr(instance, "vkCreateMetalSurfaceEXT");
1308 #endif
1309 #ifdef VK_EXT_headless_surface
1310     out->vkCreateHeadlessSurfaceEXT = (PFN_vkCreateHeadlessSurfaceEXT)vk->vkGetInstanceProcAddr(instance, "vkCreateHeadlessSurfaceEXT");
1311 #endif
1312 #ifdef VK_EXT_directfb_surface
1313     out->vkCreateDirectFBSurfaceEXT = (PFN_vkCreateDirectFBSurfaceEXT)vk->vkGetInstanceProcAddr(instance, "vkCreateDirectFBSurfaceEXT");
1314 #endif
1315 #ifdef VK_VERSION_1_0
1316     out->vkGetDeviceQueue = (PFN_vkGetDeviceQueue)vk->vkGetInstanceProcAddr(instance, "vkGetDeviceQueue");
1317     out->vkQueueSubmit = (PFN_vkQueueSubmit)vk->vkGetInstanceProcAddr(instance, "vkQueueSubmit");
1318     out->vkQueueWaitIdle = (PFN_vkQueueWaitIdle)vk->vkGetInstanceProcAddr(instance, "vkQueueWaitIdle");
1319     out->vkDeviceWaitIdle = (PFN_vkDeviceWaitIdle)vk->vkGetInstanceProcAddr(instance, "vkDeviceWaitIdle");
1320     out->vkAllocateMemory = (PFN_vkAllocateMemory)vk->vkGetInstanceProcAddr(instance, "vkAllocateMemory");
1321     out->vkFreeMemory = (PFN_vkFreeMemory)vk->vkGetInstanceProcAddr(instance, "vkFreeMemory");
1322     out->vkMapMemory = (PFN_vkMapMemory)vk->vkGetInstanceProcAddr(instance, "vkMapMemory");
1323     out->vkUnmapMemory = (PFN_vkUnmapMemory)vk->vkGetInstanceProcAddr(instance, "vkUnmapMemory");
1324     out->vkFlushMappedMemoryRanges = (PFN_vkFlushMappedMemoryRanges)vk->vkGetInstanceProcAddr(instance, "vkFlushMappedMemoryRanges");
1325     out->vkInvalidateMappedMemoryRanges = (PFN_vkInvalidateMappedMemoryRanges)vk->vkGetInstanceProcAddr(instance, "vkInvalidateMappedMemoryRanges");
1326     out->vkGetDeviceMemoryCommitment = (PFN_vkGetDeviceMemoryCommitment)vk->vkGetInstanceProcAddr(instance, "vkGetDeviceMemoryCommitment");
1327     out->vkBindBufferMemory = (PFN_vkBindBufferMemory)vk->vkGetInstanceProcAddr(instance, "vkBindBufferMemory");
1328     out->vkBindImageMemory = (PFN_vkBindImageMemory)vk->vkGetInstanceProcAddr(instance, "vkBindImageMemory");
1329     out->vkGetBufferMemoryRequirements = (PFN_vkGetBufferMemoryRequirements)vk->vkGetInstanceProcAddr(instance, "vkGetBufferMemoryRequirements");
1330     out->vkGetImageMemoryRequirements = (PFN_vkGetImageMemoryRequirements)vk->vkGetInstanceProcAddr(instance, "vkGetImageMemoryRequirements");
1331     out->vkGetImageSparseMemoryRequirements = (PFN_vkGetImageSparseMemoryRequirements)vk->vkGetInstanceProcAddr(instance, "vkGetImageSparseMemoryRequirements");
1332     out->vkQueueBindSparse = (PFN_vkQueueBindSparse)vk->vkGetInstanceProcAddr(instance, "vkQueueBindSparse");
1333     out->vkCreateFence = (PFN_vkCreateFence)vk->vkGetInstanceProcAddr(instance, "vkCreateFence");
1334     out->vkDestroyFence = (PFN_vkDestroyFence)vk->vkGetInstanceProcAddr(instance, "vkDestroyFence");
1335     out->vkResetFences = (PFN_vkResetFences)vk->vkGetInstanceProcAddr(instance, "vkResetFences");
1336     out->vkGetFenceStatus = (PFN_vkGetFenceStatus)vk->vkGetInstanceProcAddr(instance, "vkGetFenceStatus");
1337     out->vkWaitForFences = (PFN_vkWaitForFences)vk->vkGetInstanceProcAddr(instance, "vkWaitForFences");
1338     out->vkCreateSemaphore = (PFN_vkCreateSemaphore)vk->vkGetInstanceProcAddr(instance, "vkCreateSemaphore");
1339     out->vkDestroySemaphore = (PFN_vkDestroySemaphore)vk->vkGetInstanceProcAddr(instance, "vkDestroySemaphore");
1340     out->vkCreateEvent = (PFN_vkCreateEvent)vk->vkGetInstanceProcAddr(instance, "vkCreateEvent");
1341     out->vkDestroyEvent = (PFN_vkDestroyEvent)vk->vkGetInstanceProcAddr(instance, "vkDestroyEvent");
1342     out->vkGetEventStatus = (PFN_vkGetEventStatus)vk->vkGetInstanceProcAddr(instance, "vkGetEventStatus");
1343     out->vkSetEvent = (PFN_vkSetEvent)vk->vkGetInstanceProcAddr(instance, "vkSetEvent");
1344     out->vkResetEvent = (PFN_vkResetEvent)vk->vkGetInstanceProcAddr(instance, "vkResetEvent");
1345     out->vkCreateQueryPool = (PFN_vkCreateQueryPool)vk->vkGetInstanceProcAddr(instance, "vkCreateQueryPool");
1346     out->vkDestroyQueryPool = (PFN_vkDestroyQueryPool)vk->vkGetInstanceProcAddr(instance, "vkDestroyQueryPool");
1347     out->vkGetQueryPoolResults = (PFN_vkGetQueryPoolResults)vk->vkGetInstanceProcAddr(instance, "vkGetQueryPoolResults");
1348     out->vkCreateBuffer = (PFN_vkCreateBuffer)vk->vkGetInstanceProcAddr(instance, "vkCreateBuffer");
1349     out->vkDestroyBuffer = (PFN_vkDestroyBuffer)vk->vkGetInstanceProcAddr(instance, "vkDestroyBuffer");
1350     out->vkCreateBufferView = (PFN_vkCreateBufferView)vk->vkGetInstanceProcAddr(instance, "vkCreateBufferView");
1351     out->vkDestroyBufferView = (PFN_vkDestroyBufferView)vk->vkGetInstanceProcAddr(instance, "vkDestroyBufferView");
1352     out->vkCreateImage = (PFN_vkCreateImage)vk->vkGetInstanceProcAddr(instance, "vkCreateImage");
1353     out->vkDestroyImage = (PFN_vkDestroyImage)vk->vkGetInstanceProcAddr(instance, "vkDestroyImage");
1354     out->vkGetImageSubresourceLayout = (PFN_vkGetImageSubresourceLayout)vk->vkGetInstanceProcAddr(instance, "vkGetImageSubresourceLayout");
1355     out->vkCreateImageView = (PFN_vkCreateImageView)vk->vkGetInstanceProcAddr(instance, "vkCreateImageView");
1356     out->vkDestroyImageView = (PFN_vkDestroyImageView)vk->vkGetInstanceProcAddr(instance, "vkDestroyImageView");
1357     out->vkCreateShaderModule = (PFN_vkCreateShaderModule)vk->vkGetInstanceProcAddr(instance, "vkCreateShaderModule");
1358     out->vkDestroyShaderModule = (PFN_vkDestroyShaderModule)vk->vkGetInstanceProcAddr(instance, "vkDestroyShaderModule");
1359     out->vkCreatePipelineCache = (PFN_vkCreatePipelineCache)vk->vkGetInstanceProcAddr(instance, "vkCreatePipelineCache");
1360     out->vkDestroyPipelineCache = (PFN_vkDestroyPipelineCache)vk->vkGetInstanceProcAddr(instance, "vkDestroyPipelineCache");
1361     out->vkGetPipelineCacheData = (PFN_vkGetPipelineCacheData)vk->vkGetInstanceProcAddr(instance, "vkGetPipelineCacheData");
1362     out->vkMergePipelineCaches = (PFN_vkMergePipelineCaches)vk->vkGetInstanceProcAddr(instance, "vkMergePipelineCaches");
1363     out->vkCreateGraphicsPipelines = (PFN_vkCreateGraphicsPipelines)vk->vkGetInstanceProcAddr(instance, "vkCreateGraphicsPipelines");
1364     out->vkCreateComputePipelines = (PFN_vkCreateComputePipelines)vk->vkGetInstanceProcAddr(instance, "vkCreateComputePipelines");
1365     out->vkDestroyPipeline = (PFN_vkDestroyPipeline)vk->vkGetInstanceProcAddr(instance, "vkDestroyPipeline");
1366     out->vkCreatePipelineLayout = (PFN_vkCreatePipelineLayout)vk->vkGetInstanceProcAddr(instance, "vkCreatePipelineLayout");
1367     out->vkDestroyPipelineLayout = (PFN_vkDestroyPipelineLayout)vk->vkGetInstanceProcAddr(instance, "vkDestroyPipelineLayout");
1368     out->vkCreateSampler = (PFN_vkCreateSampler)vk->vkGetInstanceProcAddr(instance, "vkCreateSampler");
1369     out->vkDestroySampler = (PFN_vkDestroySampler)vk->vkGetInstanceProcAddr(instance, "vkDestroySampler");
1370     out->vkCreateDescriptorSetLayout = (PFN_vkCreateDescriptorSetLayout)vk->vkGetInstanceProcAddr(instance, "vkCreateDescriptorSetLayout");
1371     out->vkDestroyDescriptorSetLayout = (PFN_vkDestroyDescriptorSetLayout)vk->vkGetInstanceProcAddr(instance, "vkDestroyDescriptorSetLayout");
1372     out->vkCreateDescriptorPool = (PFN_vkCreateDescriptorPool)vk->vkGetInstanceProcAddr(instance, "vkCreateDescriptorPool");
1373     out->vkDestroyDescriptorPool = (PFN_vkDestroyDescriptorPool)vk->vkGetInstanceProcAddr(instance, "vkDestroyDescriptorPool");
1374     out->vkResetDescriptorPool = (PFN_vkResetDescriptorPool)vk->vkGetInstanceProcAddr(instance, "vkResetDescriptorPool");
1375     out->vkAllocateDescriptorSets = (PFN_vkAllocateDescriptorSets)vk->vkGetInstanceProcAddr(instance, "vkAllocateDescriptorSets");
1376     out->vkFreeDescriptorSets = (PFN_vkFreeDescriptorSets)vk->vkGetInstanceProcAddr(instance, "vkFreeDescriptorSets");
1377     out->vkUpdateDescriptorSets = (PFN_vkUpdateDescriptorSets)vk->vkGetInstanceProcAddr(instance, "vkUpdateDescriptorSets");
1378     out->vkCreateFramebuffer = (PFN_vkCreateFramebuffer)vk->vkGetInstanceProcAddr(instance, "vkCreateFramebuffer");
1379     out->vkDestroyFramebuffer = (PFN_vkDestroyFramebuffer)vk->vkGetInstanceProcAddr(instance, "vkDestroyFramebuffer");
1380     out->vkCreateRenderPass = (PFN_vkCreateRenderPass)vk->vkGetInstanceProcAddr(instance, "vkCreateRenderPass");
1381     out->vkDestroyRenderPass = (PFN_vkDestroyRenderPass)vk->vkGetInstanceProcAddr(instance, "vkDestroyRenderPass");
1382     out->vkGetRenderAreaGranularity = (PFN_vkGetRenderAreaGranularity)vk->vkGetInstanceProcAddr(instance, "vkGetRenderAreaGranularity");
1383     out->vkCreateCommandPool = (PFN_vkCreateCommandPool)vk->vkGetInstanceProcAddr(instance, "vkCreateCommandPool");
1384     out->vkDestroyCommandPool = (PFN_vkDestroyCommandPool)vk->vkGetInstanceProcAddr(instance, "vkDestroyCommandPool");
1385     out->vkResetCommandPool = (PFN_vkResetCommandPool)vk->vkGetInstanceProcAddr(instance, "vkResetCommandPool");
1386     out->vkAllocateCommandBuffers = (PFN_vkAllocateCommandBuffers)vk->vkGetInstanceProcAddr(instance, "vkAllocateCommandBuffers");
1387     out->vkFreeCommandBuffers = (PFN_vkFreeCommandBuffers)vk->vkGetInstanceProcAddr(instance, "vkFreeCommandBuffers");
1388     out->vkBeginCommandBuffer = (PFN_vkBeginCommandBuffer)vk->vkGetInstanceProcAddr(instance, "vkBeginCommandBuffer");
1389     out->vkEndCommandBuffer = (PFN_vkEndCommandBuffer)vk->vkGetInstanceProcAddr(instance, "vkEndCommandBuffer");
1390     out->vkResetCommandBuffer = (PFN_vkResetCommandBuffer)vk->vkGetInstanceProcAddr(instance, "vkResetCommandBuffer");
1391     out->vkCmdBindPipeline = (PFN_vkCmdBindPipeline)vk->vkGetInstanceProcAddr(instance, "vkCmdBindPipeline");
1392     out->vkCmdSetViewport = (PFN_vkCmdSetViewport)vk->vkGetInstanceProcAddr(instance, "vkCmdSetViewport");
1393     out->vkCmdSetScissor = (PFN_vkCmdSetScissor)vk->vkGetInstanceProcAddr(instance, "vkCmdSetScissor");
1394     out->vkCmdSetLineWidth = (PFN_vkCmdSetLineWidth)vk->vkGetInstanceProcAddr(instance, "vkCmdSetLineWidth");
1395     out->vkCmdSetDepthBias = (PFN_vkCmdSetDepthBias)vk->vkGetInstanceProcAddr(instance, "vkCmdSetDepthBias");
1396     out->vkCmdSetBlendConstants = (PFN_vkCmdSetBlendConstants)vk->vkGetInstanceProcAddr(instance, "vkCmdSetBlendConstants");
1397     out->vkCmdSetDepthBounds = (PFN_vkCmdSetDepthBounds)vk->vkGetInstanceProcAddr(instance, "vkCmdSetDepthBounds");
1398     out->vkCmdSetStencilCompareMask = (PFN_vkCmdSetStencilCompareMask)vk->vkGetInstanceProcAddr(instance, "vkCmdSetStencilCompareMask");
1399     out->vkCmdSetStencilWriteMask = (PFN_vkCmdSetStencilWriteMask)vk->vkGetInstanceProcAddr(instance, "vkCmdSetStencilWriteMask");
1400     out->vkCmdSetStencilReference = (PFN_vkCmdSetStencilReference)vk->vkGetInstanceProcAddr(instance, "vkCmdSetStencilReference");
1401     out->vkCmdBindDescriptorSets = (PFN_vkCmdBindDescriptorSets)vk->vkGetInstanceProcAddr(instance, "vkCmdBindDescriptorSets");
1402     out->vkCmdBindIndexBuffer = (PFN_vkCmdBindIndexBuffer)vk->vkGetInstanceProcAddr(instance, "vkCmdBindIndexBuffer");
1403     out->vkCmdBindVertexBuffers = (PFN_vkCmdBindVertexBuffers)vk->vkGetInstanceProcAddr(instance, "vkCmdBindVertexBuffers");
1404     out->vkCmdDraw = (PFN_vkCmdDraw)vk->vkGetInstanceProcAddr(instance, "vkCmdDraw");
1405     out->vkCmdDrawIndexed = (PFN_vkCmdDrawIndexed)vk->vkGetInstanceProcAddr(instance, "vkCmdDrawIndexed");
1406     out->vkCmdDrawIndirect = (PFN_vkCmdDrawIndirect)vk->vkGetInstanceProcAddr(instance, "vkCmdDrawIndirect");
1407     out->vkCmdDrawIndexedIndirect = (PFN_vkCmdDrawIndexedIndirect)vk->vkGetInstanceProcAddr(instance, "vkCmdDrawIndexedIndirect");
1408     out->vkCmdDispatch = (PFN_vkCmdDispatch)vk->vkGetInstanceProcAddr(instance, "vkCmdDispatch");
1409     out->vkCmdDispatchIndirect = (PFN_vkCmdDispatchIndirect)vk->vkGetInstanceProcAddr(instance, "vkCmdDispatchIndirect");
1410     out->vkCmdCopyBuffer = (PFN_vkCmdCopyBuffer)vk->vkGetInstanceProcAddr(instance, "vkCmdCopyBuffer");
1411     out->vkCmdCopyImage = (PFN_vkCmdCopyImage)vk->vkGetInstanceProcAddr(instance, "vkCmdCopyImage");
1412     out->vkCmdBlitImage = (PFN_vkCmdBlitImage)vk->vkGetInstanceProcAddr(instance, "vkCmdBlitImage");
1413     out->vkCmdCopyBufferToImage = (PFN_vkCmdCopyBufferToImage)vk->vkGetInstanceProcAddr(instance, "vkCmdCopyBufferToImage");
1414     out->vkCmdCopyImageToBuffer = (PFN_vkCmdCopyImageToBuffer)vk->vkGetInstanceProcAddr(instance, "vkCmdCopyImageToBuffer");
1415     out->vkCmdUpdateBuffer = (PFN_vkCmdUpdateBuffer)vk->vkGetInstanceProcAddr(instance, "vkCmdUpdateBuffer");
1416     out->vkCmdFillBuffer = (PFN_vkCmdFillBuffer)vk->vkGetInstanceProcAddr(instance, "vkCmdFillBuffer");
1417     out->vkCmdClearColorImage = (PFN_vkCmdClearColorImage)vk->vkGetInstanceProcAddr(instance, "vkCmdClearColorImage");
1418     out->vkCmdClearDepthStencilImage = (PFN_vkCmdClearDepthStencilImage)vk->vkGetInstanceProcAddr(instance, "vkCmdClearDepthStencilImage");
1419     out->vkCmdClearAttachments = (PFN_vkCmdClearAttachments)vk->vkGetInstanceProcAddr(instance, "vkCmdClearAttachments");
1420     out->vkCmdResolveImage = (PFN_vkCmdResolveImage)vk->vkGetInstanceProcAddr(instance, "vkCmdResolveImage");
1421     out->vkCmdSetEvent = (PFN_vkCmdSetEvent)vk->vkGetInstanceProcAddr(instance, "vkCmdSetEvent");
1422     out->vkCmdResetEvent = (PFN_vkCmdResetEvent)vk->vkGetInstanceProcAddr(instance, "vkCmdResetEvent");
1423     out->vkCmdWaitEvents = (PFN_vkCmdWaitEvents)vk->vkGetInstanceProcAddr(instance, "vkCmdWaitEvents");
1424     out->vkCmdPipelineBarrier = (PFN_vkCmdPipelineBarrier)vk->vkGetInstanceProcAddr(instance, "vkCmdPipelineBarrier");
1425     out->vkCmdBeginQuery = (PFN_vkCmdBeginQuery)vk->vkGetInstanceProcAddr(instance, "vkCmdBeginQuery");
1426     out->vkCmdEndQuery = (PFN_vkCmdEndQuery)vk->vkGetInstanceProcAddr(instance, "vkCmdEndQuery");
1427     out->vkCmdResetQueryPool = (PFN_vkCmdResetQueryPool)vk->vkGetInstanceProcAddr(instance, "vkCmdResetQueryPool");
1428     out->vkCmdWriteTimestamp = (PFN_vkCmdWriteTimestamp)vk->vkGetInstanceProcAddr(instance, "vkCmdWriteTimestamp");
1429     out->vkCmdCopyQueryPoolResults = (PFN_vkCmdCopyQueryPoolResults)vk->vkGetInstanceProcAddr(instance, "vkCmdCopyQueryPoolResults");
1430     out->vkCmdPushConstants = (PFN_vkCmdPushConstants)vk->vkGetInstanceProcAddr(instance, "vkCmdPushConstants");
1431     out->vkCmdBeginRenderPass = (PFN_vkCmdBeginRenderPass)vk->vkGetInstanceProcAddr(instance, "vkCmdBeginRenderPass");
1432     out->vkCmdNextSubpass = (PFN_vkCmdNextSubpass)vk->vkGetInstanceProcAddr(instance, "vkCmdNextSubpass");
1433     out->vkCmdEndRenderPass = (PFN_vkCmdEndRenderPass)vk->vkGetInstanceProcAddr(instance, "vkCmdEndRenderPass");
1434     out->vkCmdExecuteCommands = (PFN_vkCmdExecuteCommands)vk->vkGetInstanceProcAddr(instance, "vkCmdExecuteCommands");
1435 #endif
1436 #ifdef VK_VERSION_1_1
1437     out->vkBindBufferMemory2 = (PFN_vkBindBufferMemory2)vk->vkGetInstanceProcAddr(instance, "vkBindBufferMemory2");
1438     out->vkBindImageMemory2 = (PFN_vkBindImageMemory2)vk->vkGetInstanceProcAddr(instance, "vkBindImageMemory2");
1439     out->vkGetDeviceGroupPeerMemoryFeatures = (PFN_vkGetDeviceGroupPeerMemoryFeatures)vk->vkGetInstanceProcAddr(instance, "vkGetDeviceGroupPeerMemoryFeatures");
1440     out->vkCmdSetDeviceMask = (PFN_vkCmdSetDeviceMask)vk->vkGetInstanceProcAddr(instance, "vkCmdSetDeviceMask");
1441     out->vkCmdDispatchBase = (PFN_vkCmdDispatchBase)vk->vkGetInstanceProcAddr(instance, "vkCmdDispatchBase");
1442     out->vkGetImageMemoryRequirements2 = (PFN_vkGetImageMemoryRequirements2)vk->vkGetInstanceProcAddr(instance, "vkGetImageMemoryRequirements2");
1443     out->vkGetBufferMemoryRequirements2 = (PFN_vkGetBufferMemoryRequirements2)vk->vkGetInstanceProcAddr(instance, "vkGetBufferMemoryRequirements2");
1444     out->vkGetImageSparseMemoryRequirements2 = (PFN_vkGetImageSparseMemoryRequirements2)vk->vkGetInstanceProcAddr(instance, "vkGetImageSparseMemoryRequirements2");
1445     out->vkTrimCommandPool = (PFN_vkTrimCommandPool)vk->vkGetInstanceProcAddr(instance, "vkTrimCommandPool");
1446     out->vkGetDeviceQueue2 = (PFN_vkGetDeviceQueue2)vk->vkGetInstanceProcAddr(instance, "vkGetDeviceQueue2");
1447     out->vkCreateSamplerYcbcrConversion = (PFN_vkCreateSamplerYcbcrConversion)vk->vkGetInstanceProcAddr(instance, "vkCreateSamplerYcbcrConversion");
1448     out->vkDestroySamplerYcbcrConversion = (PFN_vkDestroySamplerYcbcrConversion)vk->vkGetInstanceProcAddr(instance, "vkDestroySamplerYcbcrConversion");
1449     out->vkCreateDescriptorUpdateTemplate = (PFN_vkCreateDescriptorUpdateTemplate)vk->vkGetInstanceProcAddr(instance, "vkCreateDescriptorUpdateTemplate");
1450     out->vkDestroyDescriptorUpdateTemplate = (PFN_vkDestroyDescriptorUpdateTemplate)vk->vkGetInstanceProcAddr(instance, "vkDestroyDescriptorUpdateTemplate");
1451     out->vkUpdateDescriptorSetWithTemplate = (PFN_vkUpdateDescriptorSetWithTemplate)vk->vkGetInstanceProcAddr(instance, "vkUpdateDescriptorSetWithTemplate");
1452     out->vkGetDescriptorSetLayoutSupport = (PFN_vkGetDescriptorSetLayoutSupport)vk->vkGetInstanceProcAddr(instance, "vkGetDescriptorSetLayoutSupport");
1453 #endif
1454 #ifdef VK_VERSION_1_2
1455     out->vkCmdDrawIndirectCount = (PFN_vkCmdDrawIndirectCount)vk->vkGetInstanceProcAddr(instance, "vkCmdDrawIndirectCount");
1456     out->vkCmdDrawIndexedIndirectCount = (PFN_vkCmdDrawIndexedIndirectCount)vk->vkGetInstanceProcAddr(instance, "vkCmdDrawIndexedIndirectCount");
1457     out->vkCreateRenderPass2 = (PFN_vkCreateRenderPass2)vk->vkGetInstanceProcAddr(instance, "vkCreateRenderPass2");
1458     out->vkCmdBeginRenderPass2 = (PFN_vkCmdBeginRenderPass2)vk->vkGetInstanceProcAddr(instance, "vkCmdBeginRenderPass2");
1459     out->vkCmdNextSubpass2 = (PFN_vkCmdNextSubpass2)vk->vkGetInstanceProcAddr(instance, "vkCmdNextSubpass2");
1460     out->vkCmdEndRenderPass2 = (PFN_vkCmdEndRenderPass2)vk->vkGetInstanceProcAddr(instance, "vkCmdEndRenderPass2");
1461     out->vkResetQueryPool = (PFN_vkResetQueryPool)vk->vkGetInstanceProcAddr(instance, "vkResetQueryPool");
1462     out->vkGetSemaphoreCounterValue = (PFN_vkGetSemaphoreCounterValue)vk->vkGetInstanceProcAddr(instance, "vkGetSemaphoreCounterValue");
1463     out->vkWaitSemaphores = (PFN_vkWaitSemaphores)vk->vkGetInstanceProcAddr(instance, "vkWaitSemaphores");
1464     out->vkSignalSemaphore = (PFN_vkSignalSemaphore)vk->vkGetInstanceProcAddr(instance, "vkSignalSemaphore");
1465     out->vkGetBufferDeviceAddress = (PFN_vkGetBufferDeviceAddress)vk->vkGetInstanceProcAddr(instance, "vkGetBufferDeviceAddress");
1466     out->vkGetBufferOpaqueCaptureAddress = (PFN_vkGetBufferOpaqueCaptureAddress)vk->vkGetInstanceProcAddr(instance, "vkGetBufferOpaqueCaptureAddress");
1467     out->vkGetDeviceMemoryOpaqueCaptureAddress = (PFN_vkGetDeviceMemoryOpaqueCaptureAddress)vk->vkGetInstanceProcAddr(instance, "vkGetDeviceMemoryOpaqueCaptureAddress");
1468 #endif
1469 #ifdef VK_KHR_surface
1470     out->vkGetPhysicalDeviceSurfaceSupportKHR = (PFN_vkGetPhysicalDeviceSurfaceSupportKHR)vk->vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSurfaceSupportKHR");
1471     out->vkGetPhysicalDeviceSurfaceCapabilitiesKHR = (PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)vk->vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR");
1472     out->vkGetPhysicalDeviceSurfaceFormatsKHR = (PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)vk->vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSurfaceFormatsKHR");
1473     out->vkGetPhysicalDeviceSurfacePresentModesKHR = (PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)vk->vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSurfacePresentModesKHR");
1474 #endif
1475 #ifdef VK_KHR_swapchain
1476     out->vkGetDeviceGroupPresentCapabilitiesKHR = (PFN_vkGetDeviceGroupPresentCapabilitiesKHR)vk->vkGetInstanceProcAddr(instance, "vkGetDeviceGroupPresentCapabilitiesKHR");
1477     out->vkGetDeviceGroupSurfacePresentModesKHR = (PFN_vkGetDeviceGroupSurfacePresentModesKHR)vk->vkGetInstanceProcAddr(instance, "vkGetDeviceGroupSurfacePresentModesKHR");
1478     out->vkGetPhysicalDevicePresentRectanglesKHR = (PFN_vkGetPhysicalDevicePresentRectanglesKHR)vk->vkGetInstanceProcAddr(instance, "vkGetPhysicalDevicePresentRectanglesKHR");
1479     out->vkAcquireNextImage2KHR = (PFN_vkAcquireNextImage2KHR)vk->vkGetInstanceProcAddr(instance, "vkAcquireNextImage2KHR");
1480 #endif
1481 #ifdef VK_KHR_display
1482     out->vkGetPhysicalDeviceDisplayPropertiesKHR = (PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)vk->vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceDisplayPropertiesKHR");
1483     out->vkGetPhysicalDeviceDisplayPlanePropertiesKHR = (PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)vk->vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR");
1484     out->vkGetDisplayPlaneSupportedDisplaysKHR = (PFN_vkGetDisplayPlaneSupportedDisplaysKHR)vk->vkGetInstanceProcAddr(instance, "vkGetDisplayPlaneSupportedDisplaysKHR");
1485     out->vkGetDisplayModePropertiesKHR = (PFN_vkGetDisplayModePropertiesKHR)vk->vkGetInstanceProcAddr(instance, "vkGetDisplayModePropertiesKHR");
1486     out->vkCreateDisplayModeKHR = (PFN_vkCreateDisplayModeKHR)vk->vkGetInstanceProcAddr(instance, "vkCreateDisplayModeKHR");
1487     out->vkGetDisplayPlaneCapabilitiesKHR = (PFN_vkGetDisplayPlaneCapabilitiesKHR)vk->vkGetInstanceProcAddr(instance, "vkGetDisplayPlaneCapabilitiesKHR");
1488 #endif
1489 #ifdef VK_KHR_display_swapchain
1490     out->vkCreateSharedSwapchainsKHR = (PFN_vkCreateSharedSwapchainsKHR)vk->vkGetInstanceProcAddr(instance, "vkCreateSharedSwapchainsKHR");
1491 #endif
1492 #ifdef VK_KHR_wayland_surface
1493     out->vkGetPhysicalDeviceWaylandPresentationSupportKHR = (PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR)vk->vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceWaylandPresentationSupportKHR");
1494 #endif
1495 #ifdef VK_KHR_get_physical_device_properties2
1496     out->vkGetPhysicalDeviceFeatures2KHR = (PFN_vkGetPhysicalDeviceFeatures2KHR)vk->vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceFeatures2KHR");
1497     out->vkGetPhysicalDeviceProperties2KHR = (PFN_vkGetPhysicalDeviceProperties2KHR)vk->vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceProperties2KHR");
1498     out->vkGetPhysicalDeviceFormatProperties2KHR = (PFN_vkGetPhysicalDeviceFormatProperties2KHR)vk->vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceFormatProperties2KHR");
1499     out->vkGetPhysicalDeviceImageFormatProperties2KHR = (PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)vk->vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceImageFormatProperties2KHR");
1500     out->vkGetPhysicalDeviceQueueFamilyProperties2KHR = (PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)vk->vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceQueueFamilyProperties2KHR");
1501     out->vkGetPhysicalDeviceMemoryProperties2KHR = (PFN_vkGetPhysicalDeviceMemoryProperties2KHR)vk->vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceMemoryProperties2KHR");
1502     out->vkGetPhysicalDeviceSparseImageFormatProperties2KHR = (PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)vk->vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR");
1503 #endif
1504 #ifdef VK_KHR_device_group
1505     out->vkGetDeviceGroupPeerMemoryFeaturesKHR = (PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR)vk->vkGetInstanceProcAddr(instance, "vkGetDeviceGroupPeerMemoryFeaturesKHR");
1506     out->vkCmdSetDeviceMaskKHR = (PFN_vkCmdSetDeviceMaskKHR)vk->vkGetInstanceProcAddr(instance, "vkCmdSetDeviceMaskKHR");
1507     out->vkCmdDispatchBaseKHR = (PFN_vkCmdDispatchBaseKHR)vk->vkGetInstanceProcAddr(instance, "vkCmdDispatchBaseKHR");
1508 #endif
1509 #ifdef VK_KHR_maintenance1
1510     out->vkTrimCommandPoolKHR = (PFN_vkTrimCommandPoolKHR)vk->vkGetInstanceProcAddr(instance, "vkTrimCommandPoolKHR");
1511 #endif
1512 #ifdef VK_KHR_external_memory_capabilities
1513     out->vkGetPhysicalDeviceExternalBufferPropertiesKHR = (PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)vk->vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceExternalBufferPropertiesKHR");
1514 #endif
1515 #ifdef VK_KHR_external_memory_win32
1516     out->vkGetMemoryWin32HandleKHR = (PFN_vkGetMemoryWin32HandleKHR)vk->vkGetInstanceProcAddr(instance, "vkGetMemoryWin32HandleKHR");
1517     out->vkGetMemoryWin32HandlePropertiesKHR = (PFN_vkGetMemoryWin32HandlePropertiesKHR)vk->vkGetInstanceProcAddr(instance, "vkGetMemoryWin32HandlePropertiesKHR");
1518 #endif
1519 #ifdef VK_KHR_external_memory_fd
1520     out->vkGetMemoryFdKHR = (PFN_vkGetMemoryFdKHR)vk->vkGetInstanceProcAddr(instance, "vkGetMemoryFdKHR");
1521     out->vkGetMemoryFdPropertiesKHR = (PFN_vkGetMemoryFdPropertiesKHR)vk->vkGetInstanceProcAddr(instance, "vkGetMemoryFdPropertiesKHR");
1522 #endif
1523 #ifdef VK_KHR_external_semaphore_capabilities
1524     out->vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = (PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)vk->vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR");
1525 #endif
1526 #ifdef VK_KHR_external_semaphore_win32
1527     out->vkImportSemaphoreWin32HandleKHR = (PFN_vkImportSemaphoreWin32HandleKHR)vk->vkGetInstanceProcAddr(instance, "vkImportSemaphoreWin32HandleKHR");
1528     out->vkGetSemaphoreWin32HandleKHR = (PFN_vkGetSemaphoreWin32HandleKHR)vk->vkGetInstanceProcAddr(instance, "vkGetSemaphoreWin32HandleKHR");
1529 #endif
1530 #ifdef VK_KHR_external_semaphore_fd
1531     out->vkImportSemaphoreFdKHR = (PFN_vkImportSemaphoreFdKHR)vk->vkGetInstanceProcAddr(instance, "vkImportSemaphoreFdKHR");
1532     out->vkGetSemaphoreFdKHR = (PFN_vkGetSemaphoreFdKHR)vk->vkGetInstanceProcAddr(instance, "vkGetSemaphoreFdKHR");
1533 #endif
1534 #ifdef VK_KHR_push_descriptor
1535     out->vkCmdPushDescriptorSetKHR = (PFN_vkCmdPushDescriptorSetKHR)vk->vkGetInstanceProcAddr(instance, "vkCmdPushDescriptorSetKHR");
1536     out->vkCmdPushDescriptorSetWithTemplateKHR = (PFN_vkCmdPushDescriptorSetWithTemplateKHR)vk->vkGetInstanceProcAddr(instance, "vkCmdPushDescriptorSetWithTemplateKHR");
1537 #endif
1538 #ifdef VK_KHR_descriptor_update_template
1539     out->vkCreateDescriptorUpdateTemplateKHR = (PFN_vkCreateDescriptorUpdateTemplateKHR)vk->vkGetInstanceProcAddr(instance, "vkCreateDescriptorUpdateTemplateKHR");
1540     out->vkDestroyDescriptorUpdateTemplateKHR = (PFN_vkDestroyDescriptorUpdateTemplateKHR)vk->vkGetInstanceProcAddr(instance, "vkDestroyDescriptorUpdateTemplateKHR");
1541     out->vkUpdateDescriptorSetWithTemplateKHR = (PFN_vkUpdateDescriptorSetWithTemplateKHR)vk->vkGetInstanceProcAddr(instance, "vkUpdateDescriptorSetWithTemplateKHR");
1542 #endif
1543 #ifdef VK_KHR_create_renderpass2
1544     out->vkCreateRenderPass2KHR = (PFN_vkCreateRenderPass2KHR)vk->vkGetInstanceProcAddr(instance, "vkCreateRenderPass2KHR");
1545     out->vkCmdBeginRenderPass2KHR = (PFN_vkCmdBeginRenderPass2KHR)vk->vkGetInstanceProcAddr(instance, "vkCmdBeginRenderPass2KHR");
1546     out->vkCmdNextSubpass2KHR = (PFN_vkCmdNextSubpass2KHR)vk->vkGetInstanceProcAddr(instance, "vkCmdNextSubpass2KHR");
1547     out->vkCmdEndRenderPass2KHR = (PFN_vkCmdEndRenderPass2KHR)vk->vkGetInstanceProcAddr(instance, "vkCmdEndRenderPass2KHR");
1548 #endif
1549 #ifdef VK_KHR_shared_presentable_image
1550     out->vkGetSwapchainStatusKHR = (PFN_vkGetSwapchainStatusKHR)vk->vkGetInstanceProcAddr(instance, "vkGetSwapchainStatusKHR");
1551 #endif
1552 #ifdef VK_KHR_external_fence_capabilities
1553     out->vkGetPhysicalDeviceExternalFencePropertiesKHR = (PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)vk->vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceExternalFencePropertiesKHR");
1554 #endif
1555 #ifdef VK_KHR_external_fence_win32
1556     out->vkImportFenceWin32HandleKHR = (PFN_vkImportFenceWin32HandleKHR)vk->vkGetInstanceProcAddr(instance, "vkImportFenceWin32HandleKHR");
1557     out->vkGetFenceWin32HandleKHR = (PFN_vkGetFenceWin32HandleKHR)vk->vkGetInstanceProcAddr(instance, "vkGetFenceWin32HandleKHR");
1558 #endif
1559 #ifdef VK_KHR_external_fence_fd
1560     out->vkImportFenceFdKHR = (PFN_vkImportFenceFdKHR)vk->vkGetInstanceProcAddr(instance, "vkImportFenceFdKHR");
1561     out->vkGetFenceFdKHR = (PFN_vkGetFenceFdKHR)vk->vkGetInstanceProcAddr(instance, "vkGetFenceFdKHR");
1562 #endif
1563 #ifdef VK_KHR_performance_query
1564     out->vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = (PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR)vk->vkGetInstanceProcAddr(instance, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR");
1565     out->vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = (PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR)vk->vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR");
1566     out->vkAcquireProfilingLockKHR = (PFN_vkAcquireProfilingLockKHR)vk->vkGetInstanceProcAddr(instance, "vkAcquireProfilingLockKHR");
1567     out->vkReleaseProfilingLockKHR = (PFN_vkReleaseProfilingLockKHR)vk->vkGetInstanceProcAddr(instance, "vkReleaseProfilingLockKHR");
1568 #endif
1569 #ifdef VK_KHR_get_surface_capabilities2
1570     out->vkGetPhysicalDeviceSurfaceCapabilities2KHR = (PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR)vk->vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSurfaceCapabilities2KHR");
1571     out->vkGetPhysicalDeviceSurfaceFormats2KHR = (PFN_vkGetPhysicalDeviceSurfaceFormats2KHR)vk->vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSurfaceFormats2KHR");
1572 #endif
1573 #ifdef VK_KHR_get_display_properties2
1574     out->vkGetPhysicalDeviceDisplayProperties2KHR = (PFN_vkGetPhysicalDeviceDisplayProperties2KHR)vk->vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceDisplayProperties2KHR");
1575     out->vkGetPhysicalDeviceDisplayPlaneProperties2KHR = (PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR)vk->vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR");
1576     out->vkGetDisplayModeProperties2KHR = (PFN_vkGetDisplayModeProperties2KHR)vk->vkGetInstanceProcAddr(instance, "vkGetDisplayModeProperties2KHR");
1577     out->vkGetDisplayPlaneCapabilities2KHR = (PFN_vkGetDisplayPlaneCapabilities2KHR)vk->vkGetInstanceProcAddr(instance, "vkGetDisplayPlaneCapabilities2KHR");
1578 #endif
1579 #ifdef VK_KHR_get_memory_requirements2
1580     out->vkGetImageMemoryRequirements2KHR = (PFN_vkGetImageMemoryRequirements2KHR)vk->vkGetInstanceProcAddr(instance, "vkGetImageMemoryRequirements2KHR");
1581     out->vkGetBufferMemoryRequirements2KHR = (PFN_vkGetBufferMemoryRequirements2KHR)vk->vkGetInstanceProcAddr(instance, "vkGetBufferMemoryRequirements2KHR");
1582     out->vkGetImageSparseMemoryRequirements2KHR = (PFN_vkGetImageSparseMemoryRequirements2KHR)vk->vkGetInstanceProcAddr(instance, "vkGetImageSparseMemoryRequirements2KHR");
1583 #endif
1584 #ifdef VK_KHR_sampler_ycbcr_conversion
1585     out->vkCreateSamplerYcbcrConversionKHR = (PFN_vkCreateSamplerYcbcrConversionKHR)vk->vkGetInstanceProcAddr(instance, "vkCreateSamplerYcbcrConversionKHR");
1586     out->vkDestroySamplerYcbcrConversionKHR = (PFN_vkDestroySamplerYcbcrConversionKHR)vk->vkGetInstanceProcAddr(instance, "vkDestroySamplerYcbcrConversionKHR");
1587 #endif
1588 #ifdef VK_KHR_bind_memory2
1589     out->vkBindBufferMemory2KHR = (PFN_vkBindBufferMemory2KHR)vk->vkGetInstanceProcAddr(instance, "vkBindBufferMemory2KHR");
1590     out->vkBindImageMemory2KHR = (PFN_vkBindImageMemory2KHR)vk->vkGetInstanceProcAddr(instance, "vkBindImageMemory2KHR");
1591 #endif
1592 #ifdef VK_KHR_maintenance3
1593     out->vkGetDescriptorSetLayoutSupportKHR = (PFN_vkGetDescriptorSetLayoutSupportKHR)vk->vkGetInstanceProcAddr(instance, "vkGetDescriptorSetLayoutSupportKHR");
1594 #endif
1595 #ifdef VK_KHR_draw_indirect_count
1596     out->vkCmdDrawIndirectCountKHR = (PFN_vkCmdDrawIndirectCountKHR)vk->vkGetInstanceProcAddr(instance, "vkCmdDrawIndirectCountKHR");
1597     out->vkCmdDrawIndexedIndirectCountKHR = (PFN_vkCmdDrawIndexedIndirectCountKHR)vk->vkGetInstanceProcAddr(instance, "vkCmdDrawIndexedIndirectCountKHR");
1598 #endif
1599 #ifdef VK_KHR_timeline_semaphore
1600     out->vkGetSemaphoreCounterValueKHR = (PFN_vkGetSemaphoreCounterValueKHR)vk->vkGetInstanceProcAddr(instance, "vkGetSemaphoreCounterValueKHR");
1601     out->vkWaitSemaphoresKHR = (PFN_vkWaitSemaphoresKHR)vk->vkGetInstanceProcAddr(instance, "vkWaitSemaphoresKHR");
1602     out->vkSignalSemaphoreKHR = (PFN_vkSignalSemaphoreKHR)vk->vkGetInstanceProcAddr(instance, "vkSignalSemaphoreKHR");
1603 #endif
1604 #ifdef VK_KHR_fragment_shading_rate
1605     out->vkGetPhysicalDeviceFragmentShadingRatesKHR = (PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR)vk->vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceFragmentShadingRatesKHR");
1606     out->vkCmdSetFragmentShadingRateKHR = (PFN_vkCmdSetFragmentShadingRateKHR)vk->vkGetInstanceProcAddr(instance, "vkCmdSetFragmentShadingRateKHR");
1607 #endif
1608 #ifdef VK_KHR_buffer_device_address
1609     out->vkGetBufferDeviceAddressKHR = (PFN_vkGetBufferDeviceAddressKHR)vk->vkGetInstanceProcAddr(instance, "vkGetBufferDeviceAddressKHR");
1610     out->vkGetBufferOpaqueCaptureAddressKHR = (PFN_vkGetBufferOpaqueCaptureAddressKHR)vk->vkGetInstanceProcAddr(instance, "vkGetBufferOpaqueCaptureAddressKHR");
1611     out->vkGetDeviceMemoryOpaqueCaptureAddressKHR = (PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR)vk->vkGetInstanceProcAddr(instance, "vkGetDeviceMemoryOpaqueCaptureAddressKHR");
1612 #endif
1613 #ifdef VK_KHR_deferred_host_operations
1614     out->vkCreateDeferredOperationKHR = (PFN_vkCreateDeferredOperationKHR)vk->vkGetInstanceProcAddr(instance, "vkCreateDeferredOperationKHR");
1615     out->vkDestroyDeferredOperationKHR = (PFN_vkDestroyDeferredOperationKHR)vk->vkGetInstanceProcAddr(instance, "vkDestroyDeferredOperationKHR");
1616     out->vkGetDeferredOperationMaxConcurrencyKHR = (PFN_vkGetDeferredOperationMaxConcurrencyKHR)vk->vkGetInstanceProcAddr(instance, "vkGetDeferredOperationMaxConcurrencyKHR");
1617     out->vkGetDeferredOperationResultKHR = (PFN_vkGetDeferredOperationResultKHR)vk->vkGetInstanceProcAddr(instance, "vkGetDeferredOperationResultKHR");
1618     out->vkDeferredOperationJoinKHR = (PFN_vkDeferredOperationJoinKHR)vk->vkGetInstanceProcAddr(instance, "vkDeferredOperationJoinKHR");
1619 #endif
1620 #ifdef VK_KHR_pipeline_executable_properties
1621     out->vkGetPipelineExecutablePropertiesKHR = (PFN_vkGetPipelineExecutablePropertiesKHR)vk->vkGetInstanceProcAddr(instance, "vkGetPipelineExecutablePropertiesKHR");
1622     out->vkGetPipelineExecutableStatisticsKHR = (PFN_vkGetPipelineExecutableStatisticsKHR)vk->vkGetInstanceProcAddr(instance, "vkGetPipelineExecutableStatisticsKHR");
1623     out->vkGetPipelineExecutableInternalRepresentationsKHR = (PFN_vkGetPipelineExecutableInternalRepresentationsKHR)vk->vkGetInstanceProcAddr(instance, "vkGetPipelineExecutableInternalRepresentationsKHR");
1624 #endif
1625 #ifdef VK_KHR_copy_commands2
1626     out->vkCmdCopyBuffer2KHR = (PFN_vkCmdCopyBuffer2KHR)vk->vkGetInstanceProcAddr(instance, "vkCmdCopyBuffer2KHR");
1627     out->vkCmdCopyImage2KHR = (PFN_vkCmdCopyImage2KHR)vk->vkGetInstanceProcAddr(instance, "vkCmdCopyImage2KHR");
1628     out->vkCmdCopyBufferToImage2KHR = (PFN_vkCmdCopyBufferToImage2KHR)vk->vkGetInstanceProcAddr(instance, "vkCmdCopyBufferToImage2KHR");
1629     out->vkCmdCopyImageToBuffer2KHR = (PFN_vkCmdCopyImageToBuffer2KHR)vk->vkGetInstanceProcAddr(instance, "vkCmdCopyImageToBuffer2KHR");
1630     out->vkCmdBlitImage2KHR = (PFN_vkCmdBlitImage2KHR)vk->vkGetInstanceProcAddr(instance, "vkCmdBlitImage2KHR");
1631     out->vkCmdResolveImage2KHR = (PFN_vkCmdResolveImage2KHR)vk->vkGetInstanceProcAddr(instance, "vkCmdResolveImage2KHR");
1632 #endif
1633 #ifdef VK_ANDROID_native_buffer
1634     out->vkGetSwapchainGrallocUsageANDROID = (PFN_vkGetSwapchainGrallocUsageANDROID)vk->vkGetInstanceProcAddr(instance, "vkGetSwapchainGrallocUsageANDROID");
1635     out->vkAcquireImageANDROID = (PFN_vkAcquireImageANDROID)vk->vkGetInstanceProcAddr(instance, "vkAcquireImageANDROID");
1636     out->vkQueueSignalReleaseImageANDROID = (PFN_vkQueueSignalReleaseImageANDROID)vk->vkGetInstanceProcAddr(instance, "vkQueueSignalReleaseImageANDROID");
1637 #endif
1638 #ifdef VK_EXT_debug_marker
1639     out->vkDebugMarkerSetObjectTagEXT = (PFN_vkDebugMarkerSetObjectTagEXT)vk->vkGetInstanceProcAddr(instance, "vkDebugMarkerSetObjectTagEXT");
1640     out->vkDebugMarkerSetObjectNameEXT = (PFN_vkDebugMarkerSetObjectNameEXT)vk->vkGetInstanceProcAddr(instance, "vkDebugMarkerSetObjectNameEXT");
1641     out->vkCmdDebugMarkerBeginEXT = (PFN_vkCmdDebugMarkerBeginEXT)vk->vkGetInstanceProcAddr(instance, "vkCmdDebugMarkerBeginEXT");
1642     out->vkCmdDebugMarkerEndEXT = (PFN_vkCmdDebugMarkerEndEXT)vk->vkGetInstanceProcAddr(instance, "vkCmdDebugMarkerEndEXT");
1643     out->vkCmdDebugMarkerInsertEXT = (PFN_vkCmdDebugMarkerInsertEXT)vk->vkGetInstanceProcAddr(instance, "vkCmdDebugMarkerInsertEXT");
1644 #endif
1645 #ifdef VK_EXT_transform_feedback
1646     out->vkCmdBindTransformFeedbackBuffersEXT = (PFN_vkCmdBindTransformFeedbackBuffersEXT)vk->vkGetInstanceProcAddr(instance, "vkCmdBindTransformFeedbackBuffersEXT");
1647     out->vkCmdBeginTransformFeedbackEXT = (PFN_vkCmdBeginTransformFeedbackEXT)vk->vkGetInstanceProcAddr(instance, "vkCmdBeginTransformFeedbackEXT");
1648     out->vkCmdEndTransformFeedbackEXT = (PFN_vkCmdEndTransformFeedbackEXT)vk->vkGetInstanceProcAddr(instance, "vkCmdEndTransformFeedbackEXT");
1649     out->vkCmdBeginQueryIndexedEXT = (PFN_vkCmdBeginQueryIndexedEXT)vk->vkGetInstanceProcAddr(instance, "vkCmdBeginQueryIndexedEXT");
1650     out->vkCmdEndQueryIndexedEXT = (PFN_vkCmdEndQueryIndexedEXT)vk->vkGetInstanceProcAddr(instance, "vkCmdEndQueryIndexedEXT");
1651     out->vkCmdDrawIndirectByteCountEXT = (PFN_vkCmdDrawIndirectByteCountEXT)vk->vkGetInstanceProcAddr(instance, "vkCmdDrawIndirectByteCountEXT");
1652 #endif
1653 #ifdef VK_NVX_image_view_handle
1654     out->vkGetImageViewHandleNVX = (PFN_vkGetImageViewHandleNVX)vk->vkGetInstanceProcAddr(instance, "vkGetImageViewHandleNVX");
1655     out->vkGetImageViewAddressNVX = (PFN_vkGetImageViewAddressNVX)vk->vkGetInstanceProcAddr(instance, "vkGetImageViewAddressNVX");
1656 #endif
1657 #ifdef VK_AMD_draw_indirect_count
1658     out->vkCmdDrawIndirectCountAMD = (PFN_vkCmdDrawIndirectCountAMD)vk->vkGetInstanceProcAddr(instance, "vkCmdDrawIndirectCountAMD");
1659     out->vkCmdDrawIndexedIndirectCountAMD = (PFN_vkCmdDrawIndexedIndirectCountAMD)vk->vkGetInstanceProcAddr(instance, "vkCmdDrawIndexedIndirectCountAMD");
1660 #endif
1661 #ifdef VK_AMD_shader_info
1662     out->vkGetShaderInfoAMD = (PFN_vkGetShaderInfoAMD)vk->vkGetInstanceProcAddr(instance, "vkGetShaderInfoAMD");
1663 #endif
1664 #ifdef VK_NV_external_memory_capabilities
1665     out->vkGetPhysicalDeviceExternalImageFormatPropertiesNV = (PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)vk->vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV");
1666 #endif
1667 #ifdef VK_NV_external_memory_win32
1668     out->vkGetMemoryWin32HandleNV = (PFN_vkGetMemoryWin32HandleNV)vk->vkGetInstanceProcAddr(instance, "vkGetMemoryWin32HandleNV");
1669 #endif
1670 #ifdef VK_EXT_conditional_rendering
1671     out->vkCmdBeginConditionalRenderingEXT = (PFN_vkCmdBeginConditionalRenderingEXT)vk->vkGetInstanceProcAddr(instance, "vkCmdBeginConditionalRenderingEXT");
1672     out->vkCmdEndConditionalRenderingEXT = (PFN_vkCmdEndConditionalRenderingEXT)vk->vkGetInstanceProcAddr(instance, "vkCmdEndConditionalRenderingEXT");
1673 #endif
1674 #ifdef VK_NV_clip_space_w_scaling
1675     out->vkCmdSetViewportWScalingNV = (PFN_vkCmdSetViewportWScalingNV)vk->vkGetInstanceProcAddr(instance, "vkCmdSetViewportWScalingNV");
1676 #endif
1677 #ifdef VK_EXT_direct_mode_display
1678     out->vkReleaseDisplayEXT = (PFN_vkReleaseDisplayEXT)vk->vkGetInstanceProcAddr(instance, "vkReleaseDisplayEXT");
1679 #endif
1680 #ifdef VK_EXT_acquire_xlib_display
1681     out->vkAcquireXlibDisplayEXT = (PFN_vkAcquireXlibDisplayEXT)vk->vkGetInstanceProcAddr(instance, "vkAcquireXlibDisplayEXT");
1682     out->vkGetRandROutputDisplayEXT = (PFN_vkGetRandROutputDisplayEXT)vk->vkGetInstanceProcAddr(instance, "vkGetRandROutputDisplayEXT");
1683 #endif
1684 #ifdef VK_EXT_display_surface_counter
1685     out->vkGetPhysicalDeviceSurfaceCapabilities2EXT = (PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)vk->vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSurfaceCapabilities2EXT");
1686 #endif
1687 #ifdef VK_EXT_display_control
1688     out->vkDisplayPowerControlEXT = (PFN_vkDisplayPowerControlEXT)vk->vkGetInstanceProcAddr(instance, "vkDisplayPowerControlEXT");
1689     out->vkRegisterDeviceEventEXT = (PFN_vkRegisterDeviceEventEXT)vk->vkGetInstanceProcAddr(instance, "vkRegisterDeviceEventEXT");
1690     out->vkRegisterDisplayEventEXT = (PFN_vkRegisterDisplayEventEXT)vk->vkGetInstanceProcAddr(instance, "vkRegisterDisplayEventEXT");
1691     out->vkGetSwapchainCounterEXT = (PFN_vkGetSwapchainCounterEXT)vk->vkGetInstanceProcAddr(instance, "vkGetSwapchainCounterEXT");
1692 #endif
1693 #ifdef VK_GOOGLE_display_timing
1694     out->vkGetRefreshCycleDurationGOOGLE = (PFN_vkGetRefreshCycleDurationGOOGLE)vk->vkGetInstanceProcAddr(instance, "vkGetRefreshCycleDurationGOOGLE");
1695     out->vkGetPastPresentationTimingGOOGLE = (PFN_vkGetPastPresentationTimingGOOGLE)vk->vkGetInstanceProcAddr(instance, "vkGetPastPresentationTimingGOOGLE");
1696 #endif
1697 #ifdef VK_EXT_discard_rectangles
1698     out->vkCmdSetDiscardRectangleEXT = (PFN_vkCmdSetDiscardRectangleEXT)vk->vkGetInstanceProcAddr(instance, "vkCmdSetDiscardRectangleEXT");
1699 #endif
1700 #ifdef VK_EXT_hdr_metadata
1701     out->vkSetHdrMetadataEXT = (PFN_vkSetHdrMetadataEXT)vk->vkGetInstanceProcAddr(instance, "vkSetHdrMetadataEXT");
1702 #endif
1703 #ifdef VK_EXT_debug_utils
1704     out->vkSetDebugUtilsObjectNameEXT = (PFN_vkSetDebugUtilsObjectNameEXT)vk->vkGetInstanceProcAddr(instance, "vkSetDebugUtilsObjectNameEXT");
1705     out->vkSetDebugUtilsObjectTagEXT = (PFN_vkSetDebugUtilsObjectTagEXT)vk->vkGetInstanceProcAddr(instance, "vkSetDebugUtilsObjectTagEXT");
1706     out->vkQueueBeginDebugUtilsLabelEXT = (PFN_vkQueueBeginDebugUtilsLabelEXT)vk->vkGetInstanceProcAddr(instance, "vkQueueBeginDebugUtilsLabelEXT");
1707     out->vkQueueEndDebugUtilsLabelEXT = (PFN_vkQueueEndDebugUtilsLabelEXT)vk->vkGetInstanceProcAddr(instance, "vkQueueEndDebugUtilsLabelEXT");
1708     out->vkQueueInsertDebugUtilsLabelEXT = (PFN_vkQueueInsertDebugUtilsLabelEXT)vk->vkGetInstanceProcAddr(instance, "vkQueueInsertDebugUtilsLabelEXT");
1709     out->vkCmdBeginDebugUtilsLabelEXT = (PFN_vkCmdBeginDebugUtilsLabelEXT)vk->vkGetInstanceProcAddr(instance, "vkCmdBeginDebugUtilsLabelEXT");
1710     out->vkCmdEndDebugUtilsLabelEXT = (PFN_vkCmdEndDebugUtilsLabelEXT)vk->vkGetInstanceProcAddr(instance, "vkCmdEndDebugUtilsLabelEXT");
1711     out->vkCmdInsertDebugUtilsLabelEXT = (PFN_vkCmdInsertDebugUtilsLabelEXT)vk->vkGetInstanceProcAddr(instance, "vkCmdInsertDebugUtilsLabelEXT");
1712 #endif
1713 #ifdef VK_ANDROID_external_memory_android_hardware_buffer
1714     out->vkGetAndroidHardwareBufferPropertiesANDROID = (PFN_vkGetAndroidHardwareBufferPropertiesANDROID)vk->vkGetInstanceProcAddr(instance, "vkGetAndroidHardwareBufferPropertiesANDROID");
1715     out->vkGetMemoryAndroidHardwareBufferANDROID = (PFN_vkGetMemoryAndroidHardwareBufferANDROID)vk->vkGetInstanceProcAddr(instance, "vkGetMemoryAndroidHardwareBufferANDROID");
1716 #endif
1717 #ifdef VK_EXT_sample_locations
1718     out->vkCmdSetSampleLocationsEXT = (PFN_vkCmdSetSampleLocationsEXT)vk->vkGetInstanceProcAddr(instance, "vkCmdSetSampleLocationsEXT");
1719     out->vkGetPhysicalDeviceMultisamplePropertiesEXT = (PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT)vk->vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceMultisamplePropertiesEXT");
1720 #endif
1721 #ifdef VK_EXT_image_drm_format_modifier
1722     out->vkGetImageDrmFormatModifierPropertiesEXT = (PFN_vkGetImageDrmFormatModifierPropertiesEXT)vk->vkGetInstanceProcAddr(instance, "vkGetImageDrmFormatModifierPropertiesEXT");
1723 #endif
1724 #ifdef VK_EXT_validation_cache
1725     out->vkCreateValidationCacheEXT = (PFN_vkCreateValidationCacheEXT)vk->vkGetInstanceProcAddr(instance, "vkCreateValidationCacheEXT");
1726     out->vkDestroyValidationCacheEXT = (PFN_vkDestroyValidationCacheEXT)vk->vkGetInstanceProcAddr(instance, "vkDestroyValidationCacheEXT");
1727     out->vkMergeValidationCachesEXT = (PFN_vkMergeValidationCachesEXT)vk->vkGetInstanceProcAddr(instance, "vkMergeValidationCachesEXT");
1728     out->vkGetValidationCacheDataEXT = (PFN_vkGetValidationCacheDataEXT)vk->vkGetInstanceProcAddr(instance, "vkGetValidationCacheDataEXT");
1729 #endif
1730 #ifdef VK_NV_shading_rate_image
1731     out->vkCmdBindShadingRateImageNV = (PFN_vkCmdBindShadingRateImageNV)vk->vkGetInstanceProcAddr(instance, "vkCmdBindShadingRateImageNV");
1732     out->vkCmdSetViewportShadingRatePaletteNV = (PFN_vkCmdSetViewportShadingRatePaletteNV)vk->vkGetInstanceProcAddr(instance, "vkCmdSetViewportShadingRatePaletteNV");
1733     out->vkCmdSetCoarseSampleOrderNV = (PFN_vkCmdSetCoarseSampleOrderNV)vk->vkGetInstanceProcAddr(instance, "vkCmdSetCoarseSampleOrderNV");
1734 #endif
1735 #ifdef VK_NV_ray_tracing
1736     out->vkCreateAccelerationStructureNV = (PFN_vkCreateAccelerationStructureNV)vk->vkGetInstanceProcAddr(instance, "vkCreateAccelerationStructureNV");
1737     out->vkDestroyAccelerationStructureNV = (PFN_vkDestroyAccelerationStructureNV)vk->vkGetInstanceProcAddr(instance, "vkDestroyAccelerationStructureNV");
1738     out->vkGetAccelerationStructureMemoryRequirementsNV = (PFN_vkGetAccelerationStructureMemoryRequirementsNV)vk->vkGetInstanceProcAddr(instance, "vkGetAccelerationStructureMemoryRequirementsNV");
1739     out->vkBindAccelerationStructureMemoryNV = (PFN_vkBindAccelerationStructureMemoryNV)vk->vkGetInstanceProcAddr(instance, "vkBindAccelerationStructureMemoryNV");
1740     out->vkCmdBuildAccelerationStructureNV = (PFN_vkCmdBuildAccelerationStructureNV)vk->vkGetInstanceProcAddr(instance, "vkCmdBuildAccelerationStructureNV");
1741     out->vkCmdCopyAccelerationStructureNV = (PFN_vkCmdCopyAccelerationStructureNV)vk->vkGetInstanceProcAddr(instance, "vkCmdCopyAccelerationStructureNV");
1742     out->vkCmdTraceRaysNV = (PFN_vkCmdTraceRaysNV)vk->vkGetInstanceProcAddr(instance, "vkCmdTraceRaysNV");
1743     out->vkCreateRayTracingPipelinesNV = (PFN_vkCreateRayTracingPipelinesNV)vk->vkGetInstanceProcAddr(instance, "vkCreateRayTracingPipelinesNV");
1744     out->vkGetRayTracingShaderGroupHandlesKHR = (PFN_vkGetRayTracingShaderGroupHandlesKHR)vk->vkGetInstanceProcAddr(instance, "vkGetRayTracingShaderGroupHandlesKHR");
1745     out->vkGetRayTracingShaderGroupHandlesNV = (PFN_vkGetRayTracingShaderGroupHandlesNV)vk->vkGetInstanceProcAddr(instance, "vkGetRayTracingShaderGroupHandlesNV");
1746     out->vkGetAccelerationStructureHandleNV = (PFN_vkGetAccelerationStructureHandleNV)vk->vkGetInstanceProcAddr(instance, "vkGetAccelerationStructureHandleNV");
1747     out->vkCmdWriteAccelerationStructuresPropertiesNV = (PFN_vkCmdWriteAccelerationStructuresPropertiesNV)vk->vkGetInstanceProcAddr(instance, "vkCmdWriteAccelerationStructuresPropertiesNV");
1748     out->vkCompileDeferredNV = (PFN_vkCompileDeferredNV)vk->vkGetInstanceProcAddr(instance, "vkCompileDeferredNV");
1749 #endif
1750 #ifdef VK_EXT_external_memory_host
1751     out->vkGetMemoryHostPointerPropertiesEXT = (PFN_vkGetMemoryHostPointerPropertiesEXT)vk->vkGetInstanceProcAddr(instance, "vkGetMemoryHostPointerPropertiesEXT");
1752 #endif
1753 #ifdef VK_AMD_buffer_marker
1754     out->vkCmdWriteBufferMarkerAMD = (PFN_vkCmdWriteBufferMarkerAMD)vk->vkGetInstanceProcAddr(instance, "vkCmdWriteBufferMarkerAMD");
1755 #endif
1756 #ifdef VK_EXT_calibrated_timestamps
1757     out->vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = (PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)vk->vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT");
1758     out->vkGetCalibratedTimestampsEXT = (PFN_vkGetCalibratedTimestampsEXT)vk->vkGetInstanceProcAddr(instance, "vkGetCalibratedTimestampsEXT");
1759 #endif
1760 #ifdef VK_NV_mesh_shader
1761     out->vkCmdDrawMeshTasksNV = (PFN_vkCmdDrawMeshTasksNV)vk->vkGetInstanceProcAddr(instance, "vkCmdDrawMeshTasksNV");
1762     out->vkCmdDrawMeshTasksIndirectNV = (PFN_vkCmdDrawMeshTasksIndirectNV)vk->vkGetInstanceProcAddr(instance, "vkCmdDrawMeshTasksIndirectNV");
1763     out->vkCmdDrawMeshTasksIndirectCountNV = (PFN_vkCmdDrawMeshTasksIndirectCountNV)vk->vkGetInstanceProcAddr(instance, "vkCmdDrawMeshTasksIndirectCountNV");
1764 #endif
1765 #ifdef VK_NV_scissor_exclusive
1766     out->vkCmdSetExclusiveScissorNV = (PFN_vkCmdSetExclusiveScissorNV)vk->vkGetInstanceProcAddr(instance, "vkCmdSetExclusiveScissorNV");
1767 #endif
1768 #ifdef VK_NV_device_diagnostic_checkpoints
1769     out->vkCmdSetCheckpointNV = (PFN_vkCmdSetCheckpointNV)vk->vkGetInstanceProcAddr(instance, "vkCmdSetCheckpointNV");
1770     out->vkGetQueueCheckpointDataNV = (PFN_vkGetQueueCheckpointDataNV)vk->vkGetInstanceProcAddr(instance, "vkGetQueueCheckpointDataNV");
1771 #endif
1772 #ifdef VK_INTEL_performance_query
1773     out->vkInitializePerformanceApiINTEL = (PFN_vkInitializePerformanceApiINTEL)vk->vkGetInstanceProcAddr(instance, "vkInitializePerformanceApiINTEL");
1774     out->vkUninitializePerformanceApiINTEL = (PFN_vkUninitializePerformanceApiINTEL)vk->vkGetInstanceProcAddr(instance, "vkUninitializePerformanceApiINTEL");
1775     out->vkCmdSetPerformanceMarkerINTEL = (PFN_vkCmdSetPerformanceMarkerINTEL)vk->vkGetInstanceProcAddr(instance, "vkCmdSetPerformanceMarkerINTEL");
1776     out->vkCmdSetPerformanceStreamMarkerINTEL = (PFN_vkCmdSetPerformanceStreamMarkerINTEL)vk->vkGetInstanceProcAddr(instance, "vkCmdSetPerformanceStreamMarkerINTEL");
1777     out->vkCmdSetPerformanceOverrideINTEL = (PFN_vkCmdSetPerformanceOverrideINTEL)vk->vkGetInstanceProcAddr(instance, "vkCmdSetPerformanceOverrideINTEL");
1778     out->vkAcquirePerformanceConfigurationINTEL = (PFN_vkAcquirePerformanceConfigurationINTEL)vk->vkGetInstanceProcAddr(instance, "vkAcquirePerformanceConfigurationINTEL");
1779     out->vkReleasePerformanceConfigurationINTEL = (PFN_vkReleasePerformanceConfigurationINTEL)vk->vkGetInstanceProcAddr(instance, "vkReleasePerformanceConfigurationINTEL");
1780     out->vkQueueSetPerformanceConfigurationINTEL = (PFN_vkQueueSetPerformanceConfigurationINTEL)vk->vkGetInstanceProcAddr(instance, "vkQueueSetPerformanceConfigurationINTEL");
1781     out->vkGetPerformanceParameterINTEL = (PFN_vkGetPerformanceParameterINTEL)vk->vkGetInstanceProcAddr(instance, "vkGetPerformanceParameterINTEL");
1782 #endif
1783 #ifdef VK_AMD_display_native_hdr
1784     out->vkSetLocalDimmingAMD = (PFN_vkSetLocalDimmingAMD)vk->vkGetInstanceProcAddr(instance, "vkSetLocalDimmingAMD");
1785 #endif
1786 #ifdef VK_EXT_buffer_device_address
1787     out->vkGetBufferDeviceAddressEXT = (PFN_vkGetBufferDeviceAddressEXT)vk->vkGetInstanceProcAddr(instance, "vkGetBufferDeviceAddressEXT");
1788 #endif
1789 #ifdef VK_EXT_tooling_info
1790     out->vkGetPhysicalDeviceToolPropertiesEXT = (PFN_vkGetPhysicalDeviceToolPropertiesEXT)vk->vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceToolPropertiesEXT");
1791 #endif
1792 #ifdef VK_NV_cooperative_matrix
1793     out->vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = (PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV)vk->vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV");
1794 #endif
1795 #ifdef VK_NV_coverage_reduction_mode
1796     out->vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = (PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV)vk->vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV");
1797 #endif
1798 #ifdef VK_EXT_full_screen_exclusive
1799     out->vkGetPhysicalDeviceSurfacePresentModes2EXT = (PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT)vk->vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSurfacePresentModes2EXT");
1800     out->vkAcquireFullScreenExclusiveModeEXT = (PFN_vkAcquireFullScreenExclusiveModeEXT)vk->vkGetInstanceProcAddr(instance, "vkAcquireFullScreenExclusiveModeEXT");
1801     out->vkReleaseFullScreenExclusiveModeEXT = (PFN_vkReleaseFullScreenExclusiveModeEXT)vk->vkGetInstanceProcAddr(instance, "vkReleaseFullScreenExclusiveModeEXT");
1802     out->vkGetDeviceGroupSurfacePresentModes2EXT = (PFN_vkGetDeviceGroupSurfacePresentModes2EXT)vk->vkGetInstanceProcAddr(instance, "vkGetDeviceGroupSurfacePresentModes2EXT");
1803 #endif
1804 #ifdef VK_EXT_line_rasterization
1805     out->vkCmdSetLineStippleEXT = (PFN_vkCmdSetLineStippleEXT)vk->vkGetInstanceProcAddr(instance, "vkCmdSetLineStippleEXT");
1806 #endif
1807 #ifdef VK_EXT_host_query_reset
1808     out->vkResetQueryPoolEXT = (PFN_vkResetQueryPoolEXT)vk->vkGetInstanceProcAddr(instance, "vkResetQueryPoolEXT");
1809 #endif
1810 #ifdef VK_EXT_extended_dynamic_state
1811     out->vkCmdSetCullModeEXT = (PFN_vkCmdSetCullModeEXT)vk->vkGetInstanceProcAddr(instance, "vkCmdSetCullModeEXT");
1812     out->vkCmdSetFrontFaceEXT = (PFN_vkCmdSetFrontFaceEXT)vk->vkGetInstanceProcAddr(instance, "vkCmdSetFrontFaceEXT");
1813     out->vkCmdSetPrimitiveTopologyEXT = (PFN_vkCmdSetPrimitiveTopologyEXT)vk->vkGetInstanceProcAddr(instance, "vkCmdSetPrimitiveTopologyEXT");
1814     out->vkCmdSetViewportWithCountEXT = (PFN_vkCmdSetViewportWithCountEXT)vk->vkGetInstanceProcAddr(instance, "vkCmdSetViewportWithCountEXT");
1815     out->vkCmdSetScissorWithCountEXT = (PFN_vkCmdSetScissorWithCountEXT)vk->vkGetInstanceProcAddr(instance, "vkCmdSetScissorWithCountEXT");
1816     out->vkCmdBindVertexBuffers2EXT = (PFN_vkCmdBindVertexBuffers2EXT)vk->vkGetInstanceProcAddr(instance, "vkCmdBindVertexBuffers2EXT");
1817     out->vkCmdSetDepthTestEnableEXT = (PFN_vkCmdSetDepthTestEnableEXT)vk->vkGetInstanceProcAddr(instance, "vkCmdSetDepthTestEnableEXT");
1818     out->vkCmdSetDepthWriteEnableEXT = (PFN_vkCmdSetDepthWriteEnableEXT)vk->vkGetInstanceProcAddr(instance, "vkCmdSetDepthWriteEnableEXT");
1819     out->vkCmdSetDepthCompareOpEXT = (PFN_vkCmdSetDepthCompareOpEXT)vk->vkGetInstanceProcAddr(instance, "vkCmdSetDepthCompareOpEXT");
1820     out->vkCmdSetDepthBoundsTestEnableEXT = (PFN_vkCmdSetDepthBoundsTestEnableEXT)vk->vkGetInstanceProcAddr(instance, "vkCmdSetDepthBoundsTestEnableEXT");
1821     out->vkCmdSetStencilTestEnableEXT = (PFN_vkCmdSetStencilTestEnableEXT)vk->vkGetInstanceProcAddr(instance, "vkCmdSetStencilTestEnableEXT");
1822     out->vkCmdSetStencilOpEXT = (PFN_vkCmdSetStencilOpEXT)vk->vkGetInstanceProcAddr(instance, "vkCmdSetStencilOpEXT");
1823 #endif
1824 #ifdef VK_NV_device_generated_commands
1825     out->vkGetGeneratedCommandsMemoryRequirementsNV = (PFN_vkGetGeneratedCommandsMemoryRequirementsNV)vk->vkGetInstanceProcAddr(instance, "vkGetGeneratedCommandsMemoryRequirementsNV");
1826     out->vkCmdPreprocessGeneratedCommandsNV = (PFN_vkCmdPreprocessGeneratedCommandsNV)vk->vkGetInstanceProcAddr(instance, "vkCmdPreprocessGeneratedCommandsNV");
1827     out->vkCmdExecuteGeneratedCommandsNV = (PFN_vkCmdExecuteGeneratedCommandsNV)vk->vkGetInstanceProcAddr(instance, "vkCmdExecuteGeneratedCommandsNV");
1828     out->vkCmdBindPipelineShaderGroupNV = (PFN_vkCmdBindPipelineShaderGroupNV)vk->vkGetInstanceProcAddr(instance, "vkCmdBindPipelineShaderGroupNV");
1829     out->vkCreateIndirectCommandsLayoutNV = (PFN_vkCreateIndirectCommandsLayoutNV)vk->vkGetInstanceProcAddr(instance, "vkCreateIndirectCommandsLayoutNV");
1830     out->vkDestroyIndirectCommandsLayoutNV = (PFN_vkDestroyIndirectCommandsLayoutNV)vk->vkGetInstanceProcAddr(instance, "vkDestroyIndirectCommandsLayoutNV");
1831 #endif
1832 #ifdef VK_EXT_private_data
1833     out->vkCreatePrivateDataSlotEXT = (PFN_vkCreatePrivateDataSlotEXT)vk->vkGetInstanceProcAddr(instance, "vkCreatePrivateDataSlotEXT");
1834     out->vkDestroyPrivateDataSlotEXT = (PFN_vkDestroyPrivateDataSlotEXT)vk->vkGetInstanceProcAddr(instance, "vkDestroyPrivateDataSlotEXT");
1835     out->vkSetPrivateDataEXT = (PFN_vkSetPrivateDataEXT)vk->vkGetInstanceProcAddr(instance, "vkSetPrivateDataEXT");
1836     out->vkGetPrivateDataEXT = (PFN_vkGetPrivateDataEXT)vk->vkGetInstanceProcAddr(instance, "vkGetPrivateDataEXT");
1837 #endif
1838 #ifdef VK_NV_fragment_shading_rate_enums
1839     out->vkCmdSetFragmentShadingRateEnumNV = (PFN_vkCmdSetFragmentShadingRateEnumNV)vk->vkGetInstanceProcAddr(instance, "vkCmdSetFragmentShadingRateEnumNV");
1840 #endif
1841 #ifdef VK_EXT_directfb_surface
1842     out->vkGetPhysicalDeviceDirectFBPresentationSupportEXT = (PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT)vk->vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceDirectFBPresentationSupportEXT");
1843 #endif
1844 #ifdef VK_GOOGLE_gfxstream
1845     out->vkRegisterImageColorBufferGOOGLE = (PFN_vkRegisterImageColorBufferGOOGLE)vk->vkGetInstanceProcAddr(instance, "vkRegisterImageColorBufferGOOGLE");
1846     out->vkRegisterBufferColorBufferGOOGLE = (PFN_vkRegisterBufferColorBufferGOOGLE)vk->vkGetInstanceProcAddr(instance, "vkRegisterBufferColorBufferGOOGLE");
1847     out->vkMapMemoryIntoAddressSpaceGOOGLE = (PFN_vkMapMemoryIntoAddressSpaceGOOGLE)vk->vkGetInstanceProcAddr(instance, "vkMapMemoryIntoAddressSpaceGOOGLE");
1848     out->vkUpdateDescriptorSetWithTemplateSizedGOOGLE = (PFN_vkUpdateDescriptorSetWithTemplateSizedGOOGLE)vk->vkGetInstanceProcAddr(instance, "vkUpdateDescriptorSetWithTemplateSizedGOOGLE");
1849     out->vkBeginCommandBufferAsyncGOOGLE = (PFN_vkBeginCommandBufferAsyncGOOGLE)vk->vkGetInstanceProcAddr(instance, "vkBeginCommandBufferAsyncGOOGLE");
1850     out->vkEndCommandBufferAsyncGOOGLE = (PFN_vkEndCommandBufferAsyncGOOGLE)vk->vkGetInstanceProcAddr(instance, "vkEndCommandBufferAsyncGOOGLE");
1851     out->vkResetCommandBufferAsyncGOOGLE = (PFN_vkResetCommandBufferAsyncGOOGLE)vk->vkGetInstanceProcAddr(instance, "vkResetCommandBufferAsyncGOOGLE");
1852     out->vkCommandBufferHostSyncGOOGLE = (PFN_vkCommandBufferHostSyncGOOGLE)vk->vkGetInstanceProcAddr(instance, "vkCommandBufferHostSyncGOOGLE");
1853     out->vkCreateImageWithRequirementsGOOGLE = (PFN_vkCreateImageWithRequirementsGOOGLE)vk->vkGetInstanceProcAddr(instance, "vkCreateImageWithRequirementsGOOGLE");
1854     out->vkCreateBufferWithRequirementsGOOGLE = (PFN_vkCreateBufferWithRequirementsGOOGLE)vk->vkGetInstanceProcAddr(instance, "vkCreateBufferWithRequirementsGOOGLE");
1855     out->vkGetMemoryHostAddressInfoGOOGLE = (PFN_vkGetMemoryHostAddressInfoGOOGLE)vk->vkGetInstanceProcAddr(instance, "vkGetMemoryHostAddressInfoGOOGLE");
1856     out->vkFreeMemorySyncGOOGLE = (PFN_vkFreeMemorySyncGOOGLE)vk->vkGetInstanceProcAddr(instance, "vkFreeMemorySyncGOOGLE");
1857     out->vkQueueHostSyncGOOGLE = (PFN_vkQueueHostSyncGOOGLE)vk->vkGetInstanceProcAddr(instance, "vkQueueHostSyncGOOGLE");
1858     out->vkQueueSubmitAsyncGOOGLE = (PFN_vkQueueSubmitAsyncGOOGLE)vk->vkGetInstanceProcAddr(instance, "vkQueueSubmitAsyncGOOGLE");
1859     out->vkQueueWaitIdleAsyncGOOGLE = (PFN_vkQueueWaitIdleAsyncGOOGLE)vk->vkGetInstanceProcAddr(instance, "vkQueueWaitIdleAsyncGOOGLE");
1860     out->vkQueueBindSparseAsyncGOOGLE = (PFN_vkQueueBindSparseAsyncGOOGLE)vk->vkGetInstanceProcAddr(instance, "vkQueueBindSparseAsyncGOOGLE");
1861     out->vkGetLinearImageLayoutGOOGLE = (PFN_vkGetLinearImageLayoutGOOGLE)vk->vkGetInstanceProcAddr(instance, "vkGetLinearImageLayoutGOOGLE");
1862     out->vkQueueFlushCommandsGOOGLE = (PFN_vkQueueFlushCommandsGOOGLE)vk->vkGetInstanceProcAddr(instance, "vkQueueFlushCommandsGOOGLE");
1863     out->vkQueueCommitDescriptorSetUpdatesGOOGLE = (PFN_vkQueueCommitDescriptorSetUpdatesGOOGLE)vk->vkGetInstanceProcAddr(instance, "vkQueueCommitDescriptorSetUpdatesGOOGLE");
1864     out->vkCollectDescriptorPoolIdsGOOGLE = (PFN_vkCollectDescriptorPoolIdsGOOGLE)vk->vkGetInstanceProcAddr(instance, "vkCollectDescriptorPoolIdsGOOGLE");
1865 #endif
1866 #ifdef VK_KHR_acceleration_structure
1867     out->vkCreateAccelerationStructureKHR = (PFN_vkCreateAccelerationStructureKHR)vk->vkGetInstanceProcAddr(instance, "vkCreateAccelerationStructureKHR");
1868     out->vkDestroyAccelerationStructureKHR = (PFN_vkDestroyAccelerationStructureKHR)vk->vkGetInstanceProcAddr(instance, "vkDestroyAccelerationStructureKHR");
1869     out->vkCmdBuildAccelerationStructuresKHR = (PFN_vkCmdBuildAccelerationStructuresKHR)vk->vkGetInstanceProcAddr(instance, "vkCmdBuildAccelerationStructuresKHR");
1870     out->vkCmdBuildAccelerationStructuresIndirectKHR = (PFN_vkCmdBuildAccelerationStructuresIndirectKHR)vk->vkGetInstanceProcAddr(instance, "vkCmdBuildAccelerationStructuresIndirectKHR");
1871     out->vkBuildAccelerationStructuresKHR = (PFN_vkBuildAccelerationStructuresKHR)vk->vkGetInstanceProcAddr(instance, "vkBuildAccelerationStructuresKHR");
1872     out->vkCopyAccelerationStructureKHR = (PFN_vkCopyAccelerationStructureKHR)vk->vkGetInstanceProcAddr(instance, "vkCopyAccelerationStructureKHR");
1873     out->vkCopyAccelerationStructureToMemoryKHR = (PFN_vkCopyAccelerationStructureToMemoryKHR)vk->vkGetInstanceProcAddr(instance, "vkCopyAccelerationStructureToMemoryKHR");
1874     out->vkCopyMemoryToAccelerationStructureKHR = (PFN_vkCopyMemoryToAccelerationStructureKHR)vk->vkGetInstanceProcAddr(instance, "vkCopyMemoryToAccelerationStructureKHR");
1875     out->vkWriteAccelerationStructuresPropertiesKHR = (PFN_vkWriteAccelerationStructuresPropertiesKHR)vk->vkGetInstanceProcAddr(instance, "vkWriteAccelerationStructuresPropertiesKHR");
1876     out->vkCmdCopyAccelerationStructureKHR = (PFN_vkCmdCopyAccelerationStructureKHR)vk->vkGetInstanceProcAddr(instance, "vkCmdCopyAccelerationStructureKHR");
1877     out->vkCmdCopyAccelerationStructureToMemoryKHR = (PFN_vkCmdCopyAccelerationStructureToMemoryKHR)vk->vkGetInstanceProcAddr(instance, "vkCmdCopyAccelerationStructureToMemoryKHR");
1878     out->vkCmdCopyMemoryToAccelerationStructureKHR = (PFN_vkCmdCopyMemoryToAccelerationStructureKHR)vk->vkGetInstanceProcAddr(instance, "vkCmdCopyMemoryToAccelerationStructureKHR");
1879     out->vkGetAccelerationStructureDeviceAddressKHR = (PFN_vkGetAccelerationStructureDeviceAddressKHR)vk->vkGetInstanceProcAddr(instance, "vkGetAccelerationStructureDeviceAddressKHR");
1880     out->vkCmdWriteAccelerationStructuresPropertiesKHR = (PFN_vkCmdWriteAccelerationStructuresPropertiesKHR)vk->vkGetInstanceProcAddr(instance, "vkCmdWriteAccelerationStructuresPropertiesKHR");
1881     out->vkGetDeviceAccelerationStructureCompatibilityKHR = (PFN_vkGetDeviceAccelerationStructureCompatibilityKHR)vk->vkGetInstanceProcAddr(instance, "vkGetDeviceAccelerationStructureCompatibilityKHR");
1882     out->vkGetAccelerationStructureBuildSizesKHR = (PFN_vkGetAccelerationStructureBuildSizesKHR)vk->vkGetInstanceProcAddr(instance, "vkGetAccelerationStructureBuildSizesKHR");
1883 #endif
1884 #ifdef VK_KHR_ray_tracing_pipeline
1885     out->vkCmdTraceRaysKHR = (PFN_vkCmdTraceRaysKHR)vk->vkGetInstanceProcAddr(instance, "vkCmdTraceRaysKHR");
1886     out->vkCreateRayTracingPipelinesKHR = (PFN_vkCreateRayTracingPipelinesKHR)vk->vkGetInstanceProcAddr(instance, "vkCreateRayTracingPipelinesKHR");
1887     out->vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = (PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR)vk->vkGetInstanceProcAddr(instance, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR");
1888     out->vkCmdTraceRaysIndirectKHR = (PFN_vkCmdTraceRaysIndirectKHR)vk->vkGetInstanceProcAddr(instance, "vkCmdTraceRaysIndirectKHR");
1889     out->vkGetRayTracingShaderGroupStackSizeKHR = (PFN_vkGetRayTracingShaderGroupStackSizeKHR)vk->vkGetInstanceProcAddr(instance, "vkGetRayTracingShaderGroupStackSizeKHR");
1890     out->vkCmdSetRayTracingPipelineStackSizeKHR = (PFN_vkCmdSetRayTracingPipelineStackSizeKHR)vk->vkGetInstanceProcAddr(instance, "vkCmdSetRayTracingPipelineStackSizeKHR");
1891 #endif
1892 #ifdef VK_MVK_moltenvk
1893     out->vkGetMTLDeviceMVK = (PFN_vkGetMTLDeviceMVK)vk->vkGetInstanceProcAddr(instance, "vkGetMTLDeviceMVK");
1894     out->vkSetMTLTextureMVK = (PFN_vkSetMTLTextureMVK)vk->vkGetInstanceProcAddr(instance, "vkSetMTLTextureMVK");
1895     out->vkGetMTLTextureMVK = (PFN_vkGetMTLTextureMVK)vk->vkGetInstanceProcAddr(instance, "vkGetMTLTextureMVK");
1896     out->vkGetMTLBufferMVK = (PFN_vkGetMTLBufferMVK)vk->vkGetInstanceProcAddr(instance, "vkGetMTLBufferMVK");
1897     out->vkUseIOSurfaceMVK = (PFN_vkUseIOSurfaceMVK)vk->vkGetInstanceProcAddr(instance, "vkUseIOSurfaceMVK");
1898     out->vkGetIOSurfaceMVK = (PFN_vkGetIOSurfaceMVK)vk->vkGetInstanceProcAddr(instance, "vkGetIOSurfaceMVK");
1899 #endif
1900 }
1901 
init_vulkan_dispatch_from_device(VulkanDispatch * vk,VkDevice device,VulkanDispatch * out)1902 void init_vulkan_dispatch_from_device(
1903     VulkanDispatch* vk,
1904     VkDevice device,
1905     VulkanDispatch* out)
1906 {
1907     memset(out, 0x0, sizeof(VulkanDispatch));
1908 #ifdef VK_VERSION_1_0
1909     out->vkDestroyInstance = (PFN_vkDestroyInstance)vk->vkGetDeviceProcAddr(device, "vkDestroyInstance");
1910     out->vkEnumeratePhysicalDevices = (PFN_vkEnumeratePhysicalDevices)vk->vkGetDeviceProcAddr(device, "vkEnumeratePhysicalDevices");
1911     out->vkGetPhysicalDeviceFeatures = (PFN_vkGetPhysicalDeviceFeatures)vk->vkGetDeviceProcAddr(device, "vkGetPhysicalDeviceFeatures");
1912     out->vkGetPhysicalDeviceFormatProperties = (PFN_vkGetPhysicalDeviceFormatProperties)vk->vkGetDeviceProcAddr(device, "vkGetPhysicalDeviceFormatProperties");
1913     out->vkGetPhysicalDeviceImageFormatProperties = (PFN_vkGetPhysicalDeviceImageFormatProperties)vk->vkGetDeviceProcAddr(device, "vkGetPhysicalDeviceImageFormatProperties");
1914     out->vkGetPhysicalDeviceProperties = (PFN_vkGetPhysicalDeviceProperties)vk->vkGetDeviceProcAddr(device, "vkGetPhysicalDeviceProperties");
1915     out->vkGetPhysicalDeviceQueueFamilyProperties = (PFN_vkGetPhysicalDeviceQueueFamilyProperties)vk->vkGetDeviceProcAddr(device, "vkGetPhysicalDeviceQueueFamilyProperties");
1916     out->vkGetPhysicalDeviceMemoryProperties = (PFN_vkGetPhysicalDeviceMemoryProperties)vk->vkGetDeviceProcAddr(device, "vkGetPhysicalDeviceMemoryProperties");
1917     out->vkGetInstanceProcAddr = (PFN_vkGetInstanceProcAddr)vk->vkGetDeviceProcAddr(device, "vkGetInstanceProcAddr");
1918     out->vkCreateDevice = (PFN_vkCreateDevice)vk->vkGetDeviceProcAddr(device, "vkCreateDevice");
1919     out->vkDestroyDevice = (PFN_vkDestroyDevice)vk->vkGetDeviceProcAddr(device, "vkDestroyDevice");
1920     out->vkEnumerateDeviceExtensionProperties = (PFN_vkEnumerateDeviceExtensionProperties)vk->vkGetDeviceProcAddr(device, "vkEnumerateDeviceExtensionProperties");
1921     out->vkEnumerateDeviceLayerProperties = (PFN_vkEnumerateDeviceLayerProperties)vk->vkGetDeviceProcAddr(device, "vkEnumerateDeviceLayerProperties");
1922     out->vkCreateInstance = (PFN_vkCreateInstance)vk->vkGetDeviceProcAddr(device, "vkCreateInstance");
1923     out->vkEnumerateInstanceExtensionProperties = (PFN_vkEnumerateInstanceExtensionProperties)vk->vkGetDeviceProcAddr(device, "vkEnumerateInstanceExtensionProperties");
1924     out->vkEnumerateInstanceLayerProperties = (PFN_vkEnumerateInstanceLayerProperties)vk->vkGetDeviceProcAddr(device, "vkEnumerateInstanceLayerProperties");
1925     out->vkGetDeviceProcAddr = (PFN_vkGetDeviceProcAddr)vk->vkGetDeviceProcAddr(device, "vkGetDeviceProcAddr");
1926     out->vkGetPhysicalDeviceSparseImageFormatProperties = (PFN_vkGetPhysicalDeviceSparseImageFormatProperties)vk->vkGetDeviceProcAddr(device, "vkGetPhysicalDeviceSparseImageFormatProperties");
1927 #endif
1928 #ifdef VK_VERSION_1_1
1929     out->vkEnumerateInstanceVersion = (PFN_vkEnumerateInstanceVersion)vk->vkGetDeviceProcAddr(device, "vkEnumerateInstanceVersion");
1930     out->vkEnumeratePhysicalDeviceGroups = (PFN_vkEnumeratePhysicalDeviceGroups)vk->vkGetDeviceProcAddr(device, "vkEnumeratePhysicalDeviceGroups");
1931     out->vkGetPhysicalDeviceFeatures2 = (PFN_vkGetPhysicalDeviceFeatures2)vk->vkGetDeviceProcAddr(device, "vkGetPhysicalDeviceFeatures2");
1932     out->vkGetPhysicalDeviceProperties2 = (PFN_vkGetPhysicalDeviceProperties2)vk->vkGetDeviceProcAddr(device, "vkGetPhysicalDeviceProperties2");
1933     out->vkGetPhysicalDeviceFormatProperties2 = (PFN_vkGetPhysicalDeviceFormatProperties2)vk->vkGetDeviceProcAddr(device, "vkGetPhysicalDeviceFormatProperties2");
1934     out->vkGetPhysicalDeviceImageFormatProperties2 = (PFN_vkGetPhysicalDeviceImageFormatProperties2)vk->vkGetDeviceProcAddr(device, "vkGetPhysicalDeviceImageFormatProperties2");
1935     out->vkGetPhysicalDeviceQueueFamilyProperties2 = (PFN_vkGetPhysicalDeviceQueueFamilyProperties2)vk->vkGetDeviceProcAddr(device, "vkGetPhysicalDeviceQueueFamilyProperties2");
1936     out->vkGetPhysicalDeviceMemoryProperties2 = (PFN_vkGetPhysicalDeviceMemoryProperties2)vk->vkGetDeviceProcAddr(device, "vkGetPhysicalDeviceMemoryProperties2");
1937     out->vkGetPhysicalDeviceSparseImageFormatProperties2 = (PFN_vkGetPhysicalDeviceSparseImageFormatProperties2)vk->vkGetDeviceProcAddr(device, "vkGetPhysicalDeviceSparseImageFormatProperties2");
1938     out->vkGetPhysicalDeviceExternalBufferProperties = (PFN_vkGetPhysicalDeviceExternalBufferProperties)vk->vkGetDeviceProcAddr(device, "vkGetPhysicalDeviceExternalBufferProperties");
1939     out->vkGetPhysicalDeviceExternalFenceProperties = (PFN_vkGetPhysicalDeviceExternalFenceProperties)vk->vkGetDeviceProcAddr(device, "vkGetPhysicalDeviceExternalFenceProperties");
1940     out->vkGetPhysicalDeviceExternalSemaphoreProperties = (PFN_vkGetPhysicalDeviceExternalSemaphoreProperties)vk->vkGetDeviceProcAddr(device, "vkGetPhysicalDeviceExternalSemaphoreProperties");
1941 #endif
1942 #ifdef VK_KHR_surface
1943     out->vkDestroySurfaceKHR = (PFN_vkDestroySurfaceKHR)vk->vkGetDeviceProcAddr(device, "vkDestroySurfaceKHR");
1944 #endif
1945 #ifdef VK_KHR_swapchain
1946     out->vkCreateSwapchainKHR = (PFN_vkCreateSwapchainKHR)vk->vkGetDeviceProcAddr(device, "vkCreateSwapchainKHR");
1947     out->vkDestroySwapchainKHR = (PFN_vkDestroySwapchainKHR)vk->vkGetDeviceProcAddr(device, "vkDestroySwapchainKHR");
1948     out->vkGetSwapchainImagesKHR = (PFN_vkGetSwapchainImagesKHR)vk->vkGetDeviceProcAddr(device, "vkGetSwapchainImagesKHR");
1949     out->vkAcquireNextImageKHR = (PFN_vkAcquireNextImageKHR)vk->vkGetDeviceProcAddr(device, "vkAcquireNextImageKHR");
1950     out->vkQueuePresentKHR = (PFN_vkQueuePresentKHR)vk->vkGetDeviceProcAddr(device, "vkQueuePresentKHR");
1951 #endif
1952 #ifdef VK_KHR_display
1953     out->vkCreateDisplayPlaneSurfaceKHR = (PFN_vkCreateDisplayPlaneSurfaceKHR)vk->vkGetDeviceProcAddr(device, "vkCreateDisplayPlaneSurfaceKHR");
1954 #endif
1955 #ifdef VK_KHR_xlib_surface
1956     out->vkCreateXlibSurfaceKHR = (PFN_vkCreateXlibSurfaceKHR)vk->vkGetDeviceProcAddr(device, "vkCreateXlibSurfaceKHR");
1957     out->vkGetPhysicalDeviceXlibPresentationSupportKHR = (PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR)vk->vkGetDeviceProcAddr(device, "vkGetPhysicalDeviceXlibPresentationSupportKHR");
1958 #endif
1959 #ifdef VK_KHR_xcb_surface
1960     out->vkCreateXcbSurfaceKHR = (PFN_vkCreateXcbSurfaceKHR)vk->vkGetDeviceProcAddr(device, "vkCreateXcbSurfaceKHR");
1961     out->vkGetPhysicalDeviceXcbPresentationSupportKHR = (PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR)vk->vkGetDeviceProcAddr(device, "vkGetPhysicalDeviceXcbPresentationSupportKHR");
1962 #endif
1963 #ifdef VK_KHR_wayland_surface
1964     out->vkCreateWaylandSurfaceKHR = (PFN_vkCreateWaylandSurfaceKHR)vk->vkGetDeviceProcAddr(device, "vkCreateWaylandSurfaceKHR");
1965 #endif
1966 #ifdef VK_KHR_android_surface
1967     out->vkCreateAndroidSurfaceKHR = (PFN_vkCreateAndroidSurfaceKHR)vk->vkGetDeviceProcAddr(device, "vkCreateAndroidSurfaceKHR");
1968 #endif
1969 #ifdef VK_KHR_win32_surface
1970     out->vkCreateWin32SurfaceKHR = (PFN_vkCreateWin32SurfaceKHR)vk->vkGetDeviceProcAddr(device, "vkCreateWin32SurfaceKHR");
1971     out->vkGetPhysicalDeviceWin32PresentationSupportKHR = (PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)vk->vkGetDeviceProcAddr(device, "vkGetPhysicalDeviceWin32PresentationSupportKHR");
1972 #endif
1973 #ifdef VK_KHR_device_group_creation
1974     out->vkEnumeratePhysicalDeviceGroupsKHR = (PFN_vkEnumeratePhysicalDeviceGroupsKHR)vk->vkGetDeviceProcAddr(device, "vkEnumeratePhysicalDeviceGroupsKHR");
1975 #endif
1976 #ifdef VK_EXT_debug_report
1977     out->vkCreateDebugReportCallbackEXT = (PFN_vkCreateDebugReportCallbackEXT)vk->vkGetDeviceProcAddr(device, "vkCreateDebugReportCallbackEXT");
1978     out->vkDestroyDebugReportCallbackEXT = (PFN_vkDestroyDebugReportCallbackEXT)vk->vkGetDeviceProcAddr(device, "vkDestroyDebugReportCallbackEXT");
1979     out->vkDebugReportMessageEXT = (PFN_vkDebugReportMessageEXT)vk->vkGetDeviceProcAddr(device, "vkDebugReportMessageEXT");
1980 #endif
1981 #ifdef VK_GGP_stream_descriptor_surface
1982     out->vkCreateStreamDescriptorSurfaceGGP = (PFN_vkCreateStreamDescriptorSurfaceGGP)vk->vkGetDeviceProcAddr(device, "vkCreateStreamDescriptorSurfaceGGP");
1983 #endif
1984 #ifdef VK_NN_vi_surface
1985     out->vkCreateViSurfaceNN = (PFN_vkCreateViSurfaceNN)vk->vkGetDeviceProcAddr(device, "vkCreateViSurfaceNN");
1986 #endif
1987 #ifdef VK_MVK_ios_surface
1988     out->vkCreateIOSSurfaceMVK = (PFN_vkCreateIOSSurfaceMVK)vk->vkGetDeviceProcAddr(device, "vkCreateIOSSurfaceMVK");
1989 #endif
1990 #ifdef VK_MVK_macos_surface
1991     out->vkCreateMacOSSurfaceMVK = (PFN_vkCreateMacOSSurfaceMVK)vk->vkGetDeviceProcAddr(device, "vkCreateMacOSSurfaceMVK");
1992 #endif
1993 #ifdef VK_EXT_debug_utils
1994     out->vkCreateDebugUtilsMessengerEXT = (PFN_vkCreateDebugUtilsMessengerEXT)vk->vkGetDeviceProcAddr(device, "vkCreateDebugUtilsMessengerEXT");
1995     out->vkDestroyDebugUtilsMessengerEXT = (PFN_vkDestroyDebugUtilsMessengerEXT)vk->vkGetDeviceProcAddr(device, "vkDestroyDebugUtilsMessengerEXT");
1996     out->vkSubmitDebugUtilsMessageEXT = (PFN_vkSubmitDebugUtilsMessageEXT)vk->vkGetDeviceProcAddr(device, "vkSubmitDebugUtilsMessageEXT");
1997 #endif
1998 #ifdef VK_FUCHSIA_imagepipe_surface
1999     out->vkCreateImagePipeSurfaceFUCHSIA = (PFN_vkCreateImagePipeSurfaceFUCHSIA)vk->vkGetDeviceProcAddr(device, "vkCreateImagePipeSurfaceFUCHSIA");
2000 #endif
2001 #ifdef VK_EXT_metal_surface
2002     out->vkCreateMetalSurfaceEXT = (PFN_vkCreateMetalSurfaceEXT)vk->vkGetDeviceProcAddr(device, "vkCreateMetalSurfaceEXT");
2003 #endif
2004 #ifdef VK_EXT_headless_surface
2005     out->vkCreateHeadlessSurfaceEXT = (PFN_vkCreateHeadlessSurfaceEXT)vk->vkGetDeviceProcAddr(device, "vkCreateHeadlessSurfaceEXT");
2006 #endif
2007 #ifdef VK_EXT_directfb_surface
2008     out->vkCreateDirectFBSurfaceEXT = (PFN_vkCreateDirectFBSurfaceEXT)vk->vkGetDeviceProcAddr(device, "vkCreateDirectFBSurfaceEXT");
2009 #endif
2010 #ifdef VK_VERSION_1_0
2011     out->vkGetDeviceQueue = (PFN_vkGetDeviceQueue)vk->vkGetDeviceProcAddr(device, "vkGetDeviceQueue");
2012     out->vkQueueSubmit = (PFN_vkQueueSubmit)vk->vkGetDeviceProcAddr(device, "vkQueueSubmit");
2013     out->vkQueueWaitIdle = (PFN_vkQueueWaitIdle)vk->vkGetDeviceProcAddr(device, "vkQueueWaitIdle");
2014     out->vkDeviceWaitIdle = (PFN_vkDeviceWaitIdle)vk->vkGetDeviceProcAddr(device, "vkDeviceWaitIdle");
2015     out->vkAllocateMemory = (PFN_vkAllocateMemory)vk->vkGetDeviceProcAddr(device, "vkAllocateMemory");
2016     out->vkFreeMemory = (PFN_vkFreeMemory)vk->vkGetDeviceProcAddr(device, "vkFreeMemory");
2017     out->vkMapMemory = (PFN_vkMapMemory)vk->vkGetDeviceProcAddr(device, "vkMapMemory");
2018     out->vkUnmapMemory = (PFN_vkUnmapMemory)vk->vkGetDeviceProcAddr(device, "vkUnmapMemory");
2019     out->vkFlushMappedMemoryRanges = (PFN_vkFlushMappedMemoryRanges)vk->vkGetDeviceProcAddr(device, "vkFlushMappedMemoryRanges");
2020     out->vkInvalidateMappedMemoryRanges = (PFN_vkInvalidateMappedMemoryRanges)vk->vkGetDeviceProcAddr(device, "vkInvalidateMappedMemoryRanges");
2021     out->vkGetDeviceMemoryCommitment = (PFN_vkGetDeviceMemoryCommitment)vk->vkGetDeviceProcAddr(device, "vkGetDeviceMemoryCommitment");
2022     out->vkBindBufferMemory = (PFN_vkBindBufferMemory)vk->vkGetDeviceProcAddr(device, "vkBindBufferMemory");
2023     out->vkBindImageMemory = (PFN_vkBindImageMemory)vk->vkGetDeviceProcAddr(device, "vkBindImageMemory");
2024     out->vkGetBufferMemoryRequirements = (PFN_vkGetBufferMemoryRequirements)vk->vkGetDeviceProcAddr(device, "vkGetBufferMemoryRequirements");
2025     out->vkGetImageMemoryRequirements = (PFN_vkGetImageMemoryRequirements)vk->vkGetDeviceProcAddr(device, "vkGetImageMemoryRequirements");
2026     out->vkGetImageSparseMemoryRequirements = (PFN_vkGetImageSparseMemoryRequirements)vk->vkGetDeviceProcAddr(device, "vkGetImageSparseMemoryRequirements");
2027     out->vkQueueBindSparse = (PFN_vkQueueBindSparse)vk->vkGetDeviceProcAddr(device, "vkQueueBindSparse");
2028     out->vkCreateFence = (PFN_vkCreateFence)vk->vkGetDeviceProcAddr(device, "vkCreateFence");
2029     out->vkDestroyFence = (PFN_vkDestroyFence)vk->vkGetDeviceProcAddr(device, "vkDestroyFence");
2030     out->vkResetFences = (PFN_vkResetFences)vk->vkGetDeviceProcAddr(device, "vkResetFences");
2031     out->vkGetFenceStatus = (PFN_vkGetFenceStatus)vk->vkGetDeviceProcAddr(device, "vkGetFenceStatus");
2032     out->vkWaitForFences = (PFN_vkWaitForFences)vk->vkGetDeviceProcAddr(device, "vkWaitForFences");
2033     out->vkCreateSemaphore = (PFN_vkCreateSemaphore)vk->vkGetDeviceProcAddr(device, "vkCreateSemaphore");
2034     out->vkDestroySemaphore = (PFN_vkDestroySemaphore)vk->vkGetDeviceProcAddr(device, "vkDestroySemaphore");
2035     out->vkCreateEvent = (PFN_vkCreateEvent)vk->vkGetDeviceProcAddr(device, "vkCreateEvent");
2036     out->vkDestroyEvent = (PFN_vkDestroyEvent)vk->vkGetDeviceProcAddr(device, "vkDestroyEvent");
2037     out->vkGetEventStatus = (PFN_vkGetEventStatus)vk->vkGetDeviceProcAddr(device, "vkGetEventStatus");
2038     out->vkSetEvent = (PFN_vkSetEvent)vk->vkGetDeviceProcAddr(device, "vkSetEvent");
2039     out->vkResetEvent = (PFN_vkResetEvent)vk->vkGetDeviceProcAddr(device, "vkResetEvent");
2040     out->vkCreateQueryPool = (PFN_vkCreateQueryPool)vk->vkGetDeviceProcAddr(device, "vkCreateQueryPool");
2041     out->vkDestroyQueryPool = (PFN_vkDestroyQueryPool)vk->vkGetDeviceProcAddr(device, "vkDestroyQueryPool");
2042     out->vkGetQueryPoolResults = (PFN_vkGetQueryPoolResults)vk->vkGetDeviceProcAddr(device, "vkGetQueryPoolResults");
2043     out->vkCreateBuffer = (PFN_vkCreateBuffer)vk->vkGetDeviceProcAddr(device, "vkCreateBuffer");
2044     out->vkDestroyBuffer = (PFN_vkDestroyBuffer)vk->vkGetDeviceProcAddr(device, "vkDestroyBuffer");
2045     out->vkCreateBufferView = (PFN_vkCreateBufferView)vk->vkGetDeviceProcAddr(device, "vkCreateBufferView");
2046     out->vkDestroyBufferView = (PFN_vkDestroyBufferView)vk->vkGetDeviceProcAddr(device, "vkDestroyBufferView");
2047     out->vkCreateImage = (PFN_vkCreateImage)vk->vkGetDeviceProcAddr(device, "vkCreateImage");
2048     out->vkDestroyImage = (PFN_vkDestroyImage)vk->vkGetDeviceProcAddr(device, "vkDestroyImage");
2049     out->vkGetImageSubresourceLayout = (PFN_vkGetImageSubresourceLayout)vk->vkGetDeviceProcAddr(device, "vkGetImageSubresourceLayout");
2050     out->vkCreateImageView = (PFN_vkCreateImageView)vk->vkGetDeviceProcAddr(device, "vkCreateImageView");
2051     out->vkDestroyImageView = (PFN_vkDestroyImageView)vk->vkGetDeviceProcAddr(device, "vkDestroyImageView");
2052     out->vkCreateShaderModule = (PFN_vkCreateShaderModule)vk->vkGetDeviceProcAddr(device, "vkCreateShaderModule");
2053     out->vkDestroyShaderModule = (PFN_vkDestroyShaderModule)vk->vkGetDeviceProcAddr(device, "vkDestroyShaderModule");
2054     out->vkCreatePipelineCache = (PFN_vkCreatePipelineCache)vk->vkGetDeviceProcAddr(device, "vkCreatePipelineCache");
2055     out->vkDestroyPipelineCache = (PFN_vkDestroyPipelineCache)vk->vkGetDeviceProcAddr(device, "vkDestroyPipelineCache");
2056     out->vkGetPipelineCacheData = (PFN_vkGetPipelineCacheData)vk->vkGetDeviceProcAddr(device, "vkGetPipelineCacheData");
2057     out->vkMergePipelineCaches = (PFN_vkMergePipelineCaches)vk->vkGetDeviceProcAddr(device, "vkMergePipelineCaches");
2058     out->vkCreateGraphicsPipelines = (PFN_vkCreateGraphicsPipelines)vk->vkGetDeviceProcAddr(device, "vkCreateGraphicsPipelines");
2059     out->vkCreateComputePipelines = (PFN_vkCreateComputePipelines)vk->vkGetDeviceProcAddr(device, "vkCreateComputePipelines");
2060     out->vkDestroyPipeline = (PFN_vkDestroyPipeline)vk->vkGetDeviceProcAddr(device, "vkDestroyPipeline");
2061     out->vkCreatePipelineLayout = (PFN_vkCreatePipelineLayout)vk->vkGetDeviceProcAddr(device, "vkCreatePipelineLayout");
2062     out->vkDestroyPipelineLayout = (PFN_vkDestroyPipelineLayout)vk->vkGetDeviceProcAddr(device, "vkDestroyPipelineLayout");
2063     out->vkCreateSampler = (PFN_vkCreateSampler)vk->vkGetDeviceProcAddr(device, "vkCreateSampler");
2064     out->vkDestroySampler = (PFN_vkDestroySampler)vk->vkGetDeviceProcAddr(device, "vkDestroySampler");
2065     out->vkCreateDescriptorSetLayout = (PFN_vkCreateDescriptorSetLayout)vk->vkGetDeviceProcAddr(device, "vkCreateDescriptorSetLayout");
2066     out->vkDestroyDescriptorSetLayout = (PFN_vkDestroyDescriptorSetLayout)vk->vkGetDeviceProcAddr(device, "vkDestroyDescriptorSetLayout");
2067     out->vkCreateDescriptorPool = (PFN_vkCreateDescriptorPool)vk->vkGetDeviceProcAddr(device, "vkCreateDescriptorPool");
2068     out->vkDestroyDescriptorPool = (PFN_vkDestroyDescriptorPool)vk->vkGetDeviceProcAddr(device, "vkDestroyDescriptorPool");
2069     out->vkResetDescriptorPool = (PFN_vkResetDescriptorPool)vk->vkGetDeviceProcAddr(device, "vkResetDescriptorPool");
2070     out->vkAllocateDescriptorSets = (PFN_vkAllocateDescriptorSets)vk->vkGetDeviceProcAddr(device, "vkAllocateDescriptorSets");
2071     out->vkFreeDescriptorSets = (PFN_vkFreeDescriptorSets)vk->vkGetDeviceProcAddr(device, "vkFreeDescriptorSets");
2072     out->vkUpdateDescriptorSets = (PFN_vkUpdateDescriptorSets)vk->vkGetDeviceProcAddr(device, "vkUpdateDescriptorSets");
2073     out->vkCreateFramebuffer = (PFN_vkCreateFramebuffer)vk->vkGetDeviceProcAddr(device, "vkCreateFramebuffer");
2074     out->vkDestroyFramebuffer = (PFN_vkDestroyFramebuffer)vk->vkGetDeviceProcAddr(device, "vkDestroyFramebuffer");
2075     out->vkCreateRenderPass = (PFN_vkCreateRenderPass)vk->vkGetDeviceProcAddr(device, "vkCreateRenderPass");
2076     out->vkDestroyRenderPass = (PFN_vkDestroyRenderPass)vk->vkGetDeviceProcAddr(device, "vkDestroyRenderPass");
2077     out->vkGetRenderAreaGranularity = (PFN_vkGetRenderAreaGranularity)vk->vkGetDeviceProcAddr(device, "vkGetRenderAreaGranularity");
2078     out->vkCreateCommandPool = (PFN_vkCreateCommandPool)vk->vkGetDeviceProcAddr(device, "vkCreateCommandPool");
2079     out->vkDestroyCommandPool = (PFN_vkDestroyCommandPool)vk->vkGetDeviceProcAddr(device, "vkDestroyCommandPool");
2080     out->vkResetCommandPool = (PFN_vkResetCommandPool)vk->vkGetDeviceProcAddr(device, "vkResetCommandPool");
2081     out->vkAllocateCommandBuffers = (PFN_vkAllocateCommandBuffers)vk->vkGetDeviceProcAddr(device, "vkAllocateCommandBuffers");
2082     out->vkFreeCommandBuffers = (PFN_vkFreeCommandBuffers)vk->vkGetDeviceProcAddr(device, "vkFreeCommandBuffers");
2083     out->vkBeginCommandBuffer = (PFN_vkBeginCommandBuffer)vk->vkGetDeviceProcAddr(device, "vkBeginCommandBuffer");
2084     out->vkEndCommandBuffer = (PFN_vkEndCommandBuffer)vk->vkGetDeviceProcAddr(device, "vkEndCommandBuffer");
2085     out->vkResetCommandBuffer = (PFN_vkResetCommandBuffer)vk->vkGetDeviceProcAddr(device, "vkResetCommandBuffer");
2086     out->vkCmdBindPipeline = (PFN_vkCmdBindPipeline)vk->vkGetDeviceProcAddr(device, "vkCmdBindPipeline");
2087     out->vkCmdSetViewport = (PFN_vkCmdSetViewport)vk->vkGetDeviceProcAddr(device, "vkCmdSetViewport");
2088     out->vkCmdSetScissor = (PFN_vkCmdSetScissor)vk->vkGetDeviceProcAddr(device, "vkCmdSetScissor");
2089     out->vkCmdSetLineWidth = (PFN_vkCmdSetLineWidth)vk->vkGetDeviceProcAddr(device, "vkCmdSetLineWidth");
2090     out->vkCmdSetDepthBias = (PFN_vkCmdSetDepthBias)vk->vkGetDeviceProcAddr(device, "vkCmdSetDepthBias");
2091     out->vkCmdSetBlendConstants = (PFN_vkCmdSetBlendConstants)vk->vkGetDeviceProcAddr(device, "vkCmdSetBlendConstants");
2092     out->vkCmdSetDepthBounds = (PFN_vkCmdSetDepthBounds)vk->vkGetDeviceProcAddr(device, "vkCmdSetDepthBounds");
2093     out->vkCmdSetStencilCompareMask = (PFN_vkCmdSetStencilCompareMask)vk->vkGetDeviceProcAddr(device, "vkCmdSetStencilCompareMask");
2094     out->vkCmdSetStencilWriteMask = (PFN_vkCmdSetStencilWriteMask)vk->vkGetDeviceProcAddr(device, "vkCmdSetStencilWriteMask");
2095     out->vkCmdSetStencilReference = (PFN_vkCmdSetStencilReference)vk->vkGetDeviceProcAddr(device, "vkCmdSetStencilReference");
2096     out->vkCmdBindDescriptorSets = (PFN_vkCmdBindDescriptorSets)vk->vkGetDeviceProcAddr(device, "vkCmdBindDescriptorSets");
2097     out->vkCmdBindIndexBuffer = (PFN_vkCmdBindIndexBuffer)vk->vkGetDeviceProcAddr(device, "vkCmdBindIndexBuffer");
2098     out->vkCmdBindVertexBuffers = (PFN_vkCmdBindVertexBuffers)vk->vkGetDeviceProcAddr(device, "vkCmdBindVertexBuffers");
2099     out->vkCmdDraw = (PFN_vkCmdDraw)vk->vkGetDeviceProcAddr(device, "vkCmdDraw");
2100     out->vkCmdDrawIndexed = (PFN_vkCmdDrawIndexed)vk->vkGetDeviceProcAddr(device, "vkCmdDrawIndexed");
2101     out->vkCmdDrawIndirect = (PFN_vkCmdDrawIndirect)vk->vkGetDeviceProcAddr(device, "vkCmdDrawIndirect");
2102     out->vkCmdDrawIndexedIndirect = (PFN_vkCmdDrawIndexedIndirect)vk->vkGetDeviceProcAddr(device, "vkCmdDrawIndexedIndirect");
2103     out->vkCmdDispatch = (PFN_vkCmdDispatch)vk->vkGetDeviceProcAddr(device, "vkCmdDispatch");
2104     out->vkCmdDispatchIndirect = (PFN_vkCmdDispatchIndirect)vk->vkGetDeviceProcAddr(device, "vkCmdDispatchIndirect");
2105     out->vkCmdCopyBuffer = (PFN_vkCmdCopyBuffer)vk->vkGetDeviceProcAddr(device, "vkCmdCopyBuffer");
2106     out->vkCmdCopyImage = (PFN_vkCmdCopyImage)vk->vkGetDeviceProcAddr(device, "vkCmdCopyImage");
2107     out->vkCmdBlitImage = (PFN_vkCmdBlitImage)vk->vkGetDeviceProcAddr(device, "vkCmdBlitImage");
2108     out->vkCmdCopyBufferToImage = (PFN_vkCmdCopyBufferToImage)vk->vkGetDeviceProcAddr(device, "vkCmdCopyBufferToImage");
2109     out->vkCmdCopyImageToBuffer = (PFN_vkCmdCopyImageToBuffer)vk->vkGetDeviceProcAddr(device, "vkCmdCopyImageToBuffer");
2110     out->vkCmdUpdateBuffer = (PFN_vkCmdUpdateBuffer)vk->vkGetDeviceProcAddr(device, "vkCmdUpdateBuffer");
2111     out->vkCmdFillBuffer = (PFN_vkCmdFillBuffer)vk->vkGetDeviceProcAddr(device, "vkCmdFillBuffer");
2112     out->vkCmdClearColorImage = (PFN_vkCmdClearColorImage)vk->vkGetDeviceProcAddr(device, "vkCmdClearColorImage");
2113     out->vkCmdClearDepthStencilImage = (PFN_vkCmdClearDepthStencilImage)vk->vkGetDeviceProcAddr(device, "vkCmdClearDepthStencilImage");
2114     out->vkCmdClearAttachments = (PFN_vkCmdClearAttachments)vk->vkGetDeviceProcAddr(device, "vkCmdClearAttachments");
2115     out->vkCmdResolveImage = (PFN_vkCmdResolveImage)vk->vkGetDeviceProcAddr(device, "vkCmdResolveImage");
2116     out->vkCmdSetEvent = (PFN_vkCmdSetEvent)vk->vkGetDeviceProcAddr(device, "vkCmdSetEvent");
2117     out->vkCmdResetEvent = (PFN_vkCmdResetEvent)vk->vkGetDeviceProcAddr(device, "vkCmdResetEvent");
2118     out->vkCmdWaitEvents = (PFN_vkCmdWaitEvents)vk->vkGetDeviceProcAddr(device, "vkCmdWaitEvents");
2119     out->vkCmdPipelineBarrier = (PFN_vkCmdPipelineBarrier)vk->vkGetDeviceProcAddr(device, "vkCmdPipelineBarrier");
2120     out->vkCmdBeginQuery = (PFN_vkCmdBeginQuery)vk->vkGetDeviceProcAddr(device, "vkCmdBeginQuery");
2121     out->vkCmdEndQuery = (PFN_vkCmdEndQuery)vk->vkGetDeviceProcAddr(device, "vkCmdEndQuery");
2122     out->vkCmdResetQueryPool = (PFN_vkCmdResetQueryPool)vk->vkGetDeviceProcAddr(device, "vkCmdResetQueryPool");
2123     out->vkCmdWriteTimestamp = (PFN_vkCmdWriteTimestamp)vk->vkGetDeviceProcAddr(device, "vkCmdWriteTimestamp");
2124     out->vkCmdCopyQueryPoolResults = (PFN_vkCmdCopyQueryPoolResults)vk->vkGetDeviceProcAddr(device, "vkCmdCopyQueryPoolResults");
2125     out->vkCmdPushConstants = (PFN_vkCmdPushConstants)vk->vkGetDeviceProcAddr(device, "vkCmdPushConstants");
2126     out->vkCmdBeginRenderPass = (PFN_vkCmdBeginRenderPass)vk->vkGetDeviceProcAddr(device, "vkCmdBeginRenderPass");
2127     out->vkCmdNextSubpass = (PFN_vkCmdNextSubpass)vk->vkGetDeviceProcAddr(device, "vkCmdNextSubpass");
2128     out->vkCmdEndRenderPass = (PFN_vkCmdEndRenderPass)vk->vkGetDeviceProcAddr(device, "vkCmdEndRenderPass");
2129     out->vkCmdExecuteCommands = (PFN_vkCmdExecuteCommands)vk->vkGetDeviceProcAddr(device, "vkCmdExecuteCommands");
2130 #endif
2131 #ifdef VK_VERSION_1_1
2132     out->vkBindBufferMemory2 = (PFN_vkBindBufferMemory2)vk->vkGetDeviceProcAddr(device, "vkBindBufferMemory2");
2133     out->vkBindImageMemory2 = (PFN_vkBindImageMemory2)vk->vkGetDeviceProcAddr(device, "vkBindImageMemory2");
2134     out->vkGetDeviceGroupPeerMemoryFeatures = (PFN_vkGetDeviceGroupPeerMemoryFeatures)vk->vkGetDeviceProcAddr(device, "vkGetDeviceGroupPeerMemoryFeatures");
2135     out->vkCmdSetDeviceMask = (PFN_vkCmdSetDeviceMask)vk->vkGetDeviceProcAddr(device, "vkCmdSetDeviceMask");
2136     out->vkCmdDispatchBase = (PFN_vkCmdDispatchBase)vk->vkGetDeviceProcAddr(device, "vkCmdDispatchBase");
2137     out->vkGetImageMemoryRequirements2 = (PFN_vkGetImageMemoryRequirements2)vk->vkGetDeviceProcAddr(device, "vkGetImageMemoryRequirements2");
2138     out->vkGetBufferMemoryRequirements2 = (PFN_vkGetBufferMemoryRequirements2)vk->vkGetDeviceProcAddr(device, "vkGetBufferMemoryRequirements2");
2139     out->vkGetImageSparseMemoryRequirements2 = (PFN_vkGetImageSparseMemoryRequirements2)vk->vkGetDeviceProcAddr(device, "vkGetImageSparseMemoryRequirements2");
2140     out->vkTrimCommandPool = (PFN_vkTrimCommandPool)vk->vkGetDeviceProcAddr(device, "vkTrimCommandPool");
2141     out->vkGetDeviceQueue2 = (PFN_vkGetDeviceQueue2)vk->vkGetDeviceProcAddr(device, "vkGetDeviceQueue2");
2142     out->vkCreateSamplerYcbcrConversion = (PFN_vkCreateSamplerYcbcrConversion)vk->vkGetDeviceProcAddr(device, "vkCreateSamplerYcbcrConversion");
2143     out->vkDestroySamplerYcbcrConversion = (PFN_vkDestroySamplerYcbcrConversion)vk->vkGetDeviceProcAddr(device, "vkDestroySamplerYcbcrConversion");
2144     out->vkCreateDescriptorUpdateTemplate = (PFN_vkCreateDescriptorUpdateTemplate)vk->vkGetDeviceProcAddr(device, "vkCreateDescriptorUpdateTemplate");
2145     out->vkDestroyDescriptorUpdateTemplate = (PFN_vkDestroyDescriptorUpdateTemplate)vk->vkGetDeviceProcAddr(device, "vkDestroyDescriptorUpdateTemplate");
2146     out->vkUpdateDescriptorSetWithTemplate = (PFN_vkUpdateDescriptorSetWithTemplate)vk->vkGetDeviceProcAddr(device, "vkUpdateDescriptorSetWithTemplate");
2147     out->vkGetDescriptorSetLayoutSupport = (PFN_vkGetDescriptorSetLayoutSupport)vk->vkGetDeviceProcAddr(device, "vkGetDescriptorSetLayoutSupport");
2148 #endif
2149 #ifdef VK_VERSION_1_2
2150     out->vkCmdDrawIndirectCount = (PFN_vkCmdDrawIndirectCount)vk->vkGetDeviceProcAddr(device, "vkCmdDrawIndirectCount");
2151     out->vkCmdDrawIndexedIndirectCount = (PFN_vkCmdDrawIndexedIndirectCount)vk->vkGetDeviceProcAddr(device, "vkCmdDrawIndexedIndirectCount");
2152     out->vkCreateRenderPass2 = (PFN_vkCreateRenderPass2)vk->vkGetDeviceProcAddr(device, "vkCreateRenderPass2");
2153     out->vkCmdBeginRenderPass2 = (PFN_vkCmdBeginRenderPass2)vk->vkGetDeviceProcAddr(device, "vkCmdBeginRenderPass2");
2154     out->vkCmdNextSubpass2 = (PFN_vkCmdNextSubpass2)vk->vkGetDeviceProcAddr(device, "vkCmdNextSubpass2");
2155     out->vkCmdEndRenderPass2 = (PFN_vkCmdEndRenderPass2)vk->vkGetDeviceProcAddr(device, "vkCmdEndRenderPass2");
2156     out->vkResetQueryPool = (PFN_vkResetQueryPool)vk->vkGetDeviceProcAddr(device, "vkResetQueryPool");
2157     out->vkGetSemaphoreCounterValue = (PFN_vkGetSemaphoreCounterValue)vk->vkGetDeviceProcAddr(device, "vkGetSemaphoreCounterValue");
2158     out->vkWaitSemaphores = (PFN_vkWaitSemaphores)vk->vkGetDeviceProcAddr(device, "vkWaitSemaphores");
2159     out->vkSignalSemaphore = (PFN_vkSignalSemaphore)vk->vkGetDeviceProcAddr(device, "vkSignalSemaphore");
2160     out->vkGetBufferDeviceAddress = (PFN_vkGetBufferDeviceAddress)vk->vkGetDeviceProcAddr(device, "vkGetBufferDeviceAddress");
2161     out->vkGetBufferOpaqueCaptureAddress = (PFN_vkGetBufferOpaqueCaptureAddress)vk->vkGetDeviceProcAddr(device, "vkGetBufferOpaqueCaptureAddress");
2162     out->vkGetDeviceMemoryOpaqueCaptureAddress = (PFN_vkGetDeviceMemoryOpaqueCaptureAddress)vk->vkGetDeviceProcAddr(device, "vkGetDeviceMemoryOpaqueCaptureAddress");
2163 #endif
2164 #ifdef VK_KHR_surface
2165     out->vkGetPhysicalDeviceSurfaceSupportKHR = (PFN_vkGetPhysicalDeviceSurfaceSupportKHR)vk->vkGetDeviceProcAddr(device, "vkGetPhysicalDeviceSurfaceSupportKHR");
2166     out->vkGetPhysicalDeviceSurfaceCapabilitiesKHR = (PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)vk->vkGetDeviceProcAddr(device, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR");
2167     out->vkGetPhysicalDeviceSurfaceFormatsKHR = (PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)vk->vkGetDeviceProcAddr(device, "vkGetPhysicalDeviceSurfaceFormatsKHR");
2168     out->vkGetPhysicalDeviceSurfacePresentModesKHR = (PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)vk->vkGetDeviceProcAddr(device, "vkGetPhysicalDeviceSurfacePresentModesKHR");
2169 #endif
2170 #ifdef VK_KHR_swapchain
2171     out->vkGetDeviceGroupPresentCapabilitiesKHR = (PFN_vkGetDeviceGroupPresentCapabilitiesKHR)vk->vkGetDeviceProcAddr(device, "vkGetDeviceGroupPresentCapabilitiesKHR");
2172     out->vkGetDeviceGroupSurfacePresentModesKHR = (PFN_vkGetDeviceGroupSurfacePresentModesKHR)vk->vkGetDeviceProcAddr(device, "vkGetDeviceGroupSurfacePresentModesKHR");
2173     out->vkGetPhysicalDevicePresentRectanglesKHR = (PFN_vkGetPhysicalDevicePresentRectanglesKHR)vk->vkGetDeviceProcAddr(device, "vkGetPhysicalDevicePresentRectanglesKHR");
2174     out->vkAcquireNextImage2KHR = (PFN_vkAcquireNextImage2KHR)vk->vkGetDeviceProcAddr(device, "vkAcquireNextImage2KHR");
2175 #endif
2176 #ifdef VK_KHR_display
2177     out->vkGetPhysicalDeviceDisplayPropertiesKHR = (PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)vk->vkGetDeviceProcAddr(device, "vkGetPhysicalDeviceDisplayPropertiesKHR");
2178     out->vkGetPhysicalDeviceDisplayPlanePropertiesKHR = (PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)vk->vkGetDeviceProcAddr(device, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR");
2179     out->vkGetDisplayPlaneSupportedDisplaysKHR = (PFN_vkGetDisplayPlaneSupportedDisplaysKHR)vk->vkGetDeviceProcAddr(device, "vkGetDisplayPlaneSupportedDisplaysKHR");
2180     out->vkGetDisplayModePropertiesKHR = (PFN_vkGetDisplayModePropertiesKHR)vk->vkGetDeviceProcAddr(device, "vkGetDisplayModePropertiesKHR");
2181     out->vkCreateDisplayModeKHR = (PFN_vkCreateDisplayModeKHR)vk->vkGetDeviceProcAddr(device, "vkCreateDisplayModeKHR");
2182     out->vkGetDisplayPlaneCapabilitiesKHR = (PFN_vkGetDisplayPlaneCapabilitiesKHR)vk->vkGetDeviceProcAddr(device, "vkGetDisplayPlaneCapabilitiesKHR");
2183 #endif
2184 #ifdef VK_KHR_display_swapchain
2185     out->vkCreateSharedSwapchainsKHR = (PFN_vkCreateSharedSwapchainsKHR)vk->vkGetDeviceProcAddr(device, "vkCreateSharedSwapchainsKHR");
2186 #endif
2187 #ifdef VK_KHR_wayland_surface
2188     out->vkGetPhysicalDeviceWaylandPresentationSupportKHR = (PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR)vk->vkGetDeviceProcAddr(device, "vkGetPhysicalDeviceWaylandPresentationSupportKHR");
2189 #endif
2190 #ifdef VK_KHR_get_physical_device_properties2
2191     out->vkGetPhysicalDeviceFeatures2KHR = (PFN_vkGetPhysicalDeviceFeatures2KHR)vk->vkGetDeviceProcAddr(device, "vkGetPhysicalDeviceFeatures2KHR");
2192     out->vkGetPhysicalDeviceProperties2KHR = (PFN_vkGetPhysicalDeviceProperties2KHR)vk->vkGetDeviceProcAddr(device, "vkGetPhysicalDeviceProperties2KHR");
2193     out->vkGetPhysicalDeviceFormatProperties2KHR = (PFN_vkGetPhysicalDeviceFormatProperties2KHR)vk->vkGetDeviceProcAddr(device, "vkGetPhysicalDeviceFormatProperties2KHR");
2194     out->vkGetPhysicalDeviceImageFormatProperties2KHR = (PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)vk->vkGetDeviceProcAddr(device, "vkGetPhysicalDeviceImageFormatProperties2KHR");
2195     out->vkGetPhysicalDeviceQueueFamilyProperties2KHR = (PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)vk->vkGetDeviceProcAddr(device, "vkGetPhysicalDeviceQueueFamilyProperties2KHR");
2196     out->vkGetPhysicalDeviceMemoryProperties2KHR = (PFN_vkGetPhysicalDeviceMemoryProperties2KHR)vk->vkGetDeviceProcAddr(device, "vkGetPhysicalDeviceMemoryProperties2KHR");
2197     out->vkGetPhysicalDeviceSparseImageFormatProperties2KHR = (PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)vk->vkGetDeviceProcAddr(device, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR");
2198 #endif
2199 #ifdef VK_KHR_device_group
2200     out->vkGetDeviceGroupPeerMemoryFeaturesKHR = (PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR)vk->vkGetDeviceProcAddr(device, "vkGetDeviceGroupPeerMemoryFeaturesKHR");
2201     out->vkCmdSetDeviceMaskKHR = (PFN_vkCmdSetDeviceMaskKHR)vk->vkGetDeviceProcAddr(device, "vkCmdSetDeviceMaskKHR");
2202     out->vkCmdDispatchBaseKHR = (PFN_vkCmdDispatchBaseKHR)vk->vkGetDeviceProcAddr(device, "vkCmdDispatchBaseKHR");
2203 #endif
2204 #ifdef VK_KHR_maintenance1
2205     out->vkTrimCommandPoolKHR = (PFN_vkTrimCommandPoolKHR)vk->vkGetDeviceProcAddr(device, "vkTrimCommandPoolKHR");
2206 #endif
2207 #ifdef VK_KHR_external_memory_capabilities
2208     out->vkGetPhysicalDeviceExternalBufferPropertiesKHR = (PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)vk->vkGetDeviceProcAddr(device, "vkGetPhysicalDeviceExternalBufferPropertiesKHR");
2209 #endif
2210 #ifdef VK_KHR_external_memory_win32
2211     out->vkGetMemoryWin32HandleKHR = (PFN_vkGetMemoryWin32HandleKHR)vk->vkGetDeviceProcAddr(device, "vkGetMemoryWin32HandleKHR");
2212     out->vkGetMemoryWin32HandlePropertiesKHR = (PFN_vkGetMemoryWin32HandlePropertiesKHR)vk->vkGetDeviceProcAddr(device, "vkGetMemoryWin32HandlePropertiesKHR");
2213 #endif
2214 #ifdef VK_KHR_external_memory_fd
2215     out->vkGetMemoryFdKHR = (PFN_vkGetMemoryFdKHR)vk->vkGetDeviceProcAddr(device, "vkGetMemoryFdKHR");
2216     out->vkGetMemoryFdPropertiesKHR = (PFN_vkGetMemoryFdPropertiesKHR)vk->vkGetDeviceProcAddr(device, "vkGetMemoryFdPropertiesKHR");
2217 #endif
2218 #ifdef VK_KHR_external_semaphore_capabilities
2219     out->vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = (PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)vk->vkGetDeviceProcAddr(device, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR");
2220 #endif
2221 #ifdef VK_KHR_external_semaphore_win32
2222     out->vkImportSemaphoreWin32HandleKHR = (PFN_vkImportSemaphoreWin32HandleKHR)vk->vkGetDeviceProcAddr(device, "vkImportSemaphoreWin32HandleKHR");
2223     out->vkGetSemaphoreWin32HandleKHR = (PFN_vkGetSemaphoreWin32HandleKHR)vk->vkGetDeviceProcAddr(device, "vkGetSemaphoreWin32HandleKHR");
2224 #endif
2225 #ifdef VK_KHR_external_semaphore_fd
2226     out->vkImportSemaphoreFdKHR = (PFN_vkImportSemaphoreFdKHR)vk->vkGetDeviceProcAddr(device, "vkImportSemaphoreFdKHR");
2227     out->vkGetSemaphoreFdKHR = (PFN_vkGetSemaphoreFdKHR)vk->vkGetDeviceProcAddr(device, "vkGetSemaphoreFdKHR");
2228 #endif
2229 #ifdef VK_KHR_push_descriptor
2230     out->vkCmdPushDescriptorSetKHR = (PFN_vkCmdPushDescriptorSetKHR)vk->vkGetDeviceProcAddr(device, "vkCmdPushDescriptorSetKHR");
2231     out->vkCmdPushDescriptorSetWithTemplateKHR = (PFN_vkCmdPushDescriptorSetWithTemplateKHR)vk->vkGetDeviceProcAddr(device, "vkCmdPushDescriptorSetWithTemplateKHR");
2232 #endif
2233 #ifdef VK_KHR_descriptor_update_template
2234     out->vkCreateDescriptorUpdateTemplateKHR = (PFN_vkCreateDescriptorUpdateTemplateKHR)vk->vkGetDeviceProcAddr(device, "vkCreateDescriptorUpdateTemplateKHR");
2235     out->vkDestroyDescriptorUpdateTemplateKHR = (PFN_vkDestroyDescriptorUpdateTemplateKHR)vk->vkGetDeviceProcAddr(device, "vkDestroyDescriptorUpdateTemplateKHR");
2236     out->vkUpdateDescriptorSetWithTemplateKHR = (PFN_vkUpdateDescriptorSetWithTemplateKHR)vk->vkGetDeviceProcAddr(device, "vkUpdateDescriptorSetWithTemplateKHR");
2237 #endif
2238 #ifdef VK_KHR_create_renderpass2
2239     out->vkCreateRenderPass2KHR = (PFN_vkCreateRenderPass2KHR)vk->vkGetDeviceProcAddr(device, "vkCreateRenderPass2KHR");
2240     out->vkCmdBeginRenderPass2KHR = (PFN_vkCmdBeginRenderPass2KHR)vk->vkGetDeviceProcAddr(device, "vkCmdBeginRenderPass2KHR");
2241     out->vkCmdNextSubpass2KHR = (PFN_vkCmdNextSubpass2KHR)vk->vkGetDeviceProcAddr(device, "vkCmdNextSubpass2KHR");
2242     out->vkCmdEndRenderPass2KHR = (PFN_vkCmdEndRenderPass2KHR)vk->vkGetDeviceProcAddr(device, "vkCmdEndRenderPass2KHR");
2243 #endif
2244 #ifdef VK_KHR_shared_presentable_image
2245     out->vkGetSwapchainStatusKHR = (PFN_vkGetSwapchainStatusKHR)vk->vkGetDeviceProcAddr(device, "vkGetSwapchainStatusKHR");
2246 #endif
2247 #ifdef VK_KHR_external_fence_capabilities
2248     out->vkGetPhysicalDeviceExternalFencePropertiesKHR = (PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)vk->vkGetDeviceProcAddr(device, "vkGetPhysicalDeviceExternalFencePropertiesKHR");
2249 #endif
2250 #ifdef VK_KHR_external_fence_win32
2251     out->vkImportFenceWin32HandleKHR = (PFN_vkImportFenceWin32HandleKHR)vk->vkGetDeviceProcAddr(device, "vkImportFenceWin32HandleKHR");
2252     out->vkGetFenceWin32HandleKHR = (PFN_vkGetFenceWin32HandleKHR)vk->vkGetDeviceProcAddr(device, "vkGetFenceWin32HandleKHR");
2253 #endif
2254 #ifdef VK_KHR_external_fence_fd
2255     out->vkImportFenceFdKHR = (PFN_vkImportFenceFdKHR)vk->vkGetDeviceProcAddr(device, "vkImportFenceFdKHR");
2256     out->vkGetFenceFdKHR = (PFN_vkGetFenceFdKHR)vk->vkGetDeviceProcAddr(device, "vkGetFenceFdKHR");
2257 #endif
2258 #ifdef VK_KHR_performance_query
2259     out->vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = (PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR)vk->vkGetDeviceProcAddr(device, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR");
2260     out->vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = (PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR)vk->vkGetDeviceProcAddr(device, "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR");
2261     out->vkAcquireProfilingLockKHR = (PFN_vkAcquireProfilingLockKHR)vk->vkGetDeviceProcAddr(device, "vkAcquireProfilingLockKHR");
2262     out->vkReleaseProfilingLockKHR = (PFN_vkReleaseProfilingLockKHR)vk->vkGetDeviceProcAddr(device, "vkReleaseProfilingLockKHR");
2263 #endif
2264 #ifdef VK_KHR_get_surface_capabilities2
2265     out->vkGetPhysicalDeviceSurfaceCapabilities2KHR = (PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR)vk->vkGetDeviceProcAddr(device, "vkGetPhysicalDeviceSurfaceCapabilities2KHR");
2266     out->vkGetPhysicalDeviceSurfaceFormats2KHR = (PFN_vkGetPhysicalDeviceSurfaceFormats2KHR)vk->vkGetDeviceProcAddr(device, "vkGetPhysicalDeviceSurfaceFormats2KHR");
2267 #endif
2268 #ifdef VK_KHR_get_display_properties2
2269     out->vkGetPhysicalDeviceDisplayProperties2KHR = (PFN_vkGetPhysicalDeviceDisplayProperties2KHR)vk->vkGetDeviceProcAddr(device, "vkGetPhysicalDeviceDisplayProperties2KHR");
2270     out->vkGetPhysicalDeviceDisplayPlaneProperties2KHR = (PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR)vk->vkGetDeviceProcAddr(device, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR");
2271     out->vkGetDisplayModeProperties2KHR = (PFN_vkGetDisplayModeProperties2KHR)vk->vkGetDeviceProcAddr(device, "vkGetDisplayModeProperties2KHR");
2272     out->vkGetDisplayPlaneCapabilities2KHR = (PFN_vkGetDisplayPlaneCapabilities2KHR)vk->vkGetDeviceProcAddr(device, "vkGetDisplayPlaneCapabilities2KHR");
2273 #endif
2274 #ifdef VK_KHR_get_memory_requirements2
2275     out->vkGetImageMemoryRequirements2KHR = (PFN_vkGetImageMemoryRequirements2KHR)vk->vkGetDeviceProcAddr(device, "vkGetImageMemoryRequirements2KHR");
2276     out->vkGetBufferMemoryRequirements2KHR = (PFN_vkGetBufferMemoryRequirements2KHR)vk->vkGetDeviceProcAddr(device, "vkGetBufferMemoryRequirements2KHR");
2277     out->vkGetImageSparseMemoryRequirements2KHR = (PFN_vkGetImageSparseMemoryRequirements2KHR)vk->vkGetDeviceProcAddr(device, "vkGetImageSparseMemoryRequirements2KHR");
2278 #endif
2279 #ifdef VK_KHR_sampler_ycbcr_conversion
2280     out->vkCreateSamplerYcbcrConversionKHR = (PFN_vkCreateSamplerYcbcrConversionKHR)vk->vkGetDeviceProcAddr(device, "vkCreateSamplerYcbcrConversionKHR");
2281     out->vkDestroySamplerYcbcrConversionKHR = (PFN_vkDestroySamplerYcbcrConversionKHR)vk->vkGetDeviceProcAddr(device, "vkDestroySamplerYcbcrConversionKHR");
2282 #endif
2283 #ifdef VK_KHR_bind_memory2
2284     out->vkBindBufferMemory2KHR = (PFN_vkBindBufferMemory2KHR)vk->vkGetDeviceProcAddr(device, "vkBindBufferMemory2KHR");
2285     out->vkBindImageMemory2KHR = (PFN_vkBindImageMemory2KHR)vk->vkGetDeviceProcAddr(device, "vkBindImageMemory2KHR");
2286 #endif
2287 #ifdef VK_KHR_maintenance3
2288     out->vkGetDescriptorSetLayoutSupportKHR = (PFN_vkGetDescriptorSetLayoutSupportKHR)vk->vkGetDeviceProcAddr(device, "vkGetDescriptorSetLayoutSupportKHR");
2289 #endif
2290 #ifdef VK_KHR_draw_indirect_count
2291     out->vkCmdDrawIndirectCountKHR = (PFN_vkCmdDrawIndirectCountKHR)vk->vkGetDeviceProcAddr(device, "vkCmdDrawIndirectCountKHR");
2292     out->vkCmdDrawIndexedIndirectCountKHR = (PFN_vkCmdDrawIndexedIndirectCountKHR)vk->vkGetDeviceProcAddr(device, "vkCmdDrawIndexedIndirectCountKHR");
2293 #endif
2294 #ifdef VK_KHR_timeline_semaphore
2295     out->vkGetSemaphoreCounterValueKHR = (PFN_vkGetSemaphoreCounterValueKHR)vk->vkGetDeviceProcAddr(device, "vkGetSemaphoreCounterValueKHR");
2296     out->vkWaitSemaphoresKHR = (PFN_vkWaitSemaphoresKHR)vk->vkGetDeviceProcAddr(device, "vkWaitSemaphoresKHR");
2297     out->vkSignalSemaphoreKHR = (PFN_vkSignalSemaphoreKHR)vk->vkGetDeviceProcAddr(device, "vkSignalSemaphoreKHR");
2298 #endif
2299 #ifdef VK_KHR_fragment_shading_rate
2300     out->vkGetPhysicalDeviceFragmentShadingRatesKHR = (PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR)vk->vkGetDeviceProcAddr(device, "vkGetPhysicalDeviceFragmentShadingRatesKHR");
2301     out->vkCmdSetFragmentShadingRateKHR = (PFN_vkCmdSetFragmentShadingRateKHR)vk->vkGetDeviceProcAddr(device, "vkCmdSetFragmentShadingRateKHR");
2302 #endif
2303 #ifdef VK_KHR_buffer_device_address
2304     out->vkGetBufferDeviceAddressKHR = (PFN_vkGetBufferDeviceAddressKHR)vk->vkGetDeviceProcAddr(device, "vkGetBufferDeviceAddressKHR");
2305     out->vkGetBufferOpaqueCaptureAddressKHR = (PFN_vkGetBufferOpaqueCaptureAddressKHR)vk->vkGetDeviceProcAddr(device, "vkGetBufferOpaqueCaptureAddressKHR");
2306     out->vkGetDeviceMemoryOpaqueCaptureAddressKHR = (PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR)vk->vkGetDeviceProcAddr(device, "vkGetDeviceMemoryOpaqueCaptureAddressKHR");
2307 #endif
2308 #ifdef VK_KHR_deferred_host_operations
2309     out->vkCreateDeferredOperationKHR = (PFN_vkCreateDeferredOperationKHR)vk->vkGetDeviceProcAddr(device, "vkCreateDeferredOperationKHR");
2310     out->vkDestroyDeferredOperationKHR = (PFN_vkDestroyDeferredOperationKHR)vk->vkGetDeviceProcAddr(device, "vkDestroyDeferredOperationKHR");
2311     out->vkGetDeferredOperationMaxConcurrencyKHR = (PFN_vkGetDeferredOperationMaxConcurrencyKHR)vk->vkGetDeviceProcAddr(device, "vkGetDeferredOperationMaxConcurrencyKHR");
2312     out->vkGetDeferredOperationResultKHR = (PFN_vkGetDeferredOperationResultKHR)vk->vkGetDeviceProcAddr(device, "vkGetDeferredOperationResultKHR");
2313     out->vkDeferredOperationJoinKHR = (PFN_vkDeferredOperationJoinKHR)vk->vkGetDeviceProcAddr(device, "vkDeferredOperationJoinKHR");
2314 #endif
2315 #ifdef VK_KHR_pipeline_executable_properties
2316     out->vkGetPipelineExecutablePropertiesKHR = (PFN_vkGetPipelineExecutablePropertiesKHR)vk->vkGetDeviceProcAddr(device, "vkGetPipelineExecutablePropertiesKHR");
2317     out->vkGetPipelineExecutableStatisticsKHR = (PFN_vkGetPipelineExecutableStatisticsKHR)vk->vkGetDeviceProcAddr(device, "vkGetPipelineExecutableStatisticsKHR");
2318     out->vkGetPipelineExecutableInternalRepresentationsKHR = (PFN_vkGetPipelineExecutableInternalRepresentationsKHR)vk->vkGetDeviceProcAddr(device, "vkGetPipelineExecutableInternalRepresentationsKHR");
2319 #endif
2320 #ifdef VK_KHR_copy_commands2
2321     out->vkCmdCopyBuffer2KHR = (PFN_vkCmdCopyBuffer2KHR)vk->vkGetDeviceProcAddr(device, "vkCmdCopyBuffer2KHR");
2322     out->vkCmdCopyImage2KHR = (PFN_vkCmdCopyImage2KHR)vk->vkGetDeviceProcAddr(device, "vkCmdCopyImage2KHR");
2323     out->vkCmdCopyBufferToImage2KHR = (PFN_vkCmdCopyBufferToImage2KHR)vk->vkGetDeviceProcAddr(device, "vkCmdCopyBufferToImage2KHR");
2324     out->vkCmdCopyImageToBuffer2KHR = (PFN_vkCmdCopyImageToBuffer2KHR)vk->vkGetDeviceProcAddr(device, "vkCmdCopyImageToBuffer2KHR");
2325     out->vkCmdBlitImage2KHR = (PFN_vkCmdBlitImage2KHR)vk->vkGetDeviceProcAddr(device, "vkCmdBlitImage2KHR");
2326     out->vkCmdResolveImage2KHR = (PFN_vkCmdResolveImage2KHR)vk->vkGetDeviceProcAddr(device, "vkCmdResolveImage2KHR");
2327 #endif
2328 #ifdef VK_ANDROID_native_buffer
2329     out->vkGetSwapchainGrallocUsageANDROID = (PFN_vkGetSwapchainGrallocUsageANDROID)vk->vkGetDeviceProcAddr(device, "vkGetSwapchainGrallocUsageANDROID");
2330     out->vkAcquireImageANDROID = (PFN_vkAcquireImageANDROID)vk->vkGetDeviceProcAddr(device, "vkAcquireImageANDROID");
2331     out->vkQueueSignalReleaseImageANDROID = (PFN_vkQueueSignalReleaseImageANDROID)vk->vkGetDeviceProcAddr(device, "vkQueueSignalReleaseImageANDROID");
2332 #endif
2333 #ifdef VK_EXT_debug_marker
2334     out->vkDebugMarkerSetObjectTagEXT = (PFN_vkDebugMarkerSetObjectTagEXT)vk->vkGetDeviceProcAddr(device, "vkDebugMarkerSetObjectTagEXT");
2335     out->vkDebugMarkerSetObjectNameEXT = (PFN_vkDebugMarkerSetObjectNameEXT)vk->vkGetDeviceProcAddr(device, "vkDebugMarkerSetObjectNameEXT");
2336     out->vkCmdDebugMarkerBeginEXT = (PFN_vkCmdDebugMarkerBeginEXT)vk->vkGetDeviceProcAddr(device, "vkCmdDebugMarkerBeginEXT");
2337     out->vkCmdDebugMarkerEndEXT = (PFN_vkCmdDebugMarkerEndEXT)vk->vkGetDeviceProcAddr(device, "vkCmdDebugMarkerEndEXT");
2338     out->vkCmdDebugMarkerInsertEXT = (PFN_vkCmdDebugMarkerInsertEXT)vk->vkGetDeviceProcAddr(device, "vkCmdDebugMarkerInsertEXT");
2339 #endif
2340 #ifdef VK_EXT_transform_feedback
2341     out->vkCmdBindTransformFeedbackBuffersEXT = (PFN_vkCmdBindTransformFeedbackBuffersEXT)vk->vkGetDeviceProcAddr(device, "vkCmdBindTransformFeedbackBuffersEXT");
2342     out->vkCmdBeginTransformFeedbackEXT = (PFN_vkCmdBeginTransformFeedbackEXT)vk->vkGetDeviceProcAddr(device, "vkCmdBeginTransformFeedbackEXT");
2343     out->vkCmdEndTransformFeedbackEXT = (PFN_vkCmdEndTransformFeedbackEXT)vk->vkGetDeviceProcAddr(device, "vkCmdEndTransformFeedbackEXT");
2344     out->vkCmdBeginQueryIndexedEXT = (PFN_vkCmdBeginQueryIndexedEXT)vk->vkGetDeviceProcAddr(device, "vkCmdBeginQueryIndexedEXT");
2345     out->vkCmdEndQueryIndexedEXT = (PFN_vkCmdEndQueryIndexedEXT)vk->vkGetDeviceProcAddr(device, "vkCmdEndQueryIndexedEXT");
2346     out->vkCmdDrawIndirectByteCountEXT = (PFN_vkCmdDrawIndirectByteCountEXT)vk->vkGetDeviceProcAddr(device, "vkCmdDrawIndirectByteCountEXT");
2347 #endif
2348 #ifdef VK_NVX_image_view_handle
2349     out->vkGetImageViewHandleNVX = (PFN_vkGetImageViewHandleNVX)vk->vkGetDeviceProcAddr(device, "vkGetImageViewHandleNVX");
2350     out->vkGetImageViewAddressNVX = (PFN_vkGetImageViewAddressNVX)vk->vkGetDeviceProcAddr(device, "vkGetImageViewAddressNVX");
2351 #endif
2352 #ifdef VK_AMD_draw_indirect_count
2353     out->vkCmdDrawIndirectCountAMD = (PFN_vkCmdDrawIndirectCountAMD)vk->vkGetDeviceProcAddr(device, "vkCmdDrawIndirectCountAMD");
2354     out->vkCmdDrawIndexedIndirectCountAMD = (PFN_vkCmdDrawIndexedIndirectCountAMD)vk->vkGetDeviceProcAddr(device, "vkCmdDrawIndexedIndirectCountAMD");
2355 #endif
2356 #ifdef VK_AMD_shader_info
2357     out->vkGetShaderInfoAMD = (PFN_vkGetShaderInfoAMD)vk->vkGetDeviceProcAddr(device, "vkGetShaderInfoAMD");
2358 #endif
2359 #ifdef VK_NV_external_memory_capabilities
2360     out->vkGetPhysicalDeviceExternalImageFormatPropertiesNV = (PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)vk->vkGetDeviceProcAddr(device, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV");
2361 #endif
2362 #ifdef VK_NV_external_memory_win32
2363     out->vkGetMemoryWin32HandleNV = (PFN_vkGetMemoryWin32HandleNV)vk->vkGetDeviceProcAddr(device, "vkGetMemoryWin32HandleNV");
2364 #endif
2365 #ifdef VK_EXT_conditional_rendering
2366     out->vkCmdBeginConditionalRenderingEXT = (PFN_vkCmdBeginConditionalRenderingEXT)vk->vkGetDeviceProcAddr(device, "vkCmdBeginConditionalRenderingEXT");
2367     out->vkCmdEndConditionalRenderingEXT = (PFN_vkCmdEndConditionalRenderingEXT)vk->vkGetDeviceProcAddr(device, "vkCmdEndConditionalRenderingEXT");
2368 #endif
2369 #ifdef VK_NV_clip_space_w_scaling
2370     out->vkCmdSetViewportWScalingNV = (PFN_vkCmdSetViewportWScalingNV)vk->vkGetDeviceProcAddr(device, "vkCmdSetViewportWScalingNV");
2371 #endif
2372 #ifdef VK_EXT_direct_mode_display
2373     out->vkReleaseDisplayEXT = (PFN_vkReleaseDisplayEXT)vk->vkGetDeviceProcAddr(device, "vkReleaseDisplayEXT");
2374 #endif
2375 #ifdef VK_EXT_acquire_xlib_display
2376     out->vkAcquireXlibDisplayEXT = (PFN_vkAcquireXlibDisplayEXT)vk->vkGetDeviceProcAddr(device, "vkAcquireXlibDisplayEXT");
2377     out->vkGetRandROutputDisplayEXT = (PFN_vkGetRandROutputDisplayEXT)vk->vkGetDeviceProcAddr(device, "vkGetRandROutputDisplayEXT");
2378 #endif
2379 #ifdef VK_EXT_display_surface_counter
2380     out->vkGetPhysicalDeviceSurfaceCapabilities2EXT = (PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)vk->vkGetDeviceProcAddr(device, "vkGetPhysicalDeviceSurfaceCapabilities2EXT");
2381 #endif
2382 #ifdef VK_EXT_display_control
2383     out->vkDisplayPowerControlEXT = (PFN_vkDisplayPowerControlEXT)vk->vkGetDeviceProcAddr(device, "vkDisplayPowerControlEXT");
2384     out->vkRegisterDeviceEventEXT = (PFN_vkRegisterDeviceEventEXT)vk->vkGetDeviceProcAddr(device, "vkRegisterDeviceEventEXT");
2385     out->vkRegisterDisplayEventEXT = (PFN_vkRegisterDisplayEventEXT)vk->vkGetDeviceProcAddr(device, "vkRegisterDisplayEventEXT");
2386     out->vkGetSwapchainCounterEXT = (PFN_vkGetSwapchainCounterEXT)vk->vkGetDeviceProcAddr(device, "vkGetSwapchainCounterEXT");
2387 #endif
2388 #ifdef VK_GOOGLE_display_timing
2389     out->vkGetRefreshCycleDurationGOOGLE = (PFN_vkGetRefreshCycleDurationGOOGLE)vk->vkGetDeviceProcAddr(device, "vkGetRefreshCycleDurationGOOGLE");
2390     out->vkGetPastPresentationTimingGOOGLE = (PFN_vkGetPastPresentationTimingGOOGLE)vk->vkGetDeviceProcAddr(device, "vkGetPastPresentationTimingGOOGLE");
2391 #endif
2392 #ifdef VK_EXT_discard_rectangles
2393     out->vkCmdSetDiscardRectangleEXT = (PFN_vkCmdSetDiscardRectangleEXT)vk->vkGetDeviceProcAddr(device, "vkCmdSetDiscardRectangleEXT");
2394 #endif
2395 #ifdef VK_EXT_hdr_metadata
2396     out->vkSetHdrMetadataEXT = (PFN_vkSetHdrMetadataEXT)vk->vkGetDeviceProcAddr(device, "vkSetHdrMetadataEXT");
2397 #endif
2398 #ifdef VK_EXT_debug_utils
2399     out->vkSetDebugUtilsObjectNameEXT = (PFN_vkSetDebugUtilsObjectNameEXT)vk->vkGetDeviceProcAddr(device, "vkSetDebugUtilsObjectNameEXT");
2400     out->vkSetDebugUtilsObjectTagEXT = (PFN_vkSetDebugUtilsObjectTagEXT)vk->vkGetDeviceProcAddr(device, "vkSetDebugUtilsObjectTagEXT");
2401     out->vkQueueBeginDebugUtilsLabelEXT = (PFN_vkQueueBeginDebugUtilsLabelEXT)vk->vkGetDeviceProcAddr(device, "vkQueueBeginDebugUtilsLabelEXT");
2402     out->vkQueueEndDebugUtilsLabelEXT = (PFN_vkQueueEndDebugUtilsLabelEXT)vk->vkGetDeviceProcAddr(device, "vkQueueEndDebugUtilsLabelEXT");
2403     out->vkQueueInsertDebugUtilsLabelEXT = (PFN_vkQueueInsertDebugUtilsLabelEXT)vk->vkGetDeviceProcAddr(device, "vkQueueInsertDebugUtilsLabelEXT");
2404     out->vkCmdBeginDebugUtilsLabelEXT = (PFN_vkCmdBeginDebugUtilsLabelEXT)vk->vkGetDeviceProcAddr(device, "vkCmdBeginDebugUtilsLabelEXT");
2405     out->vkCmdEndDebugUtilsLabelEXT = (PFN_vkCmdEndDebugUtilsLabelEXT)vk->vkGetDeviceProcAddr(device, "vkCmdEndDebugUtilsLabelEXT");
2406     out->vkCmdInsertDebugUtilsLabelEXT = (PFN_vkCmdInsertDebugUtilsLabelEXT)vk->vkGetDeviceProcAddr(device, "vkCmdInsertDebugUtilsLabelEXT");
2407 #endif
2408 #ifdef VK_ANDROID_external_memory_android_hardware_buffer
2409     out->vkGetAndroidHardwareBufferPropertiesANDROID = (PFN_vkGetAndroidHardwareBufferPropertiesANDROID)vk->vkGetDeviceProcAddr(device, "vkGetAndroidHardwareBufferPropertiesANDROID");
2410     out->vkGetMemoryAndroidHardwareBufferANDROID = (PFN_vkGetMemoryAndroidHardwareBufferANDROID)vk->vkGetDeviceProcAddr(device, "vkGetMemoryAndroidHardwareBufferANDROID");
2411 #endif
2412 #ifdef VK_EXT_sample_locations
2413     out->vkCmdSetSampleLocationsEXT = (PFN_vkCmdSetSampleLocationsEXT)vk->vkGetDeviceProcAddr(device, "vkCmdSetSampleLocationsEXT");
2414     out->vkGetPhysicalDeviceMultisamplePropertiesEXT = (PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT)vk->vkGetDeviceProcAddr(device, "vkGetPhysicalDeviceMultisamplePropertiesEXT");
2415 #endif
2416 #ifdef VK_EXT_image_drm_format_modifier
2417     out->vkGetImageDrmFormatModifierPropertiesEXT = (PFN_vkGetImageDrmFormatModifierPropertiesEXT)vk->vkGetDeviceProcAddr(device, "vkGetImageDrmFormatModifierPropertiesEXT");
2418 #endif
2419 #ifdef VK_EXT_validation_cache
2420     out->vkCreateValidationCacheEXT = (PFN_vkCreateValidationCacheEXT)vk->vkGetDeviceProcAddr(device, "vkCreateValidationCacheEXT");
2421     out->vkDestroyValidationCacheEXT = (PFN_vkDestroyValidationCacheEXT)vk->vkGetDeviceProcAddr(device, "vkDestroyValidationCacheEXT");
2422     out->vkMergeValidationCachesEXT = (PFN_vkMergeValidationCachesEXT)vk->vkGetDeviceProcAddr(device, "vkMergeValidationCachesEXT");
2423     out->vkGetValidationCacheDataEXT = (PFN_vkGetValidationCacheDataEXT)vk->vkGetDeviceProcAddr(device, "vkGetValidationCacheDataEXT");
2424 #endif
2425 #ifdef VK_NV_shading_rate_image
2426     out->vkCmdBindShadingRateImageNV = (PFN_vkCmdBindShadingRateImageNV)vk->vkGetDeviceProcAddr(device, "vkCmdBindShadingRateImageNV");
2427     out->vkCmdSetViewportShadingRatePaletteNV = (PFN_vkCmdSetViewportShadingRatePaletteNV)vk->vkGetDeviceProcAddr(device, "vkCmdSetViewportShadingRatePaletteNV");
2428     out->vkCmdSetCoarseSampleOrderNV = (PFN_vkCmdSetCoarseSampleOrderNV)vk->vkGetDeviceProcAddr(device, "vkCmdSetCoarseSampleOrderNV");
2429 #endif
2430 #ifdef VK_NV_ray_tracing
2431     out->vkCreateAccelerationStructureNV = (PFN_vkCreateAccelerationStructureNV)vk->vkGetDeviceProcAddr(device, "vkCreateAccelerationStructureNV");
2432     out->vkDestroyAccelerationStructureNV = (PFN_vkDestroyAccelerationStructureNV)vk->vkGetDeviceProcAddr(device, "vkDestroyAccelerationStructureNV");
2433     out->vkGetAccelerationStructureMemoryRequirementsNV = (PFN_vkGetAccelerationStructureMemoryRequirementsNV)vk->vkGetDeviceProcAddr(device, "vkGetAccelerationStructureMemoryRequirementsNV");
2434     out->vkBindAccelerationStructureMemoryNV = (PFN_vkBindAccelerationStructureMemoryNV)vk->vkGetDeviceProcAddr(device, "vkBindAccelerationStructureMemoryNV");
2435     out->vkCmdBuildAccelerationStructureNV = (PFN_vkCmdBuildAccelerationStructureNV)vk->vkGetDeviceProcAddr(device, "vkCmdBuildAccelerationStructureNV");
2436     out->vkCmdCopyAccelerationStructureNV = (PFN_vkCmdCopyAccelerationStructureNV)vk->vkGetDeviceProcAddr(device, "vkCmdCopyAccelerationStructureNV");
2437     out->vkCmdTraceRaysNV = (PFN_vkCmdTraceRaysNV)vk->vkGetDeviceProcAddr(device, "vkCmdTraceRaysNV");
2438     out->vkCreateRayTracingPipelinesNV = (PFN_vkCreateRayTracingPipelinesNV)vk->vkGetDeviceProcAddr(device, "vkCreateRayTracingPipelinesNV");
2439     out->vkGetRayTracingShaderGroupHandlesKHR = (PFN_vkGetRayTracingShaderGroupHandlesKHR)vk->vkGetDeviceProcAddr(device, "vkGetRayTracingShaderGroupHandlesKHR");
2440     out->vkGetRayTracingShaderGroupHandlesNV = (PFN_vkGetRayTracingShaderGroupHandlesNV)vk->vkGetDeviceProcAddr(device, "vkGetRayTracingShaderGroupHandlesNV");
2441     out->vkGetAccelerationStructureHandleNV = (PFN_vkGetAccelerationStructureHandleNV)vk->vkGetDeviceProcAddr(device, "vkGetAccelerationStructureHandleNV");
2442     out->vkCmdWriteAccelerationStructuresPropertiesNV = (PFN_vkCmdWriteAccelerationStructuresPropertiesNV)vk->vkGetDeviceProcAddr(device, "vkCmdWriteAccelerationStructuresPropertiesNV");
2443     out->vkCompileDeferredNV = (PFN_vkCompileDeferredNV)vk->vkGetDeviceProcAddr(device, "vkCompileDeferredNV");
2444 #endif
2445 #ifdef VK_EXT_external_memory_host
2446     out->vkGetMemoryHostPointerPropertiesEXT = (PFN_vkGetMemoryHostPointerPropertiesEXT)vk->vkGetDeviceProcAddr(device, "vkGetMemoryHostPointerPropertiesEXT");
2447 #endif
2448 #ifdef VK_AMD_buffer_marker
2449     out->vkCmdWriteBufferMarkerAMD = (PFN_vkCmdWriteBufferMarkerAMD)vk->vkGetDeviceProcAddr(device, "vkCmdWriteBufferMarkerAMD");
2450 #endif
2451 #ifdef VK_EXT_calibrated_timestamps
2452     out->vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = (PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)vk->vkGetDeviceProcAddr(device, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT");
2453     out->vkGetCalibratedTimestampsEXT = (PFN_vkGetCalibratedTimestampsEXT)vk->vkGetDeviceProcAddr(device, "vkGetCalibratedTimestampsEXT");
2454 #endif
2455 #ifdef VK_NV_mesh_shader
2456     out->vkCmdDrawMeshTasksNV = (PFN_vkCmdDrawMeshTasksNV)vk->vkGetDeviceProcAddr(device, "vkCmdDrawMeshTasksNV");
2457     out->vkCmdDrawMeshTasksIndirectNV = (PFN_vkCmdDrawMeshTasksIndirectNV)vk->vkGetDeviceProcAddr(device, "vkCmdDrawMeshTasksIndirectNV");
2458     out->vkCmdDrawMeshTasksIndirectCountNV = (PFN_vkCmdDrawMeshTasksIndirectCountNV)vk->vkGetDeviceProcAddr(device, "vkCmdDrawMeshTasksIndirectCountNV");
2459 #endif
2460 #ifdef VK_NV_scissor_exclusive
2461     out->vkCmdSetExclusiveScissorNV = (PFN_vkCmdSetExclusiveScissorNV)vk->vkGetDeviceProcAddr(device, "vkCmdSetExclusiveScissorNV");
2462 #endif
2463 #ifdef VK_NV_device_diagnostic_checkpoints
2464     out->vkCmdSetCheckpointNV = (PFN_vkCmdSetCheckpointNV)vk->vkGetDeviceProcAddr(device, "vkCmdSetCheckpointNV");
2465     out->vkGetQueueCheckpointDataNV = (PFN_vkGetQueueCheckpointDataNV)vk->vkGetDeviceProcAddr(device, "vkGetQueueCheckpointDataNV");
2466 #endif
2467 #ifdef VK_INTEL_performance_query
2468     out->vkInitializePerformanceApiINTEL = (PFN_vkInitializePerformanceApiINTEL)vk->vkGetDeviceProcAddr(device, "vkInitializePerformanceApiINTEL");
2469     out->vkUninitializePerformanceApiINTEL = (PFN_vkUninitializePerformanceApiINTEL)vk->vkGetDeviceProcAddr(device, "vkUninitializePerformanceApiINTEL");
2470     out->vkCmdSetPerformanceMarkerINTEL = (PFN_vkCmdSetPerformanceMarkerINTEL)vk->vkGetDeviceProcAddr(device, "vkCmdSetPerformanceMarkerINTEL");
2471     out->vkCmdSetPerformanceStreamMarkerINTEL = (PFN_vkCmdSetPerformanceStreamMarkerINTEL)vk->vkGetDeviceProcAddr(device, "vkCmdSetPerformanceStreamMarkerINTEL");
2472     out->vkCmdSetPerformanceOverrideINTEL = (PFN_vkCmdSetPerformanceOverrideINTEL)vk->vkGetDeviceProcAddr(device, "vkCmdSetPerformanceOverrideINTEL");
2473     out->vkAcquirePerformanceConfigurationINTEL = (PFN_vkAcquirePerformanceConfigurationINTEL)vk->vkGetDeviceProcAddr(device, "vkAcquirePerformanceConfigurationINTEL");
2474     out->vkReleasePerformanceConfigurationINTEL = (PFN_vkReleasePerformanceConfigurationINTEL)vk->vkGetDeviceProcAddr(device, "vkReleasePerformanceConfigurationINTEL");
2475     out->vkQueueSetPerformanceConfigurationINTEL = (PFN_vkQueueSetPerformanceConfigurationINTEL)vk->vkGetDeviceProcAddr(device, "vkQueueSetPerformanceConfigurationINTEL");
2476     out->vkGetPerformanceParameterINTEL = (PFN_vkGetPerformanceParameterINTEL)vk->vkGetDeviceProcAddr(device, "vkGetPerformanceParameterINTEL");
2477 #endif
2478 #ifdef VK_AMD_display_native_hdr
2479     out->vkSetLocalDimmingAMD = (PFN_vkSetLocalDimmingAMD)vk->vkGetDeviceProcAddr(device, "vkSetLocalDimmingAMD");
2480 #endif
2481 #ifdef VK_EXT_buffer_device_address
2482     out->vkGetBufferDeviceAddressEXT = (PFN_vkGetBufferDeviceAddressEXT)vk->vkGetDeviceProcAddr(device, "vkGetBufferDeviceAddressEXT");
2483 #endif
2484 #ifdef VK_EXT_tooling_info
2485     out->vkGetPhysicalDeviceToolPropertiesEXT = (PFN_vkGetPhysicalDeviceToolPropertiesEXT)vk->vkGetDeviceProcAddr(device, "vkGetPhysicalDeviceToolPropertiesEXT");
2486 #endif
2487 #ifdef VK_NV_cooperative_matrix
2488     out->vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = (PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV)vk->vkGetDeviceProcAddr(device, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV");
2489 #endif
2490 #ifdef VK_NV_coverage_reduction_mode
2491     out->vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = (PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV)vk->vkGetDeviceProcAddr(device, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV");
2492 #endif
2493 #ifdef VK_EXT_full_screen_exclusive
2494     out->vkGetPhysicalDeviceSurfacePresentModes2EXT = (PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT)vk->vkGetDeviceProcAddr(device, "vkGetPhysicalDeviceSurfacePresentModes2EXT");
2495     out->vkAcquireFullScreenExclusiveModeEXT = (PFN_vkAcquireFullScreenExclusiveModeEXT)vk->vkGetDeviceProcAddr(device, "vkAcquireFullScreenExclusiveModeEXT");
2496     out->vkReleaseFullScreenExclusiveModeEXT = (PFN_vkReleaseFullScreenExclusiveModeEXT)vk->vkGetDeviceProcAddr(device, "vkReleaseFullScreenExclusiveModeEXT");
2497     out->vkGetDeviceGroupSurfacePresentModes2EXT = (PFN_vkGetDeviceGroupSurfacePresentModes2EXT)vk->vkGetDeviceProcAddr(device, "vkGetDeviceGroupSurfacePresentModes2EXT");
2498 #endif
2499 #ifdef VK_EXT_line_rasterization
2500     out->vkCmdSetLineStippleEXT = (PFN_vkCmdSetLineStippleEXT)vk->vkGetDeviceProcAddr(device, "vkCmdSetLineStippleEXT");
2501 #endif
2502 #ifdef VK_EXT_host_query_reset
2503     out->vkResetQueryPoolEXT = (PFN_vkResetQueryPoolEXT)vk->vkGetDeviceProcAddr(device, "vkResetQueryPoolEXT");
2504 #endif
2505 #ifdef VK_EXT_extended_dynamic_state
2506     out->vkCmdSetCullModeEXT = (PFN_vkCmdSetCullModeEXT)vk->vkGetDeviceProcAddr(device, "vkCmdSetCullModeEXT");
2507     out->vkCmdSetFrontFaceEXT = (PFN_vkCmdSetFrontFaceEXT)vk->vkGetDeviceProcAddr(device, "vkCmdSetFrontFaceEXT");
2508     out->vkCmdSetPrimitiveTopologyEXT = (PFN_vkCmdSetPrimitiveTopologyEXT)vk->vkGetDeviceProcAddr(device, "vkCmdSetPrimitiveTopologyEXT");
2509     out->vkCmdSetViewportWithCountEXT = (PFN_vkCmdSetViewportWithCountEXT)vk->vkGetDeviceProcAddr(device, "vkCmdSetViewportWithCountEXT");
2510     out->vkCmdSetScissorWithCountEXT = (PFN_vkCmdSetScissorWithCountEXT)vk->vkGetDeviceProcAddr(device, "vkCmdSetScissorWithCountEXT");
2511     out->vkCmdBindVertexBuffers2EXT = (PFN_vkCmdBindVertexBuffers2EXT)vk->vkGetDeviceProcAddr(device, "vkCmdBindVertexBuffers2EXT");
2512     out->vkCmdSetDepthTestEnableEXT = (PFN_vkCmdSetDepthTestEnableEXT)vk->vkGetDeviceProcAddr(device, "vkCmdSetDepthTestEnableEXT");
2513     out->vkCmdSetDepthWriteEnableEXT = (PFN_vkCmdSetDepthWriteEnableEXT)vk->vkGetDeviceProcAddr(device, "vkCmdSetDepthWriteEnableEXT");
2514     out->vkCmdSetDepthCompareOpEXT = (PFN_vkCmdSetDepthCompareOpEXT)vk->vkGetDeviceProcAddr(device, "vkCmdSetDepthCompareOpEXT");
2515     out->vkCmdSetDepthBoundsTestEnableEXT = (PFN_vkCmdSetDepthBoundsTestEnableEXT)vk->vkGetDeviceProcAddr(device, "vkCmdSetDepthBoundsTestEnableEXT");
2516     out->vkCmdSetStencilTestEnableEXT = (PFN_vkCmdSetStencilTestEnableEXT)vk->vkGetDeviceProcAddr(device, "vkCmdSetStencilTestEnableEXT");
2517     out->vkCmdSetStencilOpEXT = (PFN_vkCmdSetStencilOpEXT)vk->vkGetDeviceProcAddr(device, "vkCmdSetStencilOpEXT");
2518 #endif
2519 #ifdef VK_NV_device_generated_commands
2520     out->vkGetGeneratedCommandsMemoryRequirementsNV = (PFN_vkGetGeneratedCommandsMemoryRequirementsNV)vk->vkGetDeviceProcAddr(device, "vkGetGeneratedCommandsMemoryRequirementsNV");
2521     out->vkCmdPreprocessGeneratedCommandsNV = (PFN_vkCmdPreprocessGeneratedCommandsNV)vk->vkGetDeviceProcAddr(device, "vkCmdPreprocessGeneratedCommandsNV");
2522     out->vkCmdExecuteGeneratedCommandsNV = (PFN_vkCmdExecuteGeneratedCommandsNV)vk->vkGetDeviceProcAddr(device, "vkCmdExecuteGeneratedCommandsNV");
2523     out->vkCmdBindPipelineShaderGroupNV = (PFN_vkCmdBindPipelineShaderGroupNV)vk->vkGetDeviceProcAddr(device, "vkCmdBindPipelineShaderGroupNV");
2524     out->vkCreateIndirectCommandsLayoutNV = (PFN_vkCreateIndirectCommandsLayoutNV)vk->vkGetDeviceProcAddr(device, "vkCreateIndirectCommandsLayoutNV");
2525     out->vkDestroyIndirectCommandsLayoutNV = (PFN_vkDestroyIndirectCommandsLayoutNV)vk->vkGetDeviceProcAddr(device, "vkDestroyIndirectCommandsLayoutNV");
2526 #endif
2527 #ifdef VK_EXT_private_data
2528     out->vkCreatePrivateDataSlotEXT = (PFN_vkCreatePrivateDataSlotEXT)vk->vkGetDeviceProcAddr(device, "vkCreatePrivateDataSlotEXT");
2529     out->vkDestroyPrivateDataSlotEXT = (PFN_vkDestroyPrivateDataSlotEXT)vk->vkGetDeviceProcAddr(device, "vkDestroyPrivateDataSlotEXT");
2530     out->vkSetPrivateDataEXT = (PFN_vkSetPrivateDataEXT)vk->vkGetDeviceProcAddr(device, "vkSetPrivateDataEXT");
2531     out->vkGetPrivateDataEXT = (PFN_vkGetPrivateDataEXT)vk->vkGetDeviceProcAddr(device, "vkGetPrivateDataEXT");
2532 #endif
2533 #ifdef VK_NV_fragment_shading_rate_enums
2534     out->vkCmdSetFragmentShadingRateEnumNV = (PFN_vkCmdSetFragmentShadingRateEnumNV)vk->vkGetDeviceProcAddr(device, "vkCmdSetFragmentShadingRateEnumNV");
2535 #endif
2536 #ifdef VK_EXT_directfb_surface
2537     out->vkGetPhysicalDeviceDirectFBPresentationSupportEXT = (PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT)vk->vkGetDeviceProcAddr(device, "vkGetPhysicalDeviceDirectFBPresentationSupportEXT");
2538 #endif
2539 #ifdef VK_GOOGLE_gfxstream
2540     out->vkRegisterImageColorBufferGOOGLE = (PFN_vkRegisterImageColorBufferGOOGLE)vk->vkGetDeviceProcAddr(device, "vkRegisterImageColorBufferGOOGLE");
2541     out->vkRegisterBufferColorBufferGOOGLE = (PFN_vkRegisterBufferColorBufferGOOGLE)vk->vkGetDeviceProcAddr(device, "vkRegisterBufferColorBufferGOOGLE");
2542     out->vkMapMemoryIntoAddressSpaceGOOGLE = (PFN_vkMapMemoryIntoAddressSpaceGOOGLE)vk->vkGetDeviceProcAddr(device, "vkMapMemoryIntoAddressSpaceGOOGLE");
2543     out->vkUpdateDescriptorSetWithTemplateSizedGOOGLE = (PFN_vkUpdateDescriptorSetWithTemplateSizedGOOGLE)vk->vkGetDeviceProcAddr(device, "vkUpdateDescriptorSetWithTemplateSizedGOOGLE");
2544     out->vkBeginCommandBufferAsyncGOOGLE = (PFN_vkBeginCommandBufferAsyncGOOGLE)vk->vkGetDeviceProcAddr(device, "vkBeginCommandBufferAsyncGOOGLE");
2545     out->vkEndCommandBufferAsyncGOOGLE = (PFN_vkEndCommandBufferAsyncGOOGLE)vk->vkGetDeviceProcAddr(device, "vkEndCommandBufferAsyncGOOGLE");
2546     out->vkResetCommandBufferAsyncGOOGLE = (PFN_vkResetCommandBufferAsyncGOOGLE)vk->vkGetDeviceProcAddr(device, "vkResetCommandBufferAsyncGOOGLE");
2547     out->vkCommandBufferHostSyncGOOGLE = (PFN_vkCommandBufferHostSyncGOOGLE)vk->vkGetDeviceProcAddr(device, "vkCommandBufferHostSyncGOOGLE");
2548     out->vkCreateImageWithRequirementsGOOGLE = (PFN_vkCreateImageWithRequirementsGOOGLE)vk->vkGetDeviceProcAddr(device, "vkCreateImageWithRequirementsGOOGLE");
2549     out->vkCreateBufferWithRequirementsGOOGLE = (PFN_vkCreateBufferWithRequirementsGOOGLE)vk->vkGetDeviceProcAddr(device, "vkCreateBufferWithRequirementsGOOGLE");
2550     out->vkGetMemoryHostAddressInfoGOOGLE = (PFN_vkGetMemoryHostAddressInfoGOOGLE)vk->vkGetDeviceProcAddr(device, "vkGetMemoryHostAddressInfoGOOGLE");
2551     out->vkFreeMemorySyncGOOGLE = (PFN_vkFreeMemorySyncGOOGLE)vk->vkGetDeviceProcAddr(device, "vkFreeMemorySyncGOOGLE");
2552     out->vkQueueHostSyncGOOGLE = (PFN_vkQueueHostSyncGOOGLE)vk->vkGetDeviceProcAddr(device, "vkQueueHostSyncGOOGLE");
2553     out->vkQueueSubmitAsyncGOOGLE = (PFN_vkQueueSubmitAsyncGOOGLE)vk->vkGetDeviceProcAddr(device, "vkQueueSubmitAsyncGOOGLE");
2554     out->vkQueueWaitIdleAsyncGOOGLE = (PFN_vkQueueWaitIdleAsyncGOOGLE)vk->vkGetDeviceProcAddr(device, "vkQueueWaitIdleAsyncGOOGLE");
2555     out->vkQueueBindSparseAsyncGOOGLE = (PFN_vkQueueBindSparseAsyncGOOGLE)vk->vkGetDeviceProcAddr(device, "vkQueueBindSparseAsyncGOOGLE");
2556     out->vkGetLinearImageLayoutGOOGLE = (PFN_vkGetLinearImageLayoutGOOGLE)vk->vkGetDeviceProcAddr(device, "vkGetLinearImageLayoutGOOGLE");
2557     out->vkQueueFlushCommandsGOOGLE = (PFN_vkQueueFlushCommandsGOOGLE)vk->vkGetDeviceProcAddr(device, "vkQueueFlushCommandsGOOGLE");
2558     out->vkQueueCommitDescriptorSetUpdatesGOOGLE = (PFN_vkQueueCommitDescriptorSetUpdatesGOOGLE)vk->vkGetDeviceProcAddr(device, "vkQueueCommitDescriptorSetUpdatesGOOGLE");
2559     out->vkCollectDescriptorPoolIdsGOOGLE = (PFN_vkCollectDescriptorPoolIdsGOOGLE)vk->vkGetDeviceProcAddr(device, "vkCollectDescriptorPoolIdsGOOGLE");
2560 #endif
2561 #ifdef VK_KHR_acceleration_structure
2562     out->vkCreateAccelerationStructureKHR = (PFN_vkCreateAccelerationStructureKHR)vk->vkGetDeviceProcAddr(device, "vkCreateAccelerationStructureKHR");
2563     out->vkDestroyAccelerationStructureKHR = (PFN_vkDestroyAccelerationStructureKHR)vk->vkGetDeviceProcAddr(device, "vkDestroyAccelerationStructureKHR");
2564     out->vkCmdBuildAccelerationStructuresKHR = (PFN_vkCmdBuildAccelerationStructuresKHR)vk->vkGetDeviceProcAddr(device, "vkCmdBuildAccelerationStructuresKHR");
2565     out->vkCmdBuildAccelerationStructuresIndirectKHR = (PFN_vkCmdBuildAccelerationStructuresIndirectKHR)vk->vkGetDeviceProcAddr(device, "vkCmdBuildAccelerationStructuresIndirectKHR");
2566     out->vkBuildAccelerationStructuresKHR = (PFN_vkBuildAccelerationStructuresKHR)vk->vkGetDeviceProcAddr(device, "vkBuildAccelerationStructuresKHR");
2567     out->vkCopyAccelerationStructureKHR = (PFN_vkCopyAccelerationStructureKHR)vk->vkGetDeviceProcAddr(device, "vkCopyAccelerationStructureKHR");
2568     out->vkCopyAccelerationStructureToMemoryKHR = (PFN_vkCopyAccelerationStructureToMemoryKHR)vk->vkGetDeviceProcAddr(device, "vkCopyAccelerationStructureToMemoryKHR");
2569     out->vkCopyMemoryToAccelerationStructureKHR = (PFN_vkCopyMemoryToAccelerationStructureKHR)vk->vkGetDeviceProcAddr(device, "vkCopyMemoryToAccelerationStructureKHR");
2570     out->vkWriteAccelerationStructuresPropertiesKHR = (PFN_vkWriteAccelerationStructuresPropertiesKHR)vk->vkGetDeviceProcAddr(device, "vkWriteAccelerationStructuresPropertiesKHR");
2571     out->vkCmdCopyAccelerationStructureKHR = (PFN_vkCmdCopyAccelerationStructureKHR)vk->vkGetDeviceProcAddr(device, "vkCmdCopyAccelerationStructureKHR");
2572     out->vkCmdCopyAccelerationStructureToMemoryKHR = (PFN_vkCmdCopyAccelerationStructureToMemoryKHR)vk->vkGetDeviceProcAddr(device, "vkCmdCopyAccelerationStructureToMemoryKHR");
2573     out->vkCmdCopyMemoryToAccelerationStructureKHR = (PFN_vkCmdCopyMemoryToAccelerationStructureKHR)vk->vkGetDeviceProcAddr(device, "vkCmdCopyMemoryToAccelerationStructureKHR");
2574     out->vkGetAccelerationStructureDeviceAddressKHR = (PFN_vkGetAccelerationStructureDeviceAddressKHR)vk->vkGetDeviceProcAddr(device, "vkGetAccelerationStructureDeviceAddressKHR");
2575     out->vkCmdWriteAccelerationStructuresPropertiesKHR = (PFN_vkCmdWriteAccelerationStructuresPropertiesKHR)vk->vkGetDeviceProcAddr(device, "vkCmdWriteAccelerationStructuresPropertiesKHR");
2576     out->vkGetDeviceAccelerationStructureCompatibilityKHR = (PFN_vkGetDeviceAccelerationStructureCompatibilityKHR)vk->vkGetDeviceProcAddr(device, "vkGetDeviceAccelerationStructureCompatibilityKHR");
2577     out->vkGetAccelerationStructureBuildSizesKHR = (PFN_vkGetAccelerationStructureBuildSizesKHR)vk->vkGetDeviceProcAddr(device, "vkGetAccelerationStructureBuildSizesKHR");
2578 #endif
2579 #ifdef VK_KHR_ray_tracing_pipeline
2580     out->vkCmdTraceRaysKHR = (PFN_vkCmdTraceRaysKHR)vk->vkGetDeviceProcAddr(device, "vkCmdTraceRaysKHR");
2581     out->vkCreateRayTracingPipelinesKHR = (PFN_vkCreateRayTracingPipelinesKHR)vk->vkGetDeviceProcAddr(device, "vkCreateRayTracingPipelinesKHR");
2582     out->vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = (PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR)vk->vkGetDeviceProcAddr(device, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR");
2583     out->vkCmdTraceRaysIndirectKHR = (PFN_vkCmdTraceRaysIndirectKHR)vk->vkGetDeviceProcAddr(device, "vkCmdTraceRaysIndirectKHR");
2584     out->vkGetRayTracingShaderGroupStackSizeKHR = (PFN_vkGetRayTracingShaderGroupStackSizeKHR)vk->vkGetDeviceProcAddr(device, "vkGetRayTracingShaderGroupStackSizeKHR");
2585     out->vkCmdSetRayTracingPipelineStackSizeKHR = (PFN_vkCmdSetRayTracingPipelineStackSizeKHR)vk->vkGetDeviceProcAddr(device, "vkCmdSetRayTracingPipelineStackSizeKHR");
2586 #endif
2587 }
2588 
vulkan_dispatch_check_instance_VK_VERSION_1_0(const VulkanDispatch * vk)2589 bool vulkan_dispatch_check_instance_VK_VERSION_1_0(
2590     const VulkanDispatch* vk)
2591 
2592 {
2593     bool good = true;
2594     if (!vk->vkCreateInstance)
2595     {
2596         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCreateInstance not found\n");
2597         good = false;
2598     }
2599     if (!vk->vkEnumerateInstanceExtensionProperties)
2600     {
2601         fprintf(stderr, "VK_VERSION_1_0 check failed: vkEnumerateInstanceExtensionProperties not found\n");
2602         good = false;
2603     }
2604     if (!vk->vkEnumerateInstanceLayerProperties)
2605     {
2606         fprintf(stderr, "VK_VERSION_1_0 check failed: vkEnumerateInstanceLayerProperties not found\n");
2607         good = false;
2608     }
2609     if (!vk->vkGetDeviceProcAddr)
2610     {
2611         fprintf(stderr, "VK_VERSION_1_0 check failed: vkGetDeviceProcAddr not found\n");
2612         good = false;
2613     }
2614     if (!vk->vkGetPhysicalDeviceSparseImageFormatProperties)
2615     {
2616         fprintf(stderr, "VK_VERSION_1_0 check failed: vkGetPhysicalDeviceSparseImageFormatProperties not found\n");
2617         good = false;
2618     }
2619     return good;
2620 }
2621 
vulkan_dispatch_check_instance_VK_VERSION_1_1(const VulkanDispatch * vk)2622 bool vulkan_dispatch_check_instance_VK_VERSION_1_1(
2623     const VulkanDispatch* vk)
2624 
2625 {
2626     bool good = true;
2627     if (!vk->vkEnumerateInstanceVersion)
2628     {
2629         fprintf(stderr, "VK_VERSION_1_1 check failed: vkEnumerateInstanceVersion not found\n");
2630         good = false;
2631     }
2632     if (!vk->vkEnumeratePhysicalDeviceGroups)
2633     {
2634         fprintf(stderr, "VK_VERSION_1_1 check failed: vkEnumeratePhysicalDeviceGroups not found\n");
2635         good = false;
2636     }
2637     if (!vk->vkGetPhysicalDeviceFeatures2)
2638     {
2639         fprintf(stderr, "VK_VERSION_1_1 check failed: vkGetPhysicalDeviceFeatures2 not found\n");
2640         good = false;
2641     }
2642     if (!vk->vkGetPhysicalDeviceProperties2)
2643     {
2644         fprintf(stderr, "VK_VERSION_1_1 check failed: vkGetPhysicalDeviceProperties2 not found\n");
2645         good = false;
2646     }
2647     if (!vk->vkGetPhysicalDeviceFormatProperties2)
2648     {
2649         fprintf(stderr, "VK_VERSION_1_1 check failed: vkGetPhysicalDeviceFormatProperties2 not found\n");
2650         good = false;
2651     }
2652     if (!vk->vkGetPhysicalDeviceImageFormatProperties2)
2653     {
2654         fprintf(stderr, "VK_VERSION_1_1 check failed: vkGetPhysicalDeviceImageFormatProperties2 not found\n");
2655         good = false;
2656     }
2657     if (!vk->vkGetPhysicalDeviceQueueFamilyProperties2)
2658     {
2659         fprintf(stderr, "VK_VERSION_1_1 check failed: vkGetPhysicalDeviceQueueFamilyProperties2 not found\n");
2660         good = false;
2661     }
2662     if (!vk->vkGetPhysicalDeviceMemoryProperties2)
2663     {
2664         fprintf(stderr, "VK_VERSION_1_1 check failed: vkGetPhysicalDeviceMemoryProperties2 not found\n");
2665         good = false;
2666     }
2667     if (!vk->vkGetPhysicalDeviceSparseImageFormatProperties2)
2668     {
2669         fprintf(stderr, "VK_VERSION_1_1 check failed: vkGetPhysicalDeviceSparseImageFormatProperties2 not found\n");
2670         good = false;
2671     }
2672     if (!vk->vkGetPhysicalDeviceExternalBufferProperties)
2673     {
2674         fprintf(stderr, "VK_VERSION_1_1 check failed: vkGetPhysicalDeviceExternalBufferProperties not found\n");
2675         good = false;
2676     }
2677     if (!vk->vkGetPhysicalDeviceExternalFenceProperties)
2678     {
2679         fprintf(stderr, "VK_VERSION_1_1 check failed: vkGetPhysicalDeviceExternalFenceProperties not found\n");
2680         good = false;
2681     }
2682     if (!vk->vkGetPhysicalDeviceExternalSemaphoreProperties)
2683     {
2684         fprintf(stderr, "VK_VERSION_1_1 check failed: vkGetPhysicalDeviceExternalSemaphoreProperties not found\n");
2685         good = false;
2686     }
2687     return good;
2688 }
2689 
vulkan_dispatch_check_device_VK_VERSION_1_0(const VulkanDispatch * vk)2690 bool vulkan_dispatch_check_device_VK_VERSION_1_0(
2691     const VulkanDispatch* vk)
2692 
2693 {
2694     bool good = true;
2695     if (!vk->vkGetDeviceQueue)
2696     {
2697         fprintf(stderr, "VK_VERSION_1_0 check failed: vkGetDeviceQueue not found\n");
2698         good = false;
2699     }
2700     if (!vk->vkQueueSubmit)
2701     {
2702         fprintf(stderr, "VK_VERSION_1_0 check failed: vkQueueSubmit not found\n");
2703         good = false;
2704     }
2705     if (!vk->vkQueueWaitIdle)
2706     {
2707         fprintf(stderr, "VK_VERSION_1_0 check failed: vkQueueWaitIdle not found\n");
2708         good = false;
2709     }
2710     if (!vk->vkDeviceWaitIdle)
2711     {
2712         fprintf(stderr, "VK_VERSION_1_0 check failed: vkDeviceWaitIdle not found\n");
2713         good = false;
2714     }
2715     if (!vk->vkAllocateMemory)
2716     {
2717         fprintf(stderr, "VK_VERSION_1_0 check failed: vkAllocateMemory not found\n");
2718         good = false;
2719     }
2720     if (!vk->vkFreeMemory)
2721     {
2722         fprintf(stderr, "VK_VERSION_1_0 check failed: vkFreeMemory not found\n");
2723         good = false;
2724     }
2725     if (!vk->vkMapMemory)
2726     {
2727         fprintf(stderr, "VK_VERSION_1_0 check failed: vkMapMemory not found\n");
2728         good = false;
2729     }
2730     if (!vk->vkUnmapMemory)
2731     {
2732         fprintf(stderr, "VK_VERSION_1_0 check failed: vkUnmapMemory not found\n");
2733         good = false;
2734     }
2735     if (!vk->vkFlushMappedMemoryRanges)
2736     {
2737         fprintf(stderr, "VK_VERSION_1_0 check failed: vkFlushMappedMemoryRanges not found\n");
2738         good = false;
2739     }
2740     if (!vk->vkInvalidateMappedMemoryRanges)
2741     {
2742         fprintf(stderr, "VK_VERSION_1_0 check failed: vkInvalidateMappedMemoryRanges not found\n");
2743         good = false;
2744     }
2745     if (!vk->vkGetDeviceMemoryCommitment)
2746     {
2747         fprintf(stderr, "VK_VERSION_1_0 check failed: vkGetDeviceMemoryCommitment not found\n");
2748         good = false;
2749     }
2750     if (!vk->vkBindBufferMemory)
2751     {
2752         fprintf(stderr, "VK_VERSION_1_0 check failed: vkBindBufferMemory not found\n");
2753         good = false;
2754     }
2755     if (!vk->vkBindImageMemory)
2756     {
2757         fprintf(stderr, "VK_VERSION_1_0 check failed: vkBindImageMemory not found\n");
2758         good = false;
2759     }
2760     if (!vk->vkGetBufferMemoryRequirements)
2761     {
2762         fprintf(stderr, "VK_VERSION_1_0 check failed: vkGetBufferMemoryRequirements not found\n");
2763         good = false;
2764     }
2765     if (!vk->vkGetImageMemoryRequirements)
2766     {
2767         fprintf(stderr, "VK_VERSION_1_0 check failed: vkGetImageMemoryRequirements not found\n");
2768         good = false;
2769     }
2770     if (!vk->vkGetImageSparseMemoryRequirements)
2771     {
2772         fprintf(stderr, "VK_VERSION_1_0 check failed: vkGetImageSparseMemoryRequirements not found\n");
2773         good = false;
2774     }
2775     if (!vk->vkQueueBindSparse)
2776     {
2777         fprintf(stderr, "VK_VERSION_1_0 check failed: vkQueueBindSparse not found\n");
2778         good = false;
2779     }
2780     if (!vk->vkCreateFence)
2781     {
2782         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCreateFence not found\n");
2783         good = false;
2784     }
2785     if (!vk->vkDestroyFence)
2786     {
2787         fprintf(stderr, "VK_VERSION_1_0 check failed: vkDestroyFence not found\n");
2788         good = false;
2789     }
2790     if (!vk->vkResetFences)
2791     {
2792         fprintf(stderr, "VK_VERSION_1_0 check failed: vkResetFences not found\n");
2793         good = false;
2794     }
2795     if (!vk->vkGetFenceStatus)
2796     {
2797         fprintf(stderr, "VK_VERSION_1_0 check failed: vkGetFenceStatus not found\n");
2798         good = false;
2799     }
2800     if (!vk->vkWaitForFences)
2801     {
2802         fprintf(stderr, "VK_VERSION_1_0 check failed: vkWaitForFences not found\n");
2803         good = false;
2804     }
2805     if (!vk->vkCreateSemaphore)
2806     {
2807         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCreateSemaphore not found\n");
2808         good = false;
2809     }
2810     if (!vk->vkDestroySemaphore)
2811     {
2812         fprintf(stderr, "VK_VERSION_1_0 check failed: vkDestroySemaphore not found\n");
2813         good = false;
2814     }
2815     if (!vk->vkCreateEvent)
2816     {
2817         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCreateEvent not found\n");
2818         good = false;
2819     }
2820     if (!vk->vkDestroyEvent)
2821     {
2822         fprintf(stderr, "VK_VERSION_1_0 check failed: vkDestroyEvent not found\n");
2823         good = false;
2824     }
2825     if (!vk->vkGetEventStatus)
2826     {
2827         fprintf(stderr, "VK_VERSION_1_0 check failed: vkGetEventStatus not found\n");
2828         good = false;
2829     }
2830     if (!vk->vkSetEvent)
2831     {
2832         fprintf(stderr, "VK_VERSION_1_0 check failed: vkSetEvent not found\n");
2833         good = false;
2834     }
2835     if (!vk->vkResetEvent)
2836     {
2837         fprintf(stderr, "VK_VERSION_1_0 check failed: vkResetEvent not found\n");
2838         good = false;
2839     }
2840     if (!vk->vkCreateQueryPool)
2841     {
2842         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCreateQueryPool not found\n");
2843         good = false;
2844     }
2845     if (!vk->vkDestroyQueryPool)
2846     {
2847         fprintf(stderr, "VK_VERSION_1_0 check failed: vkDestroyQueryPool not found\n");
2848         good = false;
2849     }
2850     if (!vk->vkGetQueryPoolResults)
2851     {
2852         fprintf(stderr, "VK_VERSION_1_0 check failed: vkGetQueryPoolResults not found\n");
2853         good = false;
2854     }
2855     if (!vk->vkCreateBuffer)
2856     {
2857         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCreateBuffer not found\n");
2858         good = false;
2859     }
2860     if (!vk->vkDestroyBuffer)
2861     {
2862         fprintf(stderr, "VK_VERSION_1_0 check failed: vkDestroyBuffer not found\n");
2863         good = false;
2864     }
2865     if (!vk->vkCreateBufferView)
2866     {
2867         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCreateBufferView not found\n");
2868         good = false;
2869     }
2870     if (!vk->vkDestroyBufferView)
2871     {
2872         fprintf(stderr, "VK_VERSION_1_0 check failed: vkDestroyBufferView not found\n");
2873         good = false;
2874     }
2875     if (!vk->vkCreateImage)
2876     {
2877         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCreateImage not found\n");
2878         good = false;
2879     }
2880     if (!vk->vkDestroyImage)
2881     {
2882         fprintf(stderr, "VK_VERSION_1_0 check failed: vkDestroyImage not found\n");
2883         good = false;
2884     }
2885     if (!vk->vkGetImageSubresourceLayout)
2886     {
2887         fprintf(stderr, "VK_VERSION_1_0 check failed: vkGetImageSubresourceLayout not found\n");
2888         good = false;
2889     }
2890     if (!vk->vkCreateImageView)
2891     {
2892         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCreateImageView not found\n");
2893         good = false;
2894     }
2895     if (!vk->vkDestroyImageView)
2896     {
2897         fprintf(stderr, "VK_VERSION_1_0 check failed: vkDestroyImageView not found\n");
2898         good = false;
2899     }
2900     if (!vk->vkCreateShaderModule)
2901     {
2902         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCreateShaderModule not found\n");
2903         good = false;
2904     }
2905     if (!vk->vkDestroyShaderModule)
2906     {
2907         fprintf(stderr, "VK_VERSION_1_0 check failed: vkDestroyShaderModule not found\n");
2908         good = false;
2909     }
2910     if (!vk->vkCreatePipelineCache)
2911     {
2912         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCreatePipelineCache not found\n");
2913         good = false;
2914     }
2915     if (!vk->vkDestroyPipelineCache)
2916     {
2917         fprintf(stderr, "VK_VERSION_1_0 check failed: vkDestroyPipelineCache not found\n");
2918         good = false;
2919     }
2920     if (!vk->vkGetPipelineCacheData)
2921     {
2922         fprintf(stderr, "VK_VERSION_1_0 check failed: vkGetPipelineCacheData not found\n");
2923         good = false;
2924     }
2925     if (!vk->vkMergePipelineCaches)
2926     {
2927         fprintf(stderr, "VK_VERSION_1_0 check failed: vkMergePipelineCaches not found\n");
2928         good = false;
2929     }
2930     if (!vk->vkCreateGraphicsPipelines)
2931     {
2932         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCreateGraphicsPipelines not found\n");
2933         good = false;
2934     }
2935     if (!vk->vkCreateComputePipelines)
2936     {
2937         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCreateComputePipelines not found\n");
2938         good = false;
2939     }
2940     if (!vk->vkDestroyPipeline)
2941     {
2942         fprintf(stderr, "VK_VERSION_1_0 check failed: vkDestroyPipeline not found\n");
2943         good = false;
2944     }
2945     if (!vk->vkCreatePipelineLayout)
2946     {
2947         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCreatePipelineLayout not found\n");
2948         good = false;
2949     }
2950     if (!vk->vkDestroyPipelineLayout)
2951     {
2952         fprintf(stderr, "VK_VERSION_1_0 check failed: vkDestroyPipelineLayout not found\n");
2953         good = false;
2954     }
2955     if (!vk->vkCreateSampler)
2956     {
2957         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCreateSampler not found\n");
2958         good = false;
2959     }
2960     if (!vk->vkDestroySampler)
2961     {
2962         fprintf(stderr, "VK_VERSION_1_0 check failed: vkDestroySampler not found\n");
2963         good = false;
2964     }
2965     if (!vk->vkCreateDescriptorSetLayout)
2966     {
2967         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCreateDescriptorSetLayout not found\n");
2968         good = false;
2969     }
2970     if (!vk->vkDestroyDescriptorSetLayout)
2971     {
2972         fprintf(stderr, "VK_VERSION_1_0 check failed: vkDestroyDescriptorSetLayout not found\n");
2973         good = false;
2974     }
2975     if (!vk->vkCreateDescriptorPool)
2976     {
2977         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCreateDescriptorPool not found\n");
2978         good = false;
2979     }
2980     if (!vk->vkDestroyDescriptorPool)
2981     {
2982         fprintf(stderr, "VK_VERSION_1_0 check failed: vkDestroyDescriptorPool not found\n");
2983         good = false;
2984     }
2985     if (!vk->vkResetDescriptorPool)
2986     {
2987         fprintf(stderr, "VK_VERSION_1_0 check failed: vkResetDescriptorPool not found\n");
2988         good = false;
2989     }
2990     if (!vk->vkAllocateDescriptorSets)
2991     {
2992         fprintf(stderr, "VK_VERSION_1_0 check failed: vkAllocateDescriptorSets not found\n");
2993         good = false;
2994     }
2995     if (!vk->vkFreeDescriptorSets)
2996     {
2997         fprintf(stderr, "VK_VERSION_1_0 check failed: vkFreeDescriptorSets not found\n");
2998         good = false;
2999     }
3000     if (!vk->vkUpdateDescriptorSets)
3001     {
3002         fprintf(stderr, "VK_VERSION_1_0 check failed: vkUpdateDescriptorSets not found\n");
3003         good = false;
3004     }
3005     if (!vk->vkCreateFramebuffer)
3006     {
3007         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCreateFramebuffer not found\n");
3008         good = false;
3009     }
3010     if (!vk->vkDestroyFramebuffer)
3011     {
3012         fprintf(stderr, "VK_VERSION_1_0 check failed: vkDestroyFramebuffer not found\n");
3013         good = false;
3014     }
3015     if (!vk->vkCreateRenderPass)
3016     {
3017         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCreateRenderPass not found\n");
3018         good = false;
3019     }
3020     if (!vk->vkDestroyRenderPass)
3021     {
3022         fprintf(stderr, "VK_VERSION_1_0 check failed: vkDestroyRenderPass not found\n");
3023         good = false;
3024     }
3025     if (!vk->vkGetRenderAreaGranularity)
3026     {
3027         fprintf(stderr, "VK_VERSION_1_0 check failed: vkGetRenderAreaGranularity not found\n");
3028         good = false;
3029     }
3030     if (!vk->vkCreateCommandPool)
3031     {
3032         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCreateCommandPool not found\n");
3033         good = false;
3034     }
3035     if (!vk->vkDestroyCommandPool)
3036     {
3037         fprintf(stderr, "VK_VERSION_1_0 check failed: vkDestroyCommandPool not found\n");
3038         good = false;
3039     }
3040     if (!vk->vkResetCommandPool)
3041     {
3042         fprintf(stderr, "VK_VERSION_1_0 check failed: vkResetCommandPool not found\n");
3043         good = false;
3044     }
3045     if (!vk->vkAllocateCommandBuffers)
3046     {
3047         fprintf(stderr, "VK_VERSION_1_0 check failed: vkAllocateCommandBuffers not found\n");
3048         good = false;
3049     }
3050     if (!vk->vkFreeCommandBuffers)
3051     {
3052         fprintf(stderr, "VK_VERSION_1_0 check failed: vkFreeCommandBuffers not found\n");
3053         good = false;
3054     }
3055     if (!vk->vkBeginCommandBuffer)
3056     {
3057         fprintf(stderr, "VK_VERSION_1_0 check failed: vkBeginCommandBuffer not found\n");
3058         good = false;
3059     }
3060     if (!vk->vkEndCommandBuffer)
3061     {
3062         fprintf(stderr, "VK_VERSION_1_0 check failed: vkEndCommandBuffer not found\n");
3063         good = false;
3064     }
3065     if (!vk->vkResetCommandBuffer)
3066     {
3067         fprintf(stderr, "VK_VERSION_1_0 check failed: vkResetCommandBuffer not found\n");
3068         good = false;
3069     }
3070     if (!vk->vkCmdBindPipeline)
3071     {
3072         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdBindPipeline not found\n");
3073         good = false;
3074     }
3075     if (!vk->vkCmdSetViewport)
3076     {
3077         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdSetViewport not found\n");
3078         good = false;
3079     }
3080     if (!vk->vkCmdSetScissor)
3081     {
3082         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdSetScissor not found\n");
3083         good = false;
3084     }
3085     if (!vk->vkCmdSetLineWidth)
3086     {
3087         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdSetLineWidth not found\n");
3088         good = false;
3089     }
3090     if (!vk->vkCmdSetDepthBias)
3091     {
3092         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdSetDepthBias not found\n");
3093         good = false;
3094     }
3095     if (!vk->vkCmdSetBlendConstants)
3096     {
3097         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdSetBlendConstants not found\n");
3098         good = false;
3099     }
3100     if (!vk->vkCmdSetDepthBounds)
3101     {
3102         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdSetDepthBounds not found\n");
3103         good = false;
3104     }
3105     if (!vk->vkCmdSetStencilCompareMask)
3106     {
3107         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdSetStencilCompareMask not found\n");
3108         good = false;
3109     }
3110     if (!vk->vkCmdSetStencilWriteMask)
3111     {
3112         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdSetStencilWriteMask not found\n");
3113         good = false;
3114     }
3115     if (!vk->vkCmdSetStencilReference)
3116     {
3117         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdSetStencilReference not found\n");
3118         good = false;
3119     }
3120     if (!vk->vkCmdBindDescriptorSets)
3121     {
3122         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdBindDescriptorSets not found\n");
3123         good = false;
3124     }
3125     if (!vk->vkCmdBindIndexBuffer)
3126     {
3127         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdBindIndexBuffer not found\n");
3128         good = false;
3129     }
3130     if (!vk->vkCmdBindVertexBuffers)
3131     {
3132         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdBindVertexBuffers not found\n");
3133         good = false;
3134     }
3135     if (!vk->vkCmdDraw)
3136     {
3137         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdDraw not found\n");
3138         good = false;
3139     }
3140     if (!vk->vkCmdDrawIndexed)
3141     {
3142         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdDrawIndexed not found\n");
3143         good = false;
3144     }
3145     if (!vk->vkCmdDrawIndirect)
3146     {
3147         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdDrawIndirect not found\n");
3148         good = false;
3149     }
3150     if (!vk->vkCmdDrawIndexedIndirect)
3151     {
3152         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdDrawIndexedIndirect not found\n");
3153         good = false;
3154     }
3155     if (!vk->vkCmdDispatch)
3156     {
3157         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdDispatch not found\n");
3158         good = false;
3159     }
3160     if (!vk->vkCmdDispatchIndirect)
3161     {
3162         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdDispatchIndirect not found\n");
3163         good = false;
3164     }
3165     if (!vk->vkCmdCopyBuffer)
3166     {
3167         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdCopyBuffer not found\n");
3168         good = false;
3169     }
3170     if (!vk->vkCmdCopyImage)
3171     {
3172         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdCopyImage not found\n");
3173         good = false;
3174     }
3175     if (!vk->vkCmdBlitImage)
3176     {
3177         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdBlitImage not found\n");
3178         good = false;
3179     }
3180     if (!vk->vkCmdCopyBufferToImage)
3181     {
3182         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdCopyBufferToImage not found\n");
3183         good = false;
3184     }
3185     if (!vk->vkCmdCopyImageToBuffer)
3186     {
3187         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdCopyImageToBuffer not found\n");
3188         good = false;
3189     }
3190     if (!vk->vkCmdUpdateBuffer)
3191     {
3192         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdUpdateBuffer not found\n");
3193         good = false;
3194     }
3195     if (!vk->vkCmdFillBuffer)
3196     {
3197         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdFillBuffer not found\n");
3198         good = false;
3199     }
3200     if (!vk->vkCmdClearColorImage)
3201     {
3202         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdClearColorImage not found\n");
3203         good = false;
3204     }
3205     if (!vk->vkCmdClearDepthStencilImage)
3206     {
3207         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdClearDepthStencilImage not found\n");
3208         good = false;
3209     }
3210     if (!vk->vkCmdClearAttachments)
3211     {
3212         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdClearAttachments not found\n");
3213         good = false;
3214     }
3215     if (!vk->vkCmdResolveImage)
3216     {
3217         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdResolveImage not found\n");
3218         good = false;
3219     }
3220     if (!vk->vkCmdSetEvent)
3221     {
3222         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdSetEvent not found\n");
3223         good = false;
3224     }
3225     if (!vk->vkCmdResetEvent)
3226     {
3227         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdResetEvent not found\n");
3228         good = false;
3229     }
3230     if (!vk->vkCmdWaitEvents)
3231     {
3232         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdWaitEvents not found\n");
3233         good = false;
3234     }
3235     if (!vk->vkCmdPipelineBarrier)
3236     {
3237         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdPipelineBarrier not found\n");
3238         good = false;
3239     }
3240     if (!vk->vkCmdBeginQuery)
3241     {
3242         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdBeginQuery not found\n");
3243         good = false;
3244     }
3245     if (!vk->vkCmdEndQuery)
3246     {
3247         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdEndQuery not found\n");
3248         good = false;
3249     }
3250     if (!vk->vkCmdResetQueryPool)
3251     {
3252         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdResetQueryPool not found\n");
3253         good = false;
3254     }
3255     if (!vk->vkCmdWriteTimestamp)
3256     {
3257         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdWriteTimestamp not found\n");
3258         good = false;
3259     }
3260     if (!vk->vkCmdCopyQueryPoolResults)
3261     {
3262         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdCopyQueryPoolResults not found\n");
3263         good = false;
3264     }
3265     if (!vk->vkCmdPushConstants)
3266     {
3267         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdPushConstants not found\n");
3268         good = false;
3269     }
3270     if (!vk->vkCmdBeginRenderPass)
3271     {
3272         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdBeginRenderPass not found\n");
3273         good = false;
3274     }
3275     if (!vk->vkCmdNextSubpass)
3276     {
3277         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdNextSubpass not found\n");
3278         good = false;
3279     }
3280     if (!vk->vkCmdEndRenderPass)
3281     {
3282         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdEndRenderPass not found\n");
3283         good = false;
3284     }
3285     if (!vk->vkCmdExecuteCommands)
3286     {
3287         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdExecuteCommands not found\n");
3288         good = false;
3289     }
3290     return good;
3291 }
3292 
vulkan_dispatch_check_device_VK_VERSION_1_1(const VulkanDispatch * vk)3293 bool vulkan_dispatch_check_device_VK_VERSION_1_1(
3294     const VulkanDispatch* vk)
3295 
3296 {
3297     bool good = true;
3298     if (!vk->vkBindBufferMemory2)
3299     {
3300         fprintf(stderr, "VK_VERSION_1_1 check failed: vkBindBufferMemory2 not found\n");
3301         good = false;
3302     }
3303     if (!vk->vkBindImageMemory2)
3304     {
3305         fprintf(stderr, "VK_VERSION_1_1 check failed: vkBindImageMemory2 not found\n");
3306         good = false;
3307     }
3308     if (!vk->vkGetDeviceGroupPeerMemoryFeatures)
3309     {
3310         fprintf(stderr, "VK_VERSION_1_1 check failed: vkGetDeviceGroupPeerMemoryFeatures not found\n");
3311         good = false;
3312     }
3313     if (!vk->vkCmdSetDeviceMask)
3314     {
3315         fprintf(stderr, "VK_VERSION_1_1 check failed: vkCmdSetDeviceMask not found\n");
3316         good = false;
3317     }
3318     if (!vk->vkCmdDispatchBase)
3319     {
3320         fprintf(stderr, "VK_VERSION_1_1 check failed: vkCmdDispatchBase not found\n");
3321         good = false;
3322     }
3323     if (!vk->vkGetImageMemoryRequirements2)
3324     {
3325         fprintf(stderr, "VK_VERSION_1_1 check failed: vkGetImageMemoryRequirements2 not found\n");
3326         good = false;
3327     }
3328     if (!vk->vkGetBufferMemoryRequirements2)
3329     {
3330         fprintf(stderr, "VK_VERSION_1_1 check failed: vkGetBufferMemoryRequirements2 not found\n");
3331         good = false;
3332     }
3333     if (!vk->vkGetImageSparseMemoryRequirements2)
3334     {
3335         fprintf(stderr, "VK_VERSION_1_1 check failed: vkGetImageSparseMemoryRequirements2 not found\n");
3336         good = false;
3337     }
3338     if (!vk->vkTrimCommandPool)
3339     {
3340         fprintf(stderr, "VK_VERSION_1_1 check failed: vkTrimCommandPool not found\n");
3341         good = false;
3342     }
3343     if (!vk->vkGetDeviceQueue2)
3344     {
3345         fprintf(stderr, "VK_VERSION_1_1 check failed: vkGetDeviceQueue2 not found\n");
3346         good = false;
3347     }
3348     if (!vk->vkCreateSamplerYcbcrConversion)
3349     {
3350         fprintf(stderr, "VK_VERSION_1_1 check failed: vkCreateSamplerYcbcrConversion not found\n");
3351         good = false;
3352     }
3353     if (!vk->vkDestroySamplerYcbcrConversion)
3354     {
3355         fprintf(stderr, "VK_VERSION_1_1 check failed: vkDestroySamplerYcbcrConversion not found\n");
3356         good = false;
3357     }
3358     if (!vk->vkCreateDescriptorUpdateTemplate)
3359     {
3360         fprintf(stderr, "VK_VERSION_1_1 check failed: vkCreateDescriptorUpdateTemplate not found\n");
3361         good = false;
3362     }
3363     if (!vk->vkDestroyDescriptorUpdateTemplate)
3364     {
3365         fprintf(stderr, "VK_VERSION_1_1 check failed: vkDestroyDescriptorUpdateTemplate not found\n");
3366         good = false;
3367     }
3368     if (!vk->vkUpdateDescriptorSetWithTemplate)
3369     {
3370         fprintf(stderr, "VK_VERSION_1_1 check failed: vkUpdateDescriptorSetWithTemplate not found\n");
3371         good = false;
3372     }
3373     if (!vk->vkGetDescriptorSetLayoutSupport)
3374     {
3375         fprintf(stderr, "VK_VERSION_1_1 check failed: vkGetDescriptorSetLayoutSupport not found\n");
3376         good = false;
3377     }
3378     return good;
3379 }
3380 
3381 } // namespace goldfish_vk
3382