• 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 //
18 // (impl) generated by codegen/vulkan/scripts/genvk.py -registry codegen/vulkan/xml/vk.xml
19 // -registryGfxstream codegen/vulkan/xml/vk_gfxstream.xml cereal -o host/vulkan/cereal
20 //
21 // Please do not modify directly;
22 // re-run gfxstream-protocols/scripts/generate-vulkan-sources.sh,
23 // or directly from Python by defining:
24 // VULKAN_REGISTRY_XML_DIR : Directory containing vk.xml
25 // VULKAN_REGISTRY_SCRIPTS_DIR : Directory containing genvk.py
26 // CEREAL_OUTPUT_DIR: Where to put the generated sources.
27 //
28 // python3 $VULKAN_REGISTRY_SCRIPTS_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o
29 // $CEREAL_OUTPUT_DIR
30 //
31 
32 #include "goldfish_vk_dispatch.h"
33 
34 #include <stdio.h>
35 #include <stdlib.h>
36 #include <string.h>
37 
38 namespace gfxstream {
39 namespace vk {
40 
41 #ifdef VK_VERSION_1_0
42 #endif
43 #ifdef VK_VERSION_1_1
44 #endif
45 #ifdef VK_VERSION_1_2
46 #endif
47 #ifdef VK_VERSION_1_3
48 #endif
49 #ifdef VK_KHR_surface
50 #endif
51 #ifdef VK_KHR_swapchain
52 #endif
53 #ifdef VK_KHR_display
54 #endif
55 #ifdef VK_KHR_display_swapchain
56 #endif
57 #ifdef VK_KHR_xlib_surface
58 #endif
59 #ifdef VK_KHR_xcb_surface
60 #endif
61 #ifdef VK_KHR_wayland_surface
62 #endif
63 #ifdef VK_KHR_android_surface
64 #endif
65 #ifdef VK_KHR_win32_surface
66 #endif
67 #ifdef VK_KHR_sampler_mirror_clamp_to_edge
68 #endif
69 #ifdef VK_KHR_video_queue
70 #endif
71 #ifdef VK_KHR_video_decode_queue
72 #endif
73 #ifdef VK_KHR_video_decode_h264
74 #endif
75 #ifdef VK_KHR_dynamic_rendering
76 #endif
77 #ifdef VK_KHR_multiview
78 #endif
79 #ifdef VK_KHR_get_physical_device_properties2
80 #endif
81 #ifdef VK_KHR_device_group
82 #endif
83 #ifdef VK_KHR_shader_draw_parameters
84 #endif
85 #ifdef VK_KHR_maintenance1
86 #endif
87 #ifdef VK_KHR_device_group_creation
88 #endif
89 #ifdef VK_KHR_external_memory_capabilities
90 #endif
91 #ifdef VK_KHR_external_memory
92 #endif
93 #ifdef VK_KHR_external_memory_win32
94 #endif
95 #ifdef VK_KHR_external_memory_fd
96 #endif
97 #ifdef VK_KHR_win32_keyed_mutex
98 #endif
99 #ifdef VK_KHR_external_semaphore_capabilities
100 #endif
101 #ifdef VK_KHR_external_semaphore
102 #endif
103 #ifdef VK_KHR_external_semaphore_win32
104 #endif
105 #ifdef VK_KHR_external_semaphore_fd
106 #endif
107 #ifdef VK_KHR_push_descriptor
108 #endif
109 #ifdef VK_KHR_shader_float16_int8
110 #endif
111 #ifdef VK_KHR_16bit_storage
112 #endif
113 #ifdef VK_KHR_incremental_present
114 #endif
115 #ifdef VK_KHR_descriptor_update_template
116 #endif
117 #ifdef VK_KHR_imageless_framebuffer
118 #endif
119 #ifdef VK_KHR_create_renderpass2
120 #endif
121 #ifdef VK_KHR_shared_presentable_image
122 #endif
123 #ifdef VK_KHR_external_fence_capabilities
124 #endif
125 #ifdef VK_KHR_external_fence
126 #endif
127 #ifdef VK_KHR_external_fence_win32
128 #endif
129 #ifdef VK_KHR_external_fence_fd
130 #endif
131 #ifdef VK_KHR_performance_query
132 #endif
133 #ifdef VK_KHR_maintenance2
134 #endif
135 #ifdef VK_KHR_get_surface_capabilities2
136 #endif
137 #ifdef VK_KHR_variable_pointers
138 #endif
139 #ifdef VK_KHR_get_display_properties2
140 #endif
141 #ifdef VK_KHR_dedicated_allocation
142 #endif
143 #ifdef VK_KHR_storage_buffer_storage_class
144 #endif
145 #ifdef VK_KHR_relaxed_block_layout
146 #endif
147 #ifdef VK_KHR_get_memory_requirements2
148 #endif
149 #ifdef VK_KHR_image_format_list
150 #endif
151 #ifdef VK_KHR_sampler_ycbcr_conversion
152 #endif
153 #ifdef VK_KHR_bind_memory2
154 #endif
155 #ifdef VK_KHR_portability_subset
156 #endif
157 #ifdef VK_KHR_maintenance3
158 #endif
159 #ifdef VK_KHR_draw_indirect_count
160 #endif
161 #ifdef VK_KHR_shader_subgroup_extended_types
162 #endif
163 #ifdef VK_KHR_8bit_storage
164 #endif
165 #ifdef VK_KHR_shader_atomic_int64
166 #endif
167 #ifdef VK_KHR_shader_clock
168 #endif
169 #ifdef VK_KHR_video_decode_h265
170 #endif
171 #ifdef VK_KHR_global_priority
172 #endif
173 #ifdef VK_KHR_driver_properties
174 #endif
175 #ifdef VK_KHR_shader_float_controls
176 #endif
177 #ifdef VK_KHR_depth_stencil_resolve
178 #endif
179 #ifdef VK_KHR_swapchain_mutable_format
180 #endif
181 #ifdef VK_KHR_timeline_semaphore
182 #endif
183 #ifdef VK_KHR_vulkan_memory_model
184 #endif
185 #ifdef VK_KHR_shader_terminate_invocation
186 #endif
187 #ifdef VK_KHR_fragment_shading_rate
188 #endif
189 #ifdef VK_KHR_spirv_1_4
190 #endif
191 #ifdef VK_KHR_surface_protected_capabilities
192 #endif
193 #ifdef VK_KHR_separate_depth_stencil_layouts
194 #endif
195 #ifdef VK_KHR_present_wait
196 #endif
197 #ifdef VK_KHR_uniform_buffer_standard_layout
198 #endif
199 #ifdef VK_KHR_buffer_device_address
200 #endif
201 #ifdef VK_KHR_deferred_host_operations
202 #endif
203 #ifdef VK_KHR_pipeline_executable_properties
204 #endif
205 #ifdef VK_KHR_map_memory2
206 #endif
207 #ifdef VK_KHR_shader_integer_dot_product
208 #endif
209 #ifdef VK_KHR_pipeline_library
210 #endif
211 #ifdef VK_KHR_shader_non_semantic_info
212 #endif
213 #ifdef VK_KHR_present_id
214 #endif
215 #ifdef VK_KHR_video_encode_queue
216 #endif
217 #ifdef VK_KHR_synchronization2
218 #endif
219 #ifdef VK_KHR_fragment_shader_barycentric
220 #endif
221 #ifdef VK_KHR_shader_subgroup_uniform_control_flow
222 #endif
223 #ifdef VK_KHR_zero_initialize_workgroup_memory
224 #endif
225 #ifdef VK_KHR_workgroup_memory_explicit_layout
226 #endif
227 #ifdef VK_KHR_copy_commands2
228 #endif
229 #ifdef VK_KHR_format_feature_flags2
230 #endif
231 #ifdef VK_KHR_ray_tracing_maintenance1
232 #endif
233 #ifdef VK_KHR_portability_enumeration
234 #endif
235 #ifdef VK_KHR_maintenance4
236 #endif
237 #ifdef VK_KHR_ray_tracing_position_fetch
238 #endif
239 #ifdef VK_ANDROID_native_buffer
240 #endif
241 #ifdef VK_EXT_debug_report
242 #endif
243 #ifdef VK_NV_glsl_shader
244 #endif
245 #ifdef VK_EXT_depth_range_unrestricted
246 #endif
247 #ifdef VK_IMG_filter_cubic
248 #endif
249 #ifdef VK_AMD_rasterization_order
250 #endif
251 #ifdef VK_AMD_shader_trinary_minmax
252 #endif
253 #ifdef VK_AMD_shader_explicit_vertex_parameter
254 #endif
255 #ifdef VK_EXT_debug_marker
256 #endif
257 #ifdef VK_AMD_gcn_shader
258 #endif
259 #ifdef VK_NV_dedicated_allocation
260 #endif
261 #ifdef VK_EXT_transform_feedback
262 #endif
263 #ifdef VK_NVX_binary_import
264 #endif
265 #ifdef VK_NVX_image_view_handle
266 #endif
267 #ifdef VK_AMD_draw_indirect_count
268 #endif
269 #ifdef VK_AMD_negative_viewport_height
270 #endif
271 #ifdef VK_AMD_gpu_shader_half_float
272 #endif
273 #ifdef VK_AMD_shader_ballot
274 #endif
275 #ifdef VK_EXT_video_encode_h264
276 #endif
277 #ifdef VK_EXT_video_encode_h265
278 #endif
279 #ifdef VK_AMD_texture_gather_bias_lod
280 #endif
281 #ifdef VK_AMD_shader_info
282 #endif
283 #ifdef VK_AMD_shader_image_load_store_lod
284 #endif
285 #ifdef VK_GGP_stream_descriptor_surface
286 #endif
287 #ifdef VK_NV_corner_sampled_image
288 #endif
289 #ifdef VK_IMG_format_pvrtc
290 #endif
291 #ifdef VK_NV_external_memory_capabilities
292 #endif
293 #ifdef VK_NV_external_memory
294 #endif
295 #ifdef VK_NV_external_memory_win32
296 #endif
297 #ifdef VK_NV_win32_keyed_mutex
298 #endif
299 #ifdef VK_EXT_validation_flags
300 #endif
301 #ifdef VK_NN_vi_surface
302 #endif
303 #ifdef VK_EXT_shader_subgroup_ballot
304 #endif
305 #ifdef VK_EXT_shader_subgroup_vote
306 #endif
307 #ifdef VK_EXT_texture_compression_astc_hdr
308 #endif
309 #ifdef VK_EXT_astc_decode_mode
310 #endif
311 #ifdef VK_EXT_pipeline_robustness
312 #endif
313 #ifdef VK_EXT_conditional_rendering
314 #endif
315 #ifdef VK_NV_clip_space_w_scaling
316 #endif
317 #ifdef VK_EXT_direct_mode_display
318 #endif
319 #ifdef VK_EXT_acquire_xlib_display
320 #endif
321 #ifdef VK_EXT_display_surface_counter
322 #endif
323 #ifdef VK_EXT_display_control
324 #endif
325 #ifdef VK_GOOGLE_display_timing
326 #endif
327 #ifdef VK_NV_sample_mask_override_coverage
328 #endif
329 #ifdef VK_NV_geometry_shader_passthrough
330 #endif
331 #ifdef VK_NV_viewport_array2
332 #endif
333 #ifdef VK_NVX_multiview_per_view_attributes
334 #endif
335 #ifdef VK_NV_viewport_swizzle
336 #endif
337 #ifdef VK_EXT_discard_rectangles
338 #endif
339 #ifdef VK_EXT_conservative_rasterization
340 #endif
341 #ifdef VK_EXT_depth_clip_enable
342 #endif
343 #ifdef VK_EXT_swapchain_colorspace
344 #endif
345 #ifdef VK_EXT_hdr_metadata
346 #endif
347 #ifdef VK_MVK_ios_surface
348 #endif
349 #ifdef VK_MVK_macos_surface
350 #endif
351 #ifdef VK_EXT_external_memory_dma_buf
352 #endif
353 #ifdef VK_EXT_queue_family_foreign
354 #endif
355 #ifdef VK_EXT_debug_utils
356 #endif
357 #ifdef VK_ANDROID_external_memory_android_hardware_buffer
358 #endif
359 #ifdef VK_EXT_sampler_filter_minmax
360 #endif
361 #ifdef VK_AMD_gpu_shader_int16
362 #endif
363 #ifdef VK_AMD_mixed_attachment_samples
364 #endif
365 #ifdef VK_AMD_shader_fragment_mask
366 #endif
367 #ifdef VK_EXT_inline_uniform_block
368 #endif
369 #ifdef VK_EXT_shader_stencil_export
370 #endif
371 #ifdef VK_EXT_sample_locations
372 #endif
373 #ifdef VK_EXT_blend_operation_advanced
374 #endif
375 #ifdef VK_NV_fragment_coverage_to_color
376 #endif
377 #ifdef VK_NV_framebuffer_mixed_samples
378 #endif
379 #ifdef VK_NV_fill_rectangle
380 #endif
381 #ifdef VK_NV_shader_sm_builtins
382 #endif
383 #ifdef VK_EXT_post_depth_coverage
384 #endif
385 #ifdef VK_EXT_image_drm_format_modifier
386 #endif
387 #ifdef VK_EXT_validation_cache
388 #endif
389 #ifdef VK_EXT_descriptor_indexing
390 #endif
391 #ifdef VK_EXT_shader_viewport_index_layer
392 #endif
393 #ifdef VK_NV_shading_rate_image
394 #endif
395 #ifdef VK_NV_ray_tracing
396 #endif
397 #ifdef VK_NV_representative_fragment_test
398 #endif
399 #ifdef VK_EXT_filter_cubic
400 #endif
401 #ifdef VK_QCOM_render_pass_shader_resolve
402 #endif
403 #ifdef VK_EXT_global_priority
404 #endif
405 #ifdef VK_EXT_external_memory_host
406 #endif
407 #ifdef VK_AMD_buffer_marker
408 #endif
409 #ifdef VK_AMD_pipeline_compiler_control
410 #endif
411 #ifdef VK_EXT_calibrated_timestamps
412 #endif
413 #ifdef VK_AMD_shader_core_properties
414 #endif
415 #ifdef VK_AMD_memory_overallocation_behavior
416 #endif
417 #ifdef VK_EXT_vertex_attribute_divisor
418 #endif
419 #ifdef VK_GGP_frame_token
420 #endif
421 #ifdef VK_EXT_pipeline_creation_feedback
422 #endif
423 #ifdef VK_NV_shader_subgroup_partitioned
424 #endif
425 #ifdef VK_NV_compute_shader_derivatives
426 #endif
427 #ifdef VK_NV_mesh_shader
428 #endif
429 #ifdef VK_NV_fragment_shader_barycentric
430 #endif
431 #ifdef VK_NV_shader_image_footprint
432 #endif
433 #ifdef VK_NV_scissor_exclusive
434 #endif
435 #ifdef VK_NV_device_diagnostic_checkpoints
436 #endif
437 #ifdef VK_INTEL_shader_integer_functions2
438 #endif
439 #ifdef VK_INTEL_performance_query
440 #endif
441 #ifdef VK_EXT_pci_bus_info
442 #endif
443 #ifdef VK_AMD_display_native_hdr
444 #endif
445 #ifdef VK_FUCHSIA_imagepipe_surface
446 #endif
447 #ifdef VK_EXT_metal_surface
448 #endif
449 #ifdef VK_EXT_fragment_density_map
450 #endif
451 #ifdef VK_EXT_scalar_block_layout
452 #endif
453 #ifdef VK_GOOGLE_hlsl_functionality1
454 #endif
455 #ifdef VK_GOOGLE_decorate_string
456 #endif
457 #ifdef VK_EXT_subgroup_size_control
458 #endif
459 #ifdef VK_AMD_shader_core_properties2
460 #endif
461 #ifdef VK_AMD_device_coherent_memory
462 #endif
463 #ifdef VK_EXT_shader_image_atomic_int64
464 #endif
465 #ifdef VK_EXT_memory_budget
466 #endif
467 #ifdef VK_EXT_memory_priority
468 #endif
469 #ifdef VK_NV_dedicated_allocation_image_aliasing
470 #endif
471 #ifdef VK_EXT_buffer_device_address
472 #endif
473 #ifdef VK_EXT_tooling_info
474 #endif
475 #ifdef VK_EXT_separate_stencil_usage
476 #endif
477 #ifdef VK_EXT_validation_features
478 #endif
479 #ifdef VK_NV_cooperative_matrix
480 #endif
481 #ifdef VK_NV_coverage_reduction_mode
482 #endif
483 #ifdef VK_EXT_fragment_shader_interlock
484 #endif
485 #ifdef VK_EXT_ycbcr_image_arrays
486 #endif
487 #ifdef VK_EXT_provoking_vertex
488 #endif
489 #ifdef VK_EXT_full_screen_exclusive
490 #endif
491 #ifdef VK_EXT_headless_surface
492 #endif
493 #ifdef VK_EXT_line_rasterization
494 #endif
495 #ifdef VK_EXT_shader_atomic_float
496 #endif
497 #ifdef VK_EXT_host_query_reset
498 #endif
499 #ifdef VK_EXT_index_type_uint8
500 #endif
501 #ifdef VK_EXT_extended_dynamic_state
502 #endif
503 #ifdef VK_EXT_shader_atomic_float2
504 #endif
505 #ifdef VK_EXT_surface_maintenance1
506 #endif
507 #ifdef VK_EXT_swapchain_maintenance1
508 #endif
509 #ifdef VK_EXT_shader_demote_to_helper_invocation
510 #endif
511 #ifdef VK_NV_device_generated_commands
512 #endif
513 #ifdef VK_NV_inherited_viewport_scissor
514 #endif
515 #ifdef VK_EXT_texel_buffer_alignment
516 #endif
517 #ifdef VK_QCOM_render_pass_transform
518 #endif
519 #ifdef VK_EXT_device_memory_report
520 #endif
521 #ifdef VK_EXT_acquire_drm_display
522 #endif
523 #ifdef VK_EXT_robustness2
524 #endif
525 #ifdef VK_EXT_custom_border_color
526 #endif
527 #ifdef VK_GOOGLE_user_type
528 #endif
529 #ifdef VK_NV_present_barrier
530 #endif
531 #ifdef VK_EXT_private_data
532 #endif
533 #ifdef VK_EXT_pipeline_creation_cache_control
534 #endif
535 #ifdef VK_NV_device_diagnostics_config
536 #endif
537 #ifdef VK_QCOM_render_pass_store_ops
538 #endif
539 #ifdef VK_NV_low_latency
540 #endif
541 #ifdef VK_EXT_metal_objects
542 #endif
543 #ifdef VK_EXT_descriptor_buffer
544 #endif
545 #ifdef VK_EXT_graphics_pipeline_library
546 #endif
547 #ifdef VK_AMD_shader_early_and_late_fragment_tests
548 #endif
549 #ifdef VK_NV_fragment_shading_rate_enums
550 #endif
551 #ifdef VK_NV_ray_tracing_motion_blur
552 #endif
553 #ifdef VK_EXT_ycbcr_2plane_444_formats
554 #endif
555 #ifdef VK_EXT_fragment_density_map2
556 #endif
557 #ifdef VK_QCOM_rotated_copy_commands
558 #endif
559 #ifdef VK_EXT_image_robustness
560 #endif
561 #ifdef VK_EXT_image_compression_control
562 #endif
563 #ifdef VK_EXT_attachment_feedback_loop_layout
564 #endif
565 #ifdef VK_EXT_4444_formats
566 #endif
567 #ifdef VK_EXT_device_fault
568 #endif
569 #ifdef VK_ARM_rasterization_order_attachment_access
570 #endif
571 #ifdef VK_EXT_rgba10x6_formats
572 #endif
573 #ifdef VK_NV_acquire_winrt_display
574 #endif
575 #ifdef VK_EXT_directfb_surface
576 #endif
577 #ifdef VK_VALVE_mutable_descriptor_type
578 #endif
579 #ifdef VK_EXT_vertex_input_dynamic_state
580 #endif
581 #ifdef VK_EXT_physical_device_drm
582 #endif
583 #ifdef VK_EXT_device_address_binding_report
584 #endif
585 #ifdef VK_EXT_depth_clip_control
586 #endif
587 #ifdef VK_EXT_primitive_topology_list_restart
588 #endif
589 #ifdef VK_FUCHSIA_external_memory
590 #endif
591 #ifdef VK_FUCHSIA_external_semaphore
592 #endif
593 #ifdef VK_FUCHSIA_buffer_collection
594 #endif
595 #ifdef VK_HUAWEI_subpass_shading
596 #endif
597 #ifdef VK_HUAWEI_invocation_mask
598 #endif
599 #ifdef VK_NV_external_memory_rdma
600 #endif
601 #ifdef VK_EXT_pipeline_properties
602 #endif
603 #ifdef VK_EXT_multisampled_render_to_single_sampled
604 #endif
605 #ifdef VK_EXT_extended_dynamic_state2
606 #endif
607 #ifdef VK_QNX_screen_surface
608 #endif
609 #ifdef VK_EXT_color_write_enable
610 #endif
611 #ifdef VK_EXT_primitives_generated_query
612 #endif
613 #ifdef VK_GOOGLE_gfxstream
614 #endif
615 #ifdef VK_EXT_global_priority_query
616 #endif
617 #ifdef VK_EXT_image_view_min_lod
618 #endif
619 #ifdef VK_EXT_multi_draw
620 #endif
621 #ifdef VK_EXT_image_2d_view_of_3d
622 #endif
623 #ifdef VK_EXT_shader_tile_image
624 #endif
625 #ifdef VK_EXT_opacity_micromap
626 #endif
627 #ifdef VK_NV_displacement_micromap
628 #endif
629 #ifdef VK_EXT_load_store_op_none
630 #endif
631 #ifdef VK_HUAWEI_cluster_culling_shader
632 #endif
633 #ifdef VK_EXT_border_color_swizzle
634 #endif
635 #ifdef VK_EXT_pageable_device_local_memory
636 #endif
637 #ifdef VK_ARM_shader_core_properties
638 #endif
639 #ifdef VK_EXT_image_sliced_view_of_3d
640 #endif
641 #ifdef VK_VALVE_descriptor_set_host_mapping
642 #endif
643 #ifdef VK_EXT_depth_clamp_zero_one
644 #endif
645 #ifdef VK_EXT_non_seamless_cube_map
646 #endif
647 #ifdef VK_QCOM_fragment_density_map_offset
648 #endif
649 #ifdef VK_NV_copy_memory_indirect
650 #endif
651 #ifdef VK_NV_memory_decompression
652 #endif
653 #ifdef VK_NV_linear_color_attachment
654 #endif
655 #ifdef VK_GOOGLE_surfaceless_query
656 #endif
657 #ifdef VK_EXT_image_compression_control_swapchain
658 #endif
659 #ifdef VK_QCOM_image_processing
660 #endif
661 #ifdef VK_EXT_extended_dynamic_state3
662 #endif
663 #ifdef VK_EXT_subpass_merge_feedback
664 #endif
665 #ifdef VK_LUNARG_direct_driver_loading
666 #endif
667 #ifdef VK_EXT_shader_module_identifier
668 #endif
669 #ifdef VK_EXT_rasterization_order_attachment_access
670 #endif
671 #ifdef VK_NV_optical_flow
672 #endif
673 #ifdef VK_EXT_legacy_dithering
674 #endif
675 #ifdef VK_EXT_pipeline_protected_access
676 #endif
677 #ifdef VK_EXT_shader_object
678 #endif
679 #ifdef VK_QCOM_tile_properties
680 #endif
681 #ifdef VK_SEC_amigo_profiling
682 #endif
683 #ifdef VK_QCOM_multiview_per_view_viewports
684 #endif
685 #ifdef VK_NV_ray_tracing_invocation_reorder
686 #endif
687 #ifdef VK_EXT_mutable_descriptor_type
688 #endif
689 #ifdef VK_ARM_shader_core_builtins
690 #endif
691 #ifdef VK_EXT_pipeline_library_group_handles
692 #endif
693 #ifdef VK_QCOM_multiview_per_view_render_areas
694 #endif
695 #ifdef VK_EXT_attachment_feedback_loop_dynamic_state
696 #endif
697 #ifdef VK_KHR_acceleration_structure
698 #endif
699 #ifdef VK_KHR_ray_tracing_pipeline
700 #endif
701 #ifdef VK_KHR_ray_query
702 #endif
703 #ifdef VK_EXT_mesh_shader
704 #endif
705 
init_vulkan_dispatch_from_system_loader(DlOpenFunc dlOpenFunc,DlSymFunc dlSymFunc,VulkanDispatch * out)706 void init_vulkan_dispatch_from_system_loader(DlOpenFunc dlOpenFunc, DlSymFunc dlSymFunc,
707                                              VulkanDispatch* out) {
708     memset(out, 0x0, sizeof(VulkanDispatch));
709     void* lib = dlOpenFunc();
710     if (!lib) return;
711 #ifdef VK_VERSION_1_0
712     out->vkDestroyInstance = (PFN_vkDestroyInstance)dlSymFunc(lib, "vkDestroyInstance");
713     out->vkEnumeratePhysicalDevices =
714         (PFN_vkEnumeratePhysicalDevices)dlSymFunc(lib, "vkEnumeratePhysicalDevices");
715     out->vkGetPhysicalDeviceFeatures =
716         (PFN_vkGetPhysicalDeviceFeatures)dlSymFunc(lib, "vkGetPhysicalDeviceFeatures");
717     out->vkGetPhysicalDeviceFormatProperties = (PFN_vkGetPhysicalDeviceFormatProperties)dlSymFunc(
718         lib, "vkGetPhysicalDeviceFormatProperties");
719     out->vkGetPhysicalDeviceImageFormatProperties =
720         (PFN_vkGetPhysicalDeviceImageFormatProperties)dlSymFunc(
721             lib, "vkGetPhysicalDeviceImageFormatProperties");
722     out->vkGetPhysicalDeviceProperties =
723         (PFN_vkGetPhysicalDeviceProperties)dlSymFunc(lib, "vkGetPhysicalDeviceProperties");
724     out->vkGetPhysicalDeviceQueueFamilyProperties =
725         (PFN_vkGetPhysicalDeviceQueueFamilyProperties)dlSymFunc(
726             lib, "vkGetPhysicalDeviceQueueFamilyProperties");
727     out->vkGetPhysicalDeviceMemoryProperties = (PFN_vkGetPhysicalDeviceMemoryProperties)dlSymFunc(
728         lib, "vkGetPhysicalDeviceMemoryProperties");
729     out->vkGetInstanceProcAddr = (PFN_vkGetInstanceProcAddr)dlSymFunc(lib, "vkGetInstanceProcAddr");
730     out->vkCreateDevice = (PFN_vkCreateDevice)dlSymFunc(lib, "vkCreateDevice");
731     out->vkDestroyDevice = (PFN_vkDestroyDevice)dlSymFunc(lib, "vkDestroyDevice");
732     out->vkEnumerateDeviceExtensionProperties = (PFN_vkEnumerateDeviceExtensionProperties)dlSymFunc(
733         lib, "vkEnumerateDeviceExtensionProperties");
734     out->vkEnumerateDeviceLayerProperties =
735         (PFN_vkEnumerateDeviceLayerProperties)dlSymFunc(lib, "vkEnumerateDeviceLayerProperties");
736     out->vkCreateInstance = (PFN_vkCreateInstance)dlSymFunc(lib, "vkCreateInstance");
737     out->vkEnumerateInstanceExtensionProperties =
738         (PFN_vkEnumerateInstanceExtensionProperties)dlSymFunc(
739             lib, "vkEnumerateInstanceExtensionProperties");
740     out->vkEnumerateInstanceLayerProperties = (PFN_vkEnumerateInstanceLayerProperties)dlSymFunc(
741         lib, "vkEnumerateInstanceLayerProperties");
742     out->vkGetDeviceProcAddr = (PFN_vkGetDeviceProcAddr)dlSymFunc(lib, "vkGetDeviceProcAddr");
743     out->vkGetPhysicalDeviceSparseImageFormatProperties =
744         (PFN_vkGetPhysicalDeviceSparseImageFormatProperties)dlSymFunc(
745             lib, "vkGetPhysicalDeviceSparseImageFormatProperties");
746 #endif
747 #ifdef VK_VERSION_1_1
748     out->vkEnumerateInstanceVersion =
749         (PFN_vkEnumerateInstanceVersion)dlSymFunc(lib, "vkEnumerateInstanceVersion");
750     out->vkEnumeratePhysicalDeviceGroups =
751         (PFN_vkEnumeratePhysicalDeviceGroups)dlSymFunc(lib, "vkEnumeratePhysicalDeviceGroups");
752     out->vkGetPhysicalDeviceFeatures2 =
753         (PFN_vkGetPhysicalDeviceFeatures2)dlSymFunc(lib, "vkGetPhysicalDeviceFeatures2");
754     out->vkGetPhysicalDeviceProperties2 =
755         (PFN_vkGetPhysicalDeviceProperties2)dlSymFunc(lib, "vkGetPhysicalDeviceProperties2");
756     out->vkGetPhysicalDeviceFormatProperties2 = (PFN_vkGetPhysicalDeviceFormatProperties2)dlSymFunc(
757         lib, "vkGetPhysicalDeviceFormatProperties2");
758     out->vkGetPhysicalDeviceImageFormatProperties2 =
759         (PFN_vkGetPhysicalDeviceImageFormatProperties2)dlSymFunc(
760             lib, "vkGetPhysicalDeviceImageFormatProperties2");
761     out->vkGetPhysicalDeviceQueueFamilyProperties2 =
762         (PFN_vkGetPhysicalDeviceQueueFamilyProperties2)dlSymFunc(
763             lib, "vkGetPhysicalDeviceQueueFamilyProperties2");
764     out->vkGetPhysicalDeviceMemoryProperties2 = (PFN_vkGetPhysicalDeviceMemoryProperties2)dlSymFunc(
765         lib, "vkGetPhysicalDeviceMemoryProperties2");
766     out->vkGetPhysicalDeviceSparseImageFormatProperties2 =
767         (PFN_vkGetPhysicalDeviceSparseImageFormatProperties2)dlSymFunc(
768             lib, "vkGetPhysicalDeviceSparseImageFormatProperties2");
769     out->vkGetPhysicalDeviceExternalBufferProperties =
770         (PFN_vkGetPhysicalDeviceExternalBufferProperties)dlSymFunc(
771             lib, "vkGetPhysicalDeviceExternalBufferProperties");
772     out->vkGetPhysicalDeviceExternalFenceProperties =
773         (PFN_vkGetPhysicalDeviceExternalFenceProperties)dlSymFunc(
774             lib, "vkGetPhysicalDeviceExternalFenceProperties");
775     out->vkGetPhysicalDeviceExternalSemaphoreProperties =
776         (PFN_vkGetPhysicalDeviceExternalSemaphoreProperties)dlSymFunc(
777             lib, "vkGetPhysicalDeviceExternalSemaphoreProperties");
778 #endif
779 #ifdef VK_KHR_surface
780     out->vkDestroySurfaceKHR = (PFN_vkDestroySurfaceKHR)dlSymFunc(lib, "vkDestroySurfaceKHR");
781 #endif
782 #ifdef VK_KHR_swapchain
783     out->vkCreateSwapchainKHR = (PFN_vkCreateSwapchainKHR)dlSymFunc(lib, "vkCreateSwapchainKHR");
784     out->vkDestroySwapchainKHR = (PFN_vkDestroySwapchainKHR)dlSymFunc(lib, "vkDestroySwapchainKHR");
785     out->vkGetSwapchainImagesKHR =
786         (PFN_vkGetSwapchainImagesKHR)dlSymFunc(lib, "vkGetSwapchainImagesKHR");
787     out->vkAcquireNextImageKHR = (PFN_vkAcquireNextImageKHR)dlSymFunc(lib, "vkAcquireNextImageKHR");
788     out->vkQueuePresentKHR = (PFN_vkQueuePresentKHR)dlSymFunc(lib, "vkQueuePresentKHR");
789 #endif
790 #ifdef VK_KHR_display
791     out->vkCreateDisplayPlaneSurfaceKHR =
792         (PFN_vkCreateDisplayPlaneSurfaceKHR)dlSymFunc(lib, "vkCreateDisplayPlaneSurfaceKHR");
793 #endif
794 #ifdef VK_KHR_xlib_surface
795     out->vkCreateXlibSurfaceKHR =
796         (PFN_vkCreateXlibSurfaceKHR)dlSymFunc(lib, "vkCreateXlibSurfaceKHR");
797     out->vkGetPhysicalDeviceXlibPresentationSupportKHR =
798         (PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR)dlSymFunc(
799             lib, "vkGetPhysicalDeviceXlibPresentationSupportKHR");
800 #endif
801 #ifdef VK_KHR_xcb_surface
802     out->vkCreateXcbSurfaceKHR = (PFN_vkCreateXcbSurfaceKHR)dlSymFunc(lib, "vkCreateXcbSurfaceKHR");
803     out->vkGetPhysicalDeviceXcbPresentationSupportKHR =
804         (PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR)dlSymFunc(
805             lib, "vkGetPhysicalDeviceXcbPresentationSupportKHR");
806 #endif
807 #ifdef VK_KHR_wayland_surface
808     out->vkCreateWaylandSurfaceKHR =
809         (PFN_vkCreateWaylandSurfaceKHR)dlSymFunc(lib, "vkCreateWaylandSurfaceKHR");
810 #endif
811 #ifdef VK_KHR_android_surface
812     out->vkCreateAndroidSurfaceKHR =
813         (PFN_vkCreateAndroidSurfaceKHR)dlSymFunc(lib, "vkCreateAndroidSurfaceKHR");
814 #endif
815 #ifdef VK_KHR_win32_surface
816     out->vkCreateWin32SurfaceKHR =
817         (PFN_vkCreateWin32SurfaceKHR)dlSymFunc(lib, "vkCreateWin32SurfaceKHR");
818     out->vkGetPhysicalDeviceWin32PresentationSupportKHR =
819         (PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)dlSymFunc(
820             lib, "vkGetPhysicalDeviceWin32PresentationSupportKHR");
821 #endif
822 #ifdef VK_KHR_device_group_creation
823     out->vkEnumeratePhysicalDeviceGroupsKHR = (PFN_vkEnumeratePhysicalDeviceGroupsKHR)dlSymFunc(
824         lib, "vkEnumeratePhysicalDeviceGroupsKHR");
825 #endif
826 #ifdef VK_EXT_debug_report
827     out->vkCreateDebugReportCallbackEXT =
828         (PFN_vkCreateDebugReportCallbackEXT)dlSymFunc(lib, "vkCreateDebugReportCallbackEXT");
829     out->vkDestroyDebugReportCallbackEXT =
830         (PFN_vkDestroyDebugReportCallbackEXT)dlSymFunc(lib, "vkDestroyDebugReportCallbackEXT");
831     out->vkDebugReportMessageEXT =
832         (PFN_vkDebugReportMessageEXT)dlSymFunc(lib, "vkDebugReportMessageEXT");
833 #endif
834 #ifdef VK_GGP_stream_descriptor_surface
835     out->vkCreateStreamDescriptorSurfaceGGP = (PFN_vkCreateStreamDescriptorSurfaceGGP)dlSymFunc(
836         lib, "vkCreateStreamDescriptorSurfaceGGP");
837 #endif
838 #ifdef VK_NN_vi_surface
839     out->vkCreateViSurfaceNN = (PFN_vkCreateViSurfaceNN)dlSymFunc(lib, "vkCreateViSurfaceNN");
840 #endif
841 #ifdef VK_MVK_ios_surface
842     out->vkCreateIOSSurfaceMVK = (PFN_vkCreateIOSSurfaceMVK)dlSymFunc(lib, "vkCreateIOSSurfaceMVK");
843 #endif
844 #ifdef VK_MVK_macos_surface
845     out->vkCreateMacOSSurfaceMVK =
846         (PFN_vkCreateMacOSSurfaceMVK)dlSymFunc(lib, "vkCreateMacOSSurfaceMVK");
847 #endif
848 #ifdef VK_EXT_debug_utils
849     out->vkCreateDebugUtilsMessengerEXT =
850         (PFN_vkCreateDebugUtilsMessengerEXT)dlSymFunc(lib, "vkCreateDebugUtilsMessengerEXT");
851     out->vkDestroyDebugUtilsMessengerEXT =
852         (PFN_vkDestroyDebugUtilsMessengerEXT)dlSymFunc(lib, "vkDestroyDebugUtilsMessengerEXT");
853     out->vkSubmitDebugUtilsMessageEXT =
854         (PFN_vkSubmitDebugUtilsMessageEXT)dlSymFunc(lib, "vkSubmitDebugUtilsMessageEXT");
855 #endif
856 #ifdef VK_FUCHSIA_imagepipe_surface
857     out->vkCreateImagePipeSurfaceFUCHSIA =
858         (PFN_vkCreateImagePipeSurfaceFUCHSIA)dlSymFunc(lib, "vkCreateImagePipeSurfaceFUCHSIA");
859 #endif
860 #ifdef VK_EXT_metal_surface
861     out->vkCreateMetalSurfaceEXT =
862         (PFN_vkCreateMetalSurfaceEXT)dlSymFunc(lib, "vkCreateMetalSurfaceEXT");
863 #endif
864 #ifdef VK_EXT_headless_surface
865     out->vkCreateHeadlessSurfaceEXT =
866         (PFN_vkCreateHeadlessSurfaceEXT)dlSymFunc(lib, "vkCreateHeadlessSurfaceEXT");
867 #endif
868 #ifdef VK_EXT_directfb_surface
869     out->vkCreateDirectFBSurfaceEXT =
870         (PFN_vkCreateDirectFBSurfaceEXT)dlSymFunc(lib, "vkCreateDirectFBSurfaceEXT");
871 #endif
872 #ifdef VK_QNX_screen_surface
873     out->vkCreateScreenSurfaceQNX =
874         (PFN_vkCreateScreenSurfaceQNX)dlSymFunc(lib, "vkCreateScreenSurfaceQNX");
875 #endif
876 #ifdef VK_VERSION_1_0
877     out->vkGetDeviceQueue = (PFN_vkGetDeviceQueue)dlSymFunc(lib, "vkGetDeviceQueue");
878     out->vkQueueSubmit = (PFN_vkQueueSubmit)dlSymFunc(lib, "vkQueueSubmit");
879     out->vkQueueWaitIdle = (PFN_vkQueueWaitIdle)dlSymFunc(lib, "vkQueueWaitIdle");
880     out->vkDeviceWaitIdle = (PFN_vkDeviceWaitIdle)dlSymFunc(lib, "vkDeviceWaitIdle");
881     out->vkAllocateMemory = (PFN_vkAllocateMemory)dlSymFunc(lib, "vkAllocateMemory");
882     out->vkFreeMemory = (PFN_vkFreeMemory)dlSymFunc(lib, "vkFreeMemory");
883     out->vkMapMemory = (PFN_vkMapMemory)dlSymFunc(lib, "vkMapMemory");
884     out->vkUnmapMemory = (PFN_vkUnmapMemory)dlSymFunc(lib, "vkUnmapMemory");
885     out->vkFlushMappedMemoryRanges =
886         (PFN_vkFlushMappedMemoryRanges)dlSymFunc(lib, "vkFlushMappedMemoryRanges");
887     out->vkInvalidateMappedMemoryRanges =
888         (PFN_vkInvalidateMappedMemoryRanges)dlSymFunc(lib, "vkInvalidateMappedMemoryRanges");
889     out->vkGetDeviceMemoryCommitment =
890         (PFN_vkGetDeviceMemoryCommitment)dlSymFunc(lib, "vkGetDeviceMemoryCommitment");
891     out->vkBindBufferMemory = (PFN_vkBindBufferMemory)dlSymFunc(lib, "vkBindBufferMemory");
892     out->vkBindImageMemory = (PFN_vkBindImageMemory)dlSymFunc(lib, "vkBindImageMemory");
893     out->vkGetBufferMemoryRequirements =
894         (PFN_vkGetBufferMemoryRequirements)dlSymFunc(lib, "vkGetBufferMemoryRequirements");
895     out->vkGetImageMemoryRequirements =
896         (PFN_vkGetImageMemoryRequirements)dlSymFunc(lib, "vkGetImageMemoryRequirements");
897     out->vkGetImageSparseMemoryRequirements = (PFN_vkGetImageSparseMemoryRequirements)dlSymFunc(
898         lib, "vkGetImageSparseMemoryRequirements");
899     out->vkQueueBindSparse = (PFN_vkQueueBindSparse)dlSymFunc(lib, "vkQueueBindSparse");
900     out->vkCreateFence = (PFN_vkCreateFence)dlSymFunc(lib, "vkCreateFence");
901     out->vkDestroyFence = (PFN_vkDestroyFence)dlSymFunc(lib, "vkDestroyFence");
902     out->vkResetFences = (PFN_vkResetFences)dlSymFunc(lib, "vkResetFences");
903     out->vkGetFenceStatus = (PFN_vkGetFenceStatus)dlSymFunc(lib, "vkGetFenceStatus");
904     out->vkWaitForFences = (PFN_vkWaitForFences)dlSymFunc(lib, "vkWaitForFences");
905     out->vkCreateSemaphore = (PFN_vkCreateSemaphore)dlSymFunc(lib, "vkCreateSemaphore");
906     out->vkDestroySemaphore = (PFN_vkDestroySemaphore)dlSymFunc(lib, "vkDestroySemaphore");
907     out->vkCreateEvent = (PFN_vkCreateEvent)dlSymFunc(lib, "vkCreateEvent");
908     out->vkDestroyEvent = (PFN_vkDestroyEvent)dlSymFunc(lib, "vkDestroyEvent");
909     out->vkGetEventStatus = (PFN_vkGetEventStatus)dlSymFunc(lib, "vkGetEventStatus");
910     out->vkSetEvent = (PFN_vkSetEvent)dlSymFunc(lib, "vkSetEvent");
911     out->vkResetEvent = (PFN_vkResetEvent)dlSymFunc(lib, "vkResetEvent");
912     out->vkCreateQueryPool = (PFN_vkCreateQueryPool)dlSymFunc(lib, "vkCreateQueryPool");
913     out->vkDestroyQueryPool = (PFN_vkDestroyQueryPool)dlSymFunc(lib, "vkDestroyQueryPool");
914     out->vkGetQueryPoolResults = (PFN_vkGetQueryPoolResults)dlSymFunc(lib, "vkGetQueryPoolResults");
915     out->vkCreateBuffer = (PFN_vkCreateBuffer)dlSymFunc(lib, "vkCreateBuffer");
916     out->vkDestroyBuffer = (PFN_vkDestroyBuffer)dlSymFunc(lib, "vkDestroyBuffer");
917     out->vkCreateBufferView = (PFN_vkCreateBufferView)dlSymFunc(lib, "vkCreateBufferView");
918     out->vkDestroyBufferView = (PFN_vkDestroyBufferView)dlSymFunc(lib, "vkDestroyBufferView");
919     out->vkCreateImage = (PFN_vkCreateImage)dlSymFunc(lib, "vkCreateImage");
920     out->vkDestroyImage = (PFN_vkDestroyImage)dlSymFunc(lib, "vkDestroyImage");
921     out->vkGetImageSubresourceLayout =
922         (PFN_vkGetImageSubresourceLayout)dlSymFunc(lib, "vkGetImageSubresourceLayout");
923     out->vkCreateImageView = (PFN_vkCreateImageView)dlSymFunc(lib, "vkCreateImageView");
924     out->vkDestroyImageView = (PFN_vkDestroyImageView)dlSymFunc(lib, "vkDestroyImageView");
925     out->vkCreateShaderModule = (PFN_vkCreateShaderModule)dlSymFunc(lib, "vkCreateShaderModule");
926     out->vkDestroyShaderModule = (PFN_vkDestroyShaderModule)dlSymFunc(lib, "vkDestroyShaderModule");
927     out->vkCreatePipelineCache = (PFN_vkCreatePipelineCache)dlSymFunc(lib, "vkCreatePipelineCache");
928     out->vkDestroyPipelineCache =
929         (PFN_vkDestroyPipelineCache)dlSymFunc(lib, "vkDestroyPipelineCache");
930     out->vkGetPipelineCacheData =
931         (PFN_vkGetPipelineCacheData)dlSymFunc(lib, "vkGetPipelineCacheData");
932     out->vkMergePipelineCaches = (PFN_vkMergePipelineCaches)dlSymFunc(lib, "vkMergePipelineCaches");
933     out->vkCreateGraphicsPipelines =
934         (PFN_vkCreateGraphicsPipelines)dlSymFunc(lib, "vkCreateGraphicsPipelines");
935     out->vkCreateComputePipelines =
936         (PFN_vkCreateComputePipelines)dlSymFunc(lib, "vkCreateComputePipelines");
937     out->vkDestroyPipeline = (PFN_vkDestroyPipeline)dlSymFunc(lib, "vkDestroyPipeline");
938     out->vkCreatePipelineLayout =
939         (PFN_vkCreatePipelineLayout)dlSymFunc(lib, "vkCreatePipelineLayout");
940     out->vkDestroyPipelineLayout =
941         (PFN_vkDestroyPipelineLayout)dlSymFunc(lib, "vkDestroyPipelineLayout");
942     out->vkCreateSampler = (PFN_vkCreateSampler)dlSymFunc(lib, "vkCreateSampler");
943     out->vkDestroySampler = (PFN_vkDestroySampler)dlSymFunc(lib, "vkDestroySampler");
944     out->vkCreateDescriptorSetLayout =
945         (PFN_vkCreateDescriptorSetLayout)dlSymFunc(lib, "vkCreateDescriptorSetLayout");
946     out->vkDestroyDescriptorSetLayout =
947         (PFN_vkDestroyDescriptorSetLayout)dlSymFunc(lib, "vkDestroyDescriptorSetLayout");
948     out->vkCreateDescriptorPool =
949         (PFN_vkCreateDescriptorPool)dlSymFunc(lib, "vkCreateDescriptorPool");
950     out->vkDestroyDescriptorPool =
951         (PFN_vkDestroyDescriptorPool)dlSymFunc(lib, "vkDestroyDescriptorPool");
952     out->vkResetDescriptorPool = (PFN_vkResetDescriptorPool)dlSymFunc(lib, "vkResetDescriptorPool");
953     out->vkAllocateDescriptorSets =
954         (PFN_vkAllocateDescriptorSets)dlSymFunc(lib, "vkAllocateDescriptorSets");
955     out->vkFreeDescriptorSets = (PFN_vkFreeDescriptorSets)dlSymFunc(lib, "vkFreeDescriptorSets");
956     out->vkUpdateDescriptorSets =
957         (PFN_vkUpdateDescriptorSets)dlSymFunc(lib, "vkUpdateDescriptorSets");
958     out->vkCreateFramebuffer = (PFN_vkCreateFramebuffer)dlSymFunc(lib, "vkCreateFramebuffer");
959     out->vkDestroyFramebuffer = (PFN_vkDestroyFramebuffer)dlSymFunc(lib, "vkDestroyFramebuffer");
960     out->vkCreateRenderPass = (PFN_vkCreateRenderPass)dlSymFunc(lib, "vkCreateRenderPass");
961     out->vkDestroyRenderPass = (PFN_vkDestroyRenderPass)dlSymFunc(lib, "vkDestroyRenderPass");
962     out->vkGetRenderAreaGranularity =
963         (PFN_vkGetRenderAreaGranularity)dlSymFunc(lib, "vkGetRenderAreaGranularity");
964     out->vkCreateCommandPool = (PFN_vkCreateCommandPool)dlSymFunc(lib, "vkCreateCommandPool");
965     out->vkDestroyCommandPool = (PFN_vkDestroyCommandPool)dlSymFunc(lib, "vkDestroyCommandPool");
966     out->vkResetCommandPool = (PFN_vkResetCommandPool)dlSymFunc(lib, "vkResetCommandPool");
967     out->vkAllocateCommandBuffers =
968         (PFN_vkAllocateCommandBuffers)dlSymFunc(lib, "vkAllocateCommandBuffers");
969     out->vkFreeCommandBuffers = (PFN_vkFreeCommandBuffers)dlSymFunc(lib, "vkFreeCommandBuffers");
970     out->vkBeginCommandBuffer = (PFN_vkBeginCommandBuffer)dlSymFunc(lib, "vkBeginCommandBuffer");
971     out->vkEndCommandBuffer = (PFN_vkEndCommandBuffer)dlSymFunc(lib, "vkEndCommandBuffer");
972     out->vkResetCommandBuffer = (PFN_vkResetCommandBuffer)dlSymFunc(lib, "vkResetCommandBuffer");
973     out->vkCmdBindPipeline = (PFN_vkCmdBindPipeline)dlSymFunc(lib, "vkCmdBindPipeline");
974     out->vkCmdSetViewport = (PFN_vkCmdSetViewport)dlSymFunc(lib, "vkCmdSetViewport");
975     out->vkCmdSetScissor = (PFN_vkCmdSetScissor)dlSymFunc(lib, "vkCmdSetScissor");
976     out->vkCmdSetLineWidth = (PFN_vkCmdSetLineWidth)dlSymFunc(lib, "vkCmdSetLineWidth");
977     out->vkCmdSetDepthBias = (PFN_vkCmdSetDepthBias)dlSymFunc(lib, "vkCmdSetDepthBias");
978     out->vkCmdSetBlendConstants =
979         (PFN_vkCmdSetBlendConstants)dlSymFunc(lib, "vkCmdSetBlendConstants");
980     out->vkCmdSetDepthBounds = (PFN_vkCmdSetDepthBounds)dlSymFunc(lib, "vkCmdSetDepthBounds");
981     out->vkCmdSetStencilCompareMask =
982         (PFN_vkCmdSetStencilCompareMask)dlSymFunc(lib, "vkCmdSetStencilCompareMask");
983     out->vkCmdSetStencilWriteMask =
984         (PFN_vkCmdSetStencilWriteMask)dlSymFunc(lib, "vkCmdSetStencilWriteMask");
985     out->vkCmdSetStencilReference =
986         (PFN_vkCmdSetStencilReference)dlSymFunc(lib, "vkCmdSetStencilReference");
987     out->vkCmdBindDescriptorSets =
988         (PFN_vkCmdBindDescriptorSets)dlSymFunc(lib, "vkCmdBindDescriptorSets");
989     out->vkCmdBindIndexBuffer = (PFN_vkCmdBindIndexBuffer)dlSymFunc(lib, "vkCmdBindIndexBuffer");
990     out->vkCmdBindVertexBuffers =
991         (PFN_vkCmdBindVertexBuffers)dlSymFunc(lib, "vkCmdBindVertexBuffers");
992     out->vkCmdDraw = (PFN_vkCmdDraw)dlSymFunc(lib, "vkCmdDraw");
993     out->vkCmdDrawIndexed = (PFN_vkCmdDrawIndexed)dlSymFunc(lib, "vkCmdDrawIndexed");
994     out->vkCmdDrawIndirect = (PFN_vkCmdDrawIndirect)dlSymFunc(lib, "vkCmdDrawIndirect");
995     out->vkCmdDrawIndexedIndirect =
996         (PFN_vkCmdDrawIndexedIndirect)dlSymFunc(lib, "vkCmdDrawIndexedIndirect");
997     out->vkCmdDispatch = (PFN_vkCmdDispatch)dlSymFunc(lib, "vkCmdDispatch");
998     out->vkCmdDispatchIndirect = (PFN_vkCmdDispatchIndirect)dlSymFunc(lib, "vkCmdDispatchIndirect");
999     out->vkCmdCopyBuffer = (PFN_vkCmdCopyBuffer)dlSymFunc(lib, "vkCmdCopyBuffer");
1000     out->vkCmdCopyImage = (PFN_vkCmdCopyImage)dlSymFunc(lib, "vkCmdCopyImage");
1001     out->vkCmdBlitImage = (PFN_vkCmdBlitImage)dlSymFunc(lib, "vkCmdBlitImage");
1002     out->vkCmdCopyBufferToImage =
1003         (PFN_vkCmdCopyBufferToImage)dlSymFunc(lib, "vkCmdCopyBufferToImage");
1004     out->vkCmdCopyImageToBuffer =
1005         (PFN_vkCmdCopyImageToBuffer)dlSymFunc(lib, "vkCmdCopyImageToBuffer");
1006     out->vkCmdUpdateBuffer = (PFN_vkCmdUpdateBuffer)dlSymFunc(lib, "vkCmdUpdateBuffer");
1007     out->vkCmdFillBuffer = (PFN_vkCmdFillBuffer)dlSymFunc(lib, "vkCmdFillBuffer");
1008     out->vkCmdClearColorImage = (PFN_vkCmdClearColorImage)dlSymFunc(lib, "vkCmdClearColorImage");
1009     out->vkCmdClearDepthStencilImage =
1010         (PFN_vkCmdClearDepthStencilImage)dlSymFunc(lib, "vkCmdClearDepthStencilImage");
1011     out->vkCmdClearAttachments = (PFN_vkCmdClearAttachments)dlSymFunc(lib, "vkCmdClearAttachments");
1012     out->vkCmdResolveImage = (PFN_vkCmdResolveImage)dlSymFunc(lib, "vkCmdResolveImage");
1013     out->vkCmdSetEvent = (PFN_vkCmdSetEvent)dlSymFunc(lib, "vkCmdSetEvent");
1014     out->vkCmdResetEvent = (PFN_vkCmdResetEvent)dlSymFunc(lib, "vkCmdResetEvent");
1015     out->vkCmdWaitEvents = (PFN_vkCmdWaitEvents)dlSymFunc(lib, "vkCmdWaitEvents");
1016     out->vkCmdPipelineBarrier = (PFN_vkCmdPipelineBarrier)dlSymFunc(lib, "vkCmdPipelineBarrier");
1017     out->vkCmdBeginQuery = (PFN_vkCmdBeginQuery)dlSymFunc(lib, "vkCmdBeginQuery");
1018     out->vkCmdEndQuery = (PFN_vkCmdEndQuery)dlSymFunc(lib, "vkCmdEndQuery");
1019     out->vkCmdResetQueryPool = (PFN_vkCmdResetQueryPool)dlSymFunc(lib, "vkCmdResetQueryPool");
1020     out->vkCmdWriteTimestamp = (PFN_vkCmdWriteTimestamp)dlSymFunc(lib, "vkCmdWriteTimestamp");
1021     out->vkCmdCopyQueryPoolResults =
1022         (PFN_vkCmdCopyQueryPoolResults)dlSymFunc(lib, "vkCmdCopyQueryPoolResults");
1023     out->vkCmdPushConstants = (PFN_vkCmdPushConstants)dlSymFunc(lib, "vkCmdPushConstants");
1024     out->vkCmdBeginRenderPass = (PFN_vkCmdBeginRenderPass)dlSymFunc(lib, "vkCmdBeginRenderPass");
1025     out->vkCmdNextSubpass = (PFN_vkCmdNextSubpass)dlSymFunc(lib, "vkCmdNextSubpass");
1026     out->vkCmdEndRenderPass = (PFN_vkCmdEndRenderPass)dlSymFunc(lib, "vkCmdEndRenderPass");
1027     out->vkCmdExecuteCommands = (PFN_vkCmdExecuteCommands)dlSymFunc(lib, "vkCmdExecuteCommands");
1028 #endif
1029 #ifdef VK_VERSION_1_1
1030     out->vkBindBufferMemory2 = (PFN_vkBindBufferMemory2)dlSymFunc(lib, "vkBindBufferMemory2");
1031     out->vkBindImageMemory2 = (PFN_vkBindImageMemory2)dlSymFunc(lib, "vkBindImageMemory2");
1032     out->vkGetDeviceGroupPeerMemoryFeatures = (PFN_vkGetDeviceGroupPeerMemoryFeatures)dlSymFunc(
1033         lib, "vkGetDeviceGroupPeerMemoryFeatures");
1034     out->vkCmdSetDeviceMask = (PFN_vkCmdSetDeviceMask)dlSymFunc(lib, "vkCmdSetDeviceMask");
1035     out->vkCmdDispatchBase = (PFN_vkCmdDispatchBase)dlSymFunc(lib, "vkCmdDispatchBase");
1036     out->vkGetImageMemoryRequirements2 =
1037         (PFN_vkGetImageMemoryRequirements2)dlSymFunc(lib, "vkGetImageMemoryRequirements2");
1038     out->vkGetBufferMemoryRequirements2 =
1039         (PFN_vkGetBufferMemoryRequirements2)dlSymFunc(lib, "vkGetBufferMemoryRequirements2");
1040     out->vkGetImageSparseMemoryRequirements2 = (PFN_vkGetImageSparseMemoryRequirements2)dlSymFunc(
1041         lib, "vkGetImageSparseMemoryRequirements2");
1042     out->vkTrimCommandPool = (PFN_vkTrimCommandPool)dlSymFunc(lib, "vkTrimCommandPool");
1043     out->vkGetDeviceQueue2 = (PFN_vkGetDeviceQueue2)dlSymFunc(lib, "vkGetDeviceQueue2");
1044     out->vkCreateSamplerYcbcrConversion =
1045         (PFN_vkCreateSamplerYcbcrConversion)dlSymFunc(lib, "vkCreateSamplerYcbcrConversion");
1046     out->vkDestroySamplerYcbcrConversion =
1047         (PFN_vkDestroySamplerYcbcrConversion)dlSymFunc(lib, "vkDestroySamplerYcbcrConversion");
1048     out->vkCreateDescriptorUpdateTemplate =
1049         (PFN_vkCreateDescriptorUpdateTemplate)dlSymFunc(lib, "vkCreateDescriptorUpdateTemplate");
1050     out->vkDestroyDescriptorUpdateTemplate =
1051         (PFN_vkDestroyDescriptorUpdateTemplate)dlSymFunc(lib, "vkDestroyDescriptorUpdateTemplate");
1052     out->vkUpdateDescriptorSetWithTemplate =
1053         (PFN_vkUpdateDescriptorSetWithTemplate)dlSymFunc(lib, "vkUpdateDescriptorSetWithTemplate");
1054     out->vkGetDescriptorSetLayoutSupport =
1055         (PFN_vkGetDescriptorSetLayoutSupport)dlSymFunc(lib, "vkGetDescriptorSetLayoutSupport");
1056 #endif
1057 #ifdef VK_VERSION_1_2
1058     out->vkCmdDrawIndirectCount =
1059         (PFN_vkCmdDrawIndirectCount)dlSymFunc(lib, "vkCmdDrawIndirectCount");
1060     out->vkCmdDrawIndexedIndirectCount =
1061         (PFN_vkCmdDrawIndexedIndirectCount)dlSymFunc(lib, "vkCmdDrawIndexedIndirectCount");
1062     out->vkCreateRenderPass2 = (PFN_vkCreateRenderPass2)dlSymFunc(lib, "vkCreateRenderPass2");
1063     out->vkCmdBeginRenderPass2 = (PFN_vkCmdBeginRenderPass2)dlSymFunc(lib, "vkCmdBeginRenderPass2");
1064     out->vkCmdNextSubpass2 = (PFN_vkCmdNextSubpass2)dlSymFunc(lib, "vkCmdNextSubpass2");
1065     out->vkCmdEndRenderPass2 = (PFN_vkCmdEndRenderPass2)dlSymFunc(lib, "vkCmdEndRenderPass2");
1066     out->vkResetQueryPool = (PFN_vkResetQueryPool)dlSymFunc(lib, "vkResetQueryPool");
1067     out->vkGetSemaphoreCounterValue =
1068         (PFN_vkGetSemaphoreCounterValue)dlSymFunc(lib, "vkGetSemaphoreCounterValue");
1069     out->vkWaitSemaphores = (PFN_vkWaitSemaphores)dlSymFunc(lib, "vkWaitSemaphores");
1070     out->vkSignalSemaphore = (PFN_vkSignalSemaphore)dlSymFunc(lib, "vkSignalSemaphore");
1071     out->vkGetBufferDeviceAddress =
1072         (PFN_vkGetBufferDeviceAddress)dlSymFunc(lib, "vkGetBufferDeviceAddress");
1073     out->vkGetBufferOpaqueCaptureAddress =
1074         (PFN_vkGetBufferOpaqueCaptureAddress)dlSymFunc(lib, "vkGetBufferOpaqueCaptureAddress");
1075     out->vkGetDeviceMemoryOpaqueCaptureAddress =
1076         (PFN_vkGetDeviceMemoryOpaqueCaptureAddress)dlSymFunc(
1077             lib, "vkGetDeviceMemoryOpaqueCaptureAddress");
1078 #endif
1079 #ifdef VK_VERSION_1_3
1080     out->vkGetPhysicalDeviceToolProperties =
1081         (PFN_vkGetPhysicalDeviceToolProperties)dlSymFunc(lib, "vkGetPhysicalDeviceToolProperties");
1082     out->vkCreatePrivateDataSlot =
1083         (PFN_vkCreatePrivateDataSlot)dlSymFunc(lib, "vkCreatePrivateDataSlot");
1084     out->vkDestroyPrivateDataSlot =
1085         (PFN_vkDestroyPrivateDataSlot)dlSymFunc(lib, "vkDestroyPrivateDataSlot");
1086     out->vkSetPrivateData = (PFN_vkSetPrivateData)dlSymFunc(lib, "vkSetPrivateData");
1087     out->vkGetPrivateData = (PFN_vkGetPrivateData)dlSymFunc(lib, "vkGetPrivateData");
1088     out->vkCmdSetEvent2 = (PFN_vkCmdSetEvent2)dlSymFunc(lib, "vkCmdSetEvent2");
1089     out->vkCmdResetEvent2 = (PFN_vkCmdResetEvent2)dlSymFunc(lib, "vkCmdResetEvent2");
1090     out->vkCmdWaitEvents2 = (PFN_vkCmdWaitEvents2)dlSymFunc(lib, "vkCmdWaitEvents2");
1091     out->vkCmdPipelineBarrier2 = (PFN_vkCmdPipelineBarrier2)dlSymFunc(lib, "vkCmdPipelineBarrier2");
1092     out->vkCmdWriteTimestamp2 = (PFN_vkCmdWriteTimestamp2)dlSymFunc(lib, "vkCmdWriteTimestamp2");
1093     out->vkQueueSubmit2 = (PFN_vkQueueSubmit2)dlSymFunc(lib, "vkQueueSubmit2");
1094     out->vkCmdCopyBuffer2 = (PFN_vkCmdCopyBuffer2)dlSymFunc(lib, "vkCmdCopyBuffer2");
1095     out->vkCmdCopyImage2 = (PFN_vkCmdCopyImage2)dlSymFunc(lib, "vkCmdCopyImage2");
1096     out->vkCmdCopyBufferToImage2 =
1097         (PFN_vkCmdCopyBufferToImage2)dlSymFunc(lib, "vkCmdCopyBufferToImage2");
1098     out->vkCmdCopyImageToBuffer2 =
1099         (PFN_vkCmdCopyImageToBuffer2)dlSymFunc(lib, "vkCmdCopyImageToBuffer2");
1100     out->vkCmdBlitImage2 = (PFN_vkCmdBlitImage2)dlSymFunc(lib, "vkCmdBlitImage2");
1101     out->vkCmdResolveImage2 = (PFN_vkCmdResolveImage2)dlSymFunc(lib, "vkCmdResolveImage2");
1102     out->vkCmdBeginRendering = (PFN_vkCmdBeginRendering)dlSymFunc(lib, "vkCmdBeginRendering");
1103     out->vkCmdEndRendering = (PFN_vkCmdEndRendering)dlSymFunc(lib, "vkCmdEndRendering");
1104     out->vkCmdSetCullMode = (PFN_vkCmdSetCullMode)dlSymFunc(lib, "vkCmdSetCullMode");
1105     out->vkCmdSetFrontFace = (PFN_vkCmdSetFrontFace)dlSymFunc(lib, "vkCmdSetFrontFace");
1106     out->vkCmdSetPrimitiveTopology =
1107         (PFN_vkCmdSetPrimitiveTopology)dlSymFunc(lib, "vkCmdSetPrimitiveTopology");
1108     out->vkCmdSetViewportWithCount =
1109         (PFN_vkCmdSetViewportWithCount)dlSymFunc(lib, "vkCmdSetViewportWithCount");
1110     out->vkCmdSetScissorWithCount =
1111         (PFN_vkCmdSetScissorWithCount)dlSymFunc(lib, "vkCmdSetScissorWithCount");
1112     out->vkCmdBindVertexBuffers2 =
1113         (PFN_vkCmdBindVertexBuffers2)dlSymFunc(lib, "vkCmdBindVertexBuffers2");
1114     out->vkCmdSetDepthTestEnable =
1115         (PFN_vkCmdSetDepthTestEnable)dlSymFunc(lib, "vkCmdSetDepthTestEnable");
1116     out->vkCmdSetDepthWriteEnable =
1117         (PFN_vkCmdSetDepthWriteEnable)dlSymFunc(lib, "vkCmdSetDepthWriteEnable");
1118     out->vkCmdSetDepthCompareOp =
1119         (PFN_vkCmdSetDepthCompareOp)dlSymFunc(lib, "vkCmdSetDepthCompareOp");
1120     out->vkCmdSetDepthBoundsTestEnable =
1121         (PFN_vkCmdSetDepthBoundsTestEnable)dlSymFunc(lib, "vkCmdSetDepthBoundsTestEnable");
1122     out->vkCmdSetStencilTestEnable =
1123         (PFN_vkCmdSetStencilTestEnable)dlSymFunc(lib, "vkCmdSetStencilTestEnable");
1124     out->vkCmdSetStencilOp = (PFN_vkCmdSetStencilOp)dlSymFunc(lib, "vkCmdSetStencilOp");
1125     out->vkCmdSetRasterizerDiscardEnable =
1126         (PFN_vkCmdSetRasterizerDiscardEnable)dlSymFunc(lib, "vkCmdSetRasterizerDiscardEnable");
1127     out->vkCmdSetDepthBiasEnable =
1128         (PFN_vkCmdSetDepthBiasEnable)dlSymFunc(lib, "vkCmdSetDepthBiasEnable");
1129     out->vkCmdSetPrimitiveRestartEnable =
1130         (PFN_vkCmdSetPrimitiveRestartEnable)dlSymFunc(lib, "vkCmdSetPrimitiveRestartEnable");
1131     out->vkGetDeviceBufferMemoryRequirements = (PFN_vkGetDeviceBufferMemoryRequirements)dlSymFunc(
1132         lib, "vkGetDeviceBufferMemoryRequirements");
1133     out->vkGetDeviceImageMemoryRequirements = (PFN_vkGetDeviceImageMemoryRequirements)dlSymFunc(
1134         lib, "vkGetDeviceImageMemoryRequirements");
1135     out->vkGetDeviceImageSparseMemoryRequirements =
1136         (PFN_vkGetDeviceImageSparseMemoryRequirements)dlSymFunc(
1137             lib, "vkGetDeviceImageSparseMemoryRequirements");
1138 #endif
1139 #ifdef VK_KHR_surface
1140     out->vkGetPhysicalDeviceSurfaceSupportKHR = (PFN_vkGetPhysicalDeviceSurfaceSupportKHR)dlSymFunc(
1141         lib, "vkGetPhysicalDeviceSurfaceSupportKHR");
1142     out->vkGetPhysicalDeviceSurfaceCapabilitiesKHR =
1143         (PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)dlSymFunc(
1144             lib, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR");
1145     out->vkGetPhysicalDeviceSurfaceFormatsKHR = (PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)dlSymFunc(
1146         lib, "vkGetPhysicalDeviceSurfaceFormatsKHR");
1147     out->vkGetPhysicalDeviceSurfacePresentModesKHR =
1148         (PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)dlSymFunc(
1149             lib, "vkGetPhysicalDeviceSurfacePresentModesKHR");
1150 #endif
1151 #ifdef VK_KHR_swapchain
1152     out->vkGetDeviceGroupPresentCapabilitiesKHR =
1153         (PFN_vkGetDeviceGroupPresentCapabilitiesKHR)dlSymFunc(
1154             lib, "vkGetDeviceGroupPresentCapabilitiesKHR");
1155     out->vkGetDeviceGroupSurfacePresentModesKHR =
1156         (PFN_vkGetDeviceGroupSurfacePresentModesKHR)dlSymFunc(
1157             lib, "vkGetDeviceGroupSurfacePresentModesKHR");
1158     out->vkGetPhysicalDevicePresentRectanglesKHR =
1159         (PFN_vkGetPhysicalDevicePresentRectanglesKHR)dlSymFunc(
1160             lib, "vkGetPhysicalDevicePresentRectanglesKHR");
1161     out->vkAcquireNextImage2KHR =
1162         (PFN_vkAcquireNextImage2KHR)dlSymFunc(lib, "vkAcquireNextImage2KHR");
1163 #endif
1164 #ifdef VK_KHR_display
1165     out->vkGetPhysicalDeviceDisplayPropertiesKHR =
1166         (PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)dlSymFunc(
1167             lib, "vkGetPhysicalDeviceDisplayPropertiesKHR");
1168     out->vkGetPhysicalDeviceDisplayPlanePropertiesKHR =
1169         (PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)dlSymFunc(
1170             lib, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR");
1171     out->vkGetDisplayPlaneSupportedDisplaysKHR =
1172         (PFN_vkGetDisplayPlaneSupportedDisplaysKHR)dlSymFunc(
1173             lib, "vkGetDisplayPlaneSupportedDisplaysKHR");
1174     out->vkGetDisplayModePropertiesKHR =
1175         (PFN_vkGetDisplayModePropertiesKHR)dlSymFunc(lib, "vkGetDisplayModePropertiesKHR");
1176     out->vkCreateDisplayModeKHR =
1177         (PFN_vkCreateDisplayModeKHR)dlSymFunc(lib, "vkCreateDisplayModeKHR");
1178     out->vkGetDisplayPlaneCapabilitiesKHR =
1179         (PFN_vkGetDisplayPlaneCapabilitiesKHR)dlSymFunc(lib, "vkGetDisplayPlaneCapabilitiesKHR");
1180 #endif
1181 #ifdef VK_KHR_display_swapchain
1182     out->vkCreateSharedSwapchainsKHR =
1183         (PFN_vkCreateSharedSwapchainsKHR)dlSymFunc(lib, "vkCreateSharedSwapchainsKHR");
1184 #endif
1185 #ifdef VK_KHR_wayland_surface
1186     out->vkGetPhysicalDeviceWaylandPresentationSupportKHR =
1187         (PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR)dlSymFunc(
1188             lib, "vkGetPhysicalDeviceWaylandPresentationSupportKHR");
1189 #endif
1190 #ifdef VK_KHR_video_queue
1191     out->vkGetPhysicalDeviceVideoCapabilitiesKHR =
1192         (PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR)dlSymFunc(
1193             lib, "vkGetPhysicalDeviceVideoCapabilitiesKHR");
1194     out->vkGetPhysicalDeviceVideoFormatPropertiesKHR =
1195         (PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR)dlSymFunc(
1196             lib, "vkGetPhysicalDeviceVideoFormatPropertiesKHR");
1197     out->vkCreateVideoSessionKHR =
1198         (PFN_vkCreateVideoSessionKHR)dlSymFunc(lib, "vkCreateVideoSessionKHR");
1199     out->vkDestroyVideoSessionKHR =
1200         (PFN_vkDestroyVideoSessionKHR)dlSymFunc(lib, "vkDestroyVideoSessionKHR");
1201     out->vkGetVideoSessionMemoryRequirementsKHR =
1202         (PFN_vkGetVideoSessionMemoryRequirementsKHR)dlSymFunc(
1203             lib, "vkGetVideoSessionMemoryRequirementsKHR");
1204     out->vkBindVideoSessionMemoryKHR =
1205         (PFN_vkBindVideoSessionMemoryKHR)dlSymFunc(lib, "vkBindVideoSessionMemoryKHR");
1206     out->vkCreateVideoSessionParametersKHR =
1207         (PFN_vkCreateVideoSessionParametersKHR)dlSymFunc(lib, "vkCreateVideoSessionParametersKHR");
1208     out->vkUpdateVideoSessionParametersKHR =
1209         (PFN_vkUpdateVideoSessionParametersKHR)dlSymFunc(lib, "vkUpdateVideoSessionParametersKHR");
1210     out->vkDestroyVideoSessionParametersKHR = (PFN_vkDestroyVideoSessionParametersKHR)dlSymFunc(
1211         lib, "vkDestroyVideoSessionParametersKHR");
1212     out->vkCmdBeginVideoCodingKHR =
1213         (PFN_vkCmdBeginVideoCodingKHR)dlSymFunc(lib, "vkCmdBeginVideoCodingKHR");
1214     out->vkCmdEndVideoCodingKHR =
1215         (PFN_vkCmdEndVideoCodingKHR)dlSymFunc(lib, "vkCmdEndVideoCodingKHR");
1216     out->vkCmdControlVideoCodingKHR =
1217         (PFN_vkCmdControlVideoCodingKHR)dlSymFunc(lib, "vkCmdControlVideoCodingKHR");
1218 #endif
1219 #ifdef VK_KHR_video_decode_queue
1220     out->vkCmdDecodeVideoKHR = (PFN_vkCmdDecodeVideoKHR)dlSymFunc(lib, "vkCmdDecodeVideoKHR");
1221 #endif
1222 #ifdef VK_KHR_dynamic_rendering
1223     out->vkCmdBeginRenderingKHR =
1224         (PFN_vkCmdBeginRenderingKHR)dlSymFunc(lib, "vkCmdBeginRenderingKHR");
1225     out->vkCmdEndRenderingKHR = (PFN_vkCmdEndRenderingKHR)dlSymFunc(lib, "vkCmdEndRenderingKHR");
1226 #endif
1227 #ifdef VK_KHR_get_physical_device_properties2
1228     out->vkGetPhysicalDeviceFeatures2KHR =
1229         (PFN_vkGetPhysicalDeviceFeatures2KHR)dlSymFunc(lib, "vkGetPhysicalDeviceFeatures2KHR");
1230     out->vkGetPhysicalDeviceProperties2KHR =
1231         (PFN_vkGetPhysicalDeviceProperties2KHR)dlSymFunc(lib, "vkGetPhysicalDeviceProperties2KHR");
1232     out->vkGetPhysicalDeviceFormatProperties2KHR =
1233         (PFN_vkGetPhysicalDeviceFormatProperties2KHR)dlSymFunc(
1234             lib, "vkGetPhysicalDeviceFormatProperties2KHR");
1235     out->vkGetPhysicalDeviceImageFormatProperties2KHR =
1236         (PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)dlSymFunc(
1237             lib, "vkGetPhysicalDeviceImageFormatProperties2KHR");
1238     out->vkGetPhysicalDeviceQueueFamilyProperties2KHR =
1239         (PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)dlSymFunc(
1240             lib, "vkGetPhysicalDeviceQueueFamilyProperties2KHR");
1241     out->vkGetPhysicalDeviceMemoryProperties2KHR =
1242         (PFN_vkGetPhysicalDeviceMemoryProperties2KHR)dlSymFunc(
1243             lib, "vkGetPhysicalDeviceMemoryProperties2KHR");
1244     out->vkGetPhysicalDeviceSparseImageFormatProperties2KHR =
1245         (PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)dlSymFunc(
1246             lib, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR");
1247 #endif
1248 #ifdef VK_KHR_device_group
1249     out->vkGetDeviceGroupPeerMemoryFeaturesKHR =
1250         (PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR)dlSymFunc(
1251             lib, "vkGetDeviceGroupPeerMemoryFeaturesKHR");
1252     out->vkCmdSetDeviceMaskKHR = (PFN_vkCmdSetDeviceMaskKHR)dlSymFunc(lib, "vkCmdSetDeviceMaskKHR");
1253     out->vkCmdDispatchBaseKHR = (PFN_vkCmdDispatchBaseKHR)dlSymFunc(lib, "vkCmdDispatchBaseKHR");
1254 #endif
1255 #ifdef VK_KHR_maintenance1
1256     out->vkTrimCommandPoolKHR = (PFN_vkTrimCommandPoolKHR)dlSymFunc(lib, "vkTrimCommandPoolKHR");
1257 #endif
1258 #ifdef VK_KHR_external_memory_capabilities
1259     out->vkGetPhysicalDeviceExternalBufferPropertiesKHR =
1260         (PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)dlSymFunc(
1261             lib, "vkGetPhysicalDeviceExternalBufferPropertiesKHR");
1262 #endif
1263 #ifdef VK_KHR_external_memory_win32
1264     out->vkGetMemoryWin32HandleKHR =
1265         (PFN_vkGetMemoryWin32HandleKHR)dlSymFunc(lib, "vkGetMemoryWin32HandleKHR");
1266     out->vkGetMemoryWin32HandlePropertiesKHR = (PFN_vkGetMemoryWin32HandlePropertiesKHR)dlSymFunc(
1267         lib, "vkGetMemoryWin32HandlePropertiesKHR");
1268 #endif
1269 #ifdef VK_KHR_external_memory_fd
1270     out->vkGetMemoryFdKHR = (PFN_vkGetMemoryFdKHR)dlSymFunc(lib, "vkGetMemoryFdKHR");
1271     out->vkGetMemoryFdPropertiesKHR =
1272         (PFN_vkGetMemoryFdPropertiesKHR)dlSymFunc(lib, "vkGetMemoryFdPropertiesKHR");
1273 #endif
1274 #ifdef VK_KHR_external_semaphore_capabilities
1275     out->vkGetPhysicalDeviceExternalSemaphorePropertiesKHR =
1276         (PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)dlSymFunc(
1277             lib, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR");
1278 #endif
1279 #ifdef VK_KHR_external_semaphore_win32
1280     out->vkImportSemaphoreWin32HandleKHR =
1281         (PFN_vkImportSemaphoreWin32HandleKHR)dlSymFunc(lib, "vkImportSemaphoreWin32HandleKHR");
1282     out->vkGetSemaphoreWin32HandleKHR =
1283         (PFN_vkGetSemaphoreWin32HandleKHR)dlSymFunc(lib, "vkGetSemaphoreWin32HandleKHR");
1284 #endif
1285 #ifdef VK_KHR_external_semaphore_fd
1286     out->vkImportSemaphoreFdKHR =
1287         (PFN_vkImportSemaphoreFdKHR)dlSymFunc(lib, "vkImportSemaphoreFdKHR");
1288     out->vkGetSemaphoreFdKHR = (PFN_vkGetSemaphoreFdKHR)dlSymFunc(lib, "vkGetSemaphoreFdKHR");
1289 #endif
1290 #ifdef VK_KHR_push_descriptor
1291     out->vkCmdPushDescriptorSetKHR =
1292         (PFN_vkCmdPushDescriptorSetKHR)dlSymFunc(lib, "vkCmdPushDescriptorSetKHR");
1293     out->vkCmdPushDescriptorSetWithTemplateKHR =
1294         (PFN_vkCmdPushDescriptorSetWithTemplateKHR)dlSymFunc(
1295             lib, "vkCmdPushDescriptorSetWithTemplateKHR");
1296 #endif
1297 #ifdef VK_KHR_descriptor_update_template
1298     out->vkCreateDescriptorUpdateTemplateKHR = (PFN_vkCreateDescriptorUpdateTemplateKHR)dlSymFunc(
1299         lib, "vkCreateDescriptorUpdateTemplateKHR");
1300     out->vkDestroyDescriptorUpdateTemplateKHR = (PFN_vkDestroyDescriptorUpdateTemplateKHR)dlSymFunc(
1301         lib, "vkDestroyDescriptorUpdateTemplateKHR");
1302     out->vkUpdateDescriptorSetWithTemplateKHR = (PFN_vkUpdateDescriptorSetWithTemplateKHR)dlSymFunc(
1303         lib, "vkUpdateDescriptorSetWithTemplateKHR");
1304 #endif
1305 #ifdef VK_KHR_create_renderpass2
1306     out->vkCreateRenderPass2KHR =
1307         (PFN_vkCreateRenderPass2KHR)dlSymFunc(lib, "vkCreateRenderPass2KHR");
1308     out->vkCmdBeginRenderPass2KHR =
1309         (PFN_vkCmdBeginRenderPass2KHR)dlSymFunc(lib, "vkCmdBeginRenderPass2KHR");
1310     out->vkCmdNextSubpass2KHR = (PFN_vkCmdNextSubpass2KHR)dlSymFunc(lib, "vkCmdNextSubpass2KHR");
1311     out->vkCmdEndRenderPass2KHR =
1312         (PFN_vkCmdEndRenderPass2KHR)dlSymFunc(lib, "vkCmdEndRenderPass2KHR");
1313 #endif
1314 #ifdef VK_KHR_shared_presentable_image
1315     out->vkGetSwapchainStatusKHR =
1316         (PFN_vkGetSwapchainStatusKHR)dlSymFunc(lib, "vkGetSwapchainStatusKHR");
1317 #endif
1318 #ifdef VK_KHR_external_fence_capabilities
1319     out->vkGetPhysicalDeviceExternalFencePropertiesKHR =
1320         (PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)dlSymFunc(
1321             lib, "vkGetPhysicalDeviceExternalFencePropertiesKHR");
1322 #endif
1323 #ifdef VK_KHR_external_fence_win32
1324     out->vkImportFenceWin32HandleKHR =
1325         (PFN_vkImportFenceWin32HandleKHR)dlSymFunc(lib, "vkImportFenceWin32HandleKHR");
1326     out->vkGetFenceWin32HandleKHR =
1327         (PFN_vkGetFenceWin32HandleKHR)dlSymFunc(lib, "vkGetFenceWin32HandleKHR");
1328 #endif
1329 #ifdef VK_KHR_external_fence_fd
1330     out->vkImportFenceFdKHR = (PFN_vkImportFenceFdKHR)dlSymFunc(lib, "vkImportFenceFdKHR");
1331     out->vkGetFenceFdKHR = (PFN_vkGetFenceFdKHR)dlSymFunc(lib, "vkGetFenceFdKHR");
1332 #endif
1333 #ifdef VK_KHR_performance_query
1334     out->vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR =
1335         (PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR)dlSymFunc(
1336             lib, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR");
1337     out->vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR =
1338         (PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR)dlSymFunc(
1339             lib, "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR");
1340     out->vkAcquireProfilingLockKHR =
1341         (PFN_vkAcquireProfilingLockKHR)dlSymFunc(lib, "vkAcquireProfilingLockKHR");
1342     out->vkReleaseProfilingLockKHR =
1343         (PFN_vkReleaseProfilingLockKHR)dlSymFunc(lib, "vkReleaseProfilingLockKHR");
1344 #endif
1345 #ifdef VK_KHR_get_surface_capabilities2
1346     out->vkGetPhysicalDeviceSurfaceCapabilities2KHR =
1347         (PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR)dlSymFunc(
1348             lib, "vkGetPhysicalDeviceSurfaceCapabilities2KHR");
1349     out->vkGetPhysicalDeviceSurfaceFormats2KHR =
1350         (PFN_vkGetPhysicalDeviceSurfaceFormats2KHR)dlSymFunc(
1351             lib, "vkGetPhysicalDeviceSurfaceFormats2KHR");
1352 #endif
1353 #ifdef VK_KHR_get_display_properties2
1354     out->vkGetPhysicalDeviceDisplayProperties2KHR =
1355         (PFN_vkGetPhysicalDeviceDisplayProperties2KHR)dlSymFunc(
1356             lib, "vkGetPhysicalDeviceDisplayProperties2KHR");
1357     out->vkGetPhysicalDeviceDisplayPlaneProperties2KHR =
1358         (PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR)dlSymFunc(
1359             lib, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR");
1360     out->vkGetDisplayModeProperties2KHR =
1361         (PFN_vkGetDisplayModeProperties2KHR)dlSymFunc(lib, "vkGetDisplayModeProperties2KHR");
1362     out->vkGetDisplayPlaneCapabilities2KHR =
1363         (PFN_vkGetDisplayPlaneCapabilities2KHR)dlSymFunc(lib, "vkGetDisplayPlaneCapabilities2KHR");
1364 #endif
1365 #ifdef VK_KHR_get_memory_requirements2
1366     out->vkGetImageMemoryRequirements2KHR =
1367         (PFN_vkGetImageMemoryRequirements2KHR)dlSymFunc(lib, "vkGetImageMemoryRequirements2KHR");
1368     out->vkGetBufferMemoryRequirements2KHR =
1369         (PFN_vkGetBufferMemoryRequirements2KHR)dlSymFunc(lib, "vkGetBufferMemoryRequirements2KHR");
1370     out->vkGetImageSparseMemoryRequirements2KHR =
1371         (PFN_vkGetImageSparseMemoryRequirements2KHR)dlSymFunc(
1372             lib, "vkGetImageSparseMemoryRequirements2KHR");
1373 #endif
1374 #ifdef VK_KHR_sampler_ycbcr_conversion
1375     out->vkCreateSamplerYcbcrConversionKHR =
1376         (PFN_vkCreateSamplerYcbcrConversionKHR)dlSymFunc(lib, "vkCreateSamplerYcbcrConversionKHR");
1377     out->vkDestroySamplerYcbcrConversionKHR = (PFN_vkDestroySamplerYcbcrConversionKHR)dlSymFunc(
1378         lib, "vkDestroySamplerYcbcrConversionKHR");
1379 #endif
1380 #ifdef VK_KHR_bind_memory2
1381     out->vkBindBufferMemory2KHR =
1382         (PFN_vkBindBufferMemory2KHR)dlSymFunc(lib, "vkBindBufferMemory2KHR");
1383     out->vkBindImageMemory2KHR = (PFN_vkBindImageMemory2KHR)dlSymFunc(lib, "vkBindImageMemory2KHR");
1384 #endif
1385 #ifdef VK_KHR_maintenance3
1386     out->vkGetDescriptorSetLayoutSupportKHR = (PFN_vkGetDescriptorSetLayoutSupportKHR)dlSymFunc(
1387         lib, "vkGetDescriptorSetLayoutSupportKHR");
1388 #endif
1389 #ifdef VK_KHR_draw_indirect_count
1390     out->vkCmdDrawIndirectCountKHR =
1391         (PFN_vkCmdDrawIndirectCountKHR)dlSymFunc(lib, "vkCmdDrawIndirectCountKHR");
1392     out->vkCmdDrawIndexedIndirectCountKHR =
1393         (PFN_vkCmdDrawIndexedIndirectCountKHR)dlSymFunc(lib, "vkCmdDrawIndexedIndirectCountKHR");
1394 #endif
1395 #ifdef VK_KHR_timeline_semaphore
1396     out->vkGetSemaphoreCounterValueKHR =
1397         (PFN_vkGetSemaphoreCounterValueKHR)dlSymFunc(lib, "vkGetSemaphoreCounterValueKHR");
1398     out->vkWaitSemaphoresKHR = (PFN_vkWaitSemaphoresKHR)dlSymFunc(lib, "vkWaitSemaphoresKHR");
1399     out->vkSignalSemaphoreKHR = (PFN_vkSignalSemaphoreKHR)dlSymFunc(lib, "vkSignalSemaphoreKHR");
1400 #endif
1401 #ifdef VK_KHR_fragment_shading_rate
1402     out->vkGetPhysicalDeviceFragmentShadingRatesKHR =
1403         (PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR)dlSymFunc(
1404             lib, "vkGetPhysicalDeviceFragmentShadingRatesKHR");
1405     out->vkCmdSetFragmentShadingRateKHR =
1406         (PFN_vkCmdSetFragmentShadingRateKHR)dlSymFunc(lib, "vkCmdSetFragmentShadingRateKHR");
1407 #endif
1408 #ifdef VK_KHR_present_wait
1409     out->vkWaitForPresentKHR = (PFN_vkWaitForPresentKHR)dlSymFunc(lib, "vkWaitForPresentKHR");
1410 #endif
1411 #ifdef VK_KHR_buffer_device_address
1412     out->vkGetBufferDeviceAddressKHR =
1413         (PFN_vkGetBufferDeviceAddressKHR)dlSymFunc(lib, "vkGetBufferDeviceAddressKHR");
1414     out->vkGetBufferOpaqueCaptureAddressKHR = (PFN_vkGetBufferOpaqueCaptureAddressKHR)dlSymFunc(
1415         lib, "vkGetBufferOpaqueCaptureAddressKHR");
1416     out->vkGetDeviceMemoryOpaqueCaptureAddressKHR =
1417         (PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR)dlSymFunc(
1418             lib, "vkGetDeviceMemoryOpaqueCaptureAddressKHR");
1419 #endif
1420 #ifdef VK_KHR_deferred_host_operations
1421     out->vkCreateDeferredOperationKHR =
1422         (PFN_vkCreateDeferredOperationKHR)dlSymFunc(lib, "vkCreateDeferredOperationKHR");
1423     out->vkDestroyDeferredOperationKHR =
1424         (PFN_vkDestroyDeferredOperationKHR)dlSymFunc(lib, "vkDestroyDeferredOperationKHR");
1425     out->vkGetDeferredOperationMaxConcurrencyKHR =
1426         (PFN_vkGetDeferredOperationMaxConcurrencyKHR)dlSymFunc(
1427             lib, "vkGetDeferredOperationMaxConcurrencyKHR");
1428     out->vkGetDeferredOperationResultKHR =
1429         (PFN_vkGetDeferredOperationResultKHR)dlSymFunc(lib, "vkGetDeferredOperationResultKHR");
1430     out->vkDeferredOperationJoinKHR =
1431         (PFN_vkDeferredOperationJoinKHR)dlSymFunc(lib, "vkDeferredOperationJoinKHR");
1432 #endif
1433 #ifdef VK_KHR_pipeline_executable_properties
1434     out->vkGetPipelineExecutablePropertiesKHR = (PFN_vkGetPipelineExecutablePropertiesKHR)dlSymFunc(
1435         lib, "vkGetPipelineExecutablePropertiesKHR");
1436     out->vkGetPipelineExecutableStatisticsKHR = (PFN_vkGetPipelineExecutableStatisticsKHR)dlSymFunc(
1437         lib, "vkGetPipelineExecutableStatisticsKHR");
1438     out->vkGetPipelineExecutableInternalRepresentationsKHR =
1439         (PFN_vkGetPipelineExecutableInternalRepresentationsKHR)dlSymFunc(
1440             lib, "vkGetPipelineExecutableInternalRepresentationsKHR");
1441 #endif
1442 #ifdef VK_KHR_map_memory2
1443     out->vkMapMemory2KHR = (PFN_vkMapMemory2KHR)dlSymFunc(lib, "vkMapMemory2KHR");
1444     out->vkUnmapMemory2KHR = (PFN_vkUnmapMemory2KHR)dlSymFunc(lib, "vkUnmapMemory2KHR");
1445 #endif
1446 #ifdef VK_KHR_video_encode_queue
1447     out->vkCmdEncodeVideoKHR = (PFN_vkCmdEncodeVideoKHR)dlSymFunc(lib, "vkCmdEncodeVideoKHR");
1448 #endif
1449 #ifdef VK_KHR_synchronization2
1450     out->vkCmdSetEvent2KHR = (PFN_vkCmdSetEvent2KHR)dlSymFunc(lib, "vkCmdSetEvent2KHR");
1451     out->vkCmdResetEvent2KHR = (PFN_vkCmdResetEvent2KHR)dlSymFunc(lib, "vkCmdResetEvent2KHR");
1452     out->vkCmdWaitEvents2KHR = (PFN_vkCmdWaitEvents2KHR)dlSymFunc(lib, "vkCmdWaitEvents2KHR");
1453     out->vkCmdPipelineBarrier2KHR =
1454         (PFN_vkCmdPipelineBarrier2KHR)dlSymFunc(lib, "vkCmdPipelineBarrier2KHR");
1455     out->vkCmdWriteTimestamp2KHR =
1456         (PFN_vkCmdWriteTimestamp2KHR)dlSymFunc(lib, "vkCmdWriteTimestamp2KHR");
1457     out->vkQueueSubmit2KHR = (PFN_vkQueueSubmit2KHR)dlSymFunc(lib, "vkQueueSubmit2KHR");
1458     out->vkCmdWriteBufferMarker2AMD =
1459         (PFN_vkCmdWriteBufferMarker2AMD)dlSymFunc(lib, "vkCmdWriteBufferMarker2AMD");
1460     out->vkGetQueueCheckpointData2NV =
1461         (PFN_vkGetQueueCheckpointData2NV)dlSymFunc(lib, "vkGetQueueCheckpointData2NV");
1462 #endif
1463 #ifdef VK_KHR_copy_commands2
1464     out->vkCmdCopyBuffer2KHR = (PFN_vkCmdCopyBuffer2KHR)dlSymFunc(lib, "vkCmdCopyBuffer2KHR");
1465     out->vkCmdCopyImage2KHR = (PFN_vkCmdCopyImage2KHR)dlSymFunc(lib, "vkCmdCopyImage2KHR");
1466     out->vkCmdCopyBufferToImage2KHR =
1467         (PFN_vkCmdCopyBufferToImage2KHR)dlSymFunc(lib, "vkCmdCopyBufferToImage2KHR");
1468     out->vkCmdCopyImageToBuffer2KHR =
1469         (PFN_vkCmdCopyImageToBuffer2KHR)dlSymFunc(lib, "vkCmdCopyImageToBuffer2KHR");
1470     out->vkCmdBlitImage2KHR = (PFN_vkCmdBlitImage2KHR)dlSymFunc(lib, "vkCmdBlitImage2KHR");
1471     out->vkCmdResolveImage2KHR = (PFN_vkCmdResolveImage2KHR)dlSymFunc(lib, "vkCmdResolveImage2KHR");
1472 #endif
1473 #ifdef VK_KHR_ray_tracing_maintenance1
1474     out->vkCmdTraceRaysIndirect2KHR =
1475         (PFN_vkCmdTraceRaysIndirect2KHR)dlSymFunc(lib, "vkCmdTraceRaysIndirect2KHR");
1476 #endif
1477 #ifdef VK_KHR_maintenance4
1478     out->vkGetDeviceBufferMemoryRequirementsKHR =
1479         (PFN_vkGetDeviceBufferMemoryRequirementsKHR)dlSymFunc(
1480             lib, "vkGetDeviceBufferMemoryRequirementsKHR");
1481     out->vkGetDeviceImageMemoryRequirementsKHR =
1482         (PFN_vkGetDeviceImageMemoryRequirementsKHR)dlSymFunc(
1483             lib, "vkGetDeviceImageMemoryRequirementsKHR");
1484     out->vkGetDeviceImageSparseMemoryRequirementsKHR =
1485         (PFN_vkGetDeviceImageSparseMemoryRequirementsKHR)dlSymFunc(
1486             lib, "vkGetDeviceImageSparseMemoryRequirementsKHR");
1487 #endif
1488 #ifdef VK_ANDROID_native_buffer
1489     out->vkGetSwapchainGrallocUsageANDROID =
1490         (PFN_vkGetSwapchainGrallocUsageANDROID)dlSymFunc(lib, "vkGetSwapchainGrallocUsageANDROID");
1491     out->vkAcquireImageANDROID = (PFN_vkAcquireImageANDROID)dlSymFunc(lib, "vkAcquireImageANDROID");
1492     out->vkQueueSignalReleaseImageANDROID =
1493         (PFN_vkQueueSignalReleaseImageANDROID)dlSymFunc(lib, "vkQueueSignalReleaseImageANDROID");
1494     out->vkGetSwapchainGrallocUsage2ANDROID = (PFN_vkGetSwapchainGrallocUsage2ANDROID)dlSymFunc(
1495         lib, "vkGetSwapchainGrallocUsage2ANDROID");
1496 #endif
1497 #ifdef VK_EXT_debug_marker
1498     out->vkDebugMarkerSetObjectTagEXT =
1499         (PFN_vkDebugMarkerSetObjectTagEXT)dlSymFunc(lib, "vkDebugMarkerSetObjectTagEXT");
1500     out->vkDebugMarkerSetObjectNameEXT =
1501         (PFN_vkDebugMarkerSetObjectNameEXT)dlSymFunc(lib, "vkDebugMarkerSetObjectNameEXT");
1502     out->vkCmdDebugMarkerBeginEXT =
1503         (PFN_vkCmdDebugMarkerBeginEXT)dlSymFunc(lib, "vkCmdDebugMarkerBeginEXT");
1504     out->vkCmdDebugMarkerEndEXT =
1505         (PFN_vkCmdDebugMarkerEndEXT)dlSymFunc(lib, "vkCmdDebugMarkerEndEXT");
1506     out->vkCmdDebugMarkerInsertEXT =
1507         (PFN_vkCmdDebugMarkerInsertEXT)dlSymFunc(lib, "vkCmdDebugMarkerInsertEXT");
1508 #endif
1509 #ifdef VK_EXT_transform_feedback
1510     out->vkCmdBindTransformFeedbackBuffersEXT = (PFN_vkCmdBindTransformFeedbackBuffersEXT)dlSymFunc(
1511         lib, "vkCmdBindTransformFeedbackBuffersEXT");
1512     out->vkCmdBeginTransformFeedbackEXT =
1513         (PFN_vkCmdBeginTransformFeedbackEXT)dlSymFunc(lib, "vkCmdBeginTransformFeedbackEXT");
1514     out->vkCmdEndTransformFeedbackEXT =
1515         (PFN_vkCmdEndTransformFeedbackEXT)dlSymFunc(lib, "vkCmdEndTransformFeedbackEXT");
1516     out->vkCmdBeginQueryIndexedEXT =
1517         (PFN_vkCmdBeginQueryIndexedEXT)dlSymFunc(lib, "vkCmdBeginQueryIndexedEXT");
1518     out->vkCmdEndQueryIndexedEXT =
1519         (PFN_vkCmdEndQueryIndexedEXT)dlSymFunc(lib, "vkCmdEndQueryIndexedEXT");
1520     out->vkCmdDrawIndirectByteCountEXT =
1521         (PFN_vkCmdDrawIndirectByteCountEXT)dlSymFunc(lib, "vkCmdDrawIndirectByteCountEXT");
1522 #endif
1523 #ifdef VK_NVX_binary_import
1524     out->vkCreateCuModuleNVX = (PFN_vkCreateCuModuleNVX)dlSymFunc(lib, "vkCreateCuModuleNVX");
1525     out->vkCreateCuFunctionNVX = (PFN_vkCreateCuFunctionNVX)dlSymFunc(lib, "vkCreateCuFunctionNVX");
1526     out->vkDestroyCuModuleNVX = (PFN_vkDestroyCuModuleNVX)dlSymFunc(lib, "vkDestroyCuModuleNVX");
1527     out->vkDestroyCuFunctionNVX =
1528         (PFN_vkDestroyCuFunctionNVX)dlSymFunc(lib, "vkDestroyCuFunctionNVX");
1529     out->vkCmdCuLaunchKernelNVX =
1530         (PFN_vkCmdCuLaunchKernelNVX)dlSymFunc(lib, "vkCmdCuLaunchKernelNVX");
1531 #endif
1532 #ifdef VK_NVX_image_view_handle
1533     out->vkGetImageViewHandleNVX =
1534         (PFN_vkGetImageViewHandleNVX)dlSymFunc(lib, "vkGetImageViewHandleNVX");
1535     out->vkGetImageViewAddressNVX =
1536         (PFN_vkGetImageViewAddressNVX)dlSymFunc(lib, "vkGetImageViewAddressNVX");
1537 #endif
1538 #ifdef VK_AMD_draw_indirect_count
1539     out->vkCmdDrawIndirectCountAMD =
1540         (PFN_vkCmdDrawIndirectCountAMD)dlSymFunc(lib, "vkCmdDrawIndirectCountAMD");
1541     out->vkCmdDrawIndexedIndirectCountAMD =
1542         (PFN_vkCmdDrawIndexedIndirectCountAMD)dlSymFunc(lib, "vkCmdDrawIndexedIndirectCountAMD");
1543 #endif
1544 #ifdef VK_AMD_shader_info
1545     out->vkGetShaderInfoAMD = (PFN_vkGetShaderInfoAMD)dlSymFunc(lib, "vkGetShaderInfoAMD");
1546 #endif
1547 #ifdef VK_NV_external_memory_capabilities
1548     out->vkGetPhysicalDeviceExternalImageFormatPropertiesNV =
1549         (PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)dlSymFunc(
1550             lib, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV");
1551 #endif
1552 #ifdef VK_NV_external_memory_win32
1553     out->vkGetMemoryWin32HandleNV =
1554         (PFN_vkGetMemoryWin32HandleNV)dlSymFunc(lib, "vkGetMemoryWin32HandleNV");
1555 #endif
1556 #ifdef VK_EXT_conditional_rendering
1557     out->vkCmdBeginConditionalRenderingEXT =
1558         (PFN_vkCmdBeginConditionalRenderingEXT)dlSymFunc(lib, "vkCmdBeginConditionalRenderingEXT");
1559     out->vkCmdEndConditionalRenderingEXT =
1560         (PFN_vkCmdEndConditionalRenderingEXT)dlSymFunc(lib, "vkCmdEndConditionalRenderingEXT");
1561 #endif
1562 #ifdef VK_NV_clip_space_w_scaling
1563     out->vkCmdSetViewportWScalingNV =
1564         (PFN_vkCmdSetViewportWScalingNV)dlSymFunc(lib, "vkCmdSetViewportWScalingNV");
1565 #endif
1566 #ifdef VK_EXT_direct_mode_display
1567     out->vkReleaseDisplayEXT = (PFN_vkReleaseDisplayEXT)dlSymFunc(lib, "vkReleaseDisplayEXT");
1568 #endif
1569 #ifdef VK_EXT_acquire_xlib_display
1570     out->vkAcquireXlibDisplayEXT =
1571         (PFN_vkAcquireXlibDisplayEXT)dlSymFunc(lib, "vkAcquireXlibDisplayEXT");
1572     out->vkGetRandROutputDisplayEXT =
1573         (PFN_vkGetRandROutputDisplayEXT)dlSymFunc(lib, "vkGetRandROutputDisplayEXT");
1574 #endif
1575 #ifdef VK_EXT_display_surface_counter
1576     out->vkGetPhysicalDeviceSurfaceCapabilities2EXT =
1577         (PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)dlSymFunc(
1578             lib, "vkGetPhysicalDeviceSurfaceCapabilities2EXT");
1579 #endif
1580 #ifdef VK_EXT_display_control
1581     out->vkDisplayPowerControlEXT =
1582         (PFN_vkDisplayPowerControlEXT)dlSymFunc(lib, "vkDisplayPowerControlEXT");
1583     out->vkRegisterDeviceEventEXT =
1584         (PFN_vkRegisterDeviceEventEXT)dlSymFunc(lib, "vkRegisterDeviceEventEXT");
1585     out->vkRegisterDisplayEventEXT =
1586         (PFN_vkRegisterDisplayEventEXT)dlSymFunc(lib, "vkRegisterDisplayEventEXT");
1587     out->vkGetSwapchainCounterEXT =
1588         (PFN_vkGetSwapchainCounterEXT)dlSymFunc(lib, "vkGetSwapchainCounterEXT");
1589 #endif
1590 #ifdef VK_GOOGLE_display_timing
1591     out->vkGetRefreshCycleDurationGOOGLE =
1592         (PFN_vkGetRefreshCycleDurationGOOGLE)dlSymFunc(lib, "vkGetRefreshCycleDurationGOOGLE");
1593     out->vkGetPastPresentationTimingGOOGLE =
1594         (PFN_vkGetPastPresentationTimingGOOGLE)dlSymFunc(lib, "vkGetPastPresentationTimingGOOGLE");
1595 #endif
1596 #ifdef VK_EXT_discard_rectangles
1597     out->vkCmdSetDiscardRectangleEXT =
1598         (PFN_vkCmdSetDiscardRectangleEXT)dlSymFunc(lib, "vkCmdSetDiscardRectangleEXT");
1599     out->vkCmdSetDiscardRectangleEnableEXT =
1600         (PFN_vkCmdSetDiscardRectangleEnableEXT)dlSymFunc(lib, "vkCmdSetDiscardRectangleEnableEXT");
1601     out->vkCmdSetDiscardRectangleModeEXT =
1602         (PFN_vkCmdSetDiscardRectangleModeEXT)dlSymFunc(lib, "vkCmdSetDiscardRectangleModeEXT");
1603 #endif
1604 #ifdef VK_EXT_hdr_metadata
1605     out->vkSetHdrMetadataEXT = (PFN_vkSetHdrMetadataEXT)dlSymFunc(lib, "vkSetHdrMetadataEXT");
1606 #endif
1607 #ifdef VK_EXT_debug_utils
1608     out->vkSetDebugUtilsObjectNameEXT =
1609         (PFN_vkSetDebugUtilsObjectNameEXT)dlSymFunc(lib, "vkSetDebugUtilsObjectNameEXT");
1610     out->vkSetDebugUtilsObjectTagEXT =
1611         (PFN_vkSetDebugUtilsObjectTagEXT)dlSymFunc(lib, "vkSetDebugUtilsObjectTagEXT");
1612     out->vkQueueBeginDebugUtilsLabelEXT =
1613         (PFN_vkQueueBeginDebugUtilsLabelEXT)dlSymFunc(lib, "vkQueueBeginDebugUtilsLabelEXT");
1614     out->vkQueueEndDebugUtilsLabelEXT =
1615         (PFN_vkQueueEndDebugUtilsLabelEXT)dlSymFunc(lib, "vkQueueEndDebugUtilsLabelEXT");
1616     out->vkQueueInsertDebugUtilsLabelEXT =
1617         (PFN_vkQueueInsertDebugUtilsLabelEXT)dlSymFunc(lib, "vkQueueInsertDebugUtilsLabelEXT");
1618     out->vkCmdBeginDebugUtilsLabelEXT =
1619         (PFN_vkCmdBeginDebugUtilsLabelEXT)dlSymFunc(lib, "vkCmdBeginDebugUtilsLabelEXT");
1620     out->vkCmdEndDebugUtilsLabelEXT =
1621         (PFN_vkCmdEndDebugUtilsLabelEXT)dlSymFunc(lib, "vkCmdEndDebugUtilsLabelEXT");
1622     out->vkCmdInsertDebugUtilsLabelEXT =
1623         (PFN_vkCmdInsertDebugUtilsLabelEXT)dlSymFunc(lib, "vkCmdInsertDebugUtilsLabelEXT");
1624 #endif
1625 #ifdef VK_ANDROID_external_memory_android_hardware_buffer
1626     out->vkGetAndroidHardwareBufferPropertiesANDROID =
1627         (PFN_vkGetAndroidHardwareBufferPropertiesANDROID)dlSymFunc(
1628             lib, "vkGetAndroidHardwareBufferPropertiesANDROID");
1629     out->vkGetMemoryAndroidHardwareBufferANDROID =
1630         (PFN_vkGetMemoryAndroidHardwareBufferANDROID)dlSymFunc(
1631             lib, "vkGetMemoryAndroidHardwareBufferANDROID");
1632 #endif
1633 #ifdef VK_EXT_sample_locations
1634     out->vkCmdSetSampleLocationsEXT =
1635         (PFN_vkCmdSetSampleLocationsEXT)dlSymFunc(lib, "vkCmdSetSampleLocationsEXT");
1636     out->vkGetPhysicalDeviceMultisamplePropertiesEXT =
1637         (PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT)dlSymFunc(
1638             lib, "vkGetPhysicalDeviceMultisamplePropertiesEXT");
1639 #endif
1640 #ifdef VK_EXT_image_drm_format_modifier
1641     out->vkGetImageDrmFormatModifierPropertiesEXT =
1642         (PFN_vkGetImageDrmFormatModifierPropertiesEXT)dlSymFunc(
1643             lib, "vkGetImageDrmFormatModifierPropertiesEXT");
1644 #endif
1645 #ifdef VK_EXT_validation_cache
1646     out->vkCreateValidationCacheEXT =
1647         (PFN_vkCreateValidationCacheEXT)dlSymFunc(lib, "vkCreateValidationCacheEXT");
1648     out->vkDestroyValidationCacheEXT =
1649         (PFN_vkDestroyValidationCacheEXT)dlSymFunc(lib, "vkDestroyValidationCacheEXT");
1650     out->vkMergeValidationCachesEXT =
1651         (PFN_vkMergeValidationCachesEXT)dlSymFunc(lib, "vkMergeValidationCachesEXT");
1652     out->vkGetValidationCacheDataEXT =
1653         (PFN_vkGetValidationCacheDataEXT)dlSymFunc(lib, "vkGetValidationCacheDataEXT");
1654 #endif
1655 #ifdef VK_NV_shading_rate_image
1656     out->vkCmdBindShadingRateImageNV =
1657         (PFN_vkCmdBindShadingRateImageNV)dlSymFunc(lib, "vkCmdBindShadingRateImageNV");
1658     out->vkCmdSetViewportShadingRatePaletteNV = (PFN_vkCmdSetViewportShadingRatePaletteNV)dlSymFunc(
1659         lib, "vkCmdSetViewportShadingRatePaletteNV");
1660     out->vkCmdSetCoarseSampleOrderNV =
1661         (PFN_vkCmdSetCoarseSampleOrderNV)dlSymFunc(lib, "vkCmdSetCoarseSampleOrderNV");
1662 #endif
1663 #ifdef VK_NV_ray_tracing
1664     out->vkCreateAccelerationStructureNV =
1665         (PFN_vkCreateAccelerationStructureNV)dlSymFunc(lib, "vkCreateAccelerationStructureNV");
1666     out->vkDestroyAccelerationStructureNV =
1667         (PFN_vkDestroyAccelerationStructureNV)dlSymFunc(lib, "vkDestroyAccelerationStructureNV");
1668     out->vkGetAccelerationStructureMemoryRequirementsNV =
1669         (PFN_vkGetAccelerationStructureMemoryRequirementsNV)dlSymFunc(
1670             lib, "vkGetAccelerationStructureMemoryRequirementsNV");
1671     out->vkBindAccelerationStructureMemoryNV = (PFN_vkBindAccelerationStructureMemoryNV)dlSymFunc(
1672         lib, "vkBindAccelerationStructureMemoryNV");
1673     out->vkCmdBuildAccelerationStructureNV =
1674         (PFN_vkCmdBuildAccelerationStructureNV)dlSymFunc(lib, "vkCmdBuildAccelerationStructureNV");
1675     out->vkCmdCopyAccelerationStructureNV =
1676         (PFN_vkCmdCopyAccelerationStructureNV)dlSymFunc(lib, "vkCmdCopyAccelerationStructureNV");
1677     out->vkCmdTraceRaysNV = (PFN_vkCmdTraceRaysNV)dlSymFunc(lib, "vkCmdTraceRaysNV");
1678     out->vkCreateRayTracingPipelinesNV =
1679         (PFN_vkCreateRayTracingPipelinesNV)dlSymFunc(lib, "vkCreateRayTracingPipelinesNV");
1680     out->vkGetRayTracingShaderGroupHandlesKHR = (PFN_vkGetRayTracingShaderGroupHandlesKHR)dlSymFunc(
1681         lib, "vkGetRayTracingShaderGroupHandlesKHR");
1682     out->vkGetRayTracingShaderGroupHandlesNV = (PFN_vkGetRayTracingShaderGroupHandlesNV)dlSymFunc(
1683         lib, "vkGetRayTracingShaderGroupHandlesNV");
1684     out->vkGetAccelerationStructureHandleNV = (PFN_vkGetAccelerationStructureHandleNV)dlSymFunc(
1685         lib, "vkGetAccelerationStructureHandleNV");
1686     out->vkCmdWriteAccelerationStructuresPropertiesNV =
1687         (PFN_vkCmdWriteAccelerationStructuresPropertiesNV)dlSymFunc(
1688             lib, "vkCmdWriteAccelerationStructuresPropertiesNV");
1689     out->vkCompileDeferredNV = (PFN_vkCompileDeferredNV)dlSymFunc(lib, "vkCompileDeferredNV");
1690 #endif
1691 #ifdef VK_EXT_external_memory_host
1692     out->vkGetMemoryHostPointerPropertiesEXT = (PFN_vkGetMemoryHostPointerPropertiesEXT)dlSymFunc(
1693         lib, "vkGetMemoryHostPointerPropertiesEXT");
1694 #endif
1695 #ifdef VK_AMD_buffer_marker
1696     out->vkCmdWriteBufferMarkerAMD =
1697         (PFN_vkCmdWriteBufferMarkerAMD)dlSymFunc(lib, "vkCmdWriteBufferMarkerAMD");
1698 #endif
1699 #ifdef VK_EXT_calibrated_timestamps
1700     out->vkGetPhysicalDeviceCalibrateableTimeDomainsEXT =
1701         (PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)dlSymFunc(
1702             lib, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT");
1703     out->vkGetCalibratedTimestampsEXT =
1704         (PFN_vkGetCalibratedTimestampsEXT)dlSymFunc(lib, "vkGetCalibratedTimestampsEXT");
1705 #endif
1706 #ifdef VK_NV_mesh_shader
1707     out->vkCmdDrawMeshTasksNV = (PFN_vkCmdDrawMeshTasksNV)dlSymFunc(lib, "vkCmdDrawMeshTasksNV");
1708     out->vkCmdDrawMeshTasksIndirectNV =
1709         (PFN_vkCmdDrawMeshTasksIndirectNV)dlSymFunc(lib, "vkCmdDrawMeshTasksIndirectNV");
1710     out->vkCmdDrawMeshTasksIndirectCountNV =
1711         (PFN_vkCmdDrawMeshTasksIndirectCountNV)dlSymFunc(lib, "vkCmdDrawMeshTasksIndirectCountNV");
1712 #endif
1713 #ifdef VK_NV_scissor_exclusive
1714     out->vkCmdSetExclusiveScissorEnableNV =
1715         (PFN_vkCmdSetExclusiveScissorEnableNV)dlSymFunc(lib, "vkCmdSetExclusiveScissorEnableNV");
1716     out->vkCmdSetExclusiveScissorNV =
1717         (PFN_vkCmdSetExclusiveScissorNV)dlSymFunc(lib, "vkCmdSetExclusiveScissorNV");
1718 #endif
1719 #ifdef VK_NV_device_diagnostic_checkpoints
1720     out->vkCmdSetCheckpointNV = (PFN_vkCmdSetCheckpointNV)dlSymFunc(lib, "vkCmdSetCheckpointNV");
1721     out->vkGetQueueCheckpointDataNV =
1722         (PFN_vkGetQueueCheckpointDataNV)dlSymFunc(lib, "vkGetQueueCheckpointDataNV");
1723 #endif
1724 #ifdef VK_INTEL_performance_query
1725     out->vkInitializePerformanceApiINTEL =
1726         (PFN_vkInitializePerformanceApiINTEL)dlSymFunc(lib, "vkInitializePerformanceApiINTEL");
1727     out->vkUninitializePerformanceApiINTEL =
1728         (PFN_vkUninitializePerformanceApiINTEL)dlSymFunc(lib, "vkUninitializePerformanceApiINTEL");
1729     out->vkCmdSetPerformanceMarkerINTEL =
1730         (PFN_vkCmdSetPerformanceMarkerINTEL)dlSymFunc(lib, "vkCmdSetPerformanceMarkerINTEL");
1731     out->vkCmdSetPerformanceStreamMarkerINTEL = (PFN_vkCmdSetPerformanceStreamMarkerINTEL)dlSymFunc(
1732         lib, "vkCmdSetPerformanceStreamMarkerINTEL");
1733     out->vkCmdSetPerformanceOverrideINTEL =
1734         (PFN_vkCmdSetPerformanceOverrideINTEL)dlSymFunc(lib, "vkCmdSetPerformanceOverrideINTEL");
1735     out->vkAcquirePerformanceConfigurationINTEL =
1736         (PFN_vkAcquirePerformanceConfigurationINTEL)dlSymFunc(
1737             lib, "vkAcquirePerformanceConfigurationINTEL");
1738     out->vkReleasePerformanceConfigurationINTEL =
1739         (PFN_vkReleasePerformanceConfigurationINTEL)dlSymFunc(
1740             lib, "vkReleasePerformanceConfigurationINTEL");
1741     out->vkQueueSetPerformanceConfigurationINTEL =
1742         (PFN_vkQueueSetPerformanceConfigurationINTEL)dlSymFunc(
1743             lib, "vkQueueSetPerformanceConfigurationINTEL");
1744     out->vkGetPerformanceParameterINTEL =
1745         (PFN_vkGetPerformanceParameterINTEL)dlSymFunc(lib, "vkGetPerformanceParameterINTEL");
1746 #endif
1747 #ifdef VK_AMD_display_native_hdr
1748     out->vkSetLocalDimmingAMD = (PFN_vkSetLocalDimmingAMD)dlSymFunc(lib, "vkSetLocalDimmingAMD");
1749 #endif
1750 #ifdef VK_EXT_buffer_device_address
1751     out->vkGetBufferDeviceAddressEXT =
1752         (PFN_vkGetBufferDeviceAddressEXT)dlSymFunc(lib, "vkGetBufferDeviceAddressEXT");
1753 #endif
1754 #ifdef VK_EXT_tooling_info
1755     out->vkGetPhysicalDeviceToolPropertiesEXT = (PFN_vkGetPhysicalDeviceToolPropertiesEXT)dlSymFunc(
1756         lib, "vkGetPhysicalDeviceToolPropertiesEXT");
1757 #endif
1758 #ifdef VK_NV_cooperative_matrix
1759     out->vkGetPhysicalDeviceCooperativeMatrixPropertiesNV =
1760         (PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV)dlSymFunc(
1761             lib, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV");
1762 #endif
1763 #ifdef VK_NV_coverage_reduction_mode
1764     out->vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV =
1765         (PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV)dlSymFunc(
1766             lib, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV");
1767 #endif
1768 #ifdef VK_EXT_full_screen_exclusive
1769     out->vkGetPhysicalDeviceSurfacePresentModes2EXT =
1770         (PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT)dlSymFunc(
1771             lib, "vkGetPhysicalDeviceSurfacePresentModes2EXT");
1772     out->vkAcquireFullScreenExclusiveModeEXT = (PFN_vkAcquireFullScreenExclusiveModeEXT)dlSymFunc(
1773         lib, "vkAcquireFullScreenExclusiveModeEXT");
1774     out->vkReleaseFullScreenExclusiveModeEXT = (PFN_vkReleaseFullScreenExclusiveModeEXT)dlSymFunc(
1775         lib, "vkReleaseFullScreenExclusiveModeEXT");
1776     out->vkGetDeviceGroupSurfacePresentModes2EXT =
1777         (PFN_vkGetDeviceGroupSurfacePresentModes2EXT)dlSymFunc(
1778             lib, "vkGetDeviceGroupSurfacePresentModes2EXT");
1779 #endif
1780 #ifdef VK_EXT_line_rasterization
1781     out->vkCmdSetLineStippleEXT =
1782         (PFN_vkCmdSetLineStippleEXT)dlSymFunc(lib, "vkCmdSetLineStippleEXT");
1783 #endif
1784 #ifdef VK_EXT_host_query_reset
1785     out->vkResetQueryPoolEXT = (PFN_vkResetQueryPoolEXT)dlSymFunc(lib, "vkResetQueryPoolEXT");
1786 #endif
1787 #ifdef VK_EXT_extended_dynamic_state
1788     out->vkCmdSetCullModeEXT = (PFN_vkCmdSetCullModeEXT)dlSymFunc(lib, "vkCmdSetCullModeEXT");
1789     out->vkCmdSetFrontFaceEXT = (PFN_vkCmdSetFrontFaceEXT)dlSymFunc(lib, "vkCmdSetFrontFaceEXT");
1790     out->vkCmdSetPrimitiveTopologyEXT =
1791         (PFN_vkCmdSetPrimitiveTopologyEXT)dlSymFunc(lib, "vkCmdSetPrimitiveTopologyEXT");
1792     out->vkCmdSetViewportWithCountEXT =
1793         (PFN_vkCmdSetViewportWithCountEXT)dlSymFunc(lib, "vkCmdSetViewportWithCountEXT");
1794     out->vkCmdSetScissorWithCountEXT =
1795         (PFN_vkCmdSetScissorWithCountEXT)dlSymFunc(lib, "vkCmdSetScissorWithCountEXT");
1796     out->vkCmdBindVertexBuffers2EXT =
1797         (PFN_vkCmdBindVertexBuffers2EXT)dlSymFunc(lib, "vkCmdBindVertexBuffers2EXT");
1798     out->vkCmdSetDepthTestEnableEXT =
1799         (PFN_vkCmdSetDepthTestEnableEXT)dlSymFunc(lib, "vkCmdSetDepthTestEnableEXT");
1800     out->vkCmdSetDepthWriteEnableEXT =
1801         (PFN_vkCmdSetDepthWriteEnableEXT)dlSymFunc(lib, "vkCmdSetDepthWriteEnableEXT");
1802     out->vkCmdSetDepthCompareOpEXT =
1803         (PFN_vkCmdSetDepthCompareOpEXT)dlSymFunc(lib, "vkCmdSetDepthCompareOpEXT");
1804     out->vkCmdSetDepthBoundsTestEnableEXT =
1805         (PFN_vkCmdSetDepthBoundsTestEnableEXT)dlSymFunc(lib, "vkCmdSetDepthBoundsTestEnableEXT");
1806     out->vkCmdSetStencilTestEnableEXT =
1807         (PFN_vkCmdSetStencilTestEnableEXT)dlSymFunc(lib, "vkCmdSetStencilTestEnableEXT");
1808     out->vkCmdSetStencilOpEXT = (PFN_vkCmdSetStencilOpEXT)dlSymFunc(lib, "vkCmdSetStencilOpEXT");
1809 #endif
1810 #ifdef VK_EXT_swapchain_maintenance1
1811     out->vkReleaseSwapchainImagesEXT =
1812         (PFN_vkReleaseSwapchainImagesEXT)dlSymFunc(lib, "vkReleaseSwapchainImagesEXT");
1813 #endif
1814 #ifdef VK_NV_device_generated_commands
1815     out->vkGetGeneratedCommandsMemoryRequirementsNV =
1816         (PFN_vkGetGeneratedCommandsMemoryRequirementsNV)dlSymFunc(
1817             lib, "vkGetGeneratedCommandsMemoryRequirementsNV");
1818     out->vkCmdPreprocessGeneratedCommandsNV = (PFN_vkCmdPreprocessGeneratedCommandsNV)dlSymFunc(
1819         lib, "vkCmdPreprocessGeneratedCommandsNV");
1820     out->vkCmdExecuteGeneratedCommandsNV =
1821         (PFN_vkCmdExecuteGeneratedCommandsNV)dlSymFunc(lib, "vkCmdExecuteGeneratedCommandsNV");
1822     out->vkCmdBindPipelineShaderGroupNV =
1823         (PFN_vkCmdBindPipelineShaderGroupNV)dlSymFunc(lib, "vkCmdBindPipelineShaderGroupNV");
1824     out->vkCreateIndirectCommandsLayoutNV =
1825         (PFN_vkCreateIndirectCommandsLayoutNV)dlSymFunc(lib, "vkCreateIndirectCommandsLayoutNV");
1826     out->vkDestroyIndirectCommandsLayoutNV =
1827         (PFN_vkDestroyIndirectCommandsLayoutNV)dlSymFunc(lib, "vkDestroyIndirectCommandsLayoutNV");
1828 #endif
1829 #ifdef VK_EXT_acquire_drm_display
1830     out->vkAcquireDrmDisplayEXT =
1831         (PFN_vkAcquireDrmDisplayEXT)dlSymFunc(lib, "vkAcquireDrmDisplayEXT");
1832     out->vkGetDrmDisplayEXT = (PFN_vkGetDrmDisplayEXT)dlSymFunc(lib, "vkGetDrmDisplayEXT");
1833 #endif
1834 #ifdef VK_EXT_private_data
1835     out->vkCreatePrivateDataSlotEXT =
1836         (PFN_vkCreatePrivateDataSlotEXT)dlSymFunc(lib, "vkCreatePrivateDataSlotEXT");
1837     out->vkDestroyPrivateDataSlotEXT =
1838         (PFN_vkDestroyPrivateDataSlotEXT)dlSymFunc(lib, "vkDestroyPrivateDataSlotEXT");
1839     out->vkSetPrivateDataEXT = (PFN_vkSetPrivateDataEXT)dlSymFunc(lib, "vkSetPrivateDataEXT");
1840     out->vkGetPrivateDataEXT = (PFN_vkGetPrivateDataEXT)dlSymFunc(lib, "vkGetPrivateDataEXT");
1841 #endif
1842 #ifdef VK_EXT_metal_objects
1843     out->vkExportMetalObjectsEXT =
1844         (PFN_vkExportMetalObjectsEXT)dlSymFunc(lib, "vkExportMetalObjectsEXT");
1845 #endif
1846 #ifdef VK_EXT_descriptor_buffer
1847     out->vkGetDescriptorSetLayoutSizeEXT =
1848         (PFN_vkGetDescriptorSetLayoutSizeEXT)dlSymFunc(lib, "vkGetDescriptorSetLayoutSizeEXT");
1849     out->vkGetDescriptorSetLayoutBindingOffsetEXT =
1850         (PFN_vkGetDescriptorSetLayoutBindingOffsetEXT)dlSymFunc(
1851             lib, "vkGetDescriptorSetLayoutBindingOffsetEXT");
1852     out->vkGetDescriptorEXT = (PFN_vkGetDescriptorEXT)dlSymFunc(lib, "vkGetDescriptorEXT");
1853     out->vkCmdBindDescriptorBuffersEXT =
1854         (PFN_vkCmdBindDescriptorBuffersEXT)dlSymFunc(lib, "vkCmdBindDescriptorBuffersEXT");
1855     out->vkCmdSetDescriptorBufferOffsetsEXT = (PFN_vkCmdSetDescriptorBufferOffsetsEXT)dlSymFunc(
1856         lib, "vkCmdSetDescriptorBufferOffsetsEXT");
1857     out->vkCmdBindDescriptorBufferEmbeddedSamplersEXT =
1858         (PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT)dlSymFunc(
1859             lib, "vkCmdBindDescriptorBufferEmbeddedSamplersEXT");
1860     out->vkGetBufferOpaqueCaptureDescriptorDataEXT =
1861         (PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT)dlSymFunc(
1862             lib, "vkGetBufferOpaqueCaptureDescriptorDataEXT");
1863     out->vkGetImageOpaqueCaptureDescriptorDataEXT =
1864         (PFN_vkGetImageOpaqueCaptureDescriptorDataEXT)dlSymFunc(
1865             lib, "vkGetImageOpaqueCaptureDescriptorDataEXT");
1866     out->vkGetImageViewOpaqueCaptureDescriptorDataEXT =
1867         (PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT)dlSymFunc(
1868             lib, "vkGetImageViewOpaqueCaptureDescriptorDataEXT");
1869     out->vkGetSamplerOpaqueCaptureDescriptorDataEXT =
1870         (PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT)dlSymFunc(
1871             lib, "vkGetSamplerOpaqueCaptureDescriptorDataEXT");
1872     out->vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT =
1873         (PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT)dlSymFunc(
1874             lib, "vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT");
1875 #endif
1876 #ifdef VK_NV_fragment_shading_rate_enums
1877     out->vkCmdSetFragmentShadingRateEnumNV =
1878         (PFN_vkCmdSetFragmentShadingRateEnumNV)dlSymFunc(lib, "vkCmdSetFragmentShadingRateEnumNV");
1879 #endif
1880 #ifdef VK_EXT_image_compression_control
1881     out->vkGetImageSubresourceLayout2EXT =
1882         (PFN_vkGetImageSubresourceLayout2EXT)dlSymFunc(lib, "vkGetImageSubresourceLayout2EXT");
1883 #endif
1884 #ifdef VK_EXT_device_fault
1885     out->vkGetDeviceFaultInfoEXT =
1886         (PFN_vkGetDeviceFaultInfoEXT)dlSymFunc(lib, "vkGetDeviceFaultInfoEXT");
1887 #endif
1888 #ifdef VK_NV_acquire_winrt_display
1889     out->vkAcquireWinrtDisplayNV =
1890         (PFN_vkAcquireWinrtDisplayNV)dlSymFunc(lib, "vkAcquireWinrtDisplayNV");
1891     out->vkGetWinrtDisplayNV = (PFN_vkGetWinrtDisplayNV)dlSymFunc(lib, "vkGetWinrtDisplayNV");
1892 #endif
1893 #ifdef VK_EXT_directfb_surface
1894     out->vkGetPhysicalDeviceDirectFBPresentationSupportEXT =
1895         (PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT)dlSymFunc(
1896             lib, "vkGetPhysicalDeviceDirectFBPresentationSupportEXT");
1897 #endif
1898 #ifdef VK_EXT_vertex_input_dynamic_state
1899     out->vkCmdSetVertexInputEXT =
1900         (PFN_vkCmdSetVertexInputEXT)dlSymFunc(lib, "vkCmdSetVertexInputEXT");
1901 #endif
1902 #ifdef VK_FUCHSIA_external_memory
1903     out->vkGetMemoryZirconHandleFUCHSIA =
1904         (PFN_vkGetMemoryZirconHandleFUCHSIA)dlSymFunc(lib, "vkGetMemoryZirconHandleFUCHSIA");
1905     out->vkGetMemoryZirconHandlePropertiesFUCHSIA =
1906         (PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA)dlSymFunc(
1907             lib, "vkGetMemoryZirconHandlePropertiesFUCHSIA");
1908 #endif
1909 #ifdef VK_FUCHSIA_external_semaphore
1910     out->vkImportSemaphoreZirconHandleFUCHSIA = (PFN_vkImportSemaphoreZirconHandleFUCHSIA)dlSymFunc(
1911         lib, "vkImportSemaphoreZirconHandleFUCHSIA");
1912     out->vkGetSemaphoreZirconHandleFUCHSIA =
1913         (PFN_vkGetSemaphoreZirconHandleFUCHSIA)dlSymFunc(lib, "vkGetSemaphoreZirconHandleFUCHSIA");
1914 #endif
1915 #ifdef VK_FUCHSIA_buffer_collection
1916     out->vkCreateBufferCollectionFUCHSIA =
1917         (PFN_vkCreateBufferCollectionFUCHSIA)dlSymFunc(lib, "vkCreateBufferCollectionFUCHSIA");
1918     out->vkSetBufferCollectionImageConstraintsFUCHSIA =
1919         (PFN_vkSetBufferCollectionImageConstraintsFUCHSIA)dlSymFunc(
1920             lib, "vkSetBufferCollectionImageConstraintsFUCHSIA");
1921     out->vkSetBufferCollectionBufferConstraintsFUCHSIA =
1922         (PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA)dlSymFunc(
1923             lib, "vkSetBufferCollectionBufferConstraintsFUCHSIA");
1924     out->vkDestroyBufferCollectionFUCHSIA =
1925         (PFN_vkDestroyBufferCollectionFUCHSIA)dlSymFunc(lib, "vkDestroyBufferCollectionFUCHSIA");
1926     out->vkGetBufferCollectionPropertiesFUCHSIA =
1927         (PFN_vkGetBufferCollectionPropertiesFUCHSIA)dlSymFunc(
1928             lib, "vkGetBufferCollectionPropertiesFUCHSIA");
1929 #endif
1930 #ifdef VK_HUAWEI_subpass_shading
1931     out->vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI =
1932         (PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI)dlSymFunc(
1933             lib, "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI");
1934     out->vkCmdSubpassShadingHUAWEI =
1935         (PFN_vkCmdSubpassShadingHUAWEI)dlSymFunc(lib, "vkCmdSubpassShadingHUAWEI");
1936 #endif
1937 #ifdef VK_HUAWEI_invocation_mask
1938     out->vkCmdBindInvocationMaskHUAWEI =
1939         (PFN_vkCmdBindInvocationMaskHUAWEI)dlSymFunc(lib, "vkCmdBindInvocationMaskHUAWEI");
1940 #endif
1941 #ifdef VK_NV_external_memory_rdma
1942     out->vkGetMemoryRemoteAddressNV =
1943         (PFN_vkGetMemoryRemoteAddressNV)dlSymFunc(lib, "vkGetMemoryRemoteAddressNV");
1944 #endif
1945 #ifdef VK_EXT_pipeline_properties
1946     out->vkGetPipelinePropertiesEXT =
1947         (PFN_vkGetPipelinePropertiesEXT)dlSymFunc(lib, "vkGetPipelinePropertiesEXT");
1948 #endif
1949 #ifdef VK_EXT_extended_dynamic_state2
1950     out->vkCmdSetPatchControlPointsEXT =
1951         (PFN_vkCmdSetPatchControlPointsEXT)dlSymFunc(lib, "vkCmdSetPatchControlPointsEXT");
1952     out->vkCmdSetRasterizerDiscardEnableEXT = (PFN_vkCmdSetRasterizerDiscardEnableEXT)dlSymFunc(
1953         lib, "vkCmdSetRasterizerDiscardEnableEXT");
1954     out->vkCmdSetDepthBiasEnableEXT =
1955         (PFN_vkCmdSetDepthBiasEnableEXT)dlSymFunc(lib, "vkCmdSetDepthBiasEnableEXT");
1956     out->vkCmdSetLogicOpEXT = (PFN_vkCmdSetLogicOpEXT)dlSymFunc(lib, "vkCmdSetLogicOpEXT");
1957     out->vkCmdSetPrimitiveRestartEnableEXT =
1958         (PFN_vkCmdSetPrimitiveRestartEnableEXT)dlSymFunc(lib, "vkCmdSetPrimitiveRestartEnableEXT");
1959 #endif
1960 #ifdef VK_QNX_screen_surface
1961     out->vkGetPhysicalDeviceScreenPresentationSupportQNX =
1962         (PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX)dlSymFunc(
1963             lib, "vkGetPhysicalDeviceScreenPresentationSupportQNX");
1964 #endif
1965 #ifdef VK_EXT_color_write_enable
1966     out->vkCmdSetColorWriteEnableEXT =
1967         (PFN_vkCmdSetColorWriteEnableEXT)dlSymFunc(lib, "vkCmdSetColorWriteEnableEXT");
1968 #endif
1969 #ifdef VK_GOOGLE_gfxstream
1970     out->vkMapMemoryIntoAddressSpaceGOOGLE =
1971         (PFN_vkMapMemoryIntoAddressSpaceGOOGLE)dlSymFunc(lib, "vkMapMemoryIntoAddressSpaceGOOGLE");
1972     out->vkUpdateDescriptorSetWithTemplateSizedGOOGLE =
1973         (PFN_vkUpdateDescriptorSetWithTemplateSizedGOOGLE)dlSymFunc(
1974             lib, "vkUpdateDescriptorSetWithTemplateSizedGOOGLE");
1975     out->vkBeginCommandBufferAsyncGOOGLE =
1976         (PFN_vkBeginCommandBufferAsyncGOOGLE)dlSymFunc(lib, "vkBeginCommandBufferAsyncGOOGLE");
1977     out->vkEndCommandBufferAsyncGOOGLE =
1978         (PFN_vkEndCommandBufferAsyncGOOGLE)dlSymFunc(lib, "vkEndCommandBufferAsyncGOOGLE");
1979     out->vkResetCommandBufferAsyncGOOGLE =
1980         (PFN_vkResetCommandBufferAsyncGOOGLE)dlSymFunc(lib, "vkResetCommandBufferAsyncGOOGLE");
1981     out->vkCommandBufferHostSyncGOOGLE =
1982         (PFN_vkCommandBufferHostSyncGOOGLE)dlSymFunc(lib, "vkCommandBufferHostSyncGOOGLE");
1983     out->vkCreateImageWithRequirementsGOOGLE = (PFN_vkCreateImageWithRequirementsGOOGLE)dlSymFunc(
1984         lib, "vkCreateImageWithRequirementsGOOGLE");
1985     out->vkCreateBufferWithRequirementsGOOGLE = (PFN_vkCreateBufferWithRequirementsGOOGLE)dlSymFunc(
1986         lib, "vkCreateBufferWithRequirementsGOOGLE");
1987     out->vkGetMemoryHostAddressInfoGOOGLE =
1988         (PFN_vkGetMemoryHostAddressInfoGOOGLE)dlSymFunc(lib, "vkGetMemoryHostAddressInfoGOOGLE");
1989     out->vkFreeMemorySyncGOOGLE =
1990         (PFN_vkFreeMemorySyncGOOGLE)dlSymFunc(lib, "vkFreeMemorySyncGOOGLE");
1991     out->vkQueueHostSyncGOOGLE = (PFN_vkQueueHostSyncGOOGLE)dlSymFunc(lib, "vkQueueHostSyncGOOGLE");
1992     out->vkQueueSubmitAsyncGOOGLE =
1993         (PFN_vkQueueSubmitAsyncGOOGLE)dlSymFunc(lib, "vkQueueSubmitAsyncGOOGLE");
1994     out->vkQueueWaitIdleAsyncGOOGLE =
1995         (PFN_vkQueueWaitIdleAsyncGOOGLE)dlSymFunc(lib, "vkQueueWaitIdleAsyncGOOGLE");
1996     out->vkQueueBindSparseAsyncGOOGLE =
1997         (PFN_vkQueueBindSparseAsyncGOOGLE)dlSymFunc(lib, "vkQueueBindSparseAsyncGOOGLE");
1998     out->vkGetLinearImageLayoutGOOGLE =
1999         (PFN_vkGetLinearImageLayoutGOOGLE)dlSymFunc(lib, "vkGetLinearImageLayoutGOOGLE");
2000     out->vkGetLinearImageLayout2GOOGLE =
2001         (PFN_vkGetLinearImageLayout2GOOGLE)dlSymFunc(lib, "vkGetLinearImageLayout2GOOGLE");
2002     out->vkQueueFlushCommandsGOOGLE =
2003         (PFN_vkQueueFlushCommandsGOOGLE)dlSymFunc(lib, "vkQueueFlushCommandsGOOGLE");
2004     out->vkQueueCommitDescriptorSetUpdatesGOOGLE =
2005         (PFN_vkQueueCommitDescriptorSetUpdatesGOOGLE)dlSymFunc(
2006             lib, "vkQueueCommitDescriptorSetUpdatesGOOGLE");
2007     out->vkCollectDescriptorPoolIdsGOOGLE =
2008         (PFN_vkCollectDescriptorPoolIdsGOOGLE)dlSymFunc(lib, "vkCollectDescriptorPoolIdsGOOGLE");
2009     out->vkQueueSignalReleaseImageANDROIDAsyncGOOGLE =
2010         (PFN_vkQueueSignalReleaseImageANDROIDAsyncGOOGLE)dlSymFunc(
2011             lib, "vkQueueSignalReleaseImageANDROIDAsyncGOOGLE");
2012     out->vkQueueFlushCommandsFromAuxMemoryGOOGLE =
2013         (PFN_vkQueueFlushCommandsFromAuxMemoryGOOGLE)dlSymFunc(
2014             lib, "vkQueueFlushCommandsFromAuxMemoryGOOGLE");
2015     out->vkGetBlobGOOGLE = (PFN_vkGetBlobGOOGLE)dlSymFunc(lib, "vkGetBlobGOOGLE");
2016     out->vkUpdateDescriptorSetWithTemplateSized2GOOGLE =
2017         (PFN_vkUpdateDescriptorSetWithTemplateSized2GOOGLE)dlSymFunc(
2018             lib, "vkUpdateDescriptorSetWithTemplateSized2GOOGLE");
2019 #endif
2020 #ifdef VK_EXT_multi_draw
2021     out->vkCmdDrawMultiEXT = (PFN_vkCmdDrawMultiEXT)dlSymFunc(lib, "vkCmdDrawMultiEXT");
2022     out->vkCmdDrawMultiIndexedEXT =
2023         (PFN_vkCmdDrawMultiIndexedEXT)dlSymFunc(lib, "vkCmdDrawMultiIndexedEXT");
2024 #endif
2025 #ifdef VK_EXT_opacity_micromap
2026     out->vkCreateMicromapEXT = (PFN_vkCreateMicromapEXT)dlSymFunc(lib, "vkCreateMicromapEXT");
2027     out->vkDestroyMicromapEXT = (PFN_vkDestroyMicromapEXT)dlSymFunc(lib, "vkDestroyMicromapEXT");
2028     out->vkCmdBuildMicromapsEXT =
2029         (PFN_vkCmdBuildMicromapsEXT)dlSymFunc(lib, "vkCmdBuildMicromapsEXT");
2030     out->vkBuildMicromapsEXT = (PFN_vkBuildMicromapsEXT)dlSymFunc(lib, "vkBuildMicromapsEXT");
2031     out->vkCopyMicromapEXT = (PFN_vkCopyMicromapEXT)dlSymFunc(lib, "vkCopyMicromapEXT");
2032     out->vkCopyMicromapToMemoryEXT =
2033         (PFN_vkCopyMicromapToMemoryEXT)dlSymFunc(lib, "vkCopyMicromapToMemoryEXT");
2034     out->vkCopyMemoryToMicromapEXT =
2035         (PFN_vkCopyMemoryToMicromapEXT)dlSymFunc(lib, "vkCopyMemoryToMicromapEXT");
2036     out->vkWriteMicromapsPropertiesEXT =
2037         (PFN_vkWriteMicromapsPropertiesEXT)dlSymFunc(lib, "vkWriteMicromapsPropertiesEXT");
2038     out->vkCmdCopyMicromapEXT = (PFN_vkCmdCopyMicromapEXT)dlSymFunc(lib, "vkCmdCopyMicromapEXT");
2039     out->vkCmdCopyMicromapToMemoryEXT =
2040         (PFN_vkCmdCopyMicromapToMemoryEXT)dlSymFunc(lib, "vkCmdCopyMicromapToMemoryEXT");
2041     out->vkCmdCopyMemoryToMicromapEXT =
2042         (PFN_vkCmdCopyMemoryToMicromapEXT)dlSymFunc(lib, "vkCmdCopyMemoryToMicromapEXT");
2043     out->vkCmdWriteMicromapsPropertiesEXT =
2044         (PFN_vkCmdWriteMicromapsPropertiesEXT)dlSymFunc(lib, "vkCmdWriteMicromapsPropertiesEXT");
2045     out->vkGetDeviceMicromapCompatibilityEXT = (PFN_vkGetDeviceMicromapCompatibilityEXT)dlSymFunc(
2046         lib, "vkGetDeviceMicromapCompatibilityEXT");
2047     out->vkGetMicromapBuildSizesEXT =
2048         (PFN_vkGetMicromapBuildSizesEXT)dlSymFunc(lib, "vkGetMicromapBuildSizesEXT");
2049 #endif
2050 #ifdef VK_HUAWEI_cluster_culling_shader
2051     out->vkCmdDrawClusterHUAWEI =
2052         (PFN_vkCmdDrawClusterHUAWEI)dlSymFunc(lib, "vkCmdDrawClusterHUAWEI");
2053     out->vkCmdDrawClusterIndirectHUAWEI =
2054         (PFN_vkCmdDrawClusterIndirectHUAWEI)dlSymFunc(lib, "vkCmdDrawClusterIndirectHUAWEI");
2055 #endif
2056 #ifdef VK_EXT_pageable_device_local_memory
2057     out->vkSetDeviceMemoryPriorityEXT =
2058         (PFN_vkSetDeviceMemoryPriorityEXT)dlSymFunc(lib, "vkSetDeviceMemoryPriorityEXT");
2059 #endif
2060 #ifdef VK_VALVE_descriptor_set_host_mapping
2061     out->vkGetDescriptorSetLayoutHostMappingInfoVALVE =
2062         (PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE)dlSymFunc(
2063             lib, "vkGetDescriptorSetLayoutHostMappingInfoVALVE");
2064     out->vkGetDescriptorSetHostMappingVALVE = (PFN_vkGetDescriptorSetHostMappingVALVE)dlSymFunc(
2065         lib, "vkGetDescriptorSetHostMappingVALVE");
2066 #endif
2067 #ifdef VK_NV_copy_memory_indirect
2068     out->vkCmdCopyMemoryIndirectNV =
2069         (PFN_vkCmdCopyMemoryIndirectNV)dlSymFunc(lib, "vkCmdCopyMemoryIndirectNV");
2070     out->vkCmdCopyMemoryToImageIndirectNV =
2071         (PFN_vkCmdCopyMemoryToImageIndirectNV)dlSymFunc(lib, "vkCmdCopyMemoryToImageIndirectNV");
2072 #endif
2073 #ifdef VK_NV_memory_decompression
2074     out->vkCmdDecompressMemoryNV =
2075         (PFN_vkCmdDecompressMemoryNV)dlSymFunc(lib, "vkCmdDecompressMemoryNV");
2076     out->vkCmdDecompressMemoryIndirectCountNV = (PFN_vkCmdDecompressMemoryIndirectCountNV)dlSymFunc(
2077         lib, "vkCmdDecompressMemoryIndirectCountNV");
2078 #endif
2079 #ifdef VK_EXT_extended_dynamic_state3
2080     out->vkCmdSetTessellationDomainOriginEXT = (PFN_vkCmdSetTessellationDomainOriginEXT)dlSymFunc(
2081         lib, "vkCmdSetTessellationDomainOriginEXT");
2082     out->vkCmdSetDepthClampEnableEXT =
2083         (PFN_vkCmdSetDepthClampEnableEXT)dlSymFunc(lib, "vkCmdSetDepthClampEnableEXT");
2084     out->vkCmdSetPolygonModeEXT =
2085         (PFN_vkCmdSetPolygonModeEXT)dlSymFunc(lib, "vkCmdSetPolygonModeEXT");
2086     out->vkCmdSetRasterizationSamplesEXT =
2087         (PFN_vkCmdSetRasterizationSamplesEXT)dlSymFunc(lib, "vkCmdSetRasterizationSamplesEXT");
2088     out->vkCmdSetSampleMaskEXT = (PFN_vkCmdSetSampleMaskEXT)dlSymFunc(lib, "vkCmdSetSampleMaskEXT");
2089     out->vkCmdSetAlphaToCoverageEnableEXT =
2090         (PFN_vkCmdSetAlphaToCoverageEnableEXT)dlSymFunc(lib, "vkCmdSetAlphaToCoverageEnableEXT");
2091     out->vkCmdSetAlphaToOneEnableEXT =
2092         (PFN_vkCmdSetAlphaToOneEnableEXT)dlSymFunc(lib, "vkCmdSetAlphaToOneEnableEXT");
2093     out->vkCmdSetLogicOpEnableEXT =
2094         (PFN_vkCmdSetLogicOpEnableEXT)dlSymFunc(lib, "vkCmdSetLogicOpEnableEXT");
2095     out->vkCmdSetColorBlendEnableEXT =
2096         (PFN_vkCmdSetColorBlendEnableEXT)dlSymFunc(lib, "vkCmdSetColorBlendEnableEXT");
2097     out->vkCmdSetColorBlendEquationEXT =
2098         (PFN_vkCmdSetColorBlendEquationEXT)dlSymFunc(lib, "vkCmdSetColorBlendEquationEXT");
2099     out->vkCmdSetColorWriteMaskEXT =
2100         (PFN_vkCmdSetColorWriteMaskEXT)dlSymFunc(lib, "vkCmdSetColorWriteMaskEXT");
2101     out->vkCmdSetRasterizationStreamEXT =
2102         (PFN_vkCmdSetRasterizationStreamEXT)dlSymFunc(lib, "vkCmdSetRasterizationStreamEXT");
2103     out->vkCmdSetConservativeRasterizationModeEXT =
2104         (PFN_vkCmdSetConservativeRasterizationModeEXT)dlSymFunc(
2105             lib, "vkCmdSetConservativeRasterizationModeEXT");
2106     out->vkCmdSetExtraPrimitiveOverestimationSizeEXT =
2107         (PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT)dlSymFunc(
2108             lib, "vkCmdSetExtraPrimitiveOverestimationSizeEXT");
2109     out->vkCmdSetDepthClipEnableEXT =
2110         (PFN_vkCmdSetDepthClipEnableEXT)dlSymFunc(lib, "vkCmdSetDepthClipEnableEXT");
2111     out->vkCmdSetSampleLocationsEnableEXT =
2112         (PFN_vkCmdSetSampleLocationsEnableEXT)dlSymFunc(lib, "vkCmdSetSampleLocationsEnableEXT");
2113     out->vkCmdSetColorBlendAdvancedEXT =
2114         (PFN_vkCmdSetColorBlendAdvancedEXT)dlSymFunc(lib, "vkCmdSetColorBlendAdvancedEXT");
2115     out->vkCmdSetProvokingVertexModeEXT =
2116         (PFN_vkCmdSetProvokingVertexModeEXT)dlSymFunc(lib, "vkCmdSetProvokingVertexModeEXT");
2117     out->vkCmdSetLineRasterizationModeEXT =
2118         (PFN_vkCmdSetLineRasterizationModeEXT)dlSymFunc(lib, "vkCmdSetLineRasterizationModeEXT");
2119     out->vkCmdSetLineStippleEnableEXT =
2120         (PFN_vkCmdSetLineStippleEnableEXT)dlSymFunc(lib, "vkCmdSetLineStippleEnableEXT");
2121     out->vkCmdSetDepthClipNegativeOneToOneEXT = (PFN_vkCmdSetDepthClipNegativeOneToOneEXT)dlSymFunc(
2122         lib, "vkCmdSetDepthClipNegativeOneToOneEXT");
2123     out->vkCmdSetViewportWScalingEnableNV =
2124         (PFN_vkCmdSetViewportWScalingEnableNV)dlSymFunc(lib, "vkCmdSetViewportWScalingEnableNV");
2125     out->vkCmdSetViewportSwizzleNV =
2126         (PFN_vkCmdSetViewportSwizzleNV)dlSymFunc(lib, "vkCmdSetViewportSwizzleNV");
2127     out->vkCmdSetCoverageToColorEnableNV =
2128         (PFN_vkCmdSetCoverageToColorEnableNV)dlSymFunc(lib, "vkCmdSetCoverageToColorEnableNV");
2129     out->vkCmdSetCoverageToColorLocationNV =
2130         (PFN_vkCmdSetCoverageToColorLocationNV)dlSymFunc(lib, "vkCmdSetCoverageToColorLocationNV");
2131     out->vkCmdSetCoverageModulationModeNV =
2132         (PFN_vkCmdSetCoverageModulationModeNV)dlSymFunc(lib, "vkCmdSetCoverageModulationModeNV");
2133     out->vkCmdSetCoverageModulationTableEnableNV =
2134         (PFN_vkCmdSetCoverageModulationTableEnableNV)dlSymFunc(
2135             lib, "vkCmdSetCoverageModulationTableEnableNV");
2136     out->vkCmdSetCoverageModulationTableNV =
2137         (PFN_vkCmdSetCoverageModulationTableNV)dlSymFunc(lib, "vkCmdSetCoverageModulationTableNV");
2138     out->vkCmdSetShadingRateImageEnableNV =
2139         (PFN_vkCmdSetShadingRateImageEnableNV)dlSymFunc(lib, "vkCmdSetShadingRateImageEnableNV");
2140     out->vkCmdSetRepresentativeFragmentTestEnableNV =
2141         (PFN_vkCmdSetRepresentativeFragmentTestEnableNV)dlSymFunc(
2142             lib, "vkCmdSetRepresentativeFragmentTestEnableNV");
2143     out->vkCmdSetCoverageReductionModeNV =
2144         (PFN_vkCmdSetCoverageReductionModeNV)dlSymFunc(lib, "vkCmdSetCoverageReductionModeNV");
2145 #endif
2146 #ifdef VK_EXT_shader_module_identifier
2147     out->vkGetShaderModuleIdentifierEXT =
2148         (PFN_vkGetShaderModuleIdentifierEXT)dlSymFunc(lib, "vkGetShaderModuleIdentifierEXT");
2149     out->vkGetShaderModuleCreateInfoIdentifierEXT =
2150         (PFN_vkGetShaderModuleCreateInfoIdentifierEXT)dlSymFunc(
2151             lib, "vkGetShaderModuleCreateInfoIdentifierEXT");
2152 #endif
2153 #ifdef VK_NV_optical_flow
2154     out->vkGetPhysicalDeviceOpticalFlowImageFormatsNV =
2155         (PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV)dlSymFunc(
2156             lib, "vkGetPhysicalDeviceOpticalFlowImageFormatsNV");
2157     out->vkCreateOpticalFlowSessionNV =
2158         (PFN_vkCreateOpticalFlowSessionNV)dlSymFunc(lib, "vkCreateOpticalFlowSessionNV");
2159     out->vkDestroyOpticalFlowSessionNV =
2160         (PFN_vkDestroyOpticalFlowSessionNV)dlSymFunc(lib, "vkDestroyOpticalFlowSessionNV");
2161     out->vkBindOpticalFlowSessionImageNV =
2162         (PFN_vkBindOpticalFlowSessionImageNV)dlSymFunc(lib, "vkBindOpticalFlowSessionImageNV");
2163     out->vkCmdOpticalFlowExecuteNV =
2164         (PFN_vkCmdOpticalFlowExecuteNV)dlSymFunc(lib, "vkCmdOpticalFlowExecuteNV");
2165 #endif
2166 #ifdef VK_EXT_shader_object
2167     out->vkCreateShadersEXT = (PFN_vkCreateShadersEXT)dlSymFunc(lib, "vkCreateShadersEXT");
2168     out->vkDestroyShaderEXT = (PFN_vkDestroyShaderEXT)dlSymFunc(lib, "vkDestroyShaderEXT");
2169     out->vkGetShaderBinaryDataEXT =
2170         (PFN_vkGetShaderBinaryDataEXT)dlSymFunc(lib, "vkGetShaderBinaryDataEXT");
2171     out->vkCmdBindShadersEXT = (PFN_vkCmdBindShadersEXT)dlSymFunc(lib, "vkCmdBindShadersEXT");
2172 #endif
2173 #ifdef VK_QCOM_tile_properties
2174     out->vkGetFramebufferTilePropertiesQCOM = (PFN_vkGetFramebufferTilePropertiesQCOM)dlSymFunc(
2175         lib, "vkGetFramebufferTilePropertiesQCOM");
2176     out->vkGetDynamicRenderingTilePropertiesQCOM =
2177         (PFN_vkGetDynamicRenderingTilePropertiesQCOM)dlSymFunc(
2178             lib, "vkGetDynamicRenderingTilePropertiesQCOM");
2179 #endif
2180 #ifdef VK_EXT_attachment_feedback_loop_dynamic_state
2181     out->vkCmdSetAttachmentFeedbackLoopEnableEXT =
2182         (PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT)dlSymFunc(
2183             lib, "vkCmdSetAttachmentFeedbackLoopEnableEXT");
2184 #endif
2185 #ifdef VK_KHR_acceleration_structure
2186     out->vkCreateAccelerationStructureKHR =
2187         (PFN_vkCreateAccelerationStructureKHR)dlSymFunc(lib, "vkCreateAccelerationStructureKHR");
2188     out->vkDestroyAccelerationStructureKHR =
2189         (PFN_vkDestroyAccelerationStructureKHR)dlSymFunc(lib, "vkDestroyAccelerationStructureKHR");
2190     out->vkCmdBuildAccelerationStructuresKHR = (PFN_vkCmdBuildAccelerationStructuresKHR)dlSymFunc(
2191         lib, "vkCmdBuildAccelerationStructuresKHR");
2192     out->vkCmdBuildAccelerationStructuresIndirectKHR =
2193         (PFN_vkCmdBuildAccelerationStructuresIndirectKHR)dlSymFunc(
2194             lib, "vkCmdBuildAccelerationStructuresIndirectKHR");
2195     out->vkBuildAccelerationStructuresKHR =
2196         (PFN_vkBuildAccelerationStructuresKHR)dlSymFunc(lib, "vkBuildAccelerationStructuresKHR");
2197     out->vkCopyAccelerationStructureKHR =
2198         (PFN_vkCopyAccelerationStructureKHR)dlSymFunc(lib, "vkCopyAccelerationStructureKHR");
2199     out->vkCopyAccelerationStructureToMemoryKHR =
2200         (PFN_vkCopyAccelerationStructureToMemoryKHR)dlSymFunc(
2201             lib, "vkCopyAccelerationStructureToMemoryKHR");
2202     out->vkCopyMemoryToAccelerationStructureKHR =
2203         (PFN_vkCopyMemoryToAccelerationStructureKHR)dlSymFunc(
2204             lib, "vkCopyMemoryToAccelerationStructureKHR");
2205     out->vkWriteAccelerationStructuresPropertiesKHR =
2206         (PFN_vkWriteAccelerationStructuresPropertiesKHR)dlSymFunc(
2207             lib, "vkWriteAccelerationStructuresPropertiesKHR");
2208     out->vkCmdCopyAccelerationStructureKHR =
2209         (PFN_vkCmdCopyAccelerationStructureKHR)dlSymFunc(lib, "vkCmdCopyAccelerationStructureKHR");
2210     out->vkCmdCopyAccelerationStructureToMemoryKHR =
2211         (PFN_vkCmdCopyAccelerationStructureToMemoryKHR)dlSymFunc(
2212             lib, "vkCmdCopyAccelerationStructureToMemoryKHR");
2213     out->vkCmdCopyMemoryToAccelerationStructureKHR =
2214         (PFN_vkCmdCopyMemoryToAccelerationStructureKHR)dlSymFunc(
2215             lib, "vkCmdCopyMemoryToAccelerationStructureKHR");
2216     out->vkGetAccelerationStructureDeviceAddressKHR =
2217         (PFN_vkGetAccelerationStructureDeviceAddressKHR)dlSymFunc(
2218             lib, "vkGetAccelerationStructureDeviceAddressKHR");
2219     out->vkCmdWriteAccelerationStructuresPropertiesKHR =
2220         (PFN_vkCmdWriteAccelerationStructuresPropertiesKHR)dlSymFunc(
2221             lib, "vkCmdWriteAccelerationStructuresPropertiesKHR");
2222     out->vkGetDeviceAccelerationStructureCompatibilityKHR =
2223         (PFN_vkGetDeviceAccelerationStructureCompatibilityKHR)dlSymFunc(
2224             lib, "vkGetDeviceAccelerationStructureCompatibilityKHR");
2225     out->vkGetAccelerationStructureBuildSizesKHR =
2226         (PFN_vkGetAccelerationStructureBuildSizesKHR)dlSymFunc(
2227             lib, "vkGetAccelerationStructureBuildSizesKHR");
2228 #endif
2229 #ifdef VK_KHR_ray_tracing_pipeline
2230     out->vkCmdTraceRaysKHR = (PFN_vkCmdTraceRaysKHR)dlSymFunc(lib, "vkCmdTraceRaysKHR");
2231     out->vkCreateRayTracingPipelinesKHR =
2232         (PFN_vkCreateRayTracingPipelinesKHR)dlSymFunc(lib, "vkCreateRayTracingPipelinesKHR");
2233     out->vkGetRayTracingCaptureReplayShaderGroupHandlesKHR =
2234         (PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR)dlSymFunc(
2235             lib, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR");
2236     out->vkCmdTraceRaysIndirectKHR =
2237         (PFN_vkCmdTraceRaysIndirectKHR)dlSymFunc(lib, "vkCmdTraceRaysIndirectKHR");
2238     out->vkGetRayTracingShaderGroupStackSizeKHR =
2239         (PFN_vkGetRayTracingShaderGroupStackSizeKHR)dlSymFunc(
2240             lib, "vkGetRayTracingShaderGroupStackSizeKHR");
2241     out->vkCmdSetRayTracingPipelineStackSizeKHR =
2242         (PFN_vkCmdSetRayTracingPipelineStackSizeKHR)dlSymFunc(
2243             lib, "vkCmdSetRayTracingPipelineStackSizeKHR");
2244 #endif
2245 #ifdef VK_EXT_mesh_shader
2246     out->vkCmdDrawMeshTasksEXT = (PFN_vkCmdDrawMeshTasksEXT)dlSymFunc(lib, "vkCmdDrawMeshTasksEXT");
2247     out->vkCmdDrawMeshTasksIndirectEXT =
2248         (PFN_vkCmdDrawMeshTasksIndirectEXT)dlSymFunc(lib, "vkCmdDrawMeshTasksIndirectEXT");
2249     out->vkCmdDrawMeshTasksIndirectCountEXT = (PFN_vkCmdDrawMeshTasksIndirectCountEXT)dlSymFunc(
2250         lib, "vkCmdDrawMeshTasksIndirectCountEXT");
2251 #endif
2252 }
2253 
init_vulkan_dispatch_from_instance(VulkanDispatch * vk,VkInstance instance,VulkanDispatch * out)2254 void init_vulkan_dispatch_from_instance(VulkanDispatch* vk, VkInstance instance,
2255                                         VulkanDispatch* out) {
2256     memset(out, 0x0, sizeof(VulkanDispatch));
2257 #ifdef VK_VERSION_1_0
2258     out->vkDestroyInstance =
2259         (PFN_vkDestroyInstance)vk->vkGetInstanceProcAddr(instance, "vkDestroyInstance");
2260     out->vkEnumeratePhysicalDevices = (PFN_vkEnumeratePhysicalDevices)vk->vkGetInstanceProcAddr(
2261         instance, "vkEnumeratePhysicalDevices");
2262     out->vkGetPhysicalDeviceFeatures = (PFN_vkGetPhysicalDeviceFeatures)vk->vkGetInstanceProcAddr(
2263         instance, "vkGetPhysicalDeviceFeatures");
2264     out->vkGetPhysicalDeviceFormatProperties =
2265         (PFN_vkGetPhysicalDeviceFormatProperties)vk->vkGetInstanceProcAddr(
2266             instance, "vkGetPhysicalDeviceFormatProperties");
2267     out->vkGetPhysicalDeviceImageFormatProperties =
2268         (PFN_vkGetPhysicalDeviceImageFormatProperties)vk->vkGetInstanceProcAddr(
2269             instance, "vkGetPhysicalDeviceImageFormatProperties");
2270     out->vkGetPhysicalDeviceProperties =
2271         (PFN_vkGetPhysicalDeviceProperties)vk->vkGetInstanceProcAddr(
2272             instance, "vkGetPhysicalDeviceProperties");
2273     out->vkGetPhysicalDeviceQueueFamilyProperties =
2274         (PFN_vkGetPhysicalDeviceQueueFamilyProperties)vk->vkGetInstanceProcAddr(
2275             instance, "vkGetPhysicalDeviceQueueFamilyProperties");
2276     out->vkGetPhysicalDeviceMemoryProperties =
2277         (PFN_vkGetPhysicalDeviceMemoryProperties)vk->vkGetInstanceProcAddr(
2278             instance, "vkGetPhysicalDeviceMemoryProperties");
2279     out->vkGetInstanceProcAddr =
2280         (PFN_vkGetInstanceProcAddr)vk->vkGetInstanceProcAddr(instance, "vkGetInstanceProcAddr");
2281     out->vkCreateDevice = (PFN_vkCreateDevice)vk->vkGetInstanceProcAddr(instance, "vkCreateDevice");
2282     out->vkDestroyDevice =
2283         (PFN_vkDestroyDevice)vk->vkGetInstanceProcAddr(instance, "vkDestroyDevice");
2284     out->vkEnumerateDeviceExtensionProperties =
2285         (PFN_vkEnumerateDeviceExtensionProperties)vk->vkGetInstanceProcAddr(
2286             instance, "vkEnumerateDeviceExtensionProperties");
2287     out->vkEnumerateDeviceLayerProperties =
2288         (PFN_vkEnumerateDeviceLayerProperties)vk->vkGetInstanceProcAddr(
2289             instance, "vkEnumerateDeviceLayerProperties");
2290     out->vkCreateInstance =
2291         (PFN_vkCreateInstance)vk->vkGetInstanceProcAddr(instance, "vkCreateInstance");
2292     out->vkEnumerateInstanceExtensionProperties =
2293         (PFN_vkEnumerateInstanceExtensionProperties)vk->vkGetInstanceProcAddr(
2294             instance, "vkEnumerateInstanceExtensionProperties");
2295     out->vkEnumerateInstanceLayerProperties =
2296         (PFN_vkEnumerateInstanceLayerProperties)vk->vkGetInstanceProcAddr(
2297             instance, "vkEnumerateInstanceLayerProperties");
2298     out->vkGetDeviceProcAddr =
2299         (PFN_vkGetDeviceProcAddr)vk->vkGetInstanceProcAddr(instance, "vkGetDeviceProcAddr");
2300     out->vkGetPhysicalDeviceSparseImageFormatProperties =
2301         (PFN_vkGetPhysicalDeviceSparseImageFormatProperties)vk->vkGetInstanceProcAddr(
2302             instance, "vkGetPhysicalDeviceSparseImageFormatProperties");
2303 #endif
2304 #ifdef VK_VERSION_1_1
2305     out->vkEnumerateInstanceVersion = (PFN_vkEnumerateInstanceVersion)vk->vkGetInstanceProcAddr(
2306         instance, "vkEnumerateInstanceVersion");
2307     out->vkEnumeratePhysicalDeviceGroups =
2308         (PFN_vkEnumeratePhysicalDeviceGroups)vk->vkGetInstanceProcAddr(
2309             instance, "vkEnumeratePhysicalDeviceGroups");
2310     out->vkGetPhysicalDeviceFeatures2 = (PFN_vkGetPhysicalDeviceFeatures2)vk->vkGetInstanceProcAddr(
2311         instance, "vkGetPhysicalDeviceFeatures2");
2312     out->vkGetPhysicalDeviceProperties2 =
2313         (PFN_vkGetPhysicalDeviceProperties2)vk->vkGetInstanceProcAddr(
2314             instance, "vkGetPhysicalDeviceProperties2");
2315     out->vkGetPhysicalDeviceFormatProperties2 =
2316         (PFN_vkGetPhysicalDeviceFormatProperties2)vk->vkGetInstanceProcAddr(
2317             instance, "vkGetPhysicalDeviceFormatProperties2");
2318     out->vkGetPhysicalDeviceImageFormatProperties2 =
2319         (PFN_vkGetPhysicalDeviceImageFormatProperties2)vk->vkGetInstanceProcAddr(
2320             instance, "vkGetPhysicalDeviceImageFormatProperties2");
2321     out->vkGetPhysicalDeviceQueueFamilyProperties2 =
2322         (PFN_vkGetPhysicalDeviceQueueFamilyProperties2)vk->vkGetInstanceProcAddr(
2323             instance, "vkGetPhysicalDeviceQueueFamilyProperties2");
2324     out->vkGetPhysicalDeviceMemoryProperties2 =
2325         (PFN_vkGetPhysicalDeviceMemoryProperties2)vk->vkGetInstanceProcAddr(
2326             instance, "vkGetPhysicalDeviceMemoryProperties2");
2327     out->vkGetPhysicalDeviceSparseImageFormatProperties2 =
2328         (PFN_vkGetPhysicalDeviceSparseImageFormatProperties2)vk->vkGetInstanceProcAddr(
2329             instance, "vkGetPhysicalDeviceSparseImageFormatProperties2");
2330     out->vkGetPhysicalDeviceExternalBufferProperties =
2331         (PFN_vkGetPhysicalDeviceExternalBufferProperties)vk->vkGetInstanceProcAddr(
2332             instance, "vkGetPhysicalDeviceExternalBufferProperties");
2333     out->vkGetPhysicalDeviceExternalFenceProperties =
2334         (PFN_vkGetPhysicalDeviceExternalFenceProperties)vk->vkGetInstanceProcAddr(
2335             instance, "vkGetPhysicalDeviceExternalFenceProperties");
2336     out->vkGetPhysicalDeviceExternalSemaphoreProperties =
2337         (PFN_vkGetPhysicalDeviceExternalSemaphoreProperties)vk->vkGetInstanceProcAddr(
2338             instance, "vkGetPhysicalDeviceExternalSemaphoreProperties");
2339 #endif
2340 #ifdef VK_KHR_surface
2341     out->vkDestroySurfaceKHR =
2342         (PFN_vkDestroySurfaceKHR)vk->vkGetInstanceProcAddr(instance, "vkDestroySurfaceKHR");
2343 #endif
2344 #ifdef VK_KHR_swapchain
2345     out->vkCreateSwapchainKHR =
2346         (PFN_vkCreateSwapchainKHR)vk->vkGetInstanceProcAddr(instance, "vkCreateSwapchainKHR");
2347     out->vkDestroySwapchainKHR =
2348         (PFN_vkDestroySwapchainKHR)vk->vkGetInstanceProcAddr(instance, "vkDestroySwapchainKHR");
2349     out->vkGetSwapchainImagesKHR =
2350         (PFN_vkGetSwapchainImagesKHR)vk->vkGetInstanceProcAddr(instance, "vkGetSwapchainImagesKHR");
2351     out->vkAcquireNextImageKHR =
2352         (PFN_vkAcquireNextImageKHR)vk->vkGetInstanceProcAddr(instance, "vkAcquireNextImageKHR");
2353     out->vkQueuePresentKHR =
2354         (PFN_vkQueuePresentKHR)vk->vkGetInstanceProcAddr(instance, "vkQueuePresentKHR");
2355 #endif
2356 #ifdef VK_KHR_display
2357     out->vkCreateDisplayPlaneSurfaceKHR =
2358         (PFN_vkCreateDisplayPlaneSurfaceKHR)vk->vkGetInstanceProcAddr(
2359             instance, "vkCreateDisplayPlaneSurfaceKHR");
2360 #endif
2361 #ifdef VK_KHR_xlib_surface
2362     out->vkCreateXlibSurfaceKHR =
2363         (PFN_vkCreateXlibSurfaceKHR)vk->vkGetInstanceProcAddr(instance, "vkCreateXlibSurfaceKHR");
2364     out->vkGetPhysicalDeviceXlibPresentationSupportKHR =
2365         (PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR)vk->vkGetInstanceProcAddr(
2366             instance, "vkGetPhysicalDeviceXlibPresentationSupportKHR");
2367 #endif
2368 #ifdef VK_KHR_xcb_surface
2369     out->vkCreateXcbSurfaceKHR =
2370         (PFN_vkCreateXcbSurfaceKHR)vk->vkGetInstanceProcAddr(instance, "vkCreateXcbSurfaceKHR");
2371     out->vkGetPhysicalDeviceXcbPresentationSupportKHR =
2372         (PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR)vk->vkGetInstanceProcAddr(
2373             instance, "vkGetPhysicalDeviceXcbPresentationSupportKHR");
2374 #endif
2375 #ifdef VK_KHR_wayland_surface
2376     out->vkCreateWaylandSurfaceKHR = (PFN_vkCreateWaylandSurfaceKHR)vk->vkGetInstanceProcAddr(
2377         instance, "vkCreateWaylandSurfaceKHR");
2378 #endif
2379 #ifdef VK_KHR_android_surface
2380     out->vkCreateAndroidSurfaceKHR = (PFN_vkCreateAndroidSurfaceKHR)vk->vkGetInstanceProcAddr(
2381         instance, "vkCreateAndroidSurfaceKHR");
2382 #endif
2383 #ifdef VK_KHR_win32_surface
2384     out->vkCreateWin32SurfaceKHR =
2385         (PFN_vkCreateWin32SurfaceKHR)vk->vkGetInstanceProcAddr(instance, "vkCreateWin32SurfaceKHR");
2386     out->vkGetPhysicalDeviceWin32PresentationSupportKHR =
2387         (PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)vk->vkGetInstanceProcAddr(
2388             instance, "vkGetPhysicalDeviceWin32PresentationSupportKHR");
2389 #endif
2390 #ifdef VK_KHR_device_group_creation
2391     out->vkEnumeratePhysicalDeviceGroupsKHR =
2392         (PFN_vkEnumeratePhysicalDeviceGroupsKHR)vk->vkGetInstanceProcAddr(
2393             instance, "vkEnumeratePhysicalDeviceGroupsKHR");
2394 #endif
2395 #ifdef VK_EXT_debug_report
2396     out->vkCreateDebugReportCallbackEXT =
2397         (PFN_vkCreateDebugReportCallbackEXT)vk->vkGetInstanceProcAddr(
2398             instance, "vkCreateDebugReportCallbackEXT");
2399     out->vkDestroyDebugReportCallbackEXT =
2400         (PFN_vkDestroyDebugReportCallbackEXT)vk->vkGetInstanceProcAddr(
2401             instance, "vkDestroyDebugReportCallbackEXT");
2402     out->vkDebugReportMessageEXT =
2403         (PFN_vkDebugReportMessageEXT)vk->vkGetInstanceProcAddr(instance, "vkDebugReportMessageEXT");
2404 #endif
2405 #ifdef VK_GGP_stream_descriptor_surface
2406     out->vkCreateStreamDescriptorSurfaceGGP =
2407         (PFN_vkCreateStreamDescriptorSurfaceGGP)vk->vkGetInstanceProcAddr(
2408             instance, "vkCreateStreamDescriptorSurfaceGGP");
2409 #endif
2410 #ifdef VK_NN_vi_surface
2411     out->vkCreateViSurfaceNN =
2412         (PFN_vkCreateViSurfaceNN)vk->vkGetInstanceProcAddr(instance, "vkCreateViSurfaceNN");
2413 #endif
2414 #ifdef VK_MVK_ios_surface
2415     out->vkCreateIOSSurfaceMVK =
2416         (PFN_vkCreateIOSSurfaceMVK)vk->vkGetInstanceProcAddr(instance, "vkCreateIOSSurfaceMVK");
2417 #endif
2418 #ifdef VK_MVK_macos_surface
2419     out->vkCreateMacOSSurfaceMVK =
2420         (PFN_vkCreateMacOSSurfaceMVK)vk->vkGetInstanceProcAddr(instance, "vkCreateMacOSSurfaceMVK");
2421 #endif
2422 #ifdef VK_EXT_debug_utils
2423     out->vkCreateDebugUtilsMessengerEXT =
2424         (PFN_vkCreateDebugUtilsMessengerEXT)vk->vkGetInstanceProcAddr(
2425             instance, "vkCreateDebugUtilsMessengerEXT");
2426     out->vkDestroyDebugUtilsMessengerEXT =
2427         (PFN_vkDestroyDebugUtilsMessengerEXT)vk->vkGetInstanceProcAddr(
2428             instance, "vkDestroyDebugUtilsMessengerEXT");
2429     out->vkSubmitDebugUtilsMessageEXT = (PFN_vkSubmitDebugUtilsMessageEXT)vk->vkGetInstanceProcAddr(
2430         instance, "vkSubmitDebugUtilsMessageEXT");
2431 #endif
2432 #ifdef VK_FUCHSIA_imagepipe_surface
2433     out->vkCreateImagePipeSurfaceFUCHSIA =
2434         (PFN_vkCreateImagePipeSurfaceFUCHSIA)vk->vkGetInstanceProcAddr(
2435             instance, "vkCreateImagePipeSurfaceFUCHSIA");
2436 #endif
2437 #ifdef VK_EXT_metal_surface
2438     out->vkCreateMetalSurfaceEXT =
2439         (PFN_vkCreateMetalSurfaceEXT)vk->vkGetInstanceProcAddr(instance, "vkCreateMetalSurfaceEXT");
2440 #endif
2441 #ifdef VK_EXT_headless_surface
2442     out->vkCreateHeadlessSurfaceEXT = (PFN_vkCreateHeadlessSurfaceEXT)vk->vkGetInstanceProcAddr(
2443         instance, "vkCreateHeadlessSurfaceEXT");
2444 #endif
2445 #ifdef VK_EXT_directfb_surface
2446     out->vkCreateDirectFBSurfaceEXT = (PFN_vkCreateDirectFBSurfaceEXT)vk->vkGetInstanceProcAddr(
2447         instance, "vkCreateDirectFBSurfaceEXT");
2448 #endif
2449 #ifdef VK_QNX_screen_surface
2450     out->vkCreateScreenSurfaceQNX = (PFN_vkCreateScreenSurfaceQNX)vk->vkGetInstanceProcAddr(
2451         instance, "vkCreateScreenSurfaceQNX");
2452 #endif
2453 #ifdef VK_VERSION_1_0
2454     out->vkGetDeviceQueue =
2455         (PFN_vkGetDeviceQueue)vk->vkGetInstanceProcAddr(instance, "vkGetDeviceQueue");
2456     out->vkQueueSubmit = (PFN_vkQueueSubmit)vk->vkGetInstanceProcAddr(instance, "vkQueueSubmit");
2457     out->vkQueueWaitIdle =
2458         (PFN_vkQueueWaitIdle)vk->vkGetInstanceProcAddr(instance, "vkQueueWaitIdle");
2459     out->vkDeviceWaitIdle =
2460         (PFN_vkDeviceWaitIdle)vk->vkGetInstanceProcAddr(instance, "vkDeviceWaitIdle");
2461     out->vkAllocateMemory =
2462         (PFN_vkAllocateMemory)vk->vkGetInstanceProcAddr(instance, "vkAllocateMemory");
2463     out->vkFreeMemory = (PFN_vkFreeMemory)vk->vkGetInstanceProcAddr(instance, "vkFreeMemory");
2464     out->vkMapMemory = (PFN_vkMapMemory)vk->vkGetInstanceProcAddr(instance, "vkMapMemory");
2465     out->vkUnmapMemory = (PFN_vkUnmapMemory)vk->vkGetInstanceProcAddr(instance, "vkUnmapMemory");
2466     out->vkFlushMappedMemoryRanges = (PFN_vkFlushMappedMemoryRanges)vk->vkGetInstanceProcAddr(
2467         instance, "vkFlushMappedMemoryRanges");
2468     out->vkInvalidateMappedMemoryRanges =
2469         (PFN_vkInvalidateMappedMemoryRanges)vk->vkGetInstanceProcAddr(
2470             instance, "vkInvalidateMappedMemoryRanges");
2471     out->vkGetDeviceMemoryCommitment = (PFN_vkGetDeviceMemoryCommitment)vk->vkGetInstanceProcAddr(
2472         instance, "vkGetDeviceMemoryCommitment");
2473     out->vkBindBufferMemory =
2474         (PFN_vkBindBufferMemory)vk->vkGetInstanceProcAddr(instance, "vkBindBufferMemory");
2475     out->vkBindImageMemory =
2476         (PFN_vkBindImageMemory)vk->vkGetInstanceProcAddr(instance, "vkBindImageMemory");
2477     out->vkGetBufferMemoryRequirements =
2478         (PFN_vkGetBufferMemoryRequirements)vk->vkGetInstanceProcAddr(
2479             instance, "vkGetBufferMemoryRequirements");
2480     out->vkGetImageMemoryRequirements = (PFN_vkGetImageMemoryRequirements)vk->vkGetInstanceProcAddr(
2481         instance, "vkGetImageMemoryRequirements");
2482     out->vkGetImageSparseMemoryRequirements =
2483         (PFN_vkGetImageSparseMemoryRequirements)vk->vkGetInstanceProcAddr(
2484             instance, "vkGetImageSparseMemoryRequirements");
2485     out->vkQueueBindSparse =
2486         (PFN_vkQueueBindSparse)vk->vkGetInstanceProcAddr(instance, "vkQueueBindSparse");
2487     out->vkCreateFence = (PFN_vkCreateFence)vk->vkGetInstanceProcAddr(instance, "vkCreateFence");
2488     out->vkDestroyFence = (PFN_vkDestroyFence)vk->vkGetInstanceProcAddr(instance, "vkDestroyFence");
2489     out->vkResetFences = (PFN_vkResetFences)vk->vkGetInstanceProcAddr(instance, "vkResetFences");
2490     out->vkGetFenceStatus =
2491         (PFN_vkGetFenceStatus)vk->vkGetInstanceProcAddr(instance, "vkGetFenceStatus");
2492     out->vkWaitForFences =
2493         (PFN_vkWaitForFences)vk->vkGetInstanceProcAddr(instance, "vkWaitForFences");
2494     out->vkCreateSemaphore =
2495         (PFN_vkCreateSemaphore)vk->vkGetInstanceProcAddr(instance, "vkCreateSemaphore");
2496     out->vkDestroySemaphore =
2497         (PFN_vkDestroySemaphore)vk->vkGetInstanceProcAddr(instance, "vkDestroySemaphore");
2498     out->vkCreateEvent = (PFN_vkCreateEvent)vk->vkGetInstanceProcAddr(instance, "vkCreateEvent");
2499     out->vkDestroyEvent = (PFN_vkDestroyEvent)vk->vkGetInstanceProcAddr(instance, "vkDestroyEvent");
2500     out->vkGetEventStatus =
2501         (PFN_vkGetEventStatus)vk->vkGetInstanceProcAddr(instance, "vkGetEventStatus");
2502     out->vkSetEvent = (PFN_vkSetEvent)vk->vkGetInstanceProcAddr(instance, "vkSetEvent");
2503     out->vkResetEvent = (PFN_vkResetEvent)vk->vkGetInstanceProcAddr(instance, "vkResetEvent");
2504     out->vkCreateQueryPool =
2505         (PFN_vkCreateQueryPool)vk->vkGetInstanceProcAddr(instance, "vkCreateQueryPool");
2506     out->vkDestroyQueryPool =
2507         (PFN_vkDestroyQueryPool)vk->vkGetInstanceProcAddr(instance, "vkDestroyQueryPool");
2508     out->vkGetQueryPoolResults =
2509         (PFN_vkGetQueryPoolResults)vk->vkGetInstanceProcAddr(instance, "vkGetQueryPoolResults");
2510     out->vkCreateBuffer = (PFN_vkCreateBuffer)vk->vkGetInstanceProcAddr(instance, "vkCreateBuffer");
2511     out->vkDestroyBuffer =
2512         (PFN_vkDestroyBuffer)vk->vkGetInstanceProcAddr(instance, "vkDestroyBuffer");
2513     out->vkCreateBufferView =
2514         (PFN_vkCreateBufferView)vk->vkGetInstanceProcAddr(instance, "vkCreateBufferView");
2515     out->vkDestroyBufferView =
2516         (PFN_vkDestroyBufferView)vk->vkGetInstanceProcAddr(instance, "vkDestroyBufferView");
2517     out->vkCreateImage = (PFN_vkCreateImage)vk->vkGetInstanceProcAddr(instance, "vkCreateImage");
2518     out->vkDestroyImage = (PFN_vkDestroyImage)vk->vkGetInstanceProcAddr(instance, "vkDestroyImage");
2519     out->vkGetImageSubresourceLayout = (PFN_vkGetImageSubresourceLayout)vk->vkGetInstanceProcAddr(
2520         instance, "vkGetImageSubresourceLayout");
2521     out->vkCreateImageView =
2522         (PFN_vkCreateImageView)vk->vkGetInstanceProcAddr(instance, "vkCreateImageView");
2523     out->vkDestroyImageView =
2524         (PFN_vkDestroyImageView)vk->vkGetInstanceProcAddr(instance, "vkDestroyImageView");
2525     out->vkCreateShaderModule =
2526         (PFN_vkCreateShaderModule)vk->vkGetInstanceProcAddr(instance, "vkCreateShaderModule");
2527     out->vkDestroyShaderModule =
2528         (PFN_vkDestroyShaderModule)vk->vkGetInstanceProcAddr(instance, "vkDestroyShaderModule");
2529     out->vkCreatePipelineCache =
2530         (PFN_vkCreatePipelineCache)vk->vkGetInstanceProcAddr(instance, "vkCreatePipelineCache");
2531     out->vkDestroyPipelineCache =
2532         (PFN_vkDestroyPipelineCache)vk->vkGetInstanceProcAddr(instance, "vkDestroyPipelineCache");
2533     out->vkGetPipelineCacheData =
2534         (PFN_vkGetPipelineCacheData)vk->vkGetInstanceProcAddr(instance, "vkGetPipelineCacheData");
2535     out->vkMergePipelineCaches =
2536         (PFN_vkMergePipelineCaches)vk->vkGetInstanceProcAddr(instance, "vkMergePipelineCaches");
2537     out->vkCreateGraphicsPipelines = (PFN_vkCreateGraphicsPipelines)vk->vkGetInstanceProcAddr(
2538         instance, "vkCreateGraphicsPipelines");
2539     out->vkCreateComputePipelines = (PFN_vkCreateComputePipelines)vk->vkGetInstanceProcAddr(
2540         instance, "vkCreateComputePipelines");
2541     out->vkDestroyPipeline =
2542         (PFN_vkDestroyPipeline)vk->vkGetInstanceProcAddr(instance, "vkDestroyPipeline");
2543     out->vkCreatePipelineLayout =
2544         (PFN_vkCreatePipelineLayout)vk->vkGetInstanceProcAddr(instance, "vkCreatePipelineLayout");
2545     out->vkDestroyPipelineLayout =
2546         (PFN_vkDestroyPipelineLayout)vk->vkGetInstanceProcAddr(instance, "vkDestroyPipelineLayout");
2547     out->vkCreateSampler =
2548         (PFN_vkCreateSampler)vk->vkGetInstanceProcAddr(instance, "vkCreateSampler");
2549     out->vkDestroySampler =
2550         (PFN_vkDestroySampler)vk->vkGetInstanceProcAddr(instance, "vkDestroySampler");
2551     out->vkCreateDescriptorSetLayout = (PFN_vkCreateDescriptorSetLayout)vk->vkGetInstanceProcAddr(
2552         instance, "vkCreateDescriptorSetLayout");
2553     out->vkDestroyDescriptorSetLayout = (PFN_vkDestroyDescriptorSetLayout)vk->vkGetInstanceProcAddr(
2554         instance, "vkDestroyDescriptorSetLayout");
2555     out->vkCreateDescriptorPool =
2556         (PFN_vkCreateDescriptorPool)vk->vkGetInstanceProcAddr(instance, "vkCreateDescriptorPool");
2557     out->vkDestroyDescriptorPool =
2558         (PFN_vkDestroyDescriptorPool)vk->vkGetInstanceProcAddr(instance, "vkDestroyDescriptorPool");
2559     out->vkResetDescriptorPool =
2560         (PFN_vkResetDescriptorPool)vk->vkGetInstanceProcAddr(instance, "vkResetDescriptorPool");
2561     out->vkAllocateDescriptorSets = (PFN_vkAllocateDescriptorSets)vk->vkGetInstanceProcAddr(
2562         instance, "vkAllocateDescriptorSets");
2563     out->vkFreeDescriptorSets =
2564         (PFN_vkFreeDescriptorSets)vk->vkGetInstanceProcAddr(instance, "vkFreeDescriptorSets");
2565     out->vkUpdateDescriptorSets =
2566         (PFN_vkUpdateDescriptorSets)vk->vkGetInstanceProcAddr(instance, "vkUpdateDescriptorSets");
2567     out->vkCreateFramebuffer =
2568         (PFN_vkCreateFramebuffer)vk->vkGetInstanceProcAddr(instance, "vkCreateFramebuffer");
2569     out->vkDestroyFramebuffer =
2570         (PFN_vkDestroyFramebuffer)vk->vkGetInstanceProcAddr(instance, "vkDestroyFramebuffer");
2571     out->vkCreateRenderPass =
2572         (PFN_vkCreateRenderPass)vk->vkGetInstanceProcAddr(instance, "vkCreateRenderPass");
2573     out->vkDestroyRenderPass =
2574         (PFN_vkDestroyRenderPass)vk->vkGetInstanceProcAddr(instance, "vkDestroyRenderPass");
2575     out->vkGetRenderAreaGranularity = (PFN_vkGetRenderAreaGranularity)vk->vkGetInstanceProcAddr(
2576         instance, "vkGetRenderAreaGranularity");
2577     out->vkCreateCommandPool =
2578         (PFN_vkCreateCommandPool)vk->vkGetInstanceProcAddr(instance, "vkCreateCommandPool");
2579     out->vkDestroyCommandPool =
2580         (PFN_vkDestroyCommandPool)vk->vkGetInstanceProcAddr(instance, "vkDestroyCommandPool");
2581     out->vkResetCommandPool =
2582         (PFN_vkResetCommandPool)vk->vkGetInstanceProcAddr(instance, "vkResetCommandPool");
2583     out->vkAllocateCommandBuffers = (PFN_vkAllocateCommandBuffers)vk->vkGetInstanceProcAddr(
2584         instance, "vkAllocateCommandBuffers");
2585     out->vkFreeCommandBuffers =
2586         (PFN_vkFreeCommandBuffers)vk->vkGetInstanceProcAddr(instance, "vkFreeCommandBuffers");
2587     out->vkBeginCommandBuffer =
2588         (PFN_vkBeginCommandBuffer)vk->vkGetInstanceProcAddr(instance, "vkBeginCommandBuffer");
2589     out->vkEndCommandBuffer =
2590         (PFN_vkEndCommandBuffer)vk->vkGetInstanceProcAddr(instance, "vkEndCommandBuffer");
2591     out->vkResetCommandBuffer =
2592         (PFN_vkResetCommandBuffer)vk->vkGetInstanceProcAddr(instance, "vkResetCommandBuffer");
2593     out->vkCmdBindPipeline =
2594         (PFN_vkCmdBindPipeline)vk->vkGetInstanceProcAddr(instance, "vkCmdBindPipeline");
2595     out->vkCmdSetViewport =
2596         (PFN_vkCmdSetViewport)vk->vkGetInstanceProcAddr(instance, "vkCmdSetViewport");
2597     out->vkCmdSetScissor =
2598         (PFN_vkCmdSetScissor)vk->vkGetInstanceProcAddr(instance, "vkCmdSetScissor");
2599     out->vkCmdSetLineWidth =
2600         (PFN_vkCmdSetLineWidth)vk->vkGetInstanceProcAddr(instance, "vkCmdSetLineWidth");
2601     out->vkCmdSetDepthBias =
2602         (PFN_vkCmdSetDepthBias)vk->vkGetInstanceProcAddr(instance, "vkCmdSetDepthBias");
2603     out->vkCmdSetBlendConstants =
2604         (PFN_vkCmdSetBlendConstants)vk->vkGetInstanceProcAddr(instance, "vkCmdSetBlendConstants");
2605     out->vkCmdSetDepthBounds =
2606         (PFN_vkCmdSetDepthBounds)vk->vkGetInstanceProcAddr(instance, "vkCmdSetDepthBounds");
2607     out->vkCmdSetStencilCompareMask = (PFN_vkCmdSetStencilCompareMask)vk->vkGetInstanceProcAddr(
2608         instance, "vkCmdSetStencilCompareMask");
2609     out->vkCmdSetStencilWriteMask = (PFN_vkCmdSetStencilWriteMask)vk->vkGetInstanceProcAddr(
2610         instance, "vkCmdSetStencilWriteMask");
2611     out->vkCmdSetStencilReference = (PFN_vkCmdSetStencilReference)vk->vkGetInstanceProcAddr(
2612         instance, "vkCmdSetStencilReference");
2613     out->vkCmdBindDescriptorSets =
2614         (PFN_vkCmdBindDescriptorSets)vk->vkGetInstanceProcAddr(instance, "vkCmdBindDescriptorSets");
2615     out->vkCmdBindIndexBuffer =
2616         (PFN_vkCmdBindIndexBuffer)vk->vkGetInstanceProcAddr(instance, "vkCmdBindIndexBuffer");
2617     out->vkCmdBindVertexBuffers =
2618         (PFN_vkCmdBindVertexBuffers)vk->vkGetInstanceProcAddr(instance, "vkCmdBindVertexBuffers");
2619     out->vkCmdDraw = (PFN_vkCmdDraw)vk->vkGetInstanceProcAddr(instance, "vkCmdDraw");
2620     out->vkCmdDrawIndexed =
2621         (PFN_vkCmdDrawIndexed)vk->vkGetInstanceProcAddr(instance, "vkCmdDrawIndexed");
2622     out->vkCmdDrawIndirect =
2623         (PFN_vkCmdDrawIndirect)vk->vkGetInstanceProcAddr(instance, "vkCmdDrawIndirect");
2624     out->vkCmdDrawIndexedIndirect = (PFN_vkCmdDrawIndexedIndirect)vk->vkGetInstanceProcAddr(
2625         instance, "vkCmdDrawIndexedIndirect");
2626     out->vkCmdDispatch = (PFN_vkCmdDispatch)vk->vkGetInstanceProcAddr(instance, "vkCmdDispatch");
2627     out->vkCmdDispatchIndirect =
2628         (PFN_vkCmdDispatchIndirect)vk->vkGetInstanceProcAddr(instance, "vkCmdDispatchIndirect");
2629     out->vkCmdCopyBuffer =
2630         (PFN_vkCmdCopyBuffer)vk->vkGetInstanceProcAddr(instance, "vkCmdCopyBuffer");
2631     out->vkCmdCopyImage = (PFN_vkCmdCopyImage)vk->vkGetInstanceProcAddr(instance, "vkCmdCopyImage");
2632     out->vkCmdBlitImage = (PFN_vkCmdBlitImage)vk->vkGetInstanceProcAddr(instance, "vkCmdBlitImage");
2633     out->vkCmdCopyBufferToImage =
2634         (PFN_vkCmdCopyBufferToImage)vk->vkGetInstanceProcAddr(instance, "vkCmdCopyBufferToImage");
2635     out->vkCmdCopyImageToBuffer =
2636         (PFN_vkCmdCopyImageToBuffer)vk->vkGetInstanceProcAddr(instance, "vkCmdCopyImageToBuffer");
2637     out->vkCmdUpdateBuffer =
2638         (PFN_vkCmdUpdateBuffer)vk->vkGetInstanceProcAddr(instance, "vkCmdUpdateBuffer");
2639     out->vkCmdFillBuffer =
2640         (PFN_vkCmdFillBuffer)vk->vkGetInstanceProcAddr(instance, "vkCmdFillBuffer");
2641     out->vkCmdClearColorImage =
2642         (PFN_vkCmdClearColorImage)vk->vkGetInstanceProcAddr(instance, "vkCmdClearColorImage");
2643     out->vkCmdClearDepthStencilImage = (PFN_vkCmdClearDepthStencilImage)vk->vkGetInstanceProcAddr(
2644         instance, "vkCmdClearDepthStencilImage");
2645     out->vkCmdClearAttachments =
2646         (PFN_vkCmdClearAttachments)vk->vkGetInstanceProcAddr(instance, "vkCmdClearAttachments");
2647     out->vkCmdResolveImage =
2648         (PFN_vkCmdResolveImage)vk->vkGetInstanceProcAddr(instance, "vkCmdResolveImage");
2649     out->vkCmdSetEvent = (PFN_vkCmdSetEvent)vk->vkGetInstanceProcAddr(instance, "vkCmdSetEvent");
2650     out->vkCmdResetEvent =
2651         (PFN_vkCmdResetEvent)vk->vkGetInstanceProcAddr(instance, "vkCmdResetEvent");
2652     out->vkCmdWaitEvents =
2653         (PFN_vkCmdWaitEvents)vk->vkGetInstanceProcAddr(instance, "vkCmdWaitEvents");
2654     out->vkCmdPipelineBarrier =
2655         (PFN_vkCmdPipelineBarrier)vk->vkGetInstanceProcAddr(instance, "vkCmdPipelineBarrier");
2656     out->vkCmdBeginQuery =
2657         (PFN_vkCmdBeginQuery)vk->vkGetInstanceProcAddr(instance, "vkCmdBeginQuery");
2658     out->vkCmdEndQuery = (PFN_vkCmdEndQuery)vk->vkGetInstanceProcAddr(instance, "vkCmdEndQuery");
2659     out->vkCmdResetQueryPool =
2660         (PFN_vkCmdResetQueryPool)vk->vkGetInstanceProcAddr(instance, "vkCmdResetQueryPool");
2661     out->vkCmdWriteTimestamp =
2662         (PFN_vkCmdWriteTimestamp)vk->vkGetInstanceProcAddr(instance, "vkCmdWriteTimestamp");
2663     out->vkCmdCopyQueryPoolResults = (PFN_vkCmdCopyQueryPoolResults)vk->vkGetInstanceProcAddr(
2664         instance, "vkCmdCopyQueryPoolResults");
2665     out->vkCmdPushConstants =
2666         (PFN_vkCmdPushConstants)vk->vkGetInstanceProcAddr(instance, "vkCmdPushConstants");
2667     out->vkCmdBeginRenderPass =
2668         (PFN_vkCmdBeginRenderPass)vk->vkGetInstanceProcAddr(instance, "vkCmdBeginRenderPass");
2669     out->vkCmdNextSubpass =
2670         (PFN_vkCmdNextSubpass)vk->vkGetInstanceProcAddr(instance, "vkCmdNextSubpass");
2671     out->vkCmdEndRenderPass =
2672         (PFN_vkCmdEndRenderPass)vk->vkGetInstanceProcAddr(instance, "vkCmdEndRenderPass");
2673     out->vkCmdExecuteCommands =
2674         (PFN_vkCmdExecuteCommands)vk->vkGetInstanceProcAddr(instance, "vkCmdExecuteCommands");
2675 #endif
2676 #ifdef VK_VERSION_1_1
2677     out->vkBindBufferMemory2 =
2678         (PFN_vkBindBufferMemory2)vk->vkGetInstanceProcAddr(instance, "vkBindBufferMemory2");
2679     out->vkBindImageMemory2 =
2680         (PFN_vkBindImageMemory2)vk->vkGetInstanceProcAddr(instance, "vkBindImageMemory2");
2681     out->vkGetDeviceGroupPeerMemoryFeatures =
2682         (PFN_vkGetDeviceGroupPeerMemoryFeatures)vk->vkGetInstanceProcAddr(
2683             instance, "vkGetDeviceGroupPeerMemoryFeatures");
2684     out->vkCmdSetDeviceMask =
2685         (PFN_vkCmdSetDeviceMask)vk->vkGetInstanceProcAddr(instance, "vkCmdSetDeviceMask");
2686     out->vkCmdDispatchBase =
2687         (PFN_vkCmdDispatchBase)vk->vkGetInstanceProcAddr(instance, "vkCmdDispatchBase");
2688     out->vkGetImageMemoryRequirements2 =
2689         (PFN_vkGetImageMemoryRequirements2)vk->vkGetInstanceProcAddr(
2690             instance, "vkGetImageMemoryRequirements2");
2691     out->vkGetBufferMemoryRequirements2 =
2692         (PFN_vkGetBufferMemoryRequirements2)vk->vkGetInstanceProcAddr(
2693             instance, "vkGetBufferMemoryRequirements2");
2694     out->vkGetImageSparseMemoryRequirements2 =
2695         (PFN_vkGetImageSparseMemoryRequirements2)vk->vkGetInstanceProcAddr(
2696             instance, "vkGetImageSparseMemoryRequirements2");
2697     out->vkTrimCommandPool =
2698         (PFN_vkTrimCommandPool)vk->vkGetInstanceProcAddr(instance, "vkTrimCommandPool");
2699     out->vkGetDeviceQueue2 =
2700         (PFN_vkGetDeviceQueue2)vk->vkGetInstanceProcAddr(instance, "vkGetDeviceQueue2");
2701     out->vkCreateSamplerYcbcrConversion =
2702         (PFN_vkCreateSamplerYcbcrConversion)vk->vkGetInstanceProcAddr(
2703             instance, "vkCreateSamplerYcbcrConversion");
2704     out->vkDestroySamplerYcbcrConversion =
2705         (PFN_vkDestroySamplerYcbcrConversion)vk->vkGetInstanceProcAddr(
2706             instance, "vkDestroySamplerYcbcrConversion");
2707     out->vkCreateDescriptorUpdateTemplate =
2708         (PFN_vkCreateDescriptorUpdateTemplate)vk->vkGetInstanceProcAddr(
2709             instance, "vkCreateDescriptorUpdateTemplate");
2710     out->vkDestroyDescriptorUpdateTemplate =
2711         (PFN_vkDestroyDescriptorUpdateTemplate)vk->vkGetInstanceProcAddr(
2712             instance, "vkDestroyDescriptorUpdateTemplate");
2713     out->vkUpdateDescriptorSetWithTemplate =
2714         (PFN_vkUpdateDescriptorSetWithTemplate)vk->vkGetInstanceProcAddr(
2715             instance, "vkUpdateDescriptorSetWithTemplate");
2716     out->vkGetDescriptorSetLayoutSupport =
2717         (PFN_vkGetDescriptorSetLayoutSupport)vk->vkGetInstanceProcAddr(
2718             instance, "vkGetDescriptorSetLayoutSupport");
2719 #endif
2720 #ifdef VK_VERSION_1_2
2721     out->vkCmdDrawIndirectCount =
2722         (PFN_vkCmdDrawIndirectCount)vk->vkGetInstanceProcAddr(instance, "vkCmdDrawIndirectCount");
2723     out->vkCmdDrawIndexedIndirectCount =
2724         (PFN_vkCmdDrawIndexedIndirectCount)vk->vkGetInstanceProcAddr(
2725             instance, "vkCmdDrawIndexedIndirectCount");
2726     out->vkCreateRenderPass2 =
2727         (PFN_vkCreateRenderPass2)vk->vkGetInstanceProcAddr(instance, "vkCreateRenderPass2");
2728     out->vkCmdBeginRenderPass2 =
2729         (PFN_vkCmdBeginRenderPass2)vk->vkGetInstanceProcAddr(instance, "vkCmdBeginRenderPass2");
2730     out->vkCmdNextSubpass2 =
2731         (PFN_vkCmdNextSubpass2)vk->vkGetInstanceProcAddr(instance, "vkCmdNextSubpass2");
2732     out->vkCmdEndRenderPass2 =
2733         (PFN_vkCmdEndRenderPass2)vk->vkGetInstanceProcAddr(instance, "vkCmdEndRenderPass2");
2734     out->vkResetQueryPool =
2735         (PFN_vkResetQueryPool)vk->vkGetInstanceProcAddr(instance, "vkResetQueryPool");
2736     out->vkGetSemaphoreCounterValue = (PFN_vkGetSemaphoreCounterValue)vk->vkGetInstanceProcAddr(
2737         instance, "vkGetSemaphoreCounterValue");
2738     out->vkWaitSemaphores =
2739         (PFN_vkWaitSemaphores)vk->vkGetInstanceProcAddr(instance, "vkWaitSemaphores");
2740     out->vkSignalSemaphore =
2741         (PFN_vkSignalSemaphore)vk->vkGetInstanceProcAddr(instance, "vkSignalSemaphore");
2742     out->vkGetBufferDeviceAddress = (PFN_vkGetBufferDeviceAddress)vk->vkGetInstanceProcAddr(
2743         instance, "vkGetBufferDeviceAddress");
2744     out->vkGetBufferOpaqueCaptureAddress =
2745         (PFN_vkGetBufferOpaqueCaptureAddress)vk->vkGetInstanceProcAddr(
2746             instance, "vkGetBufferOpaqueCaptureAddress");
2747     out->vkGetDeviceMemoryOpaqueCaptureAddress =
2748         (PFN_vkGetDeviceMemoryOpaqueCaptureAddress)vk->vkGetInstanceProcAddr(
2749             instance, "vkGetDeviceMemoryOpaqueCaptureAddress");
2750 #endif
2751 #ifdef VK_VERSION_1_3
2752     out->vkGetPhysicalDeviceToolProperties =
2753         (PFN_vkGetPhysicalDeviceToolProperties)vk->vkGetInstanceProcAddr(
2754             instance, "vkGetPhysicalDeviceToolProperties");
2755     out->vkCreatePrivateDataSlot =
2756         (PFN_vkCreatePrivateDataSlot)vk->vkGetInstanceProcAddr(instance, "vkCreatePrivateDataSlot");
2757     out->vkDestroyPrivateDataSlot = (PFN_vkDestroyPrivateDataSlot)vk->vkGetInstanceProcAddr(
2758         instance, "vkDestroyPrivateDataSlot");
2759     out->vkSetPrivateData =
2760         (PFN_vkSetPrivateData)vk->vkGetInstanceProcAddr(instance, "vkSetPrivateData");
2761     out->vkGetPrivateData =
2762         (PFN_vkGetPrivateData)vk->vkGetInstanceProcAddr(instance, "vkGetPrivateData");
2763     out->vkCmdSetEvent2 = (PFN_vkCmdSetEvent2)vk->vkGetInstanceProcAddr(instance, "vkCmdSetEvent2");
2764     out->vkCmdResetEvent2 =
2765         (PFN_vkCmdResetEvent2)vk->vkGetInstanceProcAddr(instance, "vkCmdResetEvent2");
2766     out->vkCmdWaitEvents2 =
2767         (PFN_vkCmdWaitEvents2)vk->vkGetInstanceProcAddr(instance, "vkCmdWaitEvents2");
2768     out->vkCmdPipelineBarrier2 =
2769         (PFN_vkCmdPipelineBarrier2)vk->vkGetInstanceProcAddr(instance, "vkCmdPipelineBarrier2");
2770     out->vkCmdWriteTimestamp2 =
2771         (PFN_vkCmdWriteTimestamp2)vk->vkGetInstanceProcAddr(instance, "vkCmdWriteTimestamp2");
2772     out->vkQueueSubmit2 = (PFN_vkQueueSubmit2)vk->vkGetInstanceProcAddr(instance, "vkQueueSubmit2");
2773     out->vkCmdCopyBuffer2 =
2774         (PFN_vkCmdCopyBuffer2)vk->vkGetInstanceProcAddr(instance, "vkCmdCopyBuffer2");
2775     out->vkCmdCopyImage2 =
2776         (PFN_vkCmdCopyImage2)vk->vkGetInstanceProcAddr(instance, "vkCmdCopyImage2");
2777     out->vkCmdCopyBufferToImage2 =
2778         (PFN_vkCmdCopyBufferToImage2)vk->vkGetInstanceProcAddr(instance, "vkCmdCopyBufferToImage2");
2779     out->vkCmdCopyImageToBuffer2 =
2780         (PFN_vkCmdCopyImageToBuffer2)vk->vkGetInstanceProcAddr(instance, "vkCmdCopyImageToBuffer2");
2781     out->vkCmdBlitImage2 =
2782         (PFN_vkCmdBlitImage2)vk->vkGetInstanceProcAddr(instance, "vkCmdBlitImage2");
2783     out->vkCmdResolveImage2 =
2784         (PFN_vkCmdResolveImage2)vk->vkGetInstanceProcAddr(instance, "vkCmdResolveImage2");
2785     out->vkCmdBeginRendering =
2786         (PFN_vkCmdBeginRendering)vk->vkGetInstanceProcAddr(instance, "vkCmdBeginRendering");
2787     out->vkCmdEndRendering =
2788         (PFN_vkCmdEndRendering)vk->vkGetInstanceProcAddr(instance, "vkCmdEndRendering");
2789     out->vkCmdSetCullMode =
2790         (PFN_vkCmdSetCullMode)vk->vkGetInstanceProcAddr(instance, "vkCmdSetCullMode");
2791     out->vkCmdSetFrontFace =
2792         (PFN_vkCmdSetFrontFace)vk->vkGetInstanceProcAddr(instance, "vkCmdSetFrontFace");
2793     out->vkCmdSetPrimitiveTopology = (PFN_vkCmdSetPrimitiveTopology)vk->vkGetInstanceProcAddr(
2794         instance, "vkCmdSetPrimitiveTopology");
2795     out->vkCmdSetViewportWithCount = (PFN_vkCmdSetViewportWithCount)vk->vkGetInstanceProcAddr(
2796         instance, "vkCmdSetViewportWithCount");
2797     out->vkCmdSetScissorWithCount = (PFN_vkCmdSetScissorWithCount)vk->vkGetInstanceProcAddr(
2798         instance, "vkCmdSetScissorWithCount");
2799     out->vkCmdBindVertexBuffers2 =
2800         (PFN_vkCmdBindVertexBuffers2)vk->vkGetInstanceProcAddr(instance, "vkCmdBindVertexBuffers2");
2801     out->vkCmdSetDepthTestEnable =
2802         (PFN_vkCmdSetDepthTestEnable)vk->vkGetInstanceProcAddr(instance, "vkCmdSetDepthTestEnable");
2803     out->vkCmdSetDepthWriteEnable = (PFN_vkCmdSetDepthWriteEnable)vk->vkGetInstanceProcAddr(
2804         instance, "vkCmdSetDepthWriteEnable");
2805     out->vkCmdSetDepthCompareOp =
2806         (PFN_vkCmdSetDepthCompareOp)vk->vkGetInstanceProcAddr(instance, "vkCmdSetDepthCompareOp");
2807     out->vkCmdSetDepthBoundsTestEnable =
2808         (PFN_vkCmdSetDepthBoundsTestEnable)vk->vkGetInstanceProcAddr(
2809             instance, "vkCmdSetDepthBoundsTestEnable");
2810     out->vkCmdSetStencilTestEnable = (PFN_vkCmdSetStencilTestEnable)vk->vkGetInstanceProcAddr(
2811         instance, "vkCmdSetStencilTestEnable");
2812     out->vkCmdSetStencilOp =
2813         (PFN_vkCmdSetStencilOp)vk->vkGetInstanceProcAddr(instance, "vkCmdSetStencilOp");
2814     out->vkCmdSetRasterizerDiscardEnable =
2815         (PFN_vkCmdSetRasterizerDiscardEnable)vk->vkGetInstanceProcAddr(
2816             instance, "vkCmdSetRasterizerDiscardEnable");
2817     out->vkCmdSetDepthBiasEnable =
2818         (PFN_vkCmdSetDepthBiasEnable)vk->vkGetInstanceProcAddr(instance, "vkCmdSetDepthBiasEnable");
2819     out->vkCmdSetPrimitiveRestartEnable =
2820         (PFN_vkCmdSetPrimitiveRestartEnable)vk->vkGetInstanceProcAddr(
2821             instance, "vkCmdSetPrimitiveRestartEnable");
2822     out->vkGetDeviceBufferMemoryRequirements =
2823         (PFN_vkGetDeviceBufferMemoryRequirements)vk->vkGetInstanceProcAddr(
2824             instance, "vkGetDeviceBufferMemoryRequirements");
2825     out->vkGetDeviceImageMemoryRequirements =
2826         (PFN_vkGetDeviceImageMemoryRequirements)vk->vkGetInstanceProcAddr(
2827             instance, "vkGetDeviceImageMemoryRequirements");
2828     out->vkGetDeviceImageSparseMemoryRequirements =
2829         (PFN_vkGetDeviceImageSparseMemoryRequirements)vk->vkGetInstanceProcAddr(
2830             instance, "vkGetDeviceImageSparseMemoryRequirements");
2831 #endif
2832 #ifdef VK_KHR_surface
2833     out->vkGetPhysicalDeviceSurfaceSupportKHR =
2834         (PFN_vkGetPhysicalDeviceSurfaceSupportKHR)vk->vkGetInstanceProcAddr(
2835             instance, "vkGetPhysicalDeviceSurfaceSupportKHR");
2836     out->vkGetPhysicalDeviceSurfaceCapabilitiesKHR =
2837         (PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)vk->vkGetInstanceProcAddr(
2838             instance, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR");
2839     out->vkGetPhysicalDeviceSurfaceFormatsKHR =
2840         (PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)vk->vkGetInstanceProcAddr(
2841             instance, "vkGetPhysicalDeviceSurfaceFormatsKHR");
2842     out->vkGetPhysicalDeviceSurfacePresentModesKHR =
2843         (PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)vk->vkGetInstanceProcAddr(
2844             instance, "vkGetPhysicalDeviceSurfacePresentModesKHR");
2845 #endif
2846 #ifdef VK_KHR_swapchain
2847     out->vkGetDeviceGroupPresentCapabilitiesKHR =
2848         (PFN_vkGetDeviceGroupPresentCapabilitiesKHR)vk->vkGetInstanceProcAddr(
2849             instance, "vkGetDeviceGroupPresentCapabilitiesKHR");
2850     out->vkGetDeviceGroupSurfacePresentModesKHR =
2851         (PFN_vkGetDeviceGroupSurfacePresentModesKHR)vk->vkGetInstanceProcAddr(
2852             instance, "vkGetDeviceGroupSurfacePresentModesKHR");
2853     out->vkGetPhysicalDevicePresentRectanglesKHR =
2854         (PFN_vkGetPhysicalDevicePresentRectanglesKHR)vk->vkGetInstanceProcAddr(
2855             instance, "vkGetPhysicalDevicePresentRectanglesKHR");
2856     out->vkAcquireNextImage2KHR =
2857         (PFN_vkAcquireNextImage2KHR)vk->vkGetInstanceProcAddr(instance, "vkAcquireNextImage2KHR");
2858 #endif
2859 #ifdef VK_KHR_display
2860     out->vkGetPhysicalDeviceDisplayPropertiesKHR =
2861         (PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)vk->vkGetInstanceProcAddr(
2862             instance, "vkGetPhysicalDeviceDisplayPropertiesKHR");
2863     out->vkGetPhysicalDeviceDisplayPlanePropertiesKHR =
2864         (PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)vk->vkGetInstanceProcAddr(
2865             instance, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR");
2866     out->vkGetDisplayPlaneSupportedDisplaysKHR =
2867         (PFN_vkGetDisplayPlaneSupportedDisplaysKHR)vk->vkGetInstanceProcAddr(
2868             instance, "vkGetDisplayPlaneSupportedDisplaysKHR");
2869     out->vkGetDisplayModePropertiesKHR =
2870         (PFN_vkGetDisplayModePropertiesKHR)vk->vkGetInstanceProcAddr(
2871             instance, "vkGetDisplayModePropertiesKHR");
2872     out->vkCreateDisplayModeKHR =
2873         (PFN_vkCreateDisplayModeKHR)vk->vkGetInstanceProcAddr(instance, "vkCreateDisplayModeKHR");
2874     out->vkGetDisplayPlaneCapabilitiesKHR =
2875         (PFN_vkGetDisplayPlaneCapabilitiesKHR)vk->vkGetInstanceProcAddr(
2876             instance, "vkGetDisplayPlaneCapabilitiesKHR");
2877 #endif
2878 #ifdef VK_KHR_display_swapchain
2879     out->vkCreateSharedSwapchainsKHR = (PFN_vkCreateSharedSwapchainsKHR)vk->vkGetInstanceProcAddr(
2880         instance, "vkCreateSharedSwapchainsKHR");
2881 #endif
2882 #ifdef VK_KHR_wayland_surface
2883     out->vkGetPhysicalDeviceWaylandPresentationSupportKHR =
2884         (PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR)vk->vkGetInstanceProcAddr(
2885             instance, "vkGetPhysicalDeviceWaylandPresentationSupportKHR");
2886 #endif
2887 #ifdef VK_KHR_video_queue
2888     out->vkGetPhysicalDeviceVideoCapabilitiesKHR =
2889         (PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR)vk->vkGetInstanceProcAddr(
2890             instance, "vkGetPhysicalDeviceVideoCapabilitiesKHR");
2891     out->vkGetPhysicalDeviceVideoFormatPropertiesKHR =
2892         (PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR)vk->vkGetInstanceProcAddr(
2893             instance, "vkGetPhysicalDeviceVideoFormatPropertiesKHR");
2894     out->vkCreateVideoSessionKHR =
2895         (PFN_vkCreateVideoSessionKHR)vk->vkGetInstanceProcAddr(instance, "vkCreateVideoSessionKHR");
2896     out->vkDestroyVideoSessionKHR = (PFN_vkDestroyVideoSessionKHR)vk->vkGetInstanceProcAddr(
2897         instance, "vkDestroyVideoSessionKHR");
2898     out->vkGetVideoSessionMemoryRequirementsKHR =
2899         (PFN_vkGetVideoSessionMemoryRequirementsKHR)vk->vkGetInstanceProcAddr(
2900             instance, "vkGetVideoSessionMemoryRequirementsKHR");
2901     out->vkBindVideoSessionMemoryKHR = (PFN_vkBindVideoSessionMemoryKHR)vk->vkGetInstanceProcAddr(
2902         instance, "vkBindVideoSessionMemoryKHR");
2903     out->vkCreateVideoSessionParametersKHR =
2904         (PFN_vkCreateVideoSessionParametersKHR)vk->vkGetInstanceProcAddr(
2905             instance, "vkCreateVideoSessionParametersKHR");
2906     out->vkUpdateVideoSessionParametersKHR =
2907         (PFN_vkUpdateVideoSessionParametersKHR)vk->vkGetInstanceProcAddr(
2908             instance, "vkUpdateVideoSessionParametersKHR");
2909     out->vkDestroyVideoSessionParametersKHR =
2910         (PFN_vkDestroyVideoSessionParametersKHR)vk->vkGetInstanceProcAddr(
2911             instance, "vkDestroyVideoSessionParametersKHR");
2912     out->vkCmdBeginVideoCodingKHR = (PFN_vkCmdBeginVideoCodingKHR)vk->vkGetInstanceProcAddr(
2913         instance, "vkCmdBeginVideoCodingKHR");
2914     out->vkCmdEndVideoCodingKHR =
2915         (PFN_vkCmdEndVideoCodingKHR)vk->vkGetInstanceProcAddr(instance, "vkCmdEndVideoCodingKHR");
2916     out->vkCmdControlVideoCodingKHR = (PFN_vkCmdControlVideoCodingKHR)vk->vkGetInstanceProcAddr(
2917         instance, "vkCmdControlVideoCodingKHR");
2918 #endif
2919 #ifdef VK_KHR_video_decode_queue
2920     out->vkCmdDecodeVideoKHR =
2921         (PFN_vkCmdDecodeVideoKHR)vk->vkGetInstanceProcAddr(instance, "vkCmdDecodeVideoKHR");
2922 #endif
2923 #ifdef VK_KHR_dynamic_rendering
2924     out->vkCmdBeginRenderingKHR =
2925         (PFN_vkCmdBeginRenderingKHR)vk->vkGetInstanceProcAddr(instance, "vkCmdBeginRenderingKHR");
2926     out->vkCmdEndRenderingKHR =
2927         (PFN_vkCmdEndRenderingKHR)vk->vkGetInstanceProcAddr(instance, "vkCmdEndRenderingKHR");
2928 #endif
2929 #ifdef VK_KHR_get_physical_device_properties2
2930     out->vkGetPhysicalDeviceFeatures2KHR =
2931         (PFN_vkGetPhysicalDeviceFeatures2KHR)vk->vkGetInstanceProcAddr(
2932             instance, "vkGetPhysicalDeviceFeatures2KHR");
2933     out->vkGetPhysicalDeviceProperties2KHR =
2934         (PFN_vkGetPhysicalDeviceProperties2KHR)vk->vkGetInstanceProcAddr(
2935             instance, "vkGetPhysicalDeviceProperties2KHR");
2936     out->vkGetPhysicalDeviceFormatProperties2KHR =
2937         (PFN_vkGetPhysicalDeviceFormatProperties2KHR)vk->vkGetInstanceProcAddr(
2938             instance, "vkGetPhysicalDeviceFormatProperties2KHR");
2939     out->vkGetPhysicalDeviceImageFormatProperties2KHR =
2940         (PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)vk->vkGetInstanceProcAddr(
2941             instance, "vkGetPhysicalDeviceImageFormatProperties2KHR");
2942     out->vkGetPhysicalDeviceQueueFamilyProperties2KHR =
2943         (PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)vk->vkGetInstanceProcAddr(
2944             instance, "vkGetPhysicalDeviceQueueFamilyProperties2KHR");
2945     out->vkGetPhysicalDeviceMemoryProperties2KHR =
2946         (PFN_vkGetPhysicalDeviceMemoryProperties2KHR)vk->vkGetInstanceProcAddr(
2947             instance, "vkGetPhysicalDeviceMemoryProperties2KHR");
2948     out->vkGetPhysicalDeviceSparseImageFormatProperties2KHR =
2949         (PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)vk->vkGetInstanceProcAddr(
2950             instance, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR");
2951 #endif
2952 #ifdef VK_KHR_device_group
2953     out->vkGetDeviceGroupPeerMemoryFeaturesKHR =
2954         (PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR)vk->vkGetInstanceProcAddr(
2955             instance, "vkGetDeviceGroupPeerMemoryFeaturesKHR");
2956     out->vkCmdSetDeviceMaskKHR =
2957         (PFN_vkCmdSetDeviceMaskKHR)vk->vkGetInstanceProcAddr(instance, "vkCmdSetDeviceMaskKHR");
2958     out->vkCmdDispatchBaseKHR =
2959         (PFN_vkCmdDispatchBaseKHR)vk->vkGetInstanceProcAddr(instance, "vkCmdDispatchBaseKHR");
2960 #endif
2961 #ifdef VK_KHR_maintenance1
2962     out->vkTrimCommandPoolKHR =
2963         (PFN_vkTrimCommandPoolKHR)vk->vkGetInstanceProcAddr(instance, "vkTrimCommandPoolKHR");
2964 #endif
2965 #ifdef VK_KHR_external_memory_capabilities
2966     out->vkGetPhysicalDeviceExternalBufferPropertiesKHR =
2967         (PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)vk->vkGetInstanceProcAddr(
2968             instance, "vkGetPhysicalDeviceExternalBufferPropertiesKHR");
2969 #endif
2970 #ifdef VK_KHR_external_memory_win32
2971     out->vkGetMemoryWin32HandleKHR = (PFN_vkGetMemoryWin32HandleKHR)vk->vkGetInstanceProcAddr(
2972         instance, "vkGetMemoryWin32HandleKHR");
2973     out->vkGetMemoryWin32HandlePropertiesKHR =
2974         (PFN_vkGetMemoryWin32HandlePropertiesKHR)vk->vkGetInstanceProcAddr(
2975             instance, "vkGetMemoryWin32HandlePropertiesKHR");
2976 #endif
2977 #ifdef VK_KHR_external_memory_fd
2978     out->vkGetMemoryFdKHR =
2979         (PFN_vkGetMemoryFdKHR)vk->vkGetInstanceProcAddr(instance, "vkGetMemoryFdKHR");
2980     out->vkGetMemoryFdPropertiesKHR = (PFN_vkGetMemoryFdPropertiesKHR)vk->vkGetInstanceProcAddr(
2981         instance, "vkGetMemoryFdPropertiesKHR");
2982 #endif
2983 #ifdef VK_KHR_external_semaphore_capabilities
2984     out->vkGetPhysicalDeviceExternalSemaphorePropertiesKHR =
2985         (PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)vk->vkGetInstanceProcAddr(
2986             instance, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR");
2987 #endif
2988 #ifdef VK_KHR_external_semaphore_win32
2989     out->vkImportSemaphoreWin32HandleKHR =
2990         (PFN_vkImportSemaphoreWin32HandleKHR)vk->vkGetInstanceProcAddr(
2991             instance, "vkImportSemaphoreWin32HandleKHR");
2992     out->vkGetSemaphoreWin32HandleKHR = (PFN_vkGetSemaphoreWin32HandleKHR)vk->vkGetInstanceProcAddr(
2993         instance, "vkGetSemaphoreWin32HandleKHR");
2994 #endif
2995 #ifdef VK_KHR_external_semaphore_fd
2996     out->vkImportSemaphoreFdKHR =
2997         (PFN_vkImportSemaphoreFdKHR)vk->vkGetInstanceProcAddr(instance, "vkImportSemaphoreFdKHR");
2998     out->vkGetSemaphoreFdKHR =
2999         (PFN_vkGetSemaphoreFdKHR)vk->vkGetInstanceProcAddr(instance, "vkGetSemaphoreFdKHR");
3000 #endif
3001 #ifdef VK_KHR_push_descriptor
3002     out->vkCmdPushDescriptorSetKHR = (PFN_vkCmdPushDescriptorSetKHR)vk->vkGetInstanceProcAddr(
3003         instance, "vkCmdPushDescriptorSetKHR");
3004     out->vkCmdPushDescriptorSetWithTemplateKHR =
3005         (PFN_vkCmdPushDescriptorSetWithTemplateKHR)vk->vkGetInstanceProcAddr(
3006             instance, "vkCmdPushDescriptorSetWithTemplateKHR");
3007 #endif
3008 #ifdef VK_KHR_descriptor_update_template
3009     out->vkCreateDescriptorUpdateTemplateKHR =
3010         (PFN_vkCreateDescriptorUpdateTemplateKHR)vk->vkGetInstanceProcAddr(
3011             instance, "vkCreateDescriptorUpdateTemplateKHR");
3012     out->vkDestroyDescriptorUpdateTemplateKHR =
3013         (PFN_vkDestroyDescriptorUpdateTemplateKHR)vk->vkGetInstanceProcAddr(
3014             instance, "vkDestroyDescriptorUpdateTemplateKHR");
3015     out->vkUpdateDescriptorSetWithTemplateKHR =
3016         (PFN_vkUpdateDescriptorSetWithTemplateKHR)vk->vkGetInstanceProcAddr(
3017             instance, "vkUpdateDescriptorSetWithTemplateKHR");
3018 #endif
3019 #ifdef VK_KHR_create_renderpass2
3020     out->vkCreateRenderPass2KHR =
3021         (PFN_vkCreateRenderPass2KHR)vk->vkGetInstanceProcAddr(instance, "vkCreateRenderPass2KHR");
3022     out->vkCmdBeginRenderPass2KHR = (PFN_vkCmdBeginRenderPass2KHR)vk->vkGetInstanceProcAddr(
3023         instance, "vkCmdBeginRenderPass2KHR");
3024     out->vkCmdNextSubpass2KHR =
3025         (PFN_vkCmdNextSubpass2KHR)vk->vkGetInstanceProcAddr(instance, "vkCmdNextSubpass2KHR");
3026     out->vkCmdEndRenderPass2KHR =
3027         (PFN_vkCmdEndRenderPass2KHR)vk->vkGetInstanceProcAddr(instance, "vkCmdEndRenderPass2KHR");
3028 #endif
3029 #ifdef VK_KHR_shared_presentable_image
3030     out->vkGetSwapchainStatusKHR =
3031         (PFN_vkGetSwapchainStatusKHR)vk->vkGetInstanceProcAddr(instance, "vkGetSwapchainStatusKHR");
3032 #endif
3033 #ifdef VK_KHR_external_fence_capabilities
3034     out->vkGetPhysicalDeviceExternalFencePropertiesKHR =
3035         (PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)vk->vkGetInstanceProcAddr(
3036             instance, "vkGetPhysicalDeviceExternalFencePropertiesKHR");
3037 #endif
3038 #ifdef VK_KHR_external_fence_win32
3039     out->vkImportFenceWin32HandleKHR = (PFN_vkImportFenceWin32HandleKHR)vk->vkGetInstanceProcAddr(
3040         instance, "vkImportFenceWin32HandleKHR");
3041     out->vkGetFenceWin32HandleKHR = (PFN_vkGetFenceWin32HandleKHR)vk->vkGetInstanceProcAddr(
3042         instance, "vkGetFenceWin32HandleKHR");
3043 #endif
3044 #ifdef VK_KHR_external_fence_fd
3045     out->vkImportFenceFdKHR =
3046         (PFN_vkImportFenceFdKHR)vk->vkGetInstanceProcAddr(instance, "vkImportFenceFdKHR");
3047     out->vkGetFenceFdKHR =
3048         (PFN_vkGetFenceFdKHR)vk->vkGetInstanceProcAddr(instance, "vkGetFenceFdKHR");
3049 #endif
3050 #ifdef VK_KHR_performance_query
3051     out->vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR =
3052         (PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR)
3053             vk->vkGetInstanceProcAddr(
3054                 instance, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR");
3055     out->vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR =
3056         (PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR)vk->vkGetInstanceProcAddr(
3057             instance, "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR");
3058     out->vkAcquireProfilingLockKHR = (PFN_vkAcquireProfilingLockKHR)vk->vkGetInstanceProcAddr(
3059         instance, "vkAcquireProfilingLockKHR");
3060     out->vkReleaseProfilingLockKHR = (PFN_vkReleaseProfilingLockKHR)vk->vkGetInstanceProcAddr(
3061         instance, "vkReleaseProfilingLockKHR");
3062 #endif
3063 #ifdef VK_KHR_get_surface_capabilities2
3064     out->vkGetPhysicalDeviceSurfaceCapabilities2KHR =
3065         (PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR)vk->vkGetInstanceProcAddr(
3066             instance, "vkGetPhysicalDeviceSurfaceCapabilities2KHR");
3067     out->vkGetPhysicalDeviceSurfaceFormats2KHR =
3068         (PFN_vkGetPhysicalDeviceSurfaceFormats2KHR)vk->vkGetInstanceProcAddr(
3069             instance, "vkGetPhysicalDeviceSurfaceFormats2KHR");
3070 #endif
3071 #ifdef VK_KHR_get_display_properties2
3072     out->vkGetPhysicalDeviceDisplayProperties2KHR =
3073         (PFN_vkGetPhysicalDeviceDisplayProperties2KHR)vk->vkGetInstanceProcAddr(
3074             instance, "vkGetPhysicalDeviceDisplayProperties2KHR");
3075     out->vkGetPhysicalDeviceDisplayPlaneProperties2KHR =
3076         (PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR)vk->vkGetInstanceProcAddr(
3077             instance, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR");
3078     out->vkGetDisplayModeProperties2KHR =
3079         (PFN_vkGetDisplayModeProperties2KHR)vk->vkGetInstanceProcAddr(
3080             instance, "vkGetDisplayModeProperties2KHR");
3081     out->vkGetDisplayPlaneCapabilities2KHR =
3082         (PFN_vkGetDisplayPlaneCapabilities2KHR)vk->vkGetInstanceProcAddr(
3083             instance, "vkGetDisplayPlaneCapabilities2KHR");
3084 #endif
3085 #ifdef VK_KHR_get_memory_requirements2
3086     out->vkGetImageMemoryRequirements2KHR =
3087         (PFN_vkGetImageMemoryRequirements2KHR)vk->vkGetInstanceProcAddr(
3088             instance, "vkGetImageMemoryRequirements2KHR");
3089     out->vkGetBufferMemoryRequirements2KHR =
3090         (PFN_vkGetBufferMemoryRequirements2KHR)vk->vkGetInstanceProcAddr(
3091             instance, "vkGetBufferMemoryRequirements2KHR");
3092     out->vkGetImageSparseMemoryRequirements2KHR =
3093         (PFN_vkGetImageSparseMemoryRequirements2KHR)vk->vkGetInstanceProcAddr(
3094             instance, "vkGetImageSparseMemoryRequirements2KHR");
3095 #endif
3096 #ifdef VK_KHR_sampler_ycbcr_conversion
3097     out->vkCreateSamplerYcbcrConversionKHR =
3098         (PFN_vkCreateSamplerYcbcrConversionKHR)vk->vkGetInstanceProcAddr(
3099             instance, "vkCreateSamplerYcbcrConversionKHR");
3100     out->vkDestroySamplerYcbcrConversionKHR =
3101         (PFN_vkDestroySamplerYcbcrConversionKHR)vk->vkGetInstanceProcAddr(
3102             instance, "vkDestroySamplerYcbcrConversionKHR");
3103 #endif
3104 #ifdef VK_KHR_bind_memory2
3105     out->vkBindBufferMemory2KHR =
3106         (PFN_vkBindBufferMemory2KHR)vk->vkGetInstanceProcAddr(instance, "vkBindBufferMemory2KHR");
3107     out->vkBindImageMemory2KHR =
3108         (PFN_vkBindImageMemory2KHR)vk->vkGetInstanceProcAddr(instance, "vkBindImageMemory2KHR");
3109 #endif
3110 #ifdef VK_KHR_maintenance3
3111     out->vkGetDescriptorSetLayoutSupportKHR =
3112         (PFN_vkGetDescriptorSetLayoutSupportKHR)vk->vkGetInstanceProcAddr(
3113             instance, "vkGetDescriptorSetLayoutSupportKHR");
3114 #endif
3115 #ifdef VK_KHR_draw_indirect_count
3116     out->vkCmdDrawIndirectCountKHR = (PFN_vkCmdDrawIndirectCountKHR)vk->vkGetInstanceProcAddr(
3117         instance, "vkCmdDrawIndirectCountKHR");
3118     out->vkCmdDrawIndexedIndirectCountKHR =
3119         (PFN_vkCmdDrawIndexedIndirectCountKHR)vk->vkGetInstanceProcAddr(
3120             instance, "vkCmdDrawIndexedIndirectCountKHR");
3121 #endif
3122 #ifdef VK_KHR_timeline_semaphore
3123     out->vkGetSemaphoreCounterValueKHR =
3124         (PFN_vkGetSemaphoreCounterValueKHR)vk->vkGetInstanceProcAddr(
3125             instance, "vkGetSemaphoreCounterValueKHR");
3126     out->vkWaitSemaphoresKHR =
3127         (PFN_vkWaitSemaphoresKHR)vk->vkGetInstanceProcAddr(instance, "vkWaitSemaphoresKHR");
3128     out->vkSignalSemaphoreKHR =
3129         (PFN_vkSignalSemaphoreKHR)vk->vkGetInstanceProcAddr(instance, "vkSignalSemaphoreKHR");
3130 #endif
3131 #ifdef VK_KHR_fragment_shading_rate
3132     out->vkGetPhysicalDeviceFragmentShadingRatesKHR =
3133         (PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR)vk->vkGetInstanceProcAddr(
3134             instance, "vkGetPhysicalDeviceFragmentShadingRatesKHR");
3135     out->vkCmdSetFragmentShadingRateKHR =
3136         (PFN_vkCmdSetFragmentShadingRateKHR)vk->vkGetInstanceProcAddr(
3137             instance, "vkCmdSetFragmentShadingRateKHR");
3138 #endif
3139 #ifdef VK_KHR_present_wait
3140     out->vkWaitForPresentKHR =
3141         (PFN_vkWaitForPresentKHR)vk->vkGetInstanceProcAddr(instance, "vkWaitForPresentKHR");
3142 #endif
3143 #ifdef VK_KHR_buffer_device_address
3144     out->vkGetBufferDeviceAddressKHR = (PFN_vkGetBufferDeviceAddressKHR)vk->vkGetInstanceProcAddr(
3145         instance, "vkGetBufferDeviceAddressKHR");
3146     out->vkGetBufferOpaqueCaptureAddressKHR =
3147         (PFN_vkGetBufferOpaqueCaptureAddressKHR)vk->vkGetInstanceProcAddr(
3148             instance, "vkGetBufferOpaqueCaptureAddressKHR");
3149     out->vkGetDeviceMemoryOpaqueCaptureAddressKHR =
3150         (PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR)vk->vkGetInstanceProcAddr(
3151             instance, "vkGetDeviceMemoryOpaqueCaptureAddressKHR");
3152 #endif
3153 #ifdef VK_KHR_deferred_host_operations
3154     out->vkCreateDeferredOperationKHR = (PFN_vkCreateDeferredOperationKHR)vk->vkGetInstanceProcAddr(
3155         instance, "vkCreateDeferredOperationKHR");
3156     out->vkDestroyDeferredOperationKHR =
3157         (PFN_vkDestroyDeferredOperationKHR)vk->vkGetInstanceProcAddr(
3158             instance, "vkDestroyDeferredOperationKHR");
3159     out->vkGetDeferredOperationMaxConcurrencyKHR =
3160         (PFN_vkGetDeferredOperationMaxConcurrencyKHR)vk->vkGetInstanceProcAddr(
3161             instance, "vkGetDeferredOperationMaxConcurrencyKHR");
3162     out->vkGetDeferredOperationResultKHR =
3163         (PFN_vkGetDeferredOperationResultKHR)vk->vkGetInstanceProcAddr(
3164             instance, "vkGetDeferredOperationResultKHR");
3165     out->vkDeferredOperationJoinKHR = (PFN_vkDeferredOperationJoinKHR)vk->vkGetInstanceProcAddr(
3166         instance, "vkDeferredOperationJoinKHR");
3167 #endif
3168 #ifdef VK_KHR_pipeline_executable_properties
3169     out->vkGetPipelineExecutablePropertiesKHR =
3170         (PFN_vkGetPipelineExecutablePropertiesKHR)vk->vkGetInstanceProcAddr(
3171             instance, "vkGetPipelineExecutablePropertiesKHR");
3172     out->vkGetPipelineExecutableStatisticsKHR =
3173         (PFN_vkGetPipelineExecutableStatisticsKHR)vk->vkGetInstanceProcAddr(
3174             instance, "vkGetPipelineExecutableStatisticsKHR");
3175     out->vkGetPipelineExecutableInternalRepresentationsKHR =
3176         (PFN_vkGetPipelineExecutableInternalRepresentationsKHR)vk->vkGetInstanceProcAddr(
3177             instance, "vkGetPipelineExecutableInternalRepresentationsKHR");
3178 #endif
3179 #ifdef VK_KHR_map_memory2
3180     out->vkMapMemory2KHR =
3181         (PFN_vkMapMemory2KHR)vk->vkGetInstanceProcAddr(instance, "vkMapMemory2KHR");
3182     out->vkUnmapMemory2KHR =
3183         (PFN_vkUnmapMemory2KHR)vk->vkGetInstanceProcAddr(instance, "vkUnmapMemory2KHR");
3184 #endif
3185 #ifdef VK_KHR_video_encode_queue
3186     out->vkCmdEncodeVideoKHR =
3187         (PFN_vkCmdEncodeVideoKHR)vk->vkGetInstanceProcAddr(instance, "vkCmdEncodeVideoKHR");
3188 #endif
3189 #ifdef VK_KHR_synchronization2
3190     out->vkCmdSetEvent2KHR =
3191         (PFN_vkCmdSetEvent2KHR)vk->vkGetInstanceProcAddr(instance, "vkCmdSetEvent2KHR");
3192     out->vkCmdResetEvent2KHR =
3193         (PFN_vkCmdResetEvent2KHR)vk->vkGetInstanceProcAddr(instance, "vkCmdResetEvent2KHR");
3194     out->vkCmdWaitEvents2KHR =
3195         (PFN_vkCmdWaitEvents2KHR)vk->vkGetInstanceProcAddr(instance, "vkCmdWaitEvents2KHR");
3196     out->vkCmdPipelineBarrier2KHR = (PFN_vkCmdPipelineBarrier2KHR)vk->vkGetInstanceProcAddr(
3197         instance, "vkCmdPipelineBarrier2KHR");
3198     out->vkCmdWriteTimestamp2KHR =
3199         (PFN_vkCmdWriteTimestamp2KHR)vk->vkGetInstanceProcAddr(instance, "vkCmdWriteTimestamp2KHR");
3200     out->vkQueueSubmit2KHR =
3201         (PFN_vkQueueSubmit2KHR)vk->vkGetInstanceProcAddr(instance, "vkQueueSubmit2KHR");
3202     out->vkCmdWriteBufferMarker2AMD = (PFN_vkCmdWriteBufferMarker2AMD)vk->vkGetInstanceProcAddr(
3203         instance, "vkCmdWriteBufferMarker2AMD");
3204     out->vkGetQueueCheckpointData2NV = (PFN_vkGetQueueCheckpointData2NV)vk->vkGetInstanceProcAddr(
3205         instance, "vkGetQueueCheckpointData2NV");
3206 #endif
3207 #ifdef VK_KHR_copy_commands2
3208     out->vkCmdCopyBuffer2KHR =
3209         (PFN_vkCmdCopyBuffer2KHR)vk->vkGetInstanceProcAddr(instance, "vkCmdCopyBuffer2KHR");
3210     out->vkCmdCopyImage2KHR =
3211         (PFN_vkCmdCopyImage2KHR)vk->vkGetInstanceProcAddr(instance, "vkCmdCopyImage2KHR");
3212     out->vkCmdCopyBufferToImage2KHR = (PFN_vkCmdCopyBufferToImage2KHR)vk->vkGetInstanceProcAddr(
3213         instance, "vkCmdCopyBufferToImage2KHR");
3214     out->vkCmdCopyImageToBuffer2KHR = (PFN_vkCmdCopyImageToBuffer2KHR)vk->vkGetInstanceProcAddr(
3215         instance, "vkCmdCopyImageToBuffer2KHR");
3216     out->vkCmdBlitImage2KHR =
3217         (PFN_vkCmdBlitImage2KHR)vk->vkGetInstanceProcAddr(instance, "vkCmdBlitImage2KHR");
3218     out->vkCmdResolveImage2KHR =
3219         (PFN_vkCmdResolveImage2KHR)vk->vkGetInstanceProcAddr(instance, "vkCmdResolveImage2KHR");
3220 #endif
3221 #ifdef VK_KHR_ray_tracing_maintenance1
3222     out->vkCmdTraceRaysIndirect2KHR = (PFN_vkCmdTraceRaysIndirect2KHR)vk->vkGetInstanceProcAddr(
3223         instance, "vkCmdTraceRaysIndirect2KHR");
3224 #endif
3225 #ifdef VK_KHR_maintenance4
3226     out->vkGetDeviceBufferMemoryRequirementsKHR =
3227         (PFN_vkGetDeviceBufferMemoryRequirementsKHR)vk->vkGetInstanceProcAddr(
3228             instance, "vkGetDeviceBufferMemoryRequirementsKHR");
3229     out->vkGetDeviceImageMemoryRequirementsKHR =
3230         (PFN_vkGetDeviceImageMemoryRequirementsKHR)vk->vkGetInstanceProcAddr(
3231             instance, "vkGetDeviceImageMemoryRequirementsKHR");
3232     out->vkGetDeviceImageSparseMemoryRequirementsKHR =
3233         (PFN_vkGetDeviceImageSparseMemoryRequirementsKHR)vk->vkGetInstanceProcAddr(
3234             instance, "vkGetDeviceImageSparseMemoryRequirementsKHR");
3235 #endif
3236 #ifdef VK_ANDROID_native_buffer
3237     out->vkGetSwapchainGrallocUsageANDROID =
3238         (PFN_vkGetSwapchainGrallocUsageANDROID)vk->vkGetInstanceProcAddr(
3239             instance, "vkGetSwapchainGrallocUsageANDROID");
3240     out->vkAcquireImageANDROID =
3241         (PFN_vkAcquireImageANDROID)vk->vkGetInstanceProcAddr(instance, "vkAcquireImageANDROID");
3242     out->vkQueueSignalReleaseImageANDROID =
3243         (PFN_vkQueueSignalReleaseImageANDROID)vk->vkGetInstanceProcAddr(
3244             instance, "vkQueueSignalReleaseImageANDROID");
3245     out->vkGetSwapchainGrallocUsage2ANDROID =
3246         (PFN_vkGetSwapchainGrallocUsage2ANDROID)vk->vkGetInstanceProcAddr(
3247             instance, "vkGetSwapchainGrallocUsage2ANDROID");
3248 #endif
3249 #ifdef VK_EXT_debug_marker
3250     out->vkDebugMarkerSetObjectTagEXT = (PFN_vkDebugMarkerSetObjectTagEXT)vk->vkGetInstanceProcAddr(
3251         instance, "vkDebugMarkerSetObjectTagEXT");
3252     out->vkDebugMarkerSetObjectNameEXT =
3253         (PFN_vkDebugMarkerSetObjectNameEXT)vk->vkGetInstanceProcAddr(
3254             instance, "vkDebugMarkerSetObjectNameEXT");
3255     out->vkCmdDebugMarkerBeginEXT = (PFN_vkCmdDebugMarkerBeginEXT)vk->vkGetInstanceProcAddr(
3256         instance, "vkCmdDebugMarkerBeginEXT");
3257     out->vkCmdDebugMarkerEndEXT =
3258         (PFN_vkCmdDebugMarkerEndEXT)vk->vkGetInstanceProcAddr(instance, "vkCmdDebugMarkerEndEXT");
3259     out->vkCmdDebugMarkerInsertEXT = (PFN_vkCmdDebugMarkerInsertEXT)vk->vkGetInstanceProcAddr(
3260         instance, "vkCmdDebugMarkerInsertEXT");
3261 #endif
3262 #ifdef VK_EXT_transform_feedback
3263     out->vkCmdBindTransformFeedbackBuffersEXT =
3264         (PFN_vkCmdBindTransformFeedbackBuffersEXT)vk->vkGetInstanceProcAddr(
3265             instance, "vkCmdBindTransformFeedbackBuffersEXT");
3266     out->vkCmdBeginTransformFeedbackEXT =
3267         (PFN_vkCmdBeginTransformFeedbackEXT)vk->vkGetInstanceProcAddr(
3268             instance, "vkCmdBeginTransformFeedbackEXT");
3269     out->vkCmdEndTransformFeedbackEXT = (PFN_vkCmdEndTransformFeedbackEXT)vk->vkGetInstanceProcAddr(
3270         instance, "vkCmdEndTransformFeedbackEXT");
3271     out->vkCmdBeginQueryIndexedEXT = (PFN_vkCmdBeginQueryIndexedEXT)vk->vkGetInstanceProcAddr(
3272         instance, "vkCmdBeginQueryIndexedEXT");
3273     out->vkCmdEndQueryIndexedEXT =
3274         (PFN_vkCmdEndQueryIndexedEXT)vk->vkGetInstanceProcAddr(instance, "vkCmdEndQueryIndexedEXT");
3275     out->vkCmdDrawIndirectByteCountEXT =
3276         (PFN_vkCmdDrawIndirectByteCountEXT)vk->vkGetInstanceProcAddr(
3277             instance, "vkCmdDrawIndirectByteCountEXT");
3278 #endif
3279 #ifdef VK_NVX_binary_import
3280     out->vkCreateCuModuleNVX =
3281         (PFN_vkCreateCuModuleNVX)vk->vkGetInstanceProcAddr(instance, "vkCreateCuModuleNVX");
3282     out->vkCreateCuFunctionNVX =
3283         (PFN_vkCreateCuFunctionNVX)vk->vkGetInstanceProcAddr(instance, "vkCreateCuFunctionNVX");
3284     out->vkDestroyCuModuleNVX =
3285         (PFN_vkDestroyCuModuleNVX)vk->vkGetInstanceProcAddr(instance, "vkDestroyCuModuleNVX");
3286     out->vkDestroyCuFunctionNVX =
3287         (PFN_vkDestroyCuFunctionNVX)vk->vkGetInstanceProcAddr(instance, "vkDestroyCuFunctionNVX");
3288     out->vkCmdCuLaunchKernelNVX =
3289         (PFN_vkCmdCuLaunchKernelNVX)vk->vkGetInstanceProcAddr(instance, "vkCmdCuLaunchKernelNVX");
3290 #endif
3291 #ifdef VK_NVX_image_view_handle
3292     out->vkGetImageViewHandleNVX =
3293         (PFN_vkGetImageViewHandleNVX)vk->vkGetInstanceProcAddr(instance, "vkGetImageViewHandleNVX");
3294     out->vkGetImageViewAddressNVX = (PFN_vkGetImageViewAddressNVX)vk->vkGetInstanceProcAddr(
3295         instance, "vkGetImageViewAddressNVX");
3296 #endif
3297 #ifdef VK_AMD_draw_indirect_count
3298     out->vkCmdDrawIndirectCountAMD = (PFN_vkCmdDrawIndirectCountAMD)vk->vkGetInstanceProcAddr(
3299         instance, "vkCmdDrawIndirectCountAMD");
3300     out->vkCmdDrawIndexedIndirectCountAMD =
3301         (PFN_vkCmdDrawIndexedIndirectCountAMD)vk->vkGetInstanceProcAddr(
3302             instance, "vkCmdDrawIndexedIndirectCountAMD");
3303 #endif
3304 #ifdef VK_AMD_shader_info
3305     out->vkGetShaderInfoAMD =
3306         (PFN_vkGetShaderInfoAMD)vk->vkGetInstanceProcAddr(instance, "vkGetShaderInfoAMD");
3307 #endif
3308 #ifdef VK_NV_external_memory_capabilities
3309     out->vkGetPhysicalDeviceExternalImageFormatPropertiesNV =
3310         (PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)vk->vkGetInstanceProcAddr(
3311             instance, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV");
3312 #endif
3313 #ifdef VK_NV_external_memory_win32
3314     out->vkGetMemoryWin32HandleNV = (PFN_vkGetMemoryWin32HandleNV)vk->vkGetInstanceProcAddr(
3315         instance, "vkGetMemoryWin32HandleNV");
3316 #endif
3317 #ifdef VK_EXT_conditional_rendering
3318     out->vkCmdBeginConditionalRenderingEXT =
3319         (PFN_vkCmdBeginConditionalRenderingEXT)vk->vkGetInstanceProcAddr(
3320             instance, "vkCmdBeginConditionalRenderingEXT");
3321     out->vkCmdEndConditionalRenderingEXT =
3322         (PFN_vkCmdEndConditionalRenderingEXT)vk->vkGetInstanceProcAddr(
3323             instance, "vkCmdEndConditionalRenderingEXT");
3324 #endif
3325 #ifdef VK_NV_clip_space_w_scaling
3326     out->vkCmdSetViewportWScalingNV = (PFN_vkCmdSetViewportWScalingNV)vk->vkGetInstanceProcAddr(
3327         instance, "vkCmdSetViewportWScalingNV");
3328 #endif
3329 #ifdef VK_EXT_direct_mode_display
3330     out->vkReleaseDisplayEXT =
3331         (PFN_vkReleaseDisplayEXT)vk->vkGetInstanceProcAddr(instance, "vkReleaseDisplayEXT");
3332 #endif
3333 #ifdef VK_EXT_acquire_xlib_display
3334     out->vkAcquireXlibDisplayEXT =
3335         (PFN_vkAcquireXlibDisplayEXT)vk->vkGetInstanceProcAddr(instance, "vkAcquireXlibDisplayEXT");
3336     out->vkGetRandROutputDisplayEXT = (PFN_vkGetRandROutputDisplayEXT)vk->vkGetInstanceProcAddr(
3337         instance, "vkGetRandROutputDisplayEXT");
3338 #endif
3339 #ifdef VK_EXT_display_surface_counter
3340     out->vkGetPhysicalDeviceSurfaceCapabilities2EXT =
3341         (PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)vk->vkGetInstanceProcAddr(
3342             instance, "vkGetPhysicalDeviceSurfaceCapabilities2EXT");
3343 #endif
3344 #ifdef VK_EXT_display_control
3345     out->vkDisplayPowerControlEXT = (PFN_vkDisplayPowerControlEXT)vk->vkGetInstanceProcAddr(
3346         instance, "vkDisplayPowerControlEXT");
3347     out->vkRegisterDeviceEventEXT = (PFN_vkRegisterDeviceEventEXT)vk->vkGetInstanceProcAddr(
3348         instance, "vkRegisterDeviceEventEXT");
3349     out->vkRegisterDisplayEventEXT = (PFN_vkRegisterDisplayEventEXT)vk->vkGetInstanceProcAddr(
3350         instance, "vkRegisterDisplayEventEXT");
3351     out->vkGetSwapchainCounterEXT = (PFN_vkGetSwapchainCounterEXT)vk->vkGetInstanceProcAddr(
3352         instance, "vkGetSwapchainCounterEXT");
3353 #endif
3354 #ifdef VK_GOOGLE_display_timing
3355     out->vkGetRefreshCycleDurationGOOGLE =
3356         (PFN_vkGetRefreshCycleDurationGOOGLE)vk->vkGetInstanceProcAddr(
3357             instance, "vkGetRefreshCycleDurationGOOGLE");
3358     out->vkGetPastPresentationTimingGOOGLE =
3359         (PFN_vkGetPastPresentationTimingGOOGLE)vk->vkGetInstanceProcAddr(
3360             instance, "vkGetPastPresentationTimingGOOGLE");
3361 #endif
3362 #ifdef VK_EXT_discard_rectangles
3363     out->vkCmdSetDiscardRectangleEXT = (PFN_vkCmdSetDiscardRectangleEXT)vk->vkGetInstanceProcAddr(
3364         instance, "vkCmdSetDiscardRectangleEXT");
3365     out->vkCmdSetDiscardRectangleEnableEXT =
3366         (PFN_vkCmdSetDiscardRectangleEnableEXT)vk->vkGetInstanceProcAddr(
3367             instance, "vkCmdSetDiscardRectangleEnableEXT");
3368     out->vkCmdSetDiscardRectangleModeEXT =
3369         (PFN_vkCmdSetDiscardRectangleModeEXT)vk->vkGetInstanceProcAddr(
3370             instance, "vkCmdSetDiscardRectangleModeEXT");
3371 #endif
3372 #ifdef VK_EXT_hdr_metadata
3373     out->vkSetHdrMetadataEXT =
3374         (PFN_vkSetHdrMetadataEXT)vk->vkGetInstanceProcAddr(instance, "vkSetHdrMetadataEXT");
3375 #endif
3376 #ifdef VK_EXT_debug_utils
3377     out->vkSetDebugUtilsObjectNameEXT = (PFN_vkSetDebugUtilsObjectNameEXT)vk->vkGetInstanceProcAddr(
3378         instance, "vkSetDebugUtilsObjectNameEXT");
3379     out->vkSetDebugUtilsObjectTagEXT = (PFN_vkSetDebugUtilsObjectTagEXT)vk->vkGetInstanceProcAddr(
3380         instance, "vkSetDebugUtilsObjectTagEXT");
3381     out->vkQueueBeginDebugUtilsLabelEXT =
3382         (PFN_vkQueueBeginDebugUtilsLabelEXT)vk->vkGetInstanceProcAddr(
3383             instance, "vkQueueBeginDebugUtilsLabelEXT");
3384     out->vkQueueEndDebugUtilsLabelEXT = (PFN_vkQueueEndDebugUtilsLabelEXT)vk->vkGetInstanceProcAddr(
3385         instance, "vkQueueEndDebugUtilsLabelEXT");
3386     out->vkQueueInsertDebugUtilsLabelEXT =
3387         (PFN_vkQueueInsertDebugUtilsLabelEXT)vk->vkGetInstanceProcAddr(
3388             instance, "vkQueueInsertDebugUtilsLabelEXT");
3389     out->vkCmdBeginDebugUtilsLabelEXT = (PFN_vkCmdBeginDebugUtilsLabelEXT)vk->vkGetInstanceProcAddr(
3390         instance, "vkCmdBeginDebugUtilsLabelEXT");
3391     out->vkCmdEndDebugUtilsLabelEXT = (PFN_vkCmdEndDebugUtilsLabelEXT)vk->vkGetInstanceProcAddr(
3392         instance, "vkCmdEndDebugUtilsLabelEXT");
3393     out->vkCmdInsertDebugUtilsLabelEXT =
3394         (PFN_vkCmdInsertDebugUtilsLabelEXT)vk->vkGetInstanceProcAddr(
3395             instance, "vkCmdInsertDebugUtilsLabelEXT");
3396 #endif
3397 #ifdef VK_ANDROID_external_memory_android_hardware_buffer
3398     out->vkGetAndroidHardwareBufferPropertiesANDROID =
3399         (PFN_vkGetAndroidHardwareBufferPropertiesANDROID)vk->vkGetInstanceProcAddr(
3400             instance, "vkGetAndroidHardwareBufferPropertiesANDROID");
3401     out->vkGetMemoryAndroidHardwareBufferANDROID =
3402         (PFN_vkGetMemoryAndroidHardwareBufferANDROID)vk->vkGetInstanceProcAddr(
3403             instance, "vkGetMemoryAndroidHardwareBufferANDROID");
3404 #endif
3405 #ifdef VK_EXT_sample_locations
3406     out->vkCmdSetSampleLocationsEXT = (PFN_vkCmdSetSampleLocationsEXT)vk->vkGetInstanceProcAddr(
3407         instance, "vkCmdSetSampleLocationsEXT");
3408     out->vkGetPhysicalDeviceMultisamplePropertiesEXT =
3409         (PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT)vk->vkGetInstanceProcAddr(
3410             instance, "vkGetPhysicalDeviceMultisamplePropertiesEXT");
3411 #endif
3412 #ifdef VK_EXT_image_drm_format_modifier
3413     out->vkGetImageDrmFormatModifierPropertiesEXT =
3414         (PFN_vkGetImageDrmFormatModifierPropertiesEXT)vk->vkGetInstanceProcAddr(
3415             instance, "vkGetImageDrmFormatModifierPropertiesEXT");
3416 #endif
3417 #ifdef VK_EXT_validation_cache
3418     out->vkCreateValidationCacheEXT = (PFN_vkCreateValidationCacheEXT)vk->vkGetInstanceProcAddr(
3419         instance, "vkCreateValidationCacheEXT");
3420     out->vkDestroyValidationCacheEXT = (PFN_vkDestroyValidationCacheEXT)vk->vkGetInstanceProcAddr(
3421         instance, "vkDestroyValidationCacheEXT");
3422     out->vkMergeValidationCachesEXT = (PFN_vkMergeValidationCachesEXT)vk->vkGetInstanceProcAddr(
3423         instance, "vkMergeValidationCachesEXT");
3424     out->vkGetValidationCacheDataEXT = (PFN_vkGetValidationCacheDataEXT)vk->vkGetInstanceProcAddr(
3425         instance, "vkGetValidationCacheDataEXT");
3426 #endif
3427 #ifdef VK_NV_shading_rate_image
3428     out->vkCmdBindShadingRateImageNV = (PFN_vkCmdBindShadingRateImageNV)vk->vkGetInstanceProcAddr(
3429         instance, "vkCmdBindShadingRateImageNV");
3430     out->vkCmdSetViewportShadingRatePaletteNV =
3431         (PFN_vkCmdSetViewportShadingRatePaletteNV)vk->vkGetInstanceProcAddr(
3432             instance, "vkCmdSetViewportShadingRatePaletteNV");
3433     out->vkCmdSetCoarseSampleOrderNV = (PFN_vkCmdSetCoarseSampleOrderNV)vk->vkGetInstanceProcAddr(
3434         instance, "vkCmdSetCoarseSampleOrderNV");
3435 #endif
3436 #ifdef VK_NV_ray_tracing
3437     out->vkCreateAccelerationStructureNV =
3438         (PFN_vkCreateAccelerationStructureNV)vk->vkGetInstanceProcAddr(
3439             instance, "vkCreateAccelerationStructureNV");
3440     out->vkDestroyAccelerationStructureNV =
3441         (PFN_vkDestroyAccelerationStructureNV)vk->vkGetInstanceProcAddr(
3442             instance, "vkDestroyAccelerationStructureNV");
3443     out->vkGetAccelerationStructureMemoryRequirementsNV =
3444         (PFN_vkGetAccelerationStructureMemoryRequirementsNV)vk->vkGetInstanceProcAddr(
3445             instance, "vkGetAccelerationStructureMemoryRequirementsNV");
3446     out->vkBindAccelerationStructureMemoryNV =
3447         (PFN_vkBindAccelerationStructureMemoryNV)vk->vkGetInstanceProcAddr(
3448             instance, "vkBindAccelerationStructureMemoryNV");
3449     out->vkCmdBuildAccelerationStructureNV =
3450         (PFN_vkCmdBuildAccelerationStructureNV)vk->vkGetInstanceProcAddr(
3451             instance, "vkCmdBuildAccelerationStructureNV");
3452     out->vkCmdCopyAccelerationStructureNV =
3453         (PFN_vkCmdCopyAccelerationStructureNV)vk->vkGetInstanceProcAddr(
3454             instance, "vkCmdCopyAccelerationStructureNV");
3455     out->vkCmdTraceRaysNV =
3456         (PFN_vkCmdTraceRaysNV)vk->vkGetInstanceProcAddr(instance, "vkCmdTraceRaysNV");
3457     out->vkCreateRayTracingPipelinesNV =
3458         (PFN_vkCreateRayTracingPipelinesNV)vk->vkGetInstanceProcAddr(
3459             instance, "vkCreateRayTracingPipelinesNV");
3460     out->vkGetRayTracingShaderGroupHandlesKHR =
3461         (PFN_vkGetRayTracingShaderGroupHandlesKHR)vk->vkGetInstanceProcAddr(
3462             instance, "vkGetRayTracingShaderGroupHandlesKHR");
3463     out->vkGetRayTracingShaderGroupHandlesNV =
3464         (PFN_vkGetRayTracingShaderGroupHandlesNV)vk->vkGetInstanceProcAddr(
3465             instance, "vkGetRayTracingShaderGroupHandlesNV");
3466     out->vkGetAccelerationStructureHandleNV =
3467         (PFN_vkGetAccelerationStructureHandleNV)vk->vkGetInstanceProcAddr(
3468             instance, "vkGetAccelerationStructureHandleNV");
3469     out->vkCmdWriteAccelerationStructuresPropertiesNV =
3470         (PFN_vkCmdWriteAccelerationStructuresPropertiesNV)vk->vkGetInstanceProcAddr(
3471             instance, "vkCmdWriteAccelerationStructuresPropertiesNV");
3472     out->vkCompileDeferredNV =
3473         (PFN_vkCompileDeferredNV)vk->vkGetInstanceProcAddr(instance, "vkCompileDeferredNV");
3474 #endif
3475 #ifdef VK_EXT_external_memory_host
3476     out->vkGetMemoryHostPointerPropertiesEXT =
3477         (PFN_vkGetMemoryHostPointerPropertiesEXT)vk->vkGetInstanceProcAddr(
3478             instance, "vkGetMemoryHostPointerPropertiesEXT");
3479 #endif
3480 #ifdef VK_AMD_buffer_marker
3481     out->vkCmdWriteBufferMarkerAMD = (PFN_vkCmdWriteBufferMarkerAMD)vk->vkGetInstanceProcAddr(
3482         instance, "vkCmdWriteBufferMarkerAMD");
3483 #endif
3484 #ifdef VK_EXT_calibrated_timestamps
3485     out->vkGetPhysicalDeviceCalibrateableTimeDomainsEXT =
3486         (PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)vk->vkGetInstanceProcAddr(
3487             instance, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT");
3488     out->vkGetCalibratedTimestampsEXT = (PFN_vkGetCalibratedTimestampsEXT)vk->vkGetInstanceProcAddr(
3489         instance, "vkGetCalibratedTimestampsEXT");
3490 #endif
3491 #ifdef VK_NV_mesh_shader
3492     out->vkCmdDrawMeshTasksNV =
3493         (PFN_vkCmdDrawMeshTasksNV)vk->vkGetInstanceProcAddr(instance, "vkCmdDrawMeshTasksNV");
3494     out->vkCmdDrawMeshTasksIndirectNV = (PFN_vkCmdDrawMeshTasksIndirectNV)vk->vkGetInstanceProcAddr(
3495         instance, "vkCmdDrawMeshTasksIndirectNV");
3496     out->vkCmdDrawMeshTasksIndirectCountNV =
3497         (PFN_vkCmdDrawMeshTasksIndirectCountNV)vk->vkGetInstanceProcAddr(
3498             instance, "vkCmdDrawMeshTasksIndirectCountNV");
3499 #endif
3500 #ifdef VK_NV_scissor_exclusive
3501     out->vkCmdSetExclusiveScissorEnableNV =
3502         (PFN_vkCmdSetExclusiveScissorEnableNV)vk->vkGetInstanceProcAddr(
3503             instance, "vkCmdSetExclusiveScissorEnableNV");
3504     out->vkCmdSetExclusiveScissorNV = (PFN_vkCmdSetExclusiveScissorNV)vk->vkGetInstanceProcAddr(
3505         instance, "vkCmdSetExclusiveScissorNV");
3506 #endif
3507 #ifdef VK_NV_device_diagnostic_checkpoints
3508     out->vkCmdSetCheckpointNV =
3509         (PFN_vkCmdSetCheckpointNV)vk->vkGetInstanceProcAddr(instance, "vkCmdSetCheckpointNV");
3510     out->vkGetQueueCheckpointDataNV = (PFN_vkGetQueueCheckpointDataNV)vk->vkGetInstanceProcAddr(
3511         instance, "vkGetQueueCheckpointDataNV");
3512 #endif
3513 #ifdef VK_INTEL_performance_query
3514     out->vkInitializePerformanceApiINTEL =
3515         (PFN_vkInitializePerformanceApiINTEL)vk->vkGetInstanceProcAddr(
3516             instance, "vkInitializePerformanceApiINTEL");
3517     out->vkUninitializePerformanceApiINTEL =
3518         (PFN_vkUninitializePerformanceApiINTEL)vk->vkGetInstanceProcAddr(
3519             instance, "vkUninitializePerformanceApiINTEL");
3520     out->vkCmdSetPerformanceMarkerINTEL =
3521         (PFN_vkCmdSetPerformanceMarkerINTEL)vk->vkGetInstanceProcAddr(
3522             instance, "vkCmdSetPerformanceMarkerINTEL");
3523     out->vkCmdSetPerformanceStreamMarkerINTEL =
3524         (PFN_vkCmdSetPerformanceStreamMarkerINTEL)vk->vkGetInstanceProcAddr(
3525             instance, "vkCmdSetPerformanceStreamMarkerINTEL");
3526     out->vkCmdSetPerformanceOverrideINTEL =
3527         (PFN_vkCmdSetPerformanceOverrideINTEL)vk->vkGetInstanceProcAddr(
3528             instance, "vkCmdSetPerformanceOverrideINTEL");
3529     out->vkAcquirePerformanceConfigurationINTEL =
3530         (PFN_vkAcquirePerformanceConfigurationINTEL)vk->vkGetInstanceProcAddr(
3531             instance, "vkAcquirePerformanceConfigurationINTEL");
3532     out->vkReleasePerformanceConfigurationINTEL =
3533         (PFN_vkReleasePerformanceConfigurationINTEL)vk->vkGetInstanceProcAddr(
3534             instance, "vkReleasePerformanceConfigurationINTEL");
3535     out->vkQueueSetPerformanceConfigurationINTEL =
3536         (PFN_vkQueueSetPerformanceConfigurationINTEL)vk->vkGetInstanceProcAddr(
3537             instance, "vkQueueSetPerformanceConfigurationINTEL");
3538     out->vkGetPerformanceParameterINTEL =
3539         (PFN_vkGetPerformanceParameterINTEL)vk->vkGetInstanceProcAddr(
3540             instance, "vkGetPerformanceParameterINTEL");
3541 #endif
3542 #ifdef VK_AMD_display_native_hdr
3543     out->vkSetLocalDimmingAMD =
3544         (PFN_vkSetLocalDimmingAMD)vk->vkGetInstanceProcAddr(instance, "vkSetLocalDimmingAMD");
3545 #endif
3546 #ifdef VK_EXT_buffer_device_address
3547     out->vkGetBufferDeviceAddressEXT = (PFN_vkGetBufferDeviceAddressEXT)vk->vkGetInstanceProcAddr(
3548         instance, "vkGetBufferDeviceAddressEXT");
3549 #endif
3550 #ifdef VK_EXT_tooling_info
3551     out->vkGetPhysicalDeviceToolPropertiesEXT =
3552         (PFN_vkGetPhysicalDeviceToolPropertiesEXT)vk->vkGetInstanceProcAddr(
3553             instance, "vkGetPhysicalDeviceToolPropertiesEXT");
3554 #endif
3555 #ifdef VK_NV_cooperative_matrix
3556     out->vkGetPhysicalDeviceCooperativeMatrixPropertiesNV =
3557         (PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV)vk->vkGetInstanceProcAddr(
3558             instance, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV");
3559 #endif
3560 #ifdef VK_NV_coverage_reduction_mode
3561     out->vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV =
3562         (PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV)
3563             vk->vkGetInstanceProcAddr(
3564                 instance, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV");
3565 #endif
3566 #ifdef VK_EXT_full_screen_exclusive
3567     out->vkGetPhysicalDeviceSurfacePresentModes2EXT =
3568         (PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT)vk->vkGetInstanceProcAddr(
3569             instance, "vkGetPhysicalDeviceSurfacePresentModes2EXT");
3570     out->vkAcquireFullScreenExclusiveModeEXT =
3571         (PFN_vkAcquireFullScreenExclusiveModeEXT)vk->vkGetInstanceProcAddr(
3572             instance, "vkAcquireFullScreenExclusiveModeEXT");
3573     out->vkReleaseFullScreenExclusiveModeEXT =
3574         (PFN_vkReleaseFullScreenExclusiveModeEXT)vk->vkGetInstanceProcAddr(
3575             instance, "vkReleaseFullScreenExclusiveModeEXT");
3576     out->vkGetDeviceGroupSurfacePresentModes2EXT =
3577         (PFN_vkGetDeviceGroupSurfacePresentModes2EXT)vk->vkGetInstanceProcAddr(
3578             instance, "vkGetDeviceGroupSurfacePresentModes2EXT");
3579 #endif
3580 #ifdef VK_EXT_line_rasterization
3581     out->vkCmdSetLineStippleEXT =
3582         (PFN_vkCmdSetLineStippleEXT)vk->vkGetInstanceProcAddr(instance, "vkCmdSetLineStippleEXT");
3583 #endif
3584 #ifdef VK_EXT_host_query_reset
3585     out->vkResetQueryPoolEXT =
3586         (PFN_vkResetQueryPoolEXT)vk->vkGetInstanceProcAddr(instance, "vkResetQueryPoolEXT");
3587 #endif
3588 #ifdef VK_EXT_extended_dynamic_state
3589     out->vkCmdSetCullModeEXT =
3590         (PFN_vkCmdSetCullModeEXT)vk->vkGetInstanceProcAddr(instance, "vkCmdSetCullModeEXT");
3591     out->vkCmdSetFrontFaceEXT =
3592         (PFN_vkCmdSetFrontFaceEXT)vk->vkGetInstanceProcAddr(instance, "vkCmdSetFrontFaceEXT");
3593     out->vkCmdSetPrimitiveTopologyEXT = (PFN_vkCmdSetPrimitiveTopologyEXT)vk->vkGetInstanceProcAddr(
3594         instance, "vkCmdSetPrimitiveTopologyEXT");
3595     out->vkCmdSetViewportWithCountEXT = (PFN_vkCmdSetViewportWithCountEXT)vk->vkGetInstanceProcAddr(
3596         instance, "vkCmdSetViewportWithCountEXT");
3597     out->vkCmdSetScissorWithCountEXT = (PFN_vkCmdSetScissorWithCountEXT)vk->vkGetInstanceProcAddr(
3598         instance, "vkCmdSetScissorWithCountEXT");
3599     out->vkCmdBindVertexBuffers2EXT = (PFN_vkCmdBindVertexBuffers2EXT)vk->vkGetInstanceProcAddr(
3600         instance, "vkCmdBindVertexBuffers2EXT");
3601     out->vkCmdSetDepthTestEnableEXT = (PFN_vkCmdSetDepthTestEnableEXT)vk->vkGetInstanceProcAddr(
3602         instance, "vkCmdSetDepthTestEnableEXT");
3603     out->vkCmdSetDepthWriteEnableEXT = (PFN_vkCmdSetDepthWriteEnableEXT)vk->vkGetInstanceProcAddr(
3604         instance, "vkCmdSetDepthWriteEnableEXT");
3605     out->vkCmdSetDepthCompareOpEXT = (PFN_vkCmdSetDepthCompareOpEXT)vk->vkGetInstanceProcAddr(
3606         instance, "vkCmdSetDepthCompareOpEXT");
3607     out->vkCmdSetDepthBoundsTestEnableEXT =
3608         (PFN_vkCmdSetDepthBoundsTestEnableEXT)vk->vkGetInstanceProcAddr(
3609             instance, "vkCmdSetDepthBoundsTestEnableEXT");
3610     out->vkCmdSetStencilTestEnableEXT = (PFN_vkCmdSetStencilTestEnableEXT)vk->vkGetInstanceProcAddr(
3611         instance, "vkCmdSetStencilTestEnableEXT");
3612     out->vkCmdSetStencilOpEXT =
3613         (PFN_vkCmdSetStencilOpEXT)vk->vkGetInstanceProcAddr(instance, "vkCmdSetStencilOpEXT");
3614 #endif
3615 #ifdef VK_EXT_swapchain_maintenance1
3616     out->vkReleaseSwapchainImagesEXT = (PFN_vkReleaseSwapchainImagesEXT)vk->vkGetInstanceProcAddr(
3617         instance, "vkReleaseSwapchainImagesEXT");
3618 #endif
3619 #ifdef VK_NV_device_generated_commands
3620     out->vkGetGeneratedCommandsMemoryRequirementsNV =
3621         (PFN_vkGetGeneratedCommandsMemoryRequirementsNV)vk->vkGetInstanceProcAddr(
3622             instance, "vkGetGeneratedCommandsMemoryRequirementsNV");
3623     out->vkCmdPreprocessGeneratedCommandsNV =
3624         (PFN_vkCmdPreprocessGeneratedCommandsNV)vk->vkGetInstanceProcAddr(
3625             instance, "vkCmdPreprocessGeneratedCommandsNV");
3626     out->vkCmdExecuteGeneratedCommandsNV =
3627         (PFN_vkCmdExecuteGeneratedCommandsNV)vk->vkGetInstanceProcAddr(
3628             instance, "vkCmdExecuteGeneratedCommandsNV");
3629     out->vkCmdBindPipelineShaderGroupNV =
3630         (PFN_vkCmdBindPipelineShaderGroupNV)vk->vkGetInstanceProcAddr(
3631             instance, "vkCmdBindPipelineShaderGroupNV");
3632     out->vkCreateIndirectCommandsLayoutNV =
3633         (PFN_vkCreateIndirectCommandsLayoutNV)vk->vkGetInstanceProcAddr(
3634             instance, "vkCreateIndirectCommandsLayoutNV");
3635     out->vkDestroyIndirectCommandsLayoutNV =
3636         (PFN_vkDestroyIndirectCommandsLayoutNV)vk->vkGetInstanceProcAddr(
3637             instance, "vkDestroyIndirectCommandsLayoutNV");
3638 #endif
3639 #ifdef VK_EXT_acquire_drm_display
3640     out->vkAcquireDrmDisplayEXT =
3641         (PFN_vkAcquireDrmDisplayEXT)vk->vkGetInstanceProcAddr(instance, "vkAcquireDrmDisplayEXT");
3642     out->vkGetDrmDisplayEXT =
3643         (PFN_vkGetDrmDisplayEXT)vk->vkGetInstanceProcAddr(instance, "vkGetDrmDisplayEXT");
3644 #endif
3645 #ifdef VK_EXT_private_data
3646     out->vkCreatePrivateDataSlotEXT = (PFN_vkCreatePrivateDataSlotEXT)vk->vkGetInstanceProcAddr(
3647         instance, "vkCreatePrivateDataSlotEXT");
3648     out->vkDestroyPrivateDataSlotEXT = (PFN_vkDestroyPrivateDataSlotEXT)vk->vkGetInstanceProcAddr(
3649         instance, "vkDestroyPrivateDataSlotEXT");
3650     out->vkSetPrivateDataEXT =
3651         (PFN_vkSetPrivateDataEXT)vk->vkGetInstanceProcAddr(instance, "vkSetPrivateDataEXT");
3652     out->vkGetPrivateDataEXT =
3653         (PFN_vkGetPrivateDataEXT)vk->vkGetInstanceProcAddr(instance, "vkGetPrivateDataEXT");
3654 #endif
3655 #ifdef VK_EXT_metal_objects
3656     out->vkExportMetalObjectsEXT =
3657         (PFN_vkExportMetalObjectsEXT)vk->vkGetInstanceProcAddr(instance, "vkExportMetalObjectsEXT");
3658 #endif
3659 #ifdef VK_EXT_descriptor_buffer
3660     out->vkGetDescriptorSetLayoutSizeEXT =
3661         (PFN_vkGetDescriptorSetLayoutSizeEXT)vk->vkGetInstanceProcAddr(
3662             instance, "vkGetDescriptorSetLayoutSizeEXT");
3663     out->vkGetDescriptorSetLayoutBindingOffsetEXT =
3664         (PFN_vkGetDescriptorSetLayoutBindingOffsetEXT)vk->vkGetInstanceProcAddr(
3665             instance, "vkGetDescriptorSetLayoutBindingOffsetEXT");
3666     out->vkGetDescriptorEXT =
3667         (PFN_vkGetDescriptorEXT)vk->vkGetInstanceProcAddr(instance, "vkGetDescriptorEXT");
3668     out->vkCmdBindDescriptorBuffersEXT =
3669         (PFN_vkCmdBindDescriptorBuffersEXT)vk->vkGetInstanceProcAddr(
3670             instance, "vkCmdBindDescriptorBuffersEXT");
3671     out->vkCmdSetDescriptorBufferOffsetsEXT =
3672         (PFN_vkCmdSetDescriptorBufferOffsetsEXT)vk->vkGetInstanceProcAddr(
3673             instance, "vkCmdSetDescriptorBufferOffsetsEXT");
3674     out->vkCmdBindDescriptorBufferEmbeddedSamplersEXT =
3675         (PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT)vk->vkGetInstanceProcAddr(
3676             instance, "vkCmdBindDescriptorBufferEmbeddedSamplersEXT");
3677     out->vkGetBufferOpaqueCaptureDescriptorDataEXT =
3678         (PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT)vk->vkGetInstanceProcAddr(
3679             instance, "vkGetBufferOpaqueCaptureDescriptorDataEXT");
3680     out->vkGetImageOpaqueCaptureDescriptorDataEXT =
3681         (PFN_vkGetImageOpaqueCaptureDescriptorDataEXT)vk->vkGetInstanceProcAddr(
3682             instance, "vkGetImageOpaqueCaptureDescriptorDataEXT");
3683     out->vkGetImageViewOpaqueCaptureDescriptorDataEXT =
3684         (PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT)vk->vkGetInstanceProcAddr(
3685             instance, "vkGetImageViewOpaqueCaptureDescriptorDataEXT");
3686     out->vkGetSamplerOpaqueCaptureDescriptorDataEXT =
3687         (PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT)vk->vkGetInstanceProcAddr(
3688             instance, "vkGetSamplerOpaqueCaptureDescriptorDataEXT");
3689     out->vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT =
3690         (PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT)vk->vkGetInstanceProcAddr(
3691             instance, "vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT");
3692 #endif
3693 #ifdef VK_NV_fragment_shading_rate_enums
3694     out->vkCmdSetFragmentShadingRateEnumNV =
3695         (PFN_vkCmdSetFragmentShadingRateEnumNV)vk->vkGetInstanceProcAddr(
3696             instance, "vkCmdSetFragmentShadingRateEnumNV");
3697 #endif
3698 #ifdef VK_EXT_image_compression_control
3699     out->vkGetImageSubresourceLayout2EXT =
3700         (PFN_vkGetImageSubresourceLayout2EXT)vk->vkGetInstanceProcAddr(
3701             instance, "vkGetImageSubresourceLayout2EXT");
3702 #endif
3703 #ifdef VK_EXT_device_fault
3704     out->vkGetDeviceFaultInfoEXT =
3705         (PFN_vkGetDeviceFaultInfoEXT)vk->vkGetInstanceProcAddr(instance, "vkGetDeviceFaultInfoEXT");
3706 #endif
3707 #ifdef VK_NV_acquire_winrt_display
3708     out->vkAcquireWinrtDisplayNV =
3709         (PFN_vkAcquireWinrtDisplayNV)vk->vkGetInstanceProcAddr(instance, "vkAcquireWinrtDisplayNV");
3710     out->vkGetWinrtDisplayNV =
3711         (PFN_vkGetWinrtDisplayNV)vk->vkGetInstanceProcAddr(instance, "vkGetWinrtDisplayNV");
3712 #endif
3713 #ifdef VK_EXT_directfb_surface
3714     out->vkGetPhysicalDeviceDirectFBPresentationSupportEXT =
3715         (PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT)vk->vkGetInstanceProcAddr(
3716             instance, "vkGetPhysicalDeviceDirectFBPresentationSupportEXT");
3717 #endif
3718 #ifdef VK_EXT_vertex_input_dynamic_state
3719     out->vkCmdSetVertexInputEXT =
3720         (PFN_vkCmdSetVertexInputEXT)vk->vkGetInstanceProcAddr(instance, "vkCmdSetVertexInputEXT");
3721 #endif
3722 #ifdef VK_FUCHSIA_external_memory
3723     out->vkGetMemoryZirconHandleFUCHSIA =
3724         (PFN_vkGetMemoryZirconHandleFUCHSIA)vk->vkGetInstanceProcAddr(
3725             instance, "vkGetMemoryZirconHandleFUCHSIA");
3726     out->vkGetMemoryZirconHandlePropertiesFUCHSIA =
3727         (PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA)vk->vkGetInstanceProcAddr(
3728             instance, "vkGetMemoryZirconHandlePropertiesFUCHSIA");
3729 #endif
3730 #ifdef VK_FUCHSIA_external_semaphore
3731     out->vkImportSemaphoreZirconHandleFUCHSIA =
3732         (PFN_vkImportSemaphoreZirconHandleFUCHSIA)vk->vkGetInstanceProcAddr(
3733             instance, "vkImportSemaphoreZirconHandleFUCHSIA");
3734     out->vkGetSemaphoreZirconHandleFUCHSIA =
3735         (PFN_vkGetSemaphoreZirconHandleFUCHSIA)vk->vkGetInstanceProcAddr(
3736             instance, "vkGetSemaphoreZirconHandleFUCHSIA");
3737 #endif
3738 #ifdef VK_FUCHSIA_buffer_collection
3739     out->vkCreateBufferCollectionFUCHSIA =
3740         (PFN_vkCreateBufferCollectionFUCHSIA)vk->vkGetInstanceProcAddr(
3741             instance, "vkCreateBufferCollectionFUCHSIA");
3742     out->vkSetBufferCollectionImageConstraintsFUCHSIA =
3743         (PFN_vkSetBufferCollectionImageConstraintsFUCHSIA)vk->vkGetInstanceProcAddr(
3744             instance, "vkSetBufferCollectionImageConstraintsFUCHSIA");
3745     out->vkSetBufferCollectionBufferConstraintsFUCHSIA =
3746         (PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA)vk->vkGetInstanceProcAddr(
3747             instance, "vkSetBufferCollectionBufferConstraintsFUCHSIA");
3748     out->vkDestroyBufferCollectionFUCHSIA =
3749         (PFN_vkDestroyBufferCollectionFUCHSIA)vk->vkGetInstanceProcAddr(
3750             instance, "vkDestroyBufferCollectionFUCHSIA");
3751     out->vkGetBufferCollectionPropertiesFUCHSIA =
3752         (PFN_vkGetBufferCollectionPropertiesFUCHSIA)vk->vkGetInstanceProcAddr(
3753             instance, "vkGetBufferCollectionPropertiesFUCHSIA");
3754 #endif
3755 #ifdef VK_HUAWEI_subpass_shading
3756     out->vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI =
3757         (PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI)vk->vkGetInstanceProcAddr(
3758             instance, "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI");
3759     out->vkCmdSubpassShadingHUAWEI = (PFN_vkCmdSubpassShadingHUAWEI)vk->vkGetInstanceProcAddr(
3760         instance, "vkCmdSubpassShadingHUAWEI");
3761 #endif
3762 #ifdef VK_HUAWEI_invocation_mask
3763     out->vkCmdBindInvocationMaskHUAWEI =
3764         (PFN_vkCmdBindInvocationMaskHUAWEI)vk->vkGetInstanceProcAddr(
3765             instance, "vkCmdBindInvocationMaskHUAWEI");
3766 #endif
3767 #ifdef VK_NV_external_memory_rdma
3768     out->vkGetMemoryRemoteAddressNV = (PFN_vkGetMemoryRemoteAddressNV)vk->vkGetInstanceProcAddr(
3769         instance, "vkGetMemoryRemoteAddressNV");
3770 #endif
3771 #ifdef VK_EXT_pipeline_properties
3772     out->vkGetPipelinePropertiesEXT = (PFN_vkGetPipelinePropertiesEXT)vk->vkGetInstanceProcAddr(
3773         instance, "vkGetPipelinePropertiesEXT");
3774 #endif
3775 #ifdef VK_EXT_extended_dynamic_state2
3776     out->vkCmdSetPatchControlPointsEXT =
3777         (PFN_vkCmdSetPatchControlPointsEXT)vk->vkGetInstanceProcAddr(
3778             instance, "vkCmdSetPatchControlPointsEXT");
3779     out->vkCmdSetRasterizerDiscardEnableEXT =
3780         (PFN_vkCmdSetRasterizerDiscardEnableEXT)vk->vkGetInstanceProcAddr(
3781             instance, "vkCmdSetRasterizerDiscardEnableEXT");
3782     out->vkCmdSetDepthBiasEnableEXT = (PFN_vkCmdSetDepthBiasEnableEXT)vk->vkGetInstanceProcAddr(
3783         instance, "vkCmdSetDepthBiasEnableEXT");
3784     out->vkCmdSetLogicOpEXT =
3785         (PFN_vkCmdSetLogicOpEXT)vk->vkGetInstanceProcAddr(instance, "vkCmdSetLogicOpEXT");
3786     out->vkCmdSetPrimitiveRestartEnableEXT =
3787         (PFN_vkCmdSetPrimitiveRestartEnableEXT)vk->vkGetInstanceProcAddr(
3788             instance, "vkCmdSetPrimitiveRestartEnableEXT");
3789 #endif
3790 #ifdef VK_QNX_screen_surface
3791     out->vkGetPhysicalDeviceScreenPresentationSupportQNX =
3792         (PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX)vk->vkGetInstanceProcAddr(
3793             instance, "vkGetPhysicalDeviceScreenPresentationSupportQNX");
3794 #endif
3795 #ifdef VK_EXT_color_write_enable
3796     out->vkCmdSetColorWriteEnableEXT = (PFN_vkCmdSetColorWriteEnableEXT)vk->vkGetInstanceProcAddr(
3797         instance, "vkCmdSetColorWriteEnableEXT");
3798 #endif
3799 #ifdef VK_GOOGLE_gfxstream
3800     out->vkMapMemoryIntoAddressSpaceGOOGLE =
3801         (PFN_vkMapMemoryIntoAddressSpaceGOOGLE)vk->vkGetInstanceProcAddr(
3802             instance, "vkMapMemoryIntoAddressSpaceGOOGLE");
3803     out->vkUpdateDescriptorSetWithTemplateSizedGOOGLE =
3804         (PFN_vkUpdateDescriptorSetWithTemplateSizedGOOGLE)vk->vkGetInstanceProcAddr(
3805             instance, "vkUpdateDescriptorSetWithTemplateSizedGOOGLE");
3806     out->vkBeginCommandBufferAsyncGOOGLE =
3807         (PFN_vkBeginCommandBufferAsyncGOOGLE)vk->vkGetInstanceProcAddr(
3808             instance, "vkBeginCommandBufferAsyncGOOGLE");
3809     out->vkEndCommandBufferAsyncGOOGLE =
3810         (PFN_vkEndCommandBufferAsyncGOOGLE)vk->vkGetInstanceProcAddr(
3811             instance, "vkEndCommandBufferAsyncGOOGLE");
3812     out->vkResetCommandBufferAsyncGOOGLE =
3813         (PFN_vkResetCommandBufferAsyncGOOGLE)vk->vkGetInstanceProcAddr(
3814             instance, "vkResetCommandBufferAsyncGOOGLE");
3815     out->vkCommandBufferHostSyncGOOGLE =
3816         (PFN_vkCommandBufferHostSyncGOOGLE)vk->vkGetInstanceProcAddr(
3817             instance, "vkCommandBufferHostSyncGOOGLE");
3818     out->vkCreateImageWithRequirementsGOOGLE =
3819         (PFN_vkCreateImageWithRequirementsGOOGLE)vk->vkGetInstanceProcAddr(
3820             instance, "vkCreateImageWithRequirementsGOOGLE");
3821     out->vkCreateBufferWithRequirementsGOOGLE =
3822         (PFN_vkCreateBufferWithRequirementsGOOGLE)vk->vkGetInstanceProcAddr(
3823             instance, "vkCreateBufferWithRequirementsGOOGLE");
3824     out->vkGetMemoryHostAddressInfoGOOGLE =
3825         (PFN_vkGetMemoryHostAddressInfoGOOGLE)vk->vkGetInstanceProcAddr(
3826             instance, "vkGetMemoryHostAddressInfoGOOGLE");
3827     out->vkFreeMemorySyncGOOGLE =
3828         (PFN_vkFreeMemorySyncGOOGLE)vk->vkGetInstanceProcAddr(instance, "vkFreeMemorySyncGOOGLE");
3829     out->vkQueueHostSyncGOOGLE =
3830         (PFN_vkQueueHostSyncGOOGLE)vk->vkGetInstanceProcAddr(instance, "vkQueueHostSyncGOOGLE");
3831     out->vkQueueSubmitAsyncGOOGLE = (PFN_vkQueueSubmitAsyncGOOGLE)vk->vkGetInstanceProcAddr(
3832         instance, "vkQueueSubmitAsyncGOOGLE");
3833     out->vkQueueWaitIdleAsyncGOOGLE = (PFN_vkQueueWaitIdleAsyncGOOGLE)vk->vkGetInstanceProcAddr(
3834         instance, "vkQueueWaitIdleAsyncGOOGLE");
3835     out->vkQueueBindSparseAsyncGOOGLE = (PFN_vkQueueBindSparseAsyncGOOGLE)vk->vkGetInstanceProcAddr(
3836         instance, "vkQueueBindSparseAsyncGOOGLE");
3837     out->vkGetLinearImageLayoutGOOGLE = (PFN_vkGetLinearImageLayoutGOOGLE)vk->vkGetInstanceProcAddr(
3838         instance, "vkGetLinearImageLayoutGOOGLE");
3839     out->vkGetLinearImageLayout2GOOGLE =
3840         (PFN_vkGetLinearImageLayout2GOOGLE)vk->vkGetInstanceProcAddr(
3841             instance, "vkGetLinearImageLayout2GOOGLE");
3842     out->vkQueueFlushCommandsGOOGLE = (PFN_vkQueueFlushCommandsGOOGLE)vk->vkGetInstanceProcAddr(
3843         instance, "vkQueueFlushCommandsGOOGLE");
3844     out->vkQueueCommitDescriptorSetUpdatesGOOGLE =
3845         (PFN_vkQueueCommitDescriptorSetUpdatesGOOGLE)vk->vkGetInstanceProcAddr(
3846             instance, "vkQueueCommitDescriptorSetUpdatesGOOGLE");
3847     out->vkCollectDescriptorPoolIdsGOOGLE =
3848         (PFN_vkCollectDescriptorPoolIdsGOOGLE)vk->vkGetInstanceProcAddr(
3849             instance, "vkCollectDescriptorPoolIdsGOOGLE");
3850     out->vkQueueSignalReleaseImageANDROIDAsyncGOOGLE =
3851         (PFN_vkQueueSignalReleaseImageANDROIDAsyncGOOGLE)vk->vkGetInstanceProcAddr(
3852             instance, "vkQueueSignalReleaseImageANDROIDAsyncGOOGLE");
3853     out->vkQueueFlushCommandsFromAuxMemoryGOOGLE =
3854         (PFN_vkQueueFlushCommandsFromAuxMemoryGOOGLE)vk->vkGetInstanceProcAddr(
3855             instance, "vkQueueFlushCommandsFromAuxMemoryGOOGLE");
3856     out->vkGetBlobGOOGLE =
3857         (PFN_vkGetBlobGOOGLE)vk->vkGetInstanceProcAddr(instance, "vkGetBlobGOOGLE");
3858     out->vkUpdateDescriptorSetWithTemplateSized2GOOGLE =
3859         (PFN_vkUpdateDescriptorSetWithTemplateSized2GOOGLE)vk->vkGetInstanceProcAddr(
3860             instance, "vkUpdateDescriptorSetWithTemplateSized2GOOGLE");
3861 #endif
3862 #ifdef VK_EXT_multi_draw
3863     out->vkCmdDrawMultiEXT =
3864         (PFN_vkCmdDrawMultiEXT)vk->vkGetInstanceProcAddr(instance, "vkCmdDrawMultiEXT");
3865     out->vkCmdDrawMultiIndexedEXT = (PFN_vkCmdDrawMultiIndexedEXT)vk->vkGetInstanceProcAddr(
3866         instance, "vkCmdDrawMultiIndexedEXT");
3867 #endif
3868 #ifdef VK_EXT_opacity_micromap
3869     out->vkCreateMicromapEXT =
3870         (PFN_vkCreateMicromapEXT)vk->vkGetInstanceProcAddr(instance, "vkCreateMicromapEXT");
3871     out->vkDestroyMicromapEXT =
3872         (PFN_vkDestroyMicromapEXT)vk->vkGetInstanceProcAddr(instance, "vkDestroyMicromapEXT");
3873     out->vkCmdBuildMicromapsEXT =
3874         (PFN_vkCmdBuildMicromapsEXT)vk->vkGetInstanceProcAddr(instance, "vkCmdBuildMicromapsEXT");
3875     out->vkBuildMicromapsEXT =
3876         (PFN_vkBuildMicromapsEXT)vk->vkGetInstanceProcAddr(instance, "vkBuildMicromapsEXT");
3877     out->vkCopyMicromapEXT =
3878         (PFN_vkCopyMicromapEXT)vk->vkGetInstanceProcAddr(instance, "vkCopyMicromapEXT");
3879     out->vkCopyMicromapToMemoryEXT = (PFN_vkCopyMicromapToMemoryEXT)vk->vkGetInstanceProcAddr(
3880         instance, "vkCopyMicromapToMemoryEXT");
3881     out->vkCopyMemoryToMicromapEXT = (PFN_vkCopyMemoryToMicromapEXT)vk->vkGetInstanceProcAddr(
3882         instance, "vkCopyMemoryToMicromapEXT");
3883     out->vkWriteMicromapsPropertiesEXT =
3884         (PFN_vkWriteMicromapsPropertiesEXT)vk->vkGetInstanceProcAddr(
3885             instance, "vkWriteMicromapsPropertiesEXT");
3886     out->vkCmdCopyMicromapEXT =
3887         (PFN_vkCmdCopyMicromapEXT)vk->vkGetInstanceProcAddr(instance, "vkCmdCopyMicromapEXT");
3888     out->vkCmdCopyMicromapToMemoryEXT = (PFN_vkCmdCopyMicromapToMemoryEXT)vk->vkGetInstanceProcAddr(
3889         instance, "vkCmdCopyMicromapToMemoryEXT");
3890     out->vkCmdCopyMemoryToMicromapEXT = (PFN_vkCmdCopyMemoryToMicromapEXT)vk->vkGetInstanceProcAddr(
3891         instance, "vkCmdCopyMemoryToMicromapEXT");
3892     out->vkCmdWriteMicromapsPropertiesEXT =
3893         (PFN_vkCmdWriteMicromapsPropertiesEXT)vk->vkGetInstanceProcAddr(
3894             instance, "vkCmdWriteMicromapsPropertiesEXT");
3895     out->vkGetDeviceMicromapCompatibilityEXT =
3896         (PFN_vkGetDeviceMicromapCompatibilityEXT)vk->vkGetInstanceProcAddr(
3897             instance, "vkGetDeviceMicromapCompatibilityEXT");
3898     out->vkGetMicromapBuildSizesEXT = (PFN_vkGetMicromapBuildSizesEXT)vk->vkGetInstanceProcAddr(
3899         instance, "vkGetMicromapBuildSizesEXT");
3900 #endif
3901 #ifdef VK_HUAWEI_cluster_culling_shader
3902     out->vkCmdDrawClusterHUAWEI =
3903         (PFN_vkCmdDrawClusterHUAWEI)vk->vkGetInstanceProcAddr(instance, "vkCmdDrawClusterHUAWEI");
3904     out->vkCmdDrawClusterIndirectHUAWEI =
3905         (PFN_vkCmdDrawClusterIndirectHUAWEI)vk->vkGetInstanceProcAddr(
3906             instance, "vkCmdDrawClusterIndirectHUAWEI");
3907 #endif
3908 #ifdef VK_EXT_pageable_device_local_memory
3909     out->vkSetDeviceMemoryPriorityEXT = (PFN_vkSetDeviceMemoryPriorityEXT)vk->vkGetInstanceProcAddr(
3910         instance, "vkSetDeviceMemoryPriorityEXT");
3911 #endif
3912 #ifdef VK_VALVE_descriptor_set_host_mapping
3913     out->vkGetDescriptorSetLayoutHostMappingInfoVALVE =
3914         (PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE)vk->vkGetInstanceProcAddr(
3915             instance, "vkGetDescriptorSetLayoutHostMappingInfoVALVE");
3916     out->vkGetDescriptorSetHostMappingVALVE =
3917         (PFN_vkGetDescriptorSetHostMappingVALVE)vk->vkGetInstanceProcAddr(
3918             instance, "vkGetDescriptorSetHostMappingVALVE");
3919 #endif
3920 #ifdef VK_NV_copy_memory_indirect
3921     out->vkCmdCopyMemoryIndirectNV = (PFN_vkCmdCopyMemoryIndirectNV)vk->vkGetInstanceProcAddr(
3922         instance, "vkCmdCopyMemoryIndirectNV");
3923     out->vkCmdCopyMemoryToImageIndirectNV =
3924         (PFN_vkCmdCopyMemoryToImageIndirectNV)vk->vkGetInstanceProcAddr(
3925             instance, "vkCmdCopyMemoryToImageIndirectNV");
3926 #endif
3927 #ifdef VK_NV_memory_decompression
3928     out->vkCmdDecompressMemoryNV =
3929         (PFN_vkCmdDecompressMemoryNV)vk->vkGetInstanceProcAddr(instance, "vkCmdDecompressMemoryNV");
3930     out->vkCmdDecompressMemoryIndirectCountNV =
3931         (PFN_vkCmdDecompressMemoryIndirectCountNV)vk->vkGetInstanceProcAddr(
3932             instance, "vkCmdDecompressMemoryIndirectCountNV");
3933 #endif
3934 #ifdef VK_EXT_extended_dynamic_state3
3935     out->vkCmdSetTessellationDomainOriginEXT =
3936         (PFN_vkCmdSetTessellationDomainOriginEXT)vk->vkGetInstanceProcAddr(
3937             instance, "vkCmdSetTessellationDomainOriginEXT");
3938     out->vkCmdSetDepthClampEnableEXT = (PFN_vkCmdSetDepthClampEnableEXT)vk->vkGetInstanceProcAddr(
3939         instance, "vkCmdSetDepthClampEnableEXT");
3940     out->vkCmdSetPolygonModeEXT =
3941         (PFN_vkCmdSetPolygonModeEXT)vk->vkGetInstanceProcAddr(instance, "vkCmdSetPolygonModeEXT");
3942     out->vkCmdSetRasterizationSamplesEXT =
3943         (PFN_vkCmdSetRasterizationSamplesEXT)vk->vkGetInstanceProcAddr(
3944             instance, "vkCmdSetRasterizationSamplesEXT");
3945     out->vkCmdSetSampleMaskEXT =
3946         (PFN_vkCmdSetSampleMaskEXT)vk->vkGetInstanceProcAddr(instance, "vkCmdSetSampleMaskEXT");
3947     out->vkCmdSetAlphaToCoverageEnableEXT =
3948         (PFN_vkCmdSetAlphaToCoverageEnableEXT)vk->vkGetInstanceProcAddr(
3949             instance, "vkCmdSetAlphaToCoverageEnableEXT");
3950     out->vkCmdSetAlphaToOneEnableEXT = (PFN_vkCmdSetAlphaToOneEnableEXT)vk->vkGetInstanceProcAddr(
3951         instance, "vkCmdSetAlphaToOneEnableEXT");
3952     out->vkCmdSetLogicOpEnableEXT = (PFN_vkCmdSetLogicOpEnableEXT)vk->vkGetInstanceProcAddr(
3953         instance, "vkCmdSetLogicOpEnableEXT");
3954     out->vkCmdSetColorBlendEnableEXT = (PFN_vkCmdSetColorBlendEnableEXT)vk->vkGetInstanceProcAddr(
3955         instance, "vkCmdSetColorBlendEnableEXT");
3956     out->vkCmdSetColorBlendEquationEXT =
3957         (PFN_vkCmdSetColorBlendEquationEXT)vk->vkGetInstanceProcAddr(
3958             instance, "vkCmdSetColorBlendEquationEXT");
3959     out->vkCmdSetColorWriteMaskEXT = (PFN_vkCmdSetColorWriteMaskEXT)vk->vkGetInstanceProcAddr(
3960         instance, "vkCmdSetColorWriteMaskEXT");
3961     out->vkCmdSetRasterizationStreamEXT =
3962         (PFN_vkCmdSetRasterizationStreamEXT)vk->vkGetInstanceProcAddr(
3963             instance, "vkCmdSetRasterizationStreamEXT");
3964     out->vkCmdSetConservativeRasterizationModeEXT =
3965         (PFN_vkCmdSetConservativeRasterizationModeEXT)vk->vkGetInstanceProcAddr(
3966             instance, "vkCmdSetConservativeRasterizationModeEXT");
3967     out->vkCmdSetExtraPrimitiveOverestimationSizeEXT =
3968         (PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT)vk->vkGetInstanceProcAddr(
3969             instance, "vkCmdSetExtraPrimitiveOverestimationSizeEXT");
3970     out->vkCmdSetDepthClipEnableEXT = (PFN_vkCmdSetDepthClipEnableEXT)vk->vkGetInstanceProcAddr(
3971         instance, "vkCmdSetDepthClipEnableEXT");
3972     out->vkCmdSetSampleLocationsEnableEXT =
3973         (PFN_vkCmdSetSampleLocationsEnableEXT)vk->vkGetInstanceProcAddr(
3974             instance, "vkCmdSetSampleLocationsEnableEXT");
3975     out->vkCmdSetColorBlendAdvancedEXT =
3976         (PFN_vkCmdSetColorBlendAdvancedEXT)vk->vkGetInstanceProcAddr(
3977             instance, "vkCmdSetColorBlendAdvancedEXT");
3978     out->vkCmdSetProvokingVertexModeEXT =
3979         (PFN_vkCmdSetProvokingVertexModeEXT)vk->vkGetInstanceProcAddr(
3980             instance, "vkCmdSetProvokingVertexModeEXT");
3981     out->vkCmdSetLineRasterizationModeEXT =
3982         (PFN_vkCmdSetLineRasterizationModeEXT)vk->vkGetInstanceProcAddr(
3983             instance, "vkCmdSetLineRasterizationModeEXT");
3984     out->vkCmdSetLineStippleEnableEXT = (PFN_vkCmdSetLineStippleEnableEXT)vk->vkGetInstanceProcAddr(
3985         instance, "vkCmdSetLineStippleEnableEXT");
3986     out->vkCmdSetDepthClipNegativeOneToOneEXT =
3987         (PFN_vkCmdSetDepthClipNegativeOneToOneEXT)vk->vkGetInstanceProcAddr(
3988             instance, "vkCmdSetDepthClipNegativeOneToOneEXT");
3989     out->vkCmdSetViewportWScalingEnableNV =
3990         (PFN_vkCmdSetViewportWScalingEnableNV)vk->vkGetInstanceProcAddr(
3991             instance, "vkCmdSetViewportWScalingEnableNV");
3992     out->vkCmdSetViewportSwizzleNV = (PFN_vkCmdSetViewportSwizzleNV)vk->vkGetInstanceProcAddr(
3993         instance, "vkCmdSetViewportSwizzleNV");
3994     out->vkCmdSetCoverageToColorEnableNV =
3995         (PFN_vkCmdSetCoverageToColorEnableNV)vk->vkGetInstanceProcAddr(
3996             instance, "vkCmdSetCoverageToColorEnableNV");
3997     out->vkCmdSetCoverageToColorLocationNV =
3998         (PFN_vkCmdSetCoverageToColorLocationNV)vk->vkGetInstanceProcAddr(
3999             instance, "vkCmdSetCoverageToColorLocationNV");
4000     out->vkCmdSetCoverageModulationModeNV =
4001         (PFN_vkCmdSetCoverageModulationModeNV)vk->vkGetInstanceProcAddr(
4002             instance, "vkCmdSetCoverageModulationModeNV");
4003     out->vkCmdSetCoverageModulationTableEnableNV =
4004         (PFN_vkCmdSetCoverageModulationTableEnableNV)vk->vkGetInstanceProcAddr(
4005             instance, "vkCmdSetCoverageModulationTableEnableNV");
4006     out->vkCmdSetCoverageModulationTableNV =
4007         (PFN_vkCmdSetCoverageModulationTableNV)vk->vkGetInstanceProcAddr(
4008             instance, "vkCmdSetCoverageModulationTableNV");
4009     out->vkCmdSetShadingRateImageEnableNV =
4010         (PFN_vkCmdSetShadingRateImageEnableNV)vk->vkGetInstanceProcAddr(
4011             instance, "vkCmdSetShadingRateImageEnableNV");
4012     out->vkCmdSetRepresentativeFragmentTestEnableNV =
4013         (PFN_vkCmdSetRepresentativeFragmentTestEnableNV)vk->vkGetInstanceProcAddr(
4014             instance, "vkCmdSetRepresentativeFragmentTestEnableNV");
4015     out->vkCmdSetCoverageReductionModeNV =
4016         (PFN_vkCmdSetCoverageReductionModeNV)vk->vkGetInstanceProcAddr(
4017             instance, "vkCmdSetCoverageReductionModeNV");
4018 #endif
4019 #ifdef VK_EXT_shader_module_identifier
4020     out->vkGetShaderModuleIdentifierEXT =
4021         (PFN_vkGetShaderModuleIdentifierEXT)vk->vkGetInstanceProcAddr(
4022             instance, "vkGetShaderModuleIdentifierEXT");
4023     out->vkGetShaderModuleCreateInfoIdentifierEXT =
4024         (PFN_vkGetShaderModuleCreateInfoIdentifierEXT)vk->vkGetInstanceProcAddr(
4025             instance, "vkGetShaderModuleCreateInfoIdentifierEXT");
4026 #endif
4027 #ifdef VK_NV_optical_flow
4028     out->vkGetPhysicalDeviceOpticalFlowImageFormatsNV =
4029         (PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV)vk->vkGetInstanceProcAddr(
4030             instance, "vkGetPhysicalDeviceOpticalFlowImageFormatsNV");
4031     out->vkCreateOpticalFlowSessionNV = (PFN_vkCreateOpticalFlowSessionNV)vk->vkGetInstanceProcAddr(
4032         instance, "vkCreateOpticalFlowSessionNV");
4033     out->vkDestroyOpticalFlowSessionNV =
4034         (PFN_vkDestroyOpticalFlowSessionNV)vk->vkGetInstanceProcAddr(
4035             instance, "vkDestroyOpticalFlowSessionNV");
4036     out->vkBindOpticalFlowSessionImageNV =
4037         (PFN_vkBindOpticalFlowSessionImageNV)vk->vkGetInstanceProcAddr(
4038             instance, "vkBindOpticalFlowSessionImageNV");
4039     out->vkCmdOpticalFlowExecuteNV = (PFN_vkCmdOpticalFlowExecuteNV)vk->vkGetInstanceProcAddr(
4040         instance, "vkCmdOpticalFlowExecuteNV");
4041 #endif
4042 #ifdef VK_EXT_shader_object
4043     out->vkCreateShadersEXT =
4044         (PFN_vkCreateShadersEXT)vk->vkGetInstanceProcAddr(instance, "vkCreateShadersEXT");
4045     out->vkDestroyShaderEXT =
4046         (PFN_vkDestroyShaderEXT)vk->vkGetInstanceProcAddr(instance, "vkDestroyShaderEXT");
4047     out->vkGetShaderBinaryDataEXT = (PFN_vkGetShaderBinaryDataEXT)vk->vkGetInstanceProcAddr(
4048         instance, "vkGetShaderBinaryDataEXT");
4049     out->vkCmdBindShadersEXT =
4050         (PFN_vkCmdBindShadersEXT)vk->vkGetInstanceProcAddr(instance, "vkCmdBindShadersEXT");
4051 #endif
4052 #ifdef VK_QCOM_tile_properties
4053     out->vkGetFramebufferTilePropertiesQCOM =
4054         (PFN_vkGetFramebufferTilePropertiesQCOM)vk->vkGetInstanceProcAddr(
4055             instance, "vkGetFramebufferTilePropertiesQCOM");
4056     out->vkGetDynamicRenderingTilePropertiesQCOM =
4057         (PFN_vkGetDynamicRenderingTilePropertiesQCOM)vk->vkGetInstanceProcAddr(
4058             instance, "vkGetDynamicRenderingTilePropertiesQCOM");
4059 #endif
4060 #ifdef VK_EXT_attachment_feedback_loop_dynamic_state
4061     out->vkCmdSetAttachmentFeedbackLoopEnableEXT =
4062         (PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT)vk->vkGetInstanceProcAddr(
4063             instance, "vkCmdSetAttachmentFeedbackLoopEnableEXT");
4064 #endif
4065 #ifdef VK_KHR_acceleration_structure
4066     out->vkCreateAccelerationStructureKHR =
4067         (PFN_vkCreateAccelerationStructureKHR)vk->vkGetInstanceProcAddr(
4068             instance, "vkCreateAccelerationStructureKHR");
4069     out->vkDestroyAccelerationStructureKHR =
4070         (PFN_vkDestroyAccelerationStructureKHR)vk->vkGetInstanceProcAddr(
4071             instance, "vkDestroyAccelerationStructureKHR");
4072     out->vkCmdBuildAccelerationStructuresKHR =
4073         (PFN_vkCmdBuildAccelerationStructuresKHR)vk->vkGetInstanceProcAddr(
4074             instance, "vkCmdBuildAccelerationStructuresKHR");
4075     out->vkCmdBuildAccelerationStructuresIndirectKHR =
4076         (PFN_vkCmdBuildAccelerationStructuresIndirectKHR)vk->vkGetInstanceProcAddr(
4077             instance, "vkCmdBuildAccelerationStructuresIndirectKHR");
4078     out->vkBuildAccelerationStructuresKHR =
4079         (PFN_vkBuildAccelerationStructuresKHR)vk->vkGetInstanceProcAddr(
4080             instance, "vkBuildAccelerationStructuresKHR");
4081     out->vkCopyAccelerationStructureKHR =
4082         (PFN_vkCopyAccelerationStructureKHR)vk->vkGetInstanceProcAddr(
4083             instance, "vkCopyAccelerationStructureKHR");
4084     out->vkCopyAccelerationStructureToMemoryKHR =
4085         (PFN_vkCopyAccelerationStructureToMemoryKHR)vk->vkGetInstanceProcAddr(
4086             instance, "vkCopyAccelerationStructureToMemoryKHR");
4087     out->vkCopyMemoryToAccelerationStructureKHR =
4088         (PFN_vkCopyMemoryToAccelerationStructureKHR)vk->vkGetInstanceProcAddr(
4089             instance, "vkCopyMemoryToAccelerationStructureKHR");
4090     out->vkWriteAccelerationStructuresPropertiesKHR =
4091         (PFN_vkWriteAccelerationStructuresPropertiesKHR)vk->vkGetInstanceProcAddr(
4092             instance, "vkWriteAccelerationStructuresPropertiesKHR");
4093     out->vkCmdCopyAccelerationStructureKHR =
4094         (PFN_vkCmdCopyAccelerationStructureKHR)vk->vkGetInstanceProcAddr(
4095             instance, "vkCmdCopyAccelerationStructureKHR");
4096     out->vkCmdCopyAccelerationStructureToMemoryKHR =
4097         (PFN_vkCmdCopyAccelerationStructureToMemoryKHR)vk->vkGetInstanceProcAddr(
4098             instance, "vkCmdCopyAccelerationStructureToMemoryKHR");
4099     out->vkCmdCopyMemoryToAccelerationStructureKHR =
4100         (PFN_vkCmdCopyMemoryToAccelerationStructureKHR)vk->vkGetInstanceProcAddr(
4101             instance, "vkCmdCopyMemoryToAccelerationStructureKHR");
4102     out->vkGetAccelerationStructureDeviceAddressKHR =
4103         (PFN_vkGetAccelerationStructureDeviceAddressKHR)vk->vkGetInstanceProcAddr(
4104             instance, "vkGetAccelerationStructureDeviceAddressKHR");
4105     out->vkCmdWriteAccelerationStructuresPropertiesKHR =
4106         (PFN_vkCmdWriteAccelerationStructuresPropertiesKHR)vk->vkGetInstanceProcAddr(
4107             instance, "vkCmdWriteAccelerationStructuresPropertiesKHR");
4108     out->vkGetDeviceAccelerationStructureCompatibilityKHR =
4109         (PFN_vkGetDeviceAccelerationStructureCompatibilityKHR)vk->vkGetInstanceProcAddr(
4110             instance, "vkGetDeviceAccelerationStructureCompatibilityKHR");
4111     out->vkGetAccelerationStructureBuildSizesKHR =
4112         (PFN_vkGetAccelerationStructureBuildSizesKHR)vk->vkGetInstanceProcAddr(
4113             instance, "vkGetAccelerationStructureBuildSizesKHR");
4114 #endif
4115 #ifdef VK_KHR_ray_tracing_pipeline
4116     out->vkCmdTraceRaysKHR =
4117         (PFN_vkCmdTraceRaysKHR)vk->vkGetInstanceProcAddr(instance, "vkCmdTraceRaysKHR");
4118     out->vkCreateRayTracingPipelinesKHR =
4119         (PFN_vkCreateRayTracingPipelinesKHR)vk->vkGetInstanceProcAddr(
4120             instance, "vkCreateRayTracingPipelinesKHR");
4121     out->vkGetRayTracingCaptureReplayShaderGroupHandlesKHR =
4122         (PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR)vk->vkGetInstanceProcAddr(
4123             instance, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR");
4124     out->vkCmdTraceRaysIndirectKHR = (PFN_vkCmdTraceRaysIndirectKHR)vk->vkGetInstanceProcAddr(
4125         instance, "vkCmdTraceRaysIndirectKHR");
4126     out->vkGetRayTracingShaderGroupStackSizeKHR =
4127         (PFN_vkGetRayTracingShaderGroupStackSizeKHR)vk->vkGetInstanceProcAddr(
4128             instance, "vkGetRayTracingShaderGroupStackSizeKHR");
4129     out->vkCmdSetRayTracingPipelineStackSizeKHR =
4130         (PFN_vkCmdSetRayTracingPipelineStackSizeKHR)vk->vkGetInstanceProcAddr(
4131             instance, "vkCmdSetRayTracingPipelineStackSizeKHR");
4132 #endif
4133 #ifdef VK_EXT_mesh_shader
4134     out->vkCmdDrawMeshTasksEXT =
4135         (PFN_vkCmdDrawMeshTasksEXT)vk->vkGetInstanceProcAddr(instance, "vkCmdDrawMeshTasksEXT");
4136     out->vkCmdDrawMeshTasksIndirectEXT =
4137         (PFN_vkCmdDrawMeshTasksIndirectEXT)vk->vkGetInstanceProcAddr(
4138             instance, "vkCmdDrawMeshTasksIndirectEXT");
4139     out->vkCmdDrawMeshTasksIndirectCountEXT =
4140         (PFN_vkCmdDrawMeshTasksIndirectCountEXT)vk->vkGetInstanceProcAddr(
4141             instance, "vkCmdDrawMeshTasksIndirectCountEXT");
4142 #endif
4143 }
4144 
init_vulkan_dispatch_from_device(VulkanDispatch * vk,VkDevice device,VulkanDispatch * out)4145 void init_vulkan_dispatch_from_device(VulkanDispatch* vk, VkDevice device, VulkanDispatch* out) {
4146     memset(out, 0x0, sizeof(VulkanDispatch));
4147 #ifdef VK_VERSION_1_0
4148     out->vkDestroyInstance =
4149         (PFN_vkDestroyInstance)vk->vkGetDeviceProcAddr(device, "vkDestroyInstance");
4150     out->vkEnumeratePhysicalDevices = (PFN_vkEnumeratePhysicalDevices)vk->vkGetDeviceProcAddr(
4151         device, "vkEnumeratePhysicalDevices");
4152     out->vkGetPhysicalDeviceFeatures = (PFN_vkGetPhysicalDeviceFeatures)vk->vkGetDeviceProcAddr(
4153         device, "vkGetPhysicalDeviceFeatures");
4154     out->vkGetPhysicalDeviceFormatProperties =
4155         (PFN_vkGetPhysicalDeviceFormatProperties)vk->vkGetDeviceProcAddr(
4156             device, "vkGetPhysicalDeviceFormatProperties");
4157     out->vkGetPhysicalDeviceImageFormatProperties =
4158         (PFN_vkGetPhysicalDeviceImageFormatProperties)vk->vkGetDeviceProcAddr(
4159             device, "vkGetPhysicalDeviceImageFormatProperties");
4160     out->vkGetPhysicalDeviceProperties = (PFN_vkGetPhysicalDeviceProperties)vk->vkGetDeviceProcAddr(
4161         device, "vkGetPhysicalDeviceProperties");
4162     out->vkGetPhysicalDeviceQueueFamilyProperties =
4163         (PFN_vkGetPhysicalDeviceQueueFamilyProperties)vk->vkGetDeviceProcAddr(
4164             device, "vkGetPhysicalDeviceQueueFamilyProperties");
4165     out->vkGetPhysicalDeviceMemoryProperties =
4166         (PFN_vkGetPhysicalDeviceMemoryProperties)vk->vkGetDeviceProcAddr(
4167             device, "vkGetPhysicalDeviceMemoryProperties");
4168     out->vkGetInstanceProcAddr =
4169         (PFN_vkGetInstanceProcAddr)vk->vkGetDeviceProcAddr(device, "vkGetInstanceProcAddr");
4170     out->vkCreateDevice = (PFN_vkCreateDevice)vk->vkGetDeviceProcAddr(device, "vkCreateDevice");
4171     out->vkDestroyDevice = (PFN_vkDestroyDevice)vk->vkGetDeviceProcAddr(device, "vkDestroyDevice");
4172     out->vkEnumerateDeviceExtensionProperties =
4173         (PFN_vkEnumerateDeviceExtensionProperties)vk->vkGetDeviceProcAddr(
4174             device, "vkEnumerateDeviceExtensionProperties");
4175     out->vkEnumerateDeviceLayerProperties =
4176         (PFN_vkEnumerateDeviceLayerProperties)vk->vkGetDeviceProcAddr(
4177             device, "vkEnumerateDeviceLayerProperties");
4178     out->vkCreateInstance =
4179         (PFN_vkCreateInstance)vk->vkGetDeviceProcAddr(device, "vkCreateInstance");
4180     out->vkEnumerateInstanceExtensionProperties =
4181         (PFN_vkEnumerateInstanceExtensionProperties)vk->vkGetDeviceProcAddr(
4182             device, "vkEnumerateInstanceExtensionProperties");
4183     out->vkEnumerateInstanceLayerProperties =
4184         (PFN_vkEnumerateInstanceLayerProperties)vk->vkGetDeviceProcAddr(
4185             device, "vkEnumerateInstanceLayerProperties");
4186     out->vkGetDeviceProcAddr =
4187         (PFN_vkGetDeviceProcAddr)vk->vkGetDeviceProcAddr(device, "vkGetDeviceProcAddr");
4188     out->vkGetPhysicalDeviceSparseImageFormatProperties =
4189         (PFN_vkGetPhysicalDeviceSparseImageFormatProperties)vk->vkGetDeviceProcAddr(
4190             device, "vkGetPhysicalDeviceSparseImageFormatProperties");
4191 #endif
4192 #ifdef VK_VERSION_1_1
4193     out->vkEnumerateInstanceVersion = (PFN_vkEnumerateInstanceVersion)vk->vkGetDeviceProcAddr(
4194         device, "vkEnumerateInstanceVersion");
4195     out->vkEnumeratePhysicalDeviceGroups =
4196         (PFN_vkEnumeratePhysicalDeviceGroups)vk->vkGetDeviceProcAddr(
4197             device, "vkEnumeratePhysicalDeviceGroups");
4198     out->vkGetPhysicalDeviceFeatures2 = (PFN_vkGetPhysicalDeviceFeatures2)vk->vkGetDeviceProcAddr(
4199         device, "vkGetPhysicalDeviceFeatures2");
4200     out->vkGetPhysicalDeviceProperties2 =
4201         (PFN_vkGetPhysicalDeviceProperties2)vk->vkGetDeviceProcAddr(
4202             device, "vkGetPhysicalDeviceProperties2");
4203     out->vkGetPhysicalDeviceFormatProperties2 =
4204         (PFN_vkGetPhysicalDeviceFormatProperties2)vk->vkGetDeviceProcAddr(
4205             device, "vkGetPhysicalDeviceFormatProperties2");
4206     out->vkGetPhysicalDeviceImageFormatProperties2 =
4207         (PFN_vkGetPhysicalDeviceImageFormatProperties2)vk->vkGetDeviceProcAddr(
4208             device, "vkGetPhysicalDeviceImageFormatProperties2");
4209     out->vkGetPhysicalDeviceQueueFamilyProperties2 =
4210         (PFN_vkGetPhysicalDeviceQueueFamilyProperties2)vk->vkGetDeviceProcAddr(
4211             device, "vkGetPhysicalDeviceQueueFamilyProperties2");
4212     out->vkGetPhysicalDeviceMemoryProperties2 =
4213         (PFN_vkGetPhysicalDeviceMemoryProperties2)vk->vkGetDeviceProcAddr(
4214             device, "vkGetPhysicalDeviceMemoryProperties2");
4215     out->vkGetPhysicalDeviceSparseImageFormatProperties2 =
4216         (PFN_vkGetPhysicalDeviceSparseImageFormatProperties2)vk->vkGetDeviceProcAddr(
4217             device, "vkGetPhysicalDeviceSparseImageFormatProperties2");
4218     out->vkGetPhysicalDeviceExternalBufferProperties =
4219         (PFN_vkGetPhysicalDeviceExternalBufferProperties)vk->vkGetDeviceProcAddr(
4220             device, "vkGetPhysicalDeviceExternalBufferProperties");
4221     out->vkGetPhysicalDeviceExternalFenceProperties =
4222         (PFN_vkGetPhysicalDeviceExternalFenceProperties)vk->vkGetDeviceProcAddr(
4223             device, "vkGetPhysicalDeviceExternalFenceProperties");
4224     out->vkGetPhysicalDeviceExternalSemaphoreProperties =
4225         (PFN_vkGetPhysicalDeviceExternalSemaphoreProperties)vk->vkGetDeviceProcAddr(
4226             device, "vkGetPhysicalDeviceExternalSemaphoreProperties");
4227 #endif
4228 #ifdef VK_KHR_surface
4229     out->vkDestroySurfaceKHR =
4230         (PFN_vkDestroySurfaceKHR)vk->vkGetDeviceProcAddr(device, "vkDestroySurfaceKHR");
4231 #endif
4232 #ifdef VK_KHR_swapchain
4233     out->vkCreateSwapchainKHR =
4234         (PFN_vkCreateSwapchainKHR)vk->vkGetDeviceProcAddr(device, "vkCreateSwapchainKHR");
4235     out->vkDestroySwapchainKHR =
4236         (PFN_vkDestroySwapchainKHR)vk->vkGetDeviceProcAddr(device, "vkDestroySwapchainKHR");
4237     out->vkGetSwapchainImagesKHR =
4238         (PFN_vkGetSwapchainImagesKHR)vk->vkGetDeviceProcAddr(device, "vkGetSwapchainImagesKHR");
4239     out->vkAcquireNextImageKHR =
4240         (PFN_vkAcquireNextImageKHR)vk->vkGetDeviceProcAddr(device, "vkAcquireNextImageKHR");
4241     out->vkQueuePresentKHR =
4242         (PFN_vkQueuePresentKHR)vk->vkGetDeviceProcAddr(device, "vkQueuePresentKHR");
4243 #endif
4244 #ifdef VK_KHR_display
4245     out->vkCreateDisplayPlaneSurfaceKHR =
4246         (PFN_vkCreateDisplayPlaneSurfaceKHR)vk->vkGetDeviceProcAddr(
4247             device, "vkCreateDisplayPlaneSurfaceKHR");
4248 #endif
4249 #ifdef VK_KHR_xlib_surface
4250     out->vkCreateXlibSurfaceKHR =
4251         (PFN_vkCreateXlibSurfaceKHR)vk->vkGetDeviceProcAddr(device, "vkCreateXlibSurfaceKHR");
4252     out->vkGetPhysicalDeviceXlibPresentationSupportKHR =
4253         (PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR)vk->vkGetDeviceProcAddr(
4254             device, "vkGetPhysicalDeviceXlibPresentationSupportKHR");
4255 #endif
4256 #ifdef VK_KHR_xcb_surface
4257     out->vkCreateXcbSurfaceKHR =
4258         (PFN_vkCreateXcbSurfaceKHR)vk->vkGetDeviceProcAddr(device, "vkCreateXcbSurfaceKHR");
4259     out->vkGetPhysicalDeviceXcbPresentationSupportKHR =
4260         (PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR)vk->vkGetDeviceProcAddr(
4261             device, "vkGetPhysicalDeviceXcbPresentationSupportKHR");
4262 #endif
4263 #ifdef VK_KHR_wayland_surface
4264     out->vkCreateWaylandSurfaceKHR =
4265         (PFN_vkCreateWaylandSurfaceKHR)vk->vkGetDeviceProcAddr(device, "vkCreateWaylandSurfaceKHR");
4266 #endif
4267 #ifdef VK_KHR_android_surface
4268     out->vkCreateAndroidSurfaceKHR =
4269         (PFN_vkCreateAndroidSurfaceKHR)vk->vkGetDeviceProcAddr(device, "vkCreateAndroidSurfaceKHR");
4270 #endif
4271 #ifdef VK_KHR_win32_surface
4272     out->vkCreateWin32SurfaceKHR =
4273         (PFN_vkCreateWin32SurfaceKHR)vk->vkGetDeviceProcAddr(device, "vkCreateWin32SurfaceKHR");
4274     out->vkGetPhysicalDeviceWin32PresentationSupportKHR =
4275         (PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)vk->vkGetDeviceProcAddr(
4276             device, "vkGetPhysicalDeviceWin32PresentationSupportKHR");
4277 #endif
4278 #ifdef VK_KHR_device_group_creation
4279     out->vkEnumeratePhysicalDeviceGroupsKHR =
4280         (PFN_vkEnumeratePhysicalDeviceGroupsKHR)vk->vkGetDeviceProcAddr(
4281             device, "vkEnumeratePhysicalDeviceGroupsKHR");
4282 #endif
4283 #ifdef VK_EXT_debug_report
4284     out->vkCreateDebugReportCallbackEXT =
4285         (PFN_vkCreateDebugReportCallbackEXT)vk->vkGetDeviceProcAddr(
4286             device, "vkCreateDebugReportCallbackEXT");
4287     out->vkDestroyDebugReportCallbackEXT =
4288         (PFN_vkDestroyDebugReportCallbackEXT)vk->vkGetDeviceProcAddr(
4289             device, "vkDestroyDebugReportCallbackEXT");
4290     out->vkDebugReportMessageEXT =
4291         (PFN_vkDebugReportMessageEXT)vk->vkGetDeviceProcAddr(device, "vkDebugReportMessageEXT");
4292 #endif
4293 #ifdef VK_GGP_stream_descriptor_surface
4294     out->vkCreateStreamDescriptorSurfaceGGP =
4295         (PFN_vkCreateStreamDescriptorSurfaceGGP)vk->vkGetDeviceProcAddr(
4296             device, "vkCreateStreamDescriptorSurfaceGGP");
4297 #endif
4298 #ifdef VK_NN_vi_surface
4299     out->vkCreateViSurfaceNN =
4300         (PFN_vkCreateViSurfaceNN)vk->vkGetDeviceProcAddr(device, "vkCreateViSurfaceNN");
4301 #endif
4302 #ifdef VK_MVK_ios_surface
4303     out->vkCreateIOSSurfaceMVK =
4304         (PFN_vkCreateIOSSurfaceMVK)vk->vkGetDeviceProcAddr(device, "vkCreateIOSSurfaceMVK");
4305 #endif
4306 #ifdef VK_MVK_macos_surface
4307     out->vkCreateMacOSSurfaceMVK =
4308         (PFN_vkCreateMacOSSurfaceMVK)vk->vkGetDeviceProcAddr(device, "vkCreateMacOSSurfaceMVK");
4309 #endif
4310 #ifdef VK_EXT_debug_utils
4311     out->vkCreateDebugUtilsMessengerEXT =
4312         (PFN_vkCreateDebugUtilsMessengerEXT)vk->vkGetDeviceProcAddr(
4313             device, "vkCreateDebugUtilsMessengerEXT");
4314     out->vkDestroyDebugUtilsMessengerEXT =
4315         (PFN_vkDestroyDebugUtilsMessengerEXT)vk->vkGetDeviceProcAddr(
4316             device, "vkDestroyDebugUtilsMessengerEXT");
4317     out->vkSubmitDebugUtilsMessageEXT = (PFN_vkSubmitDebugUtilsMessageEXT)vk->vkGetDeviceProcAddr(
4318         device, "vkSubmitDebugUtilsMessageEXT");
4319 #endif
4320 #ifdef VK_FUCHSIA_imagepipe_surface
4321     out->vkCreateImagePipeSurfaceFUCHSIA =
4322         (PFN_vkCreateImagePipeSurfaceFUCHSIA)vk->vkGetDeviceProcAddr(
4323             device, "vkCreateImagePipeSurfaceFUCHSIA");
4324 #endif
4325 #ifdef VK_EXT_metal_surface
4326     out->vkCreateMetalSurfaceEXT =
4327         (PFN_vkCreateMetalSurfaceEXT)vk->vkGetDeviceProcAddr(device, "vkCreateMetalSurfaceEXT");
4328 #endif
4329 #ifdef VK_EXT_headless_surface
4330     out->vkCreateHeadlessSurfaceEXT = (PFN_vkCreateHeadlessSurfaceEXT)vk->vkGetDeviceProcAddr(
4331         device, "vkCreateHeadlessSurfaceEXT");
4332 #endif
4333 #ifdef VK_EXT_directfb_surface
4334     out->vkCreateDirectFBSurfaceEXT = (PFN_vkCreateDirectFBSurfaceEXT)vk->vkGetDeviceProcAddr(
4335         device, "vkCreateDirectFBSurfaceEXT");
4336 #endif
4337 #ifdef VK_QNX_screen_surface
4338     out->vkCreateScreenSurfaceQNX =
4339         (PFN_vkCreateScreenSurfaceQNX)vk->vkGetDeviceProcAddr(device, "vkCreateScreenSurfaceQNX");
4340 #endif
4341 #ifdef VK_VERSION_1_0
4342     out->vkGetDeviceQueue =
4343         (PFN_vkGetDeviceQueue)vk->vkGetDeviceProcAddr(device, "vkGetDeviceQueue");
4344     out->vkQueueSubmit = (PFN_vkQueueSubmit)vk->vkGetDeviceProcAddr(device, "vkQueueSubmit");
4345     out->vkQueueWaitIdle = (PFN_vkQueueWaitIdle)vk->vkGetDeviceProcAddr(device, "vkQueueWaitIdle");
4346     out->vkDeviceWaitIdle =
4347         (PFN_vkDeviceWaitIdle)vk->vkGetDeviceProcAddr(device, "vkDeviceWaitIdle");
4348     out->vkAllocateMemory =
4349         (PFN_vkAllocateMemory)vk->vkGetDeviceProcAddr(device, "vkAllocateMemory");
4350     out->vkFreeMemory = (PFN_vkFreeMemory)vk->vkGetDeviceProcAddr(device, "vkFreeMemory");
4351     out->vkMapMemory = (PFN_vkMapMemory)vk->vkGetDeviceProcAddr(device, "vkMapMemory");
4352     out->vkUnmapMemory = (PFN_vkUnmapMemory)vk->vkGetDeviceProcAddr(device, "vkUnmapMemory");
4353     out->vkFlushMappedMemoryRanges =
4354         (PFN_vkFlushMappedMemoryRanges)vk->vkGetDeviceProcAddr(device, "vkFlushMappedMemoryRanges");
4355     out->vkInvalidateMappedMemoryRanges =
4356         (PFN_vkInvalidateMappedMemoryRanges)vk->vkGetDeviceProcAddr(
4357             device, "vkInvalidateMappedMemoryRanges");
4358     out->vkGetDeviceMemoryCommitment = (PFN_vkGetDeviceMemoryCommitment)vk->vkGetDeviceProcAddr(
4359         device, "vkGetDeviceMemoryCommitment");
4360     out->vkBindBufferMemory =
4361         (PFN_vkBindBufferMemory)vk->vkGetDeviceProcAddr(device, "vkBindBufferMemory");
4362     out->vkBindImageMemory =
4363         (PFN_vkBindImageMemory)vk->vkGetDeviceProcAddr(device, "vkBindImageMemory");
4364     out->vkGetBufferMemoryRequirements = (PFN_vkGetBufferMemoryRequirements)vk->vkGetDeviceProcAddr(
4365         device, "vkGetBufferMemoryRequirements");
4366     out->vkGetImageMemoryRequirements = (PFN_vkGetImageMemoryRequirements)vk->vkGetDeviceProcAddr(
4367         device, "vkGetImageMemoryRequirements");
4368     out->vkGetImageSparseMemoryRequirements =
4369         (PFN_vkGetImageSparseMemoryRequirements)vk->vkGetDeviceProcAddr(
4370             device, "vkGetImageSparseMemoryRequirements");
4371     out->vkQueueBindSparse =
4372         (PFN_vkQueueBindSparse)vk->vkGetDeviceProcAddr(device, "vkQueueBindSparse");
4373     out->vkCreateFence = (PFN_vkCreateFence)vk->vkGetDeviceProcAddr(device, "vkCreateFence");
4374     out->vkDestroyFence = (PFN_vkDestroyFence)vk->vkGetDeviceProcAddr(device, "vkDestroyFence");
4375     out->vkResetFences = (PFN_vkResetFences)vk->vkGetDeviceProcAddr(device, "vkResetFences");
4376     out->vkGetFenceStatus =
4377         (PFN_vkGetFenceStatus)vk->vkGetDeviceProcAddr(device, "vkGetFenceStatus");
4378     out->vkWaitForFences = (PFN_vkWaitForFences)vk->vkGetDeviceProcAddr(device, "vkWaitForFences");
4379     out->vkCreateSemaphore =
4380         (PFN_vkCreateSemaphore)vk->vkGetDeviceProcAddr(device, "vkCreateSemaphore");
4381     out->vkDestroySemaphore =
4382         (PFN_vkDestroySemaphore)vk->vkGetDeviceProcAddr(device, "vkDestroySemaphore");
4383     out->vkCreateEvent = (PFN_vkCreateEvent)vk->vkGetDeviceProcAddr(device, "vkCreateEvent");
4384     out->vkDestroyEvent = (PFN_vkDestroyEvent)vk->vkGetDeviceProcAddr(device, "vkDestroyEvent");
4385     out->vkGetEventStatus =
4386         (PFN_vkGetEventStatus)vk->vkGetDeviceProcAddr(device, "vkGetEventStatus");
4387     out->vkSetEvent = (PFN_vkSetEvent)vk->vkGetDeviceProcAddr(device, "vkSetEvent");
4388     out->vkResetEvent = (PFN_vkResetEvent)vk->vkGetDeviceProcAddr(device, "vkResetEvent");
4389     out->vkCreateQueryPool =
4390         (PFN_vkCreateQueryPool)vk->vkGetDeviceProcAddr(device, "vkCreateQueryPool");
4391     out->vkDestroyQueryPool =
4392         (PFN_vkDestroyQueryPool)vk->vkGetDeviceProcAddr(device, "vkDestroyQueryPool");
4393     out->vkGetQueryPoolResults =
4394         (PFN_vkGetQueryPoolResults)vk->vkGetDeviceProcAddr(device, "vkGetQueryPoolResults");
4395     out->vkCreateBuffer = (PFN_vkCreateBuffer)vk->vkGetDeviceProcAddr(device, "vkCreateBuffer");
4396     out->vkDestroyBuffer = (PFN_vkDestroyBuffer)vk->vkGetDeviceProcAddr(device, "vkDestroyBuffer");
4397     out->vkCreateBufferView =
4398         (PFN_vkCreateBufferView)vk->vkGetDeviceProcAddr(device, "vkCreateBufferView");
4399     out->vkDestroyBufferView =
4400         (PFN_vkDestroyBufferView)vk->vkGetDeviceProcAddr(device, "vkDestroyBufferView");
4401     out->vkCreateImage = (PFN_vkCreateImage)vk->vkGetDeviceProcAddr(device, "vkCreateImage");
4402     out->vkDestroyImage = (PFN_vkDestroyImage)vk->vkGetDeviceProcAddr(device, "vkDestroyImage");
4403     out->vkGetImageSubresourceLayout = (PFN_vkGetImageSubresourceLayout)vk->vkGetDeviceProcAddr(
4404         device, "vkGetImageSubresourceLayout");
4405     out->vkCreateImageView =
4406         (PFN_vkCreateImageView)vk->vkGetDeviceProcAddr(device, "vkCreateImageView");
4407     out->vkDestroyImageView =
4408         (PFN_vkDestroyImageView)vk->vkGetDeviceProcAddr(device, "vkDestroyImageView");
4409     out->vkCreateShaderModule =
4410         (PFN_vkCreateShaderModule)vk->vkGetDeviceProcAddr(device, "vkCreateShaderModule");
4411     out->vkDestroyShaderModule =
4412         (PFN_vkDestroyShaderModule)vk->vkGetDeviceProcAddr(device, "vkDestroyShaderModule");
4413     out->vkCreatePipelineCache =
4414         (PFN_vkCreatePipelineCache)vk->vkGetDeviceProcAddr(device, "vkCreatePipelineCache");
4415     out->vkDestroyPipelineCache =
4416         (PFN_vkDestroyPipelineCache)vk->vkGetDeviceProcAddr(device, "vkDestroyPipelineCache");
4417     out->vkGetPipelineCacheData =
4418         (PFN_vkGetPipelineCacheData)vk->vkGetDeviceProcAddr(device, "vkGetPipelineCacheData");
4419     out->vkMergePipelineCaches =
4420         (PFN_vkMergePipelineCaches)vk->vkGetDeviceProcAddr(device, "vkMergePipelineCaches");
4421     out->vkCreateGraphicsPipelines =
4422         (PFN_vkCreateGraphicsPipelines)vk->vkGetDeviceProcAddr(device, "vkCreateGraphicsPipelines");
4423     out->vkCreateComputePipelines =
4424         (PFN_vkCreateComputePipelines)vk->vkGetDeviceProcAddr(device, "vkCreateComputePipelines");
4425     out->vkDestroyPipeline =
4426         (PFN_vkDestroyPipeline)vk->vkGetDeviceProcAddr(device, "vkDestroyPipeline");
4427     out->vkCreatePipelineLayout =
4428         (PFN_vkCreatePipelineLayout)vk->vkGetDeviceProcAddr(device, "vkCreatePipelineLayout");
4429     out->vkDestroyPipelineLayout =
4430         (PFN_vkDestroyPipelineLayout)vk->vkGetDeviceProcAddr(device, "vkDestroyPipelineLayout");
4431     out->vkCreateSampler = (PFN_vkCreateSampler)vk->vkGetDeviceProcAddr(device, "vkCreateSampler");
4432     out->vkDestroySampler =
4433         (PFN_vkDestroySampler)vk->vkGetDeviceProcAddr(device, "vkDestroySampler");
4434     out->vkCreateDescriptorSetLayout = (PFN_vkCreateDescriptorSetLayout)vk->vkGetDeviceProcAddr(
4435         device, "vkCreateDescriptorSetLayout");
4436     out->vkDestroyDescriptorSetLayout = (PFN_vkDestroyDescriptorSetLayout)vk->vkGetDeviceProcAddr(
4437         device, "vkDestroyDescriptorSetLayout");
4438     out->vkCreateDescriptorPool =
4439         (PFN_vkCreateDescriptorPool)vk->vkGetDeviceProcAddr(device, "vkCreateDescriptorPool");
4440     out->vkDestroyDescriptorPool =
4441         (PFN_vkDestroyDescriptorPool)vk->vkGetDeviceProcAddr(device, "vkDestroyDescriptorPool");
4442     out->vkResetDescriptorPool =
4443         (PFN_vkResetDescriptorPool)vk->vkGetDeviceProcAddr(device, "vkResetDescriptorPool");
4444     out->vkAllocateDescriptorSets =
4445         (PFN_vkAllocateDescriptorSets)vk->vkGetDeviceProcAddr(device, "vkAllocateDescriptorSets");
4446     out->vkFreeDescriptorSets =
4447         (PFN_vkFreeDescriptorSets)vk->vkGetDeviceProcAddr(device, "vkFreeDescriptorSets");
4448     out->vkUpdateDescriptorSets =
4449         (PFN_vkUpdateDescriptorSets)vk->vkGetDeviceProcAddr(device, "vkUpdateDescriptorSets");
4450     out->vkCreateFramebuffer =
4451         (PFN_vkCreateFramebuffer)vk->vkGetDeviceProcAddr(device, "vkCreateFramebuffer");
4452     out->vkDestroyFramebuffer =
4453         (PFN_vkDestroyFramebuffer)vk->vkGetDeviceProcAddr(device, "vkDestroyFramebuffer");
4454     out->vkCreateRenderPass =
4455         (PFN_vkCreateRenderPass)vk->vkGetDeviceProcAddr(device, "vkCreateRenderPass");
4456     out->vkDestroyRenderPass =
4457         (PFN_vkDestroyRenderPass)vk->vkGetDeviceProcAddr(device, "vkDestroyRenderPass");
4458     out->vkGetRenderAreaGranularity = (PFN_vkGetRenderAreaGranularity)vk->vkGetDeviceProcAddr(
4459         device, "vkGetRenderAreaGranularity");
4460     out->vkCreateCommandPool =
4461         (PFN_vkCreateCommandPool)vk->vkGetDeviceProcAddr(device, "vkCreateCommandPool");
4462     out->vkDestroyCommandPool =
4463         (PFN_vkDestroyCommandPool)vk->vkGetDeviceProcAddr(device, "vkDestroyCommandPool");
4464     out->vkResetCommandPool =
4465         (PFN_vkResetCommandPool)vk->vkGetDeviceProcAddr(device, "vkResetCommandPool");
4466     out->vkAllocateCommandBuffers =
4467         (PFN_vkAllocateCommandBuffers)vk->vkGetDeviceProcAddr(device, "vkAllocateCommandBuffers");
4468     out->vkFreeCommandBuffers =
4469         (PFN_vkFreeCommandBuffers)vk->vkGetDeviceProcAddr(device, "vkFreeCommandBuffers");
4470     out->vkBeginCommandBuffer =
4471         (PFN_vkBeginCommandBuffer)vk->vkGetDeviceProcAddr(device, "vkBeginCommandBuffer");
4472     out->vkEndCommandBuffer =
4473         (PFN_vkEndCommandBuffer)vk->vkGetDeviceProcAddr(device, "vkEndCommandBuffer");
4474     out->vkResetCommandBuffer =
4475         (PFN_vkResetCommandBuffer)vk->vkGetDeviceProcAddr(device, "vkResetCommandBuffer");
4476     out->vkCmdBindPipeline =
4477         (PFN_vkCmdBindPipeline)vk->vkGetDeviceProcAddr(device, "vkCmdBindPipeline");
4478     out->vkCmdSetViewport =
4479         (PFN_vkCmdSetViewport)vk->vkGetDeviceProcAddr(device, "vkCmdSetViewport");
4480     out->vkCmdSetScissor = (PFN_vkCmdSetScissor)vk->vkGetDeviceProcAddr(device, "vkCmdSetScissor");
4481     out->vkCmdSetLineWidth =
4482         (PFN_vkCmdSetLineWidth)vk->vkGetDeviceProcAddr(device, "vkCmdSetLineWidth");
4483     out->vkCmdSetDepthBias =
4484         (PFN_vkCmdSetDepthBias)vk->vkGetDeviceProcAddr(device, "vkCmdSetDepthBias");
4485     out->vkCmdSetBlendConstants =
4486         (PFN_vkCmdSetBlendConstants)vk->vkGetDeviceProcAddr(device, "vkCmdSetBlendConstants");
4487     out->vkCmdSetDepthBounds =
4488         (PFN_vkCmdSetDepthBounds)vk->vkGetDeviceProcAddr(device, "vkCmdSetDepthBounds");
4489     out->vkCmdSetStencilCompareMask = (PFN_vkCmdSetStencilCompareMask)vk->vkGetDeviceProcAddr(
4490         device, "vkCmdSetStencilCompareMask");
4491     out->vkCmdSetStencilWriteMask =
4492         (PFN_vkCmdSetStencilWriteMask)vk->vkGetDeviceProcAddr(device, "vkCmdSetStencilWriteMask");
4493     out->vkCmdSetStencilReference =
4494         (PFN_vkCmdSetStencilReference)vk->vkGetDeviceProcAddr(device, "vkCmdSetStencilReference");
4495     out->vkCmdBindDescriptorSets =
4496         (PFN_vkCmdBindDescriptorSets)vk->vkGetDeviceProcAddr(device, "vkCmdBindDescriptorSets");
4497     out->vkCmdBindIndexBuffer =
4498         (PFN_vkCmdBindIndexBuffer)vk->vkGetDeviceProcAddr(device, "vkCmdBindIndexBuffer");
4499     out->vkCmdBindVertexBuffers =
4500         (PFN_vkCmdBindVertexBuffers)vk->vkGetDeviceProcAddr(device, "vkCmdBindVertexBuffers");
4501     out->vkCmdDraw = (PFN_vkCmdDraw)vk->vkGetDeviceProcAddr(device, "vkCmdDraw");
4502     out->vkCmdDrawIndexed =
4503         (PFN_vkCmdDrawIndexed)vk->vkGetDeviceProcAddr(device, "vkCmdDrawIndexed");
4504     out->vkCmdDrawIndirect =
4505         (PFN_vkCmdDrawIndirect)vk->vkGetDeviceProcAddr(device, "vkCmdDrawIndirect");
4506     out->vkCmdDrawIndexedIndirect =
4507         (PFN_vkCmdDrawIndexedIndirect)vk->vkGetDeviceProcAddr(device, "vkCmdDrawIndexedIndirect");
4508     out->vkCmdDispatch = (PFN_vkCmdDispatch)vk->vkGetDeviceProcAddr(device, "vkCmdDispatch");
4509     out->vkCmdDispatchIndirect =
4510         (PFN_vkCmdDispatchIndirect)vk->vkGetDeviceProcAddr(device, "vkCmdDispatchIndirect");
4511     out->vkCmdCopyBuffer = (PFN_vkCmdCopyBuffer)vk->vkGetDeviceProcAddr(device, "vkCmdCopyBuffer");
4512     out->vkCmdCopyImage = (PFN_vkCmdCopyImage)vk->vkGetDeviceProcAddr(device, "vkCmdCopyImage");
4513     out->vkCmdBlitImage = (PFN_vkCmdBlitImage)vk->vkGetDeviceProcAddr(device, "vkCmdBlitImage");
4514     out->vkCmdCopyBufferToImage =
4515         (PFN_vkCmdCopyBufferToImage)vk->vkGetDeviceProcAddr(device, "vkCmdCopyBufferToImage");
4516     out->vkCmdCopyImageToBuffer =
4517         (PFN_vkCmdCopyImageToBuffer)vk->vkGetDeviceProcAddr(device, "vkCmdCopyImageToBuffer");
4518     out->vkCmdUpdateBuffer =
4519         (PFN_vkCmdUpdateBuffer)vk->vkGetDeviceProcAddr(device, "vkCmdUpdateBuffer");
4520     out->vkCmdFillBuffer = (PFN_vkCmdFillBuffer)vk->vkGetDeviceProcAddr(device, "vkCmdFillBuffer");
4521     out->vkCmdClearColorImage =
4522         (PFN_vkCmdClearColorImage)vk->vkGetDeviceProcAddr(device, "vkCmdClearColorImage");
4523     out->vkCmdClearDepthStencilImage = (PFN_vkCmdClearDepthStencilImage)vk->vkGetDeviceProcAddr(
4524         device, "vkCmdClearDepthStencilImage");
4525     out->vkCmdClearAttachments =
4526         (PFN_vkCmdClearAttachments)vk->vkGetDeviceProcAddr(device, "vkCmdClearAttachments");
4527     out->vkCmdResolveImage =
4528         (PFN_vkCmdResolveImage)vk->vkGetDeviceProcAddr(device, "vkCmdResolveImage");
4529     out->vkCmdSetEvent = (PFN_vkCmdSetEvent)vk->vkGetDeviceProcAddr(device, "vkCmdSetEvent");
4530     out->vkCmdResetEvent = (PFN_vkCmdResetEvent)vk->vkGetDeviceProcAddr(device, "vkCmdResetEvent");
4531     out->vkCmdWaitEvents = (PFN_vkCmdWaitEvents)vk->vkGetDeviceProcAddr(device, "vkCmdWaitEvents");
4532     out->vkCmdPipelineBarrier =
4533         (PFN_vkCmdPipelineBarrier)vk->vkGetDeviceProcAddr(device, "vkCmdPipelineBarrier");
4534     out->vkCmdBeginQuery = (PFN_vkCmdBeginQuery)vk->vkGetDeviceProcAddr(device, "vkCmdBeginQuery");
4535     out->vkCmdEndQuery = (PFN_vkCmdEndQuery)vk->vkGetDeviceProcAddr(device, "vkCmdEndQuery");
4536     out->vkCmdResetQueryPool =
4537         (PFN_vkCmdResetQueryPool)vk->vkGetDeviceProcAddr(device, "vkCmdResetQueryPool");
4538     out->vkCmdWriteTimestamp =
4539         (PFN_vkCmdWriteTimestamp)vk->vkGetDeviceProcAddr(device, "vkCmdWriteTimestamp");
4540     out->vkCmdCopyQueryPoolResults =
4541         (PFN_vkCmdCopyQueryPoolResults)vk->vkGetDeviceProcAddr(device, "vkCmdCopyQueryPoolResults");
4542     out->vkCmdPushConstants =
4543         (PFN_vkCmdPushConstants)vk->vkGetDeviceProcAddr(device, "vkCmdPushConstants");
4544     out->vkCmdBeginRenderPass =
4545         (PFN_vkCmdBeginRenderPass)vk->vkGetDeviceProcAddr(device, "vkCmdBeginRenderPass");
4546     out->vkCmdNextSubpass =
4547         (PFN_vkCmdNextSubpass)vk->vkGetDeviceProcAddr(device, "vkCmdNextSubpass");
4548     out->vkCmdEndRenderPass =
4549         (PFN_vkCmdEndRenderPass)vk->vkGetDeviceProcAddr(device, "vkCmdEndRenderPass");
4550     out->vkCmdExecuteCommands =
4551         (PFN_vkCmdExecuteCommands)vk->vkGetDeviceProcAddr(device, "vkCmdExecuteCommands");
4552 #endif
4553 #ifdef VK_VERSION_1_1
4554     out->vkBindBufferMemory2 =
4555         (PFN_vkBindBufferMemory2)vk->vkGetDeviceProcAddr(device, "vkBindBufferMemory2");
4556     out->vkBindImageMemory2 =
4557         (PFN_vkBindImageMemory2)vk->vkGetDeviceProcAddr(device, "vkBindImageMemory2");
4558     out->vkGetDeviceGroupPeerMemoryFeatures =
4559         (PFN_vkGetDeviceGroupPeerMemoryFeatures)vk->vkGetDeviceProcAddr(
4560             device, "vkGetDeviceGroupPeerMemoryFeatures");
4561     out->vkCmdSetDeviceMask =
4562         (PFN_vkCmdSetDeviceMask)vk->vkGetDeviceProcAddr(device, "vkCmdSetDeviceMask");
4563     out->vkCmdDispatchBase =
4564         (PFN_vkCmdDispatchBase)vk->vkGetDeviceProcAddr(device, "vkCmdDispatchBase");
4565     out->vkGetImageMemoryRequirements2 = (PFN_vkGetImageMemoryRequirements2)vk->vkGetDeviceProcAddr(
4566         device, "vkGetImageMemoryRequirements2");
4567     out->vkGetBufferMemoryRequirements2 =
4568         (PFN_vkGetBufferMemoryRequirements2)vk->vkGetDeviceProcAddr(
4569             device, "vkGetBufferMemoryRequirements2");
4570     out->vkGetImageSparseMemoryRequirements2 =
4571         (PFN_vkGetImageSparseMemoryRequirements2)vk->vkGetDeviceProcAddr(
4572             device, "vkGetImageSparseMemoryRequirements2");
4573     out->vkTrimCommandPool =
4574         (PFN_vkTrimCommandPool)vk->vkGetDeviceProcAddr(device, "vkTrimCommandPool");
4575     out->vkGetDeviceQueue2 =
4576         (PFN_vkGetDeviceQueue2)vk->vkGetDeviceProcAddr(device, "vkGetDeviceQueue2");
4577     out->vkCreateSamplerYcbcrConversion =
4578         (PFN_vkCreateSamplerYcbcrConversion)vk->vkGetDeviceProcAddr(
4579             device, "vkCreateSamplerYcbcrConversion");
4580     out->vkDestroySamplerYcbcrConversion =
4581         (PFN_vkDestroySamplerYcbcrConversion)vk->vkGetDeviceProcAddr(
4582             device, "vkDestroySamplerYcbcrConversion");
4583     out->vkCreateDescriptorUpdateTemplate =
4584         (PFN_vkCreateDescriptorUpdateTemplate)vk->vkGetDeviceProcAddr(
4585             device, "vkCreateDescriptorUpdateTemplate");
4586     out->vkDestroyDescriptorUpdateTemplate =
4587         (PFN_vkDestroyDescriptorUpdateTemplate)vk->vkGetDeviceProcAddr(
4588             device, "vkDestroyDescriptorUpdateTemplate");
4589     out->vkUpdateDescriptorSetWithTemplate =
4590         (PFN_vkUpdateDescriptorSetWithTemplate)vk->vkGetDeviceProcAddr(
4591             device, "vkUpdateDescriptorSetWithTemplate");
4592     out->vkGetDescriptorSetLayoutSupport =
4593         (PFN_vkGetDescriptorSetLayoutSupport)vk->vkGetDeviceProcAddr(
4594             device, "vkGetDescriptorSetLayoutSupport");
4595 #endif
4596 #ifdef VK_VERSION_1_2
4597     out->vkCmdDrawIndirectCount =
4598         (PFN_vkCmdDrawIndirectCount)vk->vkGetDeviceProcAddr(device, "vkCmdDrawIndirectCount");
4599     out->vkCmdDrawIndexedIndirectCount = (PFN_vkCmdDrawIndexedIndirectCount)vk->vkGetDeviceProcAddr(
4600         device, "vkCmdDrawIndexedIndirectCount");
4601     out->vkCreateRenderPass2 =
4602         (PFN_vkCreateRenderPass2)vk->vkGetDeviceProcAddr(device, "vkCreateRenderPass2");
4603     out->vkCmdBeginRenderPass2 =
4604         (PFN_vkCmdBeginRenderPass2)vk->vkGetDeviceProcAddr(device, "vkCmdBeginRenderPass2");
4605     out->vkCmdNextSubpass2 =
4606         (PFN_vkCmdNextSubpass2)vk->vkGetDeviceProcAddr(device, "vkCmdNextSubpass2");
4607     out->vkCmdEndRenderPass2 =
4608         (PFN_vkCmdEndRenderPass2)vk->vkGetDeviceProcAddr(device, "vkCmdEndRenderPass2");
4609     out->vkResetQueryPool =
4610         (PFN_vkResetQueryPool)vk->vkGetDeviceProcAddr(device, "vkResetQueryPool");
4611     out->vkGetSemaphoreCounterValue = (PFN_vkGetSemaphoreCounterValue)vk->vkGetDeviceProcAddr(
4612         device, "vkGetSemaphoreCounterValue");
4613     out->vkWaitSemaphores =
4614         (PFN_vkWaitSemaphores)vk->vkGetDeviceProcAddr(device, "vkWaitSemaphores");
4615     out->vkSignalSemaphore =
4616         (PFN_vkSignalSemaphore)vk->vkGetDeviceProcAddr(device, "vkSignalSemaphore");
4617     out->vkGetBufferDeviceAddress =
4618         (PFN_vkGetBufferDeviceAddress)vk->vkGetDeviceProcAddr(device, "vkGetBufferDeviceAddress");
4619     out->vkGetBufferOpaqueCaptureAddress =
4620         (PFN_vkGetBufferOpaqueCaptureAddress)vk->vkGetDeviceProcAddr(
4621             device, "vkGetBufferOpaqueCaptureAddress");
4622     out->vkGetDeviceMemoryOpaqueCaptureAddress =
4623         (PFN_vkGetDeviceMemoryOpaqueCaptureAddress)vk->vkGetDeviceProcAddr(
4624             device, "vkGetDeviceMemoryOpaqueCaptureAddress");
4625 #endif
4626 #ifdef VK_VERSION_1_3
4627     out->vkGetPhysicalDeviceToolProperties =
4628         (PFN_vkGetPhysicalDeviceToolProperties)vk->vkGetDeviceProcAddr(
4629             device, "vkGetPhysicalDeviceToolProperties");
4630     out->vkCreatePrivateDataSlot =
4631         (PFN_vkCreatePrivateDataSlot)vk->vkGetDeviceProcAddr(device, "vkCreatePrivateDataSlot");
4632     out->vkDestroyPrivateDataSlot =
4633         (PFN_vkDestroyPrivateDataSlot)vk->vkGetDeviceProcAddr(device, "vkDestroyPrivateDataSlot");
4634     out->vkSetPrivateData =
4635         (PFN_vkSetPrivateData)vk->vkGetDeviceProcAddr(device, "vkSetPrivateData");
4636     out->vkGetPrivateData =
4637         (PFN_vkGetPrivateData)vk->vkGetDeviceProcAddr(device, "vkGetPrivateData");
4638     out->vkCmdSetEvent2 = (PFN_vkCmdSetEvent2)vk->vkGetDeviceProcAddr(device, "vkCmdSetEvent2");
4639     out->vkCmdResetEvent2 =
4640         (PFN_vkCmdResetEvent2)vk->vkGetDeviceProcAddr(device, "vkCmdResetEvent2");
4641     out->vkCmdWaitEvents2 =
4642         (PFN_vkCmdWaitEvents2)vk->vkGetDeviceProcAddr(device, "vkCmdWaitEvents2");
4643     out->vkCmdPipelineBarrier2 =
4644         (PFN_vkCmdPipelineBarrier2)vk->vkGetDeviceProcAddr(device, "vkCmdPipelineBarrier2");
4645     out->vkCmdWriteTimestamp2 =
4646         (PFN_vkCmdWriteTimestamp2)vk->vkGetDeviceProcAddr(device, "vkCmdWriteTimestamp2");
4647     out->vkQueueSubmit2 = (PFN_vkQueueSubmit2)vk->vkGetDeviceProcAddr(device, "vkQueueSubmit2");
4648     out->vkCmdCopyBuffer2 =
4649         (PFN_vkCmdCopyBuffer2)vk->vkGetDeviceProcAddr(device, "vkCmdCopyBuffer2");
4650     out->vkCmdCopyImage2 = (PFN_vkCmdCopyImage2)vk->vkGetDeviceProcAddr(device, "vkCmdCopyImage2");
4651     out->vkCmdCopyBufferToImage2 =
4652         (PFN_vkCmdCopyBufferToImage2)vk->vkGetDeviceProcAddr(device, "vkCmdCopyBufferToImage2");
4653     out->vkCmdCopyImageToBuffer2 =
4654         (PFN_vkCmdCopyImageToBuffer2)vk->vkGetDeviceProcAddr(device, "vkCmdCopyImageToBuffer2");
4655     out->vkCmdBlitImage2 = (PFN_vkCmdBlitImage2)vk->vkGetDeviceProcAddr(device, "vkCmdBlitImage2");
4656     out->vkCmdResolveImage2 =
4657         (PFN_vkCmdResolveImage2)vk->vkGetDeviceProcAddr(device, "vkCmdResolveImage2");
4658     out->vkCmdBeginRendering =
4659         (PFN_vkCmdBeginRendering)vk->vkGetDeviceProcAddr(device, "vkCmdBeginRendering");
4660     out->vkCmdEndRendering =
4661         (PFN_vkCmdEndRendering)vk->vkGetDeviceProcAddr(device, "vkCmdEndRendering");
4662     out->vkCmdSetCullMode =
4663         (PFN_vkCmdSetCullMode)vk->vkGetDeviceProcAddr(device, "vkCmdSetCullMode");
4664     out->vkCmdSetFrontFace =
4665         (PFN_vkCmdSetFrontFace)vk->vkGetDeviceProcAddr(device, "vkCmdSetFrontFace");
4666     out->vkCmdSetPrimitiveTopology =
4667         (PFN_vkCmdSetPrimitiveTopology)vk->vkGetDeviceProcAddr(device, "vkCmdSetPrimitiveTopology");
4668     out->vkCmdSetViewportWithCount =
4669         (PFN_vkCmdSetViewportWithCount)vk->vkGetDeviceProcAddr(device, "vkCmdSetViewportWithCount");
4670     out->vkCmdSetScissorWithCount =
4671         (PFN_vkCmdSetScissorWithCount)vk->vkGetDeviceProcAddr(device, "vkCmdSetScissorWithCount");
4672     out->vkCmdBindVertexBuffers2 =
4673         (PFN_vkCmdBindVertexBuffers2)vk->vkGetDeviceProcAddr(device, "vkCmdBindVertexBuffers2");
4674     out->vkCmdSetDepthTestEnable =
4675         (PFN_vkCmdSetDepthTestEnable)vk->vkGetDeviceProcAddr(device, "vkCmdSetDepthTestEnable");
4676     out->vkCmdSetDepthWriteEnable =
4677         (PFN_vkCmdSetDepthWriteEnable)vk->vkGetDeviceProcAddr(device, "vkCmdSetDepthWriteEnable");
4678     out->vkCmdSetDepthCompareOp =
4679         (PFN_vkCmdSetDepthCompareOp)vk->vkGetDeviceProcAddr(device, "vkCmdSetDepthCompareOp");
4680     out->vkCmdSetDepthBoundsTestEnable = (PFN_vkCmdSetDepthBoundsTestEnable)vk->vkGetDeviceProcAddr(
4681         device, "vkCmdSetDepthBoundsTestEnable");
4682     out->vkCmdSetStencilTestEnable =
4683         (PFN_vkCmdSetStencilTestEnable)vk->vkGetDeviceProcAddr(device, "vkCmdSetStencilTestEnable");
4684     out->vkCmdSetStencilOp =
4685         (PFN_vkCmdSetStencilOp)vk->vkGetDeviceProcAddr(device, "vkCmdSetStencilOp");
4686     out->vkCmdSetRasterizerDiscardEnable =
4687         (PFN_vkCmdSetRasterizerDiscardEnable)vk->vkGetDeviceProcAddr(
4688             device, "vkCmdSetRasterizerDiscardEnable");
4689     out->vkCmdSetDepthBiasEnable =
4690         (PFN_vkCmdSetDepthBiasEnable)vk->vkGetDeviceProcAddr(device, "vkCmdSetDepthBiasEnable");
4691     out->vkCmdSetPrimitiveRestartEnable =
4692         (PFN_vkCmdSetPrimitiveRestartEnable)vk->vkGetDeviceProcAddr(
4693             device, "vkCmdSetPrimitiveRestartEnable");
4694     out->vkGetDeviceBufferMemoryRequirements =
4695         (PFN_vkGetDeviceBufferMemoryRequirements)vk->vkGetDeviceProcAddr(
4696             device, "vkGetDeviceBufferMemoryRequirements");
4697     out->vkGetDeviceImageMemoryRequirements =
4698         (PFN_vkGetDeviceImageMemoryRequirements)vk->vkGetDeviceProcAddr(
4699             device, "vkGetDeviceImageMemoryRequirements");
4700     out->vkGetDeviceImageSparseMemoryRequirements =
4701         (PFN_vkGetDeviceImageSparseMemoryRequirements)vk->vkGetDeviceProcAddr(
4702             device, "vkGetDeviceImageSparseMemoryRequirements");
4703 #endif
4704 #ifdef VK_KHR_surface
4705     out->vkGetPhysicalDeviceSurfaceSupportKHR =
4706         (PFN_vkGetPhysicalDeviceSurfaceSupportKHR)vk->vkGetDeviceProcAddr(
4707             device, "vkGetPhysicalDeviceSurfaceSupportKHR");
4708     out->vkGetPhysicalDeviceSurfaceCapabilitiesKHR =
4709         (PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)vk->vkGetDeviceProcAddr(
4710             device, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR");
4711     out->vkGetPhysicalDeviceSurfaceFormatsKHR =
4712         (PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)vk->vkGetDeviceProcAddr(
4713             device, "vkGetPhysicalDeviceSurfaceFormatsKHR");
4714     out->vkGetPhysicalDeviceSurfacePresentModesKHR =
4715         (PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)vk->vkGetDeviceProcAddr(
4716             device, "vkGetPhysicalDeviceSurfacePresentModesKHR");
4717 #endif
4718 #ifdef VK_KHR_swapchain
4719     out->vkGetDeviceGroupPresentCapabilitiesKHR =
4720         (PFN_vkGetDeviceGroupPresentCapabilitiesKHR)vk->vkGetDeviceProcAddr(
4721             device, "vkGetDeviceGroupPresentCapabilitiesKHR");
4722     out->vkGetDeviceGroupSurfacePresentModesKHR =
4723         (PFN_vkGetDeviceGroupSurfacePresentModesKHR)vk->vkGetDeviceProcAddr(
4724             device, "vkGetDeviceGroupSurfacePresentModesKHR");
4725     out->vkGetPhysicalDevicePresentRectanglesKHR =
4726         (PFN_vkGetPhysicalDevicePresentRectanglesKHR)vk->vkGetDeviceProcAddr(
4727             device, "vkGetPhysicalDevicePresentRectanglesKHR");
4728     out->vkAcquireNextImage2KHR =
4729         (PFN_vkAcquireNextImage2KHR)vk->vkGetDeviceProcAddr(device, "vkAcquireNextImage2KHR");
4730 #endif
4731 #ifdef VK_KHR_display
4732     out->vkGetPhysicalDeviceDisplayPropertiesKHR =
4733         (PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)vk->vkGetDeviceProcAddr(
4734             device, "vkGetPhysicalDeviceDisplayPropertiesKHR");
4735     out->vkGetPhysicalDeviceDisplayPlanePropertiesKHR =
4736         (PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)vk->vkGetDeviceProcAddr(
4737             device, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR");
4738     out->vkGetDisplayPlaneSupportedDisplaysKHR =
4739         (PFN_vkGetDisplayPlaneSupportedDisplaysKHR)vk->vkGetDeviceProcAddr(
4740             device, "vkGetDisplayPlaneSupportedDisplaysKHR");
4741     out->vkGetDisplayModePropertiesKHR = (PFN_vkGetDisplayModePropertiesKHR)vk->vkGetDeviceProcAddr(
4742         device, "vkGetDisplayModePropertiesKHR");
4743     out->vkCreateDisplayModeKHR =
4744         (PFN_vkCreateDisplayModeKHR)vk->vkGetDeviceProcAddr(device, "vkCreateDisplayModeKHR");
4745     out->vkGetDisplayPlaneCapabilitiesKHR =
4746         (PFN_vkGetDisplayPlaneCapabilitiesKHR)vk->vkGetDeviceProcAddr(
4747             device, "vkGetDisplayPlaneCapabilitiesKHR");
4748 #endif
4749 #ifdef VK_KHR_display_swapchain
4750     out->vkCreateSharedSwapchainsKHR = (PFN_vkCreateSharedSwapchainsKHR)vk->vkGetDeviceProcAddr(
4751         device, "vkCreateSharedSwapchainsKHR");
4752 #endif
4753 #ifdef VK_KHR_wayland_surface
4754     out->vkGetPhysicalDeviceWaylandPresentationSupportKHR =
4755         (PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR)vk->vkGetDeviceProcAddr(
4756             device, "vkGetPhysicalDeviceWaylandPresentationSupportKHR");
4757 #endif
4758 #ifdef VK_KHR_video_queue
4759     out->vkGetPhysicalDeviceVideoCapabilitiesKHR =
4760         (PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR)vk->vkGetDeviceProcAddr(
4761             device, "vkGetPhysicalDeviceVideoCapabilitiesKHR");
4762     out->vkGetPhysicalDeviceVideoFormatPropertiesKHR =
4763         (PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR)vk->vkGetDeviceProcAddr(
4764             device, "vkGetPhysicalDeviceVideoFormatPropertiesKHR");
4765     out->vkCreateVideoSessionKHR =
4766         (PFN_vkCreateVideoSessionKHR)vk->vkGetDeviceProcAddr(device, "vkCreateVideoSessionKHR");
4767     out->vkDestroyVideoSessionKHR =
4768         (PFN_vkDestroyVideoSessionKHR)vk->vkGetDeviceProcAddr(device, "vkDestroyVideoSessionKHR");
4769     out->vkGetVideoSessionMemoryRequirementsKHR =
4770         (PFN_vkGetVideoSessionMemoryRequirementsKHR)vk->vkGetDeviceProcAddr(
4771             device, "vkGetVideoSessionMemoryRequirementsKHR");
4772     out->vkBindVideoSessionMemoryKHR = (PFN_vkBindVideoSessionMemoryKHR)vk->vkGetDeviceProcAddr(
4773         device, "vkBindVideoSessionMemoryKHR");
4774     out->vkCreateVideoSessionParametersKHR =
4775         (PFN_vkCreateVideoSessionParametersKHR)vk->vkGetDeviceProcAddr(
4776             device, "vkCreateVideoSessionParametersKHR");
4777     out->vkUpdateVideoSessionParametersKHR =
4778         (PFN_vkUpdateVideoSessionParametersKHR)vk->vkGetDeviceProcAddr(
4779             device, "vkUpdateVideoSessionParametersKHR");
4780     out->vkDestroyVideoSessionParametersKHR =
4781         (PFN_vkDestroyVideoSessionParametersKHR)vk->vkGetDeviceProcAddr(
4782             device, "vkDestroyVideoSessionParametersKHR");
4783     out->vkCmdBeginVideoCodingKHR =
4784         (PFN_vkCmdBeginVideoCodingKHR)vk->vkGetDeviceProcAddr(device, "vkCmdBeginVideoCodingKHR");
4785     out->vkCmdEndVideoCodingKHR =
4786         (PFN_vkCmdEndVideoCodingKHR)vk->vkGetDeviceProcAddr(device, "vkCmdEndVideoCodingKHR");
4787     out->vkCmdControlVideoCodingKHR = (PFN_vkCmdControlVideoCodingKHR)vk->vkGetDeviceProcAddr(
4788         device, "vkCmdControlVideoCodingKHR");
4789 #endif
4790 #ifdef VK_KHR_video_decode_queue
4791     out->vkCmdDecodeVideoKHR =
4792         (PFN_vkCmdDecodeVideoKHR)vk->vkGetDeviceProcAddr(device, "vkCmdDecodeVideoKHR");
4793 #endif
4794 #ifdef VK_KHR_dynamic_rendering
4795     out->vkCmdBeginRenderingKHR =
4796         (PFN_vkCmdBeginRenderingKHR)vk->vkGetDeviceProcAddr(device, "vkCmdBeginRenderingKHR");
4797     out->vkCmdEndRenderingKHR =
4798         (PFN_vkCmdEndRenderingKHR)vk->vkGetDeviceProcAddr(device, "vkCmdEndRenderingKHR");
4799 #endif
4800 #ifdef VK_KHR_get_physical_device_properties2
4801     out->vkGetPhysicalDeviceFeatures2KHR =
4802         (PFN_vkGetPhysicalDeviceFeatures2KHR)vk->vkGetDeviceProcAddr(
4803             device, "vkGetPhysicalDeviceFeatures2KHR");
4804     out->vkGetPhysicalDeviceProperties2KHR =
4805         (PFN_vkGetPhysicalDeviceProperties2KHR)vk->vkGetDeviceProcAddr(
4806             device, "vkGetPhysicalDeviceProperties2KHR");
4807     out->vkGetPhysicalDeviceFormatProperties2KHR =
4808         (PFN_vkGetPhysicalDeviceFormatProperties2KHR)vk->vkGetDeviceProcAddr(
4809             device, "vkGetPhysicalDeviceFormatProperties2KHR");
4810     out->vkGetPhysicalDeviceImageFormatProperties2KHR =
4811         (PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)vk->vkGetDeviceProcAddr(
4812             device, "vkGetPhysicalDeviceImageFormatProperties2KHR");
4813     out->vkGetPhysicalDeviceQueueFamilyProperties2KHR =
4814         (PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)vk->vkGetDeviceProcAddr(
4815             device, "vkGetPhysicalDeviceQueueFamilyProperties2KHR");
4816     out->vkGetPhysicalDeviceMemoryProperties2KHR =
4817         (PFN_vkGetPhysicalDeviceMemoryProperties2KHR)vk->vkGetDeviceProcAddr(
4818             device, "vkGetPhysicalDeviceMemoryProperties2KHR");
4819     out->vkGetPhysicalDeviceSparseImageFormatProperties2KHR =
4820         (PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)vk->vkGetDeviceProcAddr(
4821             device, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR");
4822 #endif
4823 #ifdef VK_KHR_device_group
4824     out->vkGetDeviceGroupPeerMemoryFeaturesKHR =
4825         (PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR)vk->vkGetDeviceProcAddr(
4826             device, "vkGetDeviceGroupPeerMemoryFeaturesKHR");
4827     out->vkCmdSetDeviceMaskKHR =
4828         (PFN_vkCmdSetDeviceMaskKHR)vk->vkGetDeviceProcAddr(device, "vkCmdSetDeviceMaskKHR");
4829     out->vkCmdDispatchBaseKHR =
4830         (PFN_vkCmdDispatchBaseKHR)vk->vkGetDeviceProcAddr(device, "vkCmdDispatchBaseKHR");
4831 #endif
4832 #ifdef VK_KHR_maintenance1
4833     out->vkTrimCommandPoolKHR =
4834         (PFN_vkTrimCommandPoolKHR)vk->vkGetDeviceProcAddr(device, "vkTrimCommandPoolKHR");
4835 #endif
4836 #ifdef VK_KHR_external_memory_capabilities
4837     out->vkGetPhysicalDeviceExternalBufferPropertiesKHR =
4838         (PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)vk->vkGetDeviceProcAddr(
4839             device, "vkGetPhysicalDeviceExternalBufferPropertiesKHR");
4840 #endif
4841 #ifdef VK_KHR_external_memory_win32
4842     out->vkGetMemoryWin32HandleKHR =
4843         (PFN_vkGetMemoryWin32HandleKHR)vk->vkGetDeviceProcAddr(device, "vkGetMemoryWin32HandleKHR");
4844     out->vkGetMemoryWin32HandlePropertiesKHR =
4845         (PFN_vkGetMemoryWin32HandlePropertiesKHR)vk->vkGetDeviceProcAddr(
4846             device, "vkGetMemoryWin32HandlePropertiesKHR");
4847 #endif
4848 #ifdef VK_KHR_external_memory_fd
4849     out->vkGetMemoryFdKHR =
4850         (PFN_vkGetMemoryFdKHR)vk->vkGetDeviceProcAddr(device, "vkGetMemoryFdKHR");
4851     out->vkGetMemoryFdPropertiesKHR = (PFN_vkGetMemoryFdPropertiesKHR)vk->vkGetDeviceProcAddr(
4852         device, "vkGetMemoryFdPropertiesKHR");
4853 #endif
4854 #ifdef VK_KHR_external_semaphore_capabilities
4855     out->vkGetPhysicalDeviceExternalSemaphorePropertiesKHR =
4856         (PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)vk->vkGetDeviceProcAddr(
4857             device, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR");
4858 #endif
4859 #ifdef VK_KHR_external_semaphore_win32
4860     out->vkImportSemaphoreWin32HandleKHR =
4861         (PFN_vkImportSemaphoreWin32HandleKHR)vk->vkGetDeviceProcAddr(
4862             device, "vkImportSemaphoreWin32HandleKHR");
4863     out->vkGetSemaphoreWin32HandleKHR = (PFN_vkGetSemaphoreWin32HandleKHR)vk->vkGetDeviceProcAddr(
4864         device, "vkGetSemaphoreWin32HandleKHR");
4865 #endif
4866 #ifdef VK_KHR_external_semaphore_fd
4867     out->vkImportSemaphoreFdKHR =
4868         (PFN_vkImportSemaphoreFdKHR)vk->vkGetDeviceProcAddr(device, "vkImportSemaphoreFdKHR");
4869     out->vkGetSemaphoreFdKHR =
4870         (PFN_vkGetSemaphoreFdKHR)vk->vkGetDeviceProcAddr(device, "vkGetSemaphoreFdKHR");
4871 #endif
4872 #ifdef VK_KHR_push_descriptor
4873     out->vkCmdPushDescriptorSetKHR =
4874         (PFN_vkCmdPushDescriptorSetKHR)vk->vkGetDeviceProcAddr(device, "vkCmdPushDescriptorSetKHR");
4875     out->vkCmdPushDescriptorSetWithTemplateKHR =
4876         (PFN_vkCmdPushDescriptorSetWithTemplateKHR)vk->vkGetDeviceProcAddr(
4877             device, "vkCmdPushDescriptorSetWithTemplateKHR");
4878 #endif
4879 #ifdef VK_KHR_descriptor_update_template
4880     out->vkCreateDescriptorUpdateTemplateKHR =
4881         (PFN_vkCreateDescriptorUpdateTemplateKHR)vk->vkGetDeviceProcAddr(
4882             device, "vkCreateDescriptorUpdateTemplateKHR");
4883     out->vkDestroyDescriptorUpdateTemplateKHR =
4884         (PFN_vkDestroyDescriptorUpdateTemplateKHR)vk->vkGetDeviceProcAddr(
4885             device, "vkDestroyDescriptorUpdateTemplateKHR");
4886     out->vkUpdateDescriptorSetWithTemplateKHR =
4887         (PFN_vkUpdateDescriptorSetWithTemplateKHR)vk->vkGetDeviceProcAddr(
4888             device, "vkUpdateDescriptorSetWithTemplateKHR");
4889 #endif
4890 #ifdef VK_KHR_create_renderpass2
4891     out->vkCreateRenderPass2KHR =
4892         (PFN_vkCreateRenderPass2KHR)vk->vkGetDeviceProcAddr(device, "vkCreateRenderPass2KHR");
4893     out->vkCmdBeginRenderPass2KHR =
4894         (PFN_vkCmdBeginRenderPass2KHR)vk->vkGetDeviceProcAddr(device, "vkCmdBeginRenderPass2KHR");
4895     out->vkCmdNextSubpass2KHR =
4896         (PFN_vkCmdNextSubpass2KHR)vk->vkGetDeviceProcAddr(device, "vkCmdNextSubpass2KHR");
4897     out->vkCmdEndRenderPass2KHR =
4898         (PFN_vkCmdEndRenderPass2KHR)vk->vkGetDeviceProcAddr(device, "vkCmdEndRenderPass2KHR");
4899 #endif
4900 #ifdef VK_KHR_shared_presentable_image
4901     out->vkGetSwapchainStatusKHR =
4902         (PFN_vkGetSwapchainStatusKHR)vk->vkGetDeviceProcAddr(device, "vkGetSwapchainStatusKHR");
4903 #endif
4904 #ifdef VK_KHR_external_fence_capabilities
4905     out->vkGetPhysicalDeviceExternalFencePropertiesKHR =
4906         (PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)vk->vkGetDeviceProcAddr(
4907             device, "vkGetPhysicalDeviceExternalFencePropertiesKHR");
4908 #endif
4909 #ifdef VK_KHR_external_fence_win32
4910     out->vkImportFenceWin32HandleKHR = (PFN_vkImportFenceWin32HandleKHR)vk->vkGetDeviceProcAddr(
4911         device, "vkImportFenceWin32HandleKHR");
4912     out->vkGetFenceWin32HandleKHR =
4913         (PFN_vkGetFenceWin32HandleKHR)vk->vkGetDeviceProcAddr(device, "vkGetFenceWin32HandleKHR");
4914 #endif
4915 #ifdef VK_KHR_external_fence_fd
4916     out->vkImportFenceFdKHR =
4917         (PFN_vkImportFenceFdKHR)vk->vkGetDeviceProcAddr(device, "vkImportFenceFdKHR");
4918     out->vkGetFenceFdKHR = (PFN_vkGetFenceFdKHR)vk->vkGetDeviceProcAddr(device, "vkGetFenceFdKHR");
4919 #endif
4920 #ifdef VK_KHR_performance_query
4921     out->vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR =
4922         (PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR)
4923             vk->vkGetDeviceProcAddr(
4924                 device, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR");
4925     out->vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR =
4926         (PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR)vk->vkGetDeviceProcAddr(
4927             device, "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR");
4928     out->vkAcquireProfilingLockKHR =
4929         (PFN_vkAcquireProfilingLockKHR)vk->vkGetDeviceProcAddr(device, "vkAcquireProfilingLockKHR");
4930     out->vkReleaseProfilingLockKHR =
4931         (PFN_vkReleaseProfilingLockKHR)vk->vkGetDeviceProcAddr(device, "vkReleaseProfilingLockKHR");
4932 #endif
4933 #ifdef VK_KHR_get_surface_capabilities2
4934     out->vkGetPhysicalDeviceSurfaceCapabilities2KHR =
4935         (PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR)vk->vkGetDeviceProcAddr(
4936             device, "vkGetPhysicalDeviceSurfaceCapabilities2KHR");
4937     out->vkGetPhysicalDeviceSurfaceFormats2KHR =
4938         (PFN_vkGetPhysicalDeviceSurfaceFormats2KHR)vk->vkGetDeviceProcAddr(
4939             device, "vkGetPhysicalDeviceSurfaceFormats2KHR");
4940 #endif
4941 #ifdef VK_KHR_get_display_properties2
4942     out->vkGetPhysicalDeviceDisplayProperties2KHR =
4943         (PFN_vkGetPhysicalDeviceDisplayProperties2KHR)vk->vkGetDeviceProcAddr(
4944             device, "vkGetPhysicalDeviceDisplayProperties2KHR");
4945     out->vkGetPhysicalDeviceDisplayPlaneProperties2KHR =
4946         (PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR)vk->vkGetDeviceProcAddr(
4947             device, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR");
4948     out->vkGetDisplayModeProperties2KHR =
4949         (PFN_vkGetDisplayModeProperties2KHR)vk->vkGetDeviceProcAddr(
4950             device, "vkGetDisplayModeProperties2KHR");
4951     out->vkGetDisplayPlaneCapabilities2KHR =
4952         (PFN_vkGetDisplayPlaneCapabilities2KHR)vk->vkGetDeviceProcAddr(
4953             device, "vkGetDisplayPlaneCapabilities2KHR");
4954 #endif
4955 #ifdef VK_KHR_get_memory_requirements2
4956     out->vkGetImageMemoryRequirements2KHR =
4957         (PFN_vkGetImageMemoryRequirements2KHR)vk->vkGetDeviceProcAddr(
4958             device, "vkGetImageMemoryRequirements2KHR");
4959     out->vkGetBufferMemoryRequirements2KHR =
4960         (PFN_vkGetBufferMemoryRequirements2KHR)vk->vkGetDeviceProcAddr(
4961             device, "vkGetBufferMemoryRequirements2KHR");
4962     out->vkGetImageSparseMemoryRequirements2KHR =
4963         (PFN_vkGetImageSparseMemoryRequirements2KHR)vk->vkGetDeviceProcAddr(
4964             device, "vkGetImageSparseMemoryRequirements2KHR");
4965 #endif
4966 #ifdef VK_KHR_sampler_ycbcr_conversion
4967     out->vkCreateSamplerYcbcrConversionKHR =
4968         (PFN_vkCreateSamplerYcbcrConversionKHR)vk->vkGetDeviceProcAddr(
4969             device, "vkCreateSamplerYcbcrConversionKHR");
4970     out->vkDestroySamplerYcbcrConversionKHR =
4971         (PFN_vkDestroySamplerYcbcrConversionKHR)vk->vkGetDeviceProcAddr(
4972             device, "vkDestroySamplerYcbcrConversionKHR");
4973 #endif
4974 #ifdef VK_KHR_bind_memory2
4975     out->vkBindBufferMemory2KHR =
4976         (PFN_vkBindBufferMemory2KHR)vk->vkGetDeviceProcAddr(device, "vkBindBufferMemory2KHR");
4977     out->vkBindImageMemory2KHR =
4978         (PFN_vkBindImageMemory2KHR)vk->vkGetDeviceProcAddr(device, "vkBindImageMemory2KHR");
4979 #endif
4980 #ifdef VK_KHR_maintenance3
4981     out->vkGetDescriptorSetLayoutSupportKHR =
4982         (PFN_vkGetDescriptorSetLayoutSupportKHR)vk->vkGetDeviceProcAddr(
4983             device, "vkGetDescriptorSetLayoutSupportKHR");
4984 #endif
4985 #ifdef VK_KHR_draw_indirect_count
4986     out->vkCmdDrawIndirectCountKHR =
4987         (PFN_vkCmdDrawIndirectCountKHR)vk->vkGetDeviceProcAddr(device, "vkCmdDrawIndirectCountKHR");
4988     out->vkCmdDrawIndexedIndirectCountKHR =
4989         (PFN_vkCmdDrawIndexedIndirectCountKHR)vk->vkGetDeviceProcAddr(
4990             device, "vkCmdDrawIndexedIndirectCountKHR");
4991 #endif
4992 #ifdef VK_KHR_timeline_semaphore
4993     out->vkGetSemaphoreCounterValueKHR = (PFN_vkGetSemaphoreCounterValueKHR)vk->vkGetDeviceProcAddr(
4994         device, "vkGetSemaphoreCounterValueKHR");
4995     out->vkWaitSemaphoresKHR =
4996         (PFN_vkWaitSemaphoresKHR)vk->vkGetDeviceProcAddr(device, "vkWaitSemaphoresKHR");
4997     out->vkSignalSemaphoreKHR =
4998         (PFN_vkSignalSemaphoreKHR)vk->vkGetDeviceProcAddr(device, "vkSignalSemaphoreKHR");
4999 #endif
5000 #ifdef VK_KHR_fragment_shading_rate
5001     out->vkGetPhysicalDeviceFragmentShadingRatesKHR =
5002         (PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR)vk->vkGetDeviceProcAddr(
5003             device, "vkGetPhysicalDeviceFragmentShadingRatesKHR");
5004     out->vkCmdSetFragmentShadingRateKHR =
5005         (PFN_vkCmdSetFragmentShadingRateKHR)vk->vkGetDeviceProcAddr(
5006             device, "vkCmdSetFragmentShadingRateKHR");
5007 #endif
5008 #ifdef VK_KHR_present_wait
5009     out->vkWaitForPresentKHR =
5010         (PFN_vkWaitForPresentKHR)vk->vkGetDeviceProcAddr(device, "vkWaitForPresentKHR");
5011 #endif
5012 #ifdef VK_KHR_buffer_device_address
5013     out->vkGetBufferDeviceAddressKHR = (PFN_vkGetBufferDeviceAddressKHR)vk->vkGetDeviceProcAddr(
5014         device, "vkGetBufferDeviceAddressKHR");
5015     out->vkGetBufferOpaqueCaptureAddressKHR =
5016         (PFN_vkGetBufferOpaqueCaptureAddressKHR)vk->vkGetDeviceProcAddr(
5017             device, "vkGetBufferOpaqueCaptureAddressKHR");
5018     out->vkGetDeviceMemoryOpaqueCaptureAddressKHR =
5019         (PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR)vk->vkGetDeviceProcAddr(
5020             device, "vkGetDeviceMemoryOpaqueCaptureAddressKHR");
5021 #endif
5022 #ifdef VK_KHR_deferred_host_operations
5023     out->vkCreateDeferredOperationKHR = (PFN_vkCreateDeferredOperationKHR)vk->vkGetDeviceProcAddr(
5024         device, "vkCreateDeferredOperationKHR");
5025     out->vkDestroyDeferredOperationKHR = (PFN_vkDestroyDeferredOperationKHR)vk->vkGetDeviceProcAddr(
5026         device, "vkDestroyDeferredOperationKHR");
5027     out->vkGetDeferredOperationMaxConcurrencyKHR =
5028         (PFN_vkGetDeferredOperationMaxConcurrencyKHR)vk->vkGetDeviceProcAddr(
5029             device, "vkGetDeferredOperationMaxConcurrencyKHR");
5030     out->vkGetDeferredOperationResultKHR =
5031         (PFN_vkGetDeferredOperationResultKHR)vk->vkGetDeviceProcAddr(
5032             device, "vkGetDeferredOperationResultKHR");
5033     out->vkDeferredOperationJoinKHR = (PFN_vkDeferredOperationJoinKHR)vk->vkGetDeviceProcAddr(
5034         device, "vkDeferredOperationJoinKHR");
5035 #endif
5036 #ifdef VK_KHR_pipeline_executable_properties
5037     out->vkGetPipelineExecutablePropertiesKHR =
5038         (PFN_vkGetPipelineExecutablePropertiesKHR)vk->vkGetDeviceProcAddr(
5039             device, "vkGetPipelineExecutablePropertiesKHR");
5040     out->vkGetPipelineExecutableStatisticsKHR =
5041         (PFN_vkGetPipelineExecutableStatisticsKHR)vk->vkGetDeviceProcAddr(
5042             device, "vkGetPipelineExecutableStatisticsKHR");
5043     out->vkGetPipelineExecutableInternalRepresentationsKHR =
5044         (PFN_vkGetPipelineExecutableInternalRepresentationsKHR)vk->vkGetDeviceProcAddr(
5045             device, "vkGetPipelineExecutableInternalRepresentationsKHR");
5046 #endif
5047 #ifdef VK_KHR_map_memory2
5048     out->vkMapMemory2KHR = (PFN_vkMapMemory2KHR)vk->vkGetDeviceProcAddr(device, "vkMapMemory2KHR");
5049     out->vkUnmapMemory2KHR =
5050         (PFN_vkUnmapMemory2KHR)vk->vkGetDeviceProcAddr(device, "vkUnmapMemory2KHR");
5051 #endif
5052 #ifdef VK_KHR_video_encode_queue
5053     out->vkCmdEncodeVideoKHR =
5054         (PFN_vkCmdEncodeVideoKHR)vk->vkGetDeviceProcAddr(device, "vkCmdEncodeVideoKHR");
5055 #endif
5056 #ifdef VK_KHR_synchronization2
5057     out->vkCmdSetEvent2KHR =
5058         (PFN_vkCmdSetEvent2KHR)vk->vkGetDeviceProcAddr(device, "vkCmdSetEvent2KHR");
5059     out->vkCmdResetEvent2KHR =
5060         (PFN_vkCmdResetEvent2KHR)vk->vkGetDeviceProcAddr(device, "vkCmdResetEvent2KHR");
5061     out->vkCmdWaitEvents2KHR =
5062         (PFN_vkCmdWaitEvents2KHR)vk->vkGetDeviceProcAddr(device, "vkCmdWaitEvents2KHR");
5063     out->vkCmdPipelineBarrier2KHR =
5064         (PFN_vkCmdPipelineBarrier2KHR)vk->vkGetDeviceProcAddr(device, "vkCmdPipelineBarrier2KHR");
5065     out->vkCmdWriteTimestamp2KHR =
5066         (PFN_vkCmdWriteTimestamp2KHR)vk->vkGetDeviceProcAddr(device, "vkCmdWriteTimestamp2KHR");
5067     out->vkQueueSubmit2KHR =
5068         (PFN_vkQueueSubmit2KHR)vk->vkGetDeviceProcAddr(device, "vkQueueSubmit2KHR");
5069     out->vkCmdWriteBufferMarker2AMD = (PFN_vkCmdWriteBufferMarker2AMD)vk->vkGetDeviceProcAddr(
5070         device, "vkCmdWriteBufferMarker2AMD");
5071     out->vkGetQueueCheckpointData2NV = (PFN_vkGetQueueCheckpointData2NV)vk->vkGetDeviceProcAddr(
5072         device, "vkGetQueueCheckpointData2NV");
5073 #endif
5074 #ifdef VK_KHR_copy_commands2
5075     out->vkCmdCopyBuffer2KHR =
5076         (PFN_vkCmdCopyBuffer2KHR)vk->vkGetDeviceProcAddr(device, "vkCmdCopyBuffer2KHR");
5077     out->vkCmdCopyImage2KHR =
5078         (PFN_vkCmdCopyImage2KHR)vk->vkGetDeviceProcAddr(device, "vkCmdCopyImage2KHR");
5079     out->vkCmdCopyBufferToImage2KHR = (PFN_vkCmdCopyBufferToImage2KHR)vk->vkGetDeviceProcAddr(
5080         device, "vkCmdCopyBufferToImage2KHR");
5081     out->vkCmdCopyImageToBuffer2KHR = (PFN_vkCmdCopyImageToBuffer2KHR)vk->vkGetDeviceProcAddr(
5082         device, "vkCmdCopyImageToBuffer2KHR");
5083     out->vkCmdBlitImage2KHR =
5084         (PFN_vkCmdBlitImage2KHR)vk->vkGetDeviceProcAddr(device, "vkCmdBlitImage2KHR");
5085     out->vkCmdResolveImage2KHR =
5086         (PFN_vkCmdResolveImage2KHR)vk->vkGetDeviceProcAddr(device, "vkCmdResolveImage2KHR");
5087 #endif
5088 #ifdef VK_KHR_ray_tracing_maintenance1
5089     out->vkCmdTraceRaysIndirect2KHR = (PFN_vkCmdTraceRaysIndirect2KHR)vk->vkGetDeviceProcAddr(
5090         device, "vkCmdTraceRaysIndirect2KHR");
5091 #endif
5092 #ifdef VK_KHR_maintenance4
5093     out->vkGetDeviceBufferMemoryRequirementsKHR =
5094         (PFN_vkGetDeviceBufferMemoryRequirementsKHR)vk->vkGetDeviceProcAddr(
5095             device, "vkGetDeviceBufferMemoryRequirementsKHR");
5096     out->vkGetDeviceImageMemoryRequirementsKHR =
5097         (PFN_vkGetDeviceImageMemoryRequirementsKHR)vk->vkGetDeviceProcAddr(
5098             device, "vkGetDeviceImageMemoryRequirementsKHR");
5099     out->vkGetDeviceImageSparseMemoryRequirementsKHR =
5100         (PFN_vkGetDeviceImageSparseMemoryRequirementsKHR)vk->vkGetDeviceProcAddr(
5101             device, "vkGetDeviceImageSparseMemoryRequirementsKHR");
5102 #endif
5103 #ifdef VK_ANDROID_native_buffer
5104     out->vkGetSwapchainGrallocUsageANDROID =
5105         (PFN_vkGetSwapchainGrallocUsageANDROID)vk->vkGetDeviceProcAddr(
5106             device, "vkGetSwapchainGrallocUsageANDROID");
5107     out->vkAcquireImageANDROID =
5108         (PFN_vkAcquireImageANDROID)vk->vkGetDeviceProcAddr(device, "vkAcquireImageANDROID");
5109     out->vkQueueSignalReleaseImageANDROID =
5110         (PFN_vkQueueSignalReleaseImageANDROID)vk->vkGetDeviceProcAddr(
5111             device, "vkQueueSignalReleaseImageANDROID");
5112     out->vkGetSwapchainGrallocUsage2ANDROID =
5113         (PFN_vkGetSwapchainGrallocUsage2ANDROID)vk->vkGetDeviceProcAddr(
5114             device, "vkGetSwapchainGrallocUsage2ANDROID");
5115 #endif
5116 #ifdef VK_EXT_debug_marker
5117     out->vkDebugMarkerSetObjectTagEXT = (PFN_vkDebugMarkerSetObjectTagEXT)vk->vkGetDeviceProcAddr(
5118         device, "vkDebugMarkerSetObjectTagEXT");
5119     out->vkDebugMarkerSetObjectNameEXT = (PFN_vkDebugMarkerSetObjectNameEXT)vk->vkGetDeviceProcAddr(
5120         device, "vkDebugMarkerSetObjectNameEXT");
5121     out->vkCmdDebugMarkerBeginEXT =
5122         (PFN_vkCmdDebugMarkerBeginEXT)vk->vkGetDeviceProcAddr(device, "vkCmdDebugMarkerBeginEXT");
5123     out->vkCmdDebugMarkerEndEXT =
5124         (PFN_vkCmdDebugMarkerEndEXT)vk->vkGetDeviceProcAddr(device, "vkCmdDebugMarkerEndEXT");
5125     out->vkCmdDebugMarkerInsertEXT =
5126         (PFN_vkCmdDebugMarkerInsertEXT)vk->vkGetDeviceProcAddr(device, "vkCmdDebugMarkerInsertEXT");
5127 #endif
5128 #ifdef VK_EXT_transform_feedback
5129     out->vkCmdBindTransformFeedbackBuffersEXT =
5130         (PFN_vkCmdBindTransformFeedbackBuffersEXT)vk->vkGetDeviceProcAddr(
5131             device, "vkCmdBindTransformFeedbackBuffersEXT");
5132     out->vkCmdBeginTransformFeedbackEXT =
5133         (PFN_vkCmdBeginTransformFeedbackEXT)vk->vkGetDeviceProcAddr(
5134             device, "vkCmdBeginTransformFeedbackEXT");
5135     out->vkCmdEndTransformFeedbackEXT = (PFN_vkCmdEndTransformFeedbackEXT)vk->vkGetDeviceProcAddr(
5136         device, "vkCmdEndTransformFeedbackEXT");
5137     out->vkCmdBeginQueryIndexedEXT =
5138         (PFN_vkCmdBeginQueryIndexedEXT)vk->vkGetDeviceProcAddr(device, "vkCmdBeginQueryIndexedEXT");
5139     out->vkCmdEndQueryIndexedEXT =
5140         (PFN_vkCmdEndQueryIndexedEXT)vk->vkGetDeviceProcAddr(device, "vkCmdEndQueryIndexedEXT");
5141     out->vkCmdDrawIndirectByteCountEXT = (PFN_vkCmdDrawIndirectByteCountEXT)vk->vkGetDeviceProcAddr(
5142         device, "vkCmdDrawIndirectByteCountEXT");
5143 #endif
5144 #ifdef VK_NVX_binary_import
5145     out->vkCreateCuModuleNVX =
5146         (PFN_vkCreateCuModuleNVX)vk->vkGetDeviceProcAddr(device, "vkCreateCuModuleNVX");
5147     out->vkCreateCuFunctionNVX =
5148         (PFN_vkCreateCuFunctionNVX)vk->vkGetDeviceProcAddr(device, "vkCreateCuFunctionNVX");
5149     out->vkDestroyCuModuleNVX =
5150         (PFN_vkDestroyCuModuleNVX)vk->vkGetDeviceProcAddr(device, "vkDestroyCuModuleNVX");
5151     out->vkDestroyCuFunctionNVX =
5152         (PFN_vkDestroyCuFunctionNVX)vk->vkGetDeviceProcAddr(device, "vkDestroyCuFunctionNVX");
5153     out->vkCmdCuLaunchKernelNVX =
5154         (PFN_vkCmdCuLaunchKernelNVX)vk->vkGetDeviceProcAddr(device, "vkCmdCuLaunchKernelNVX");
5155 #endif
5156 #ifdef VK_NVX_image_view_handle
5157     out->vkGetImageViewHandleNVX =
5158         (PFN_vkGetImageViewHandleNVX)vk->vkGetDeviceProcAddr(device, "vkGetImageViewHandleNVX");
5159     out->vkGetImageViewAddressNVX =
5160         (PFN_vkGetImageViewAddressNVX)vk->vkGetDeviceProcAddr(device, "vkGetImageViewAddressNVX");
5161 #endif
5162 #ifdef VK_AMD_draw_indirect_count
5163     out->vkCmdDrawIndirectCountAMD =
5164         (PFN_vkCmdDrawIndirectCountAMD)vk->vkGetDeviceProcAddr(device, "vkCmdDrawIndirectCountAMD");
5165     out->vkCmdDrawIndexedIndirectCountAMD =
5166         (PFN_vkCmdDrawIndexedIndirectCountAMD)vk->vkGetDeviceProcAddr(
5167             device, "vkCmdDrawIndexedIndirectCountAMD");
5168 #endif
5169 #ifdef VK_AMD_shader_info
5170     out->vkGetShaderInfoAMD =
5171         (PFN_vkGetShaderInfoAMD)vk->vkGetDeviceProcAddr(device, "vkGetShaderInfoAMD");
5172 #endif
5173 #ifdef VK_NV_external_memory_capabilities
5174     out->vkGetPhysicalDeviceExternalImageFormatPropertiesNV =
5175         (PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)vk->vkGetDeviceProcAddr(
5176             device, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV");
5177 #endif
5178 #ifdef VK_NV_external_memory_win32
5179     out->vkGetMemoryWin32HandleNV =
5180         (PFN_vkGetMemoryWin32HandleNV)vk->vkGetDeviceProcAddr(device, "vkGetMemoryWin32HandleNV");
5181 #endif
5182 #ifdef VK_EXT_conditional_rendering
5183     out->vkCmdBeginConditionalRenderingEXT =
5184         (PFN_vkCmdBeginConditionalRenderingEXT)vk->vkGetDeviceProcAddr(
5185             device, "vkCmdBeginConditionalRenderingEXT");
5186     out->vkCmdEndConditionalRenderingEXT =
5187         (PFN_vkCmdEndConditionalRenderingEXT)vk->vkGetDeviceProcAddr(
5188             device, "vkCmdEndConditionalRenderingEXT");
5189 #endif
5190 #ifdef VK_NV_clip_space_w_scaling
5191     out->vkCmdSetViewportWScalingNV = (PFN_vkCmdSetViewportWScalingNV)vk->vkGetDeviceProcAddr(
5192         device, "vkCmdSetViewportWScalingNV");
5193 #endif
5194 #ifdef VK_EXT_direct_mode_display
5195     out->vkReleaseDisplayEXT =
5196         (PFN_vkReleaseDisplayEXT)vk->vkGetDeviceProcAddr(device, "vkReleaseDisplayEXT");
5197 #endif
5198 #ifdef VK_EXT_acquire_xlib_display
5199     out->vkAcquireXlibDisplayEXT =
5200         (PFN_vkAcquireXlibDisplayEXT)vk->vkGetDeviceProcAddr(device, "vkAcquireXlibDisplayEXT");
5201     out->vkGetRandROutputDisplayEXT = (PFN_vkGetRandROutputDisplayEXT)vk->vkGetDeviceProcAddr(
5202         device, "vkGetRandROutputDisplayEXT");
5203 #endif
5204 #ifdef VK_EXT_display_surface_counter
5205     out->vkGetPhysicalDeviceSurfaceCapabilities2EXT =
5206         (PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)vk->vkGetDeviceProcAddr(
5207             device, "vkGetPhysicalDeviceSurfaceCapabilities2EXT");
5208 #endif
5209 #ifdef VK_EXT_display_control
5210     out->vkDisplayPowerControlEXT =
5211         (PFN_vkDisplayPowerControlEXT)vk->vkGetDeviceProcAddr(device, "vkDisplayPowerControlEXT");
5212     out->vkRegisterDeviceEventEXT =
5213         (PFN_vkRegisterDeviceEventEXT)vk->vkGetDeviceProcAddr(device, "vkRegisterDeviceEventEXT");
5214     out->vkRegisterDisplayEventEXT =
5215         (PFN_vkRegisterDisplayEventEXT)vk->vkGetDeviceProcAddr(device, "vkRegisterDisplayEventEXT");
5216     out->vkGetSwapchainCounterEXT =
5217         (PFN_vkGetSwapchainCounterEXT)vk->vkGetDeviceProcAddr(device, "vkGetSwapchainCounterEXT");
5218 #endif
5219 #ifdef VK_GOOGLE_display_timing
5220     out->vkGetRefreshCycleDurationGOOGLE =
5221         (PFN_vkGetRefreshCycleDurationGOOGLE)vk->vkGetDeviceProcAddr(
5222             device, "vkGetRefreshCycleDurationGOOGLE");
5223     out->vkGetPastPresentationTimingGOOGLE =
5224         (PFN_vkGetPastPresentationTimingGOOGLE)vk->vkGetDeviceProcAddr(
5225             device, "vkGetPastPresentationTimingGOOGLE");
5226 #endif
5227 #ifdef VK_EXT_discard_rectangles
5228     out->vkCmdSetDiscardRectangleEXT = (PFN_vkCmdSetDiscardRectangleEXT)vk->vkGetDeviceProcAddr(
5229         device, "vkCmdSetDiscardRectangleEXT");
5230     out->vkCmdSetDiscardRectangleEnableEXT =
5231         (PFN_vkCmdSetDiscardRectangleEnableEXT)vk->vkGetDeviceProcAddr(
5232             device, "vkCmdSetDiscardRectangleEnableEXT");
5233     out->vkCmdSetDiscardRectangleModeEXT =
5234         (PFN_vkCmdSetDiscardRectangleModeEXT)vk->vkGetDeviceProcAddr(
5235             device, "vkCmdSetDiscardRectangleModeEXT");
5236 #endif
5237 #ifdef VK_EXT_hdr_metadata
5238     out->vkSetHdrMetadataEXT =
5239         (PFN_vkSetHdrMetadataEXT)vk->vkGetDeviceProcAddr(device, "vkSetHdrMetadataEXT");
5240 #endif
5241 #ifdef VK_EXT_debug_utils
5242     out->vkSetDebugUtilsObjectNameEXT = (PFN_vkSetDebugUtilsObjectNameEXT)vk->vkGetDeviceProcAddr(
5243         device, "vkSetDebugUtilsObjectNameEXT");
5244     out->vkSetDebugUtilsObjectTagEXT = (PFN_vkSetDebugUtilsObjectTagEXT)vk->vkGetDeviceProcAddr(
5245         device, "vkSetDebugUtilsObjectTagEXT");
5246     out->vkQueueBeginDebugUtilsLabelEXT =
5247         (PFN_vkQueueBeginDebugUtilsLabelEXT)vk->vkGetDeviceProcAddr(
5248             device, "vkQueueBeginDebugUtilsLabelEXT");
5249     out->vkQueueEndDebugUtilsLabelEXT = (PFN_vkQueueEndDebugUtilsLabelEXT)vk->vkGetDeviceProcAddr(
5250         device, "vkQueueEndDebugUtilsLabelEXT");
5251     out->vkQueueInsertDebugUtilsLabelEXT =
5252         (PFN_vkQueueInsertDebugUtilsLabelEXT)vk->vkGetDeviceProcAddr(
5253             device, "vkQueueInsertDebugUtilsLabelEXT");
5254     out->vkCmdBeginDebugUtilsLabelEXT = (PFN_vkCmdBeginDebugUtilsLabelEXT)vk->vkGetDeviceProcAddr(
5255         device, "vkCmdBeginDebugUtilsLabelEXT");
5256     out->vkCmdEndDebugUtilsLabelEXT = (PFN_vkCmdEndDebugUtilsLabelEXT)vk->vkGetDeviceProcAddr(
5257         device, "vkCmdEndDebugUtilsLabelEXT");
5258     out->vkCmdInsertDebugUtilsLabelEXT = (PFN_vkCmdInsertDebugUtilsLabelEXT)vk->vkGetDeviceProcAddr(
5259         device, "vkCmdInsertDebugUtilsLabelEXT");
5260 #endif
5261 #ifdef VK_ANDROID_external_memory_android_hardware_buffer
5262     out->vkGetAndroidHardwareBufferPropertiesANDROID =
5263         (PFN_vkGetAndroidHardwareBufferPropertiesANDROID)vk->vkGetDeviceProcAddr(
5264             device, "vkGetAndroidHardwareBufferPropertiesANDROID");
5265     out->vkGetMemoryAndroidHardwareBufferANDROID =
5266         (PFN_vkGetMemoryAndroidHardwareBufferANDROID)vk->vkGetDeviceProcAddr(
5267             device, "vkGetMemoryAndroidHardwareBufferANDROID");
5268 #endif
5269 #ifdef VK_EXT_sample_locations
5270     out->vkCmdSetSampleLocationsEXT = (PFN_vkCmdSetSampleLocationsEXT)vk->vkGetDeviceProcAddr(
5271         device, "vkCmdSetSampleLocationsEXT");
5272     out->vkGetPhysicalDeviceMultisamplePropertiesEXT =
5273         (PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT)vk->vkGetDeviceProcAddr(
5274             device, "vkGetPhysicalDeviceMultisamplePropertiesEXT");
5275 #endif
5276 #ifdef VK_EXT_image_drm_format_modifier
5277     out->vkGetImageDrmFormatModifierPropertiesEXT =
5278         (PFN_vkGetImageDrmFormatModifierPropertiesEXT)vk->vkGetDeviceProcAddr(
5279             device, "vkGetImageDrmFormatModifierPropertiesEXT");
5280 #endif
5281 #ifdef VK_EXT_validation_cache
5282     out->vkCreateValidationCacheEXT = (PFN_vkCreateValidationCacheEXT)vk->vkGetDeviceProcAddr(
5283         device, "vkCreateValidationCacheEXT");
5284     out->vkDestroyValidationCacheEXT = (PFN_vkDestroyValidationCacheEXT)vk->vkGetDeviceProcAddr(
5285         device, "vkDestroyValidationCacheEXT");
5286     out->vkMergeValidationCachesEXT = (PFN_vkMergeValidationCachesEXT)vk->vkGetDeviceProcAddr(
5287         device, "vkMergeValidationCachesEXT");
5288     out->vkGetValidationCacheDataEXT = (PFN_vkGetValidationCacheDataEXT)vk->vkGetDeviceProcAddr(
5289         device, "vkGetValidationCacheDataEXT");
5290 #endif
5291 #ifdef VK_NV_shading_rate_image
5292     out->vkCmdBindShadingRateImageNV = (PFN_vkCmdBindShadingRateImageNV)vk->vkGetDeviceProcAddr(
5293         device, "vkCmdBindShadingRateImageNV");
5294     out->vkCmdSetViewportShadingRatePaletteNV =
5295         (PFN_vkCmdSetViewportShadingRatePaletteNV)vk->vkGetDeviceProcAddr(
5296             device, "vkCmdSetViewportShadingRatePaletteNV");
5297     out->vkCmdSetCoarseSampleOrderNV = (PFN_vkCmdSetCoarseSampleOrderNV)vk->vkGetDeviceProcAddr(
5298         device, "vkCmdSetCoarseSampleOrderNV");
5299 #endif
5300 #ifdef VK_NV_ray_tracing
5301     out->vkCreateAccelerationStructureNV =
5302         (PFN_vkCreateAccelerationStructureNV)vk->vkGetDeviceProcAddr(
5303             device, "vkCreateAccelerationStructureNV");
5304     out->vkDestroyAccelerationStructureNV =
5305         (PFN_vkDestroyAccelerationStructureNV)vk->vkGetDeviceProcAddr(
5306             device, "vkDestroyAccelerationStructureNV");
5307     out->vkGetAccelerationStructureMemoryRequirementsNV =
5308         (PFN_vkGetAccelerationStructureMemoryRequirementsNV)vk->vkGetDeviceProcAddr(
5309             device, "vkGetAccelerationStructureMemoryRequirementsNV");
5310     out->vkBindAccelerationStructureMemoryNV =
5311         (PFN_vkBindAccelerationStructureMemoryNV)vk->vkGetDeviceProcAddr(
5312             device, "vkBindAccelerationStructureMemoryNV");
5313     out->vkCmdBuildAccelerationStructureNV =
5314         (PFN_vkCmdBuildAccelerationStructureNV)vk->vkGetDeviceProcAddr(
5315             device, "vkCmdBuildAccelerationStructureNV");
5316     out->vkCmdCopyAccelerationStructureNV =
5317         (PFN_vkCmdCopyAccelerationStructureNV)vk->vkGetDeviceProcAddr(
5318             device, "vkCmdCopyAccelerationStructureNV");
5319     out->vkCmdTraceRaysNV =
5320         (PFN_vkCmdTraceRaysNV)vk->vkGetDeviceProcAddr(device, "vkCmdTraceRaysNV");
5321     out->vkCreateRayTracingPipelinesNV = (PFN_vkCreateRayTracingPipelinesNV)vk->vkGetDeviceProcAddr(
5322         device, "vkCreateRayTracingPipelinesNV");
5323     out->vkGetRayTracingShaderGroupHandlesKHR =
5324         (PFN_vkGetRayTracingShaderGroupHandlesKHR)vk->vkGetDeviceProcAddr(
5325             device, "vkGetRayTracingShaderGroupHandlesKHR");
5326     out->vkGetRayTracingShaderGroupHandlesNV =
5327         (PFN_vkGetRayTracingShaderGroupHandlesNV)vk->vkGetDeviceProcAddr(
5328             device, "vkGetRayTracingShaderGroupHandlesNV");
5329     out->vkGetAccelerationStructureHandleNV =
5330         (PFN_vkGetAccelerationStructureHandleNV)vk->vkGetDeviceProcAddr(
5331             device, "vkGetAccelerationStructureHandleNV");
5332     out->vkCmdWriteAccelerationStructuresPropertiesNV =
5333         (PFN_vkCmdWriteAccelerationStructuresPropertiesNV)vk->vkGetDeviceProcAddr(
5334             device, "vkCmdWriteAccelerationStructuresPropertiesNV");
5335     out->vkCompileDeferredNV =
5336         (PFN_vkCompileDeferredNV)vk->vkGetDeviceProcAddr(device, "vkCompileDeferredNV");
5337 #endif
5338 #ifdef VK_EXT_external_memory_host
5339     out->vkGetMemoryHostPointerPropertiesEXT =
5340         (PFN_vkGetMemoryHostPointerPropertiesEXT)vk->vkGetDeviceProcAddr(
5341             device, "vkGetMemoryHostPointerPropertiesEXT");
5342 #endif
5343 #ifdef VK_AMD_buffer_marker
5344     out->vkCmdWriteBufferMarkerAMD =
5345         (PFN_vkCmdWriteBufferMarkerAMD)vk->vkGetDeviceProcAddr(device, "vkCmdWriteBufferMarkerAMD");
5346 #endif
5347 #ifdef VK_EXT_calibrated_timestamps
5348     out->vkGetPhysicalDeviceCalibrateableTimeDomainsEXT =
5349         (PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)vk->vkGetDeviceProcAddr(
5350             device, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT");
5351     out->vkGetCalibratedTimestampsEXT = (PFN_vkGetCalibratedTimestampsEXT)vk->vkGetDeviceProcAddr(
5352         device, "vkGetCalibratedTimestampsEXT");
5353 #endif
5354 #ifdef VK_NV_mesh_shader
5355     out->vkCmdDrawMeshTasksNV =
5356         (PFN_vkCmdDrawMeshTasksNV)vk->vkGetDeviceProcAddr(device, "vkCmdDrawMeshTasksNV");
5357     out->vkCmdDrawMeshTasksIndirectNV = (PFN_vkCmdDrawMeshTasksIndirectNV)vk->vkGetDeviceProcAddr(
5358         device, "vkCmdDrawMeshTasksIndirectNV");
5359     out->vkCmdDrawMeshTasksIndirectCountNV =
5360         (PFN_vkCmdDrawMeshTasksIndirectCountNV)vk->vkGetDeviceProcAddr(
5361             device, "vkCmdDrawMeshTasksIndirectCountNV");
5362 #endif
5363 #ifdef VK_NV_scissor_exclusive
5364     out->vkCmdSetExclusiveScissorEnableNV =
5365         (PFN_vkCmdSetExclusiveScissorEnableNV)vk->vkGetDeviceProcAddr(
5366             device, "vkCmdSetExclusiveScissorEnableNV");
5367     out->vkCmdSetExclusiveScissorNV = (PFN_vkCmdSetExclusiveScissorNV)vk->vkGetDeviceProcAddr(
5368         device, "vkCmdSetExclusiveScissorNV");
5369 #endif
5370 #ifdef VK_NV_device_diagnostic_checkpoints
5371     out->vkCmdSetCheckpointNV =
5372         (PFN_vkCmdSetCheckpointNV)vk->vkGetDeviceProcAddr(device, "vkCmdSetCheckpointNV");
5373     out->vkGetQueueCheckpointDataNV = (PFN_vkGetQueueCheckpointDataNV)vk->vkGetDeviceProcAddr(
5374         device, "vkGetQueueCheckpointDataNV");
5375 #endif
5376 #ifdef VK_INTEL_performance_query
5377     out->vkInitializePerformanceApiINTEL =
5378         (PFN_vkInitializePerformanceApiINTEL)vk->vkGetDeviceProcAddr(
5379             device, "vkInitializePerformanceApiINTEL");
5380     out->vkUninitializePerformanceApiINTEL =
5381         (PFN_vkUninitializePerformanceApiINTEL)vk->vkGetDeviceProcAddr(
5382             device, "vkUninitializePerformanceApiINTEL");
5383     out->vkCmdSetPerformanceMarkerINTEL =
5384         (PFN_vkCmdSetPerformanceMarkerINTEL)vk->vkGetDeviceProcAddr(
5385             device, "vkCmdSetPerformanceMarkerINTEL");
5386     out->vkCmdSetPerformanceStreamMarkerINTEL =
5387         (PFN_vkCmdSetPerformanceStreamMarkerINTEL)vk->vkGetDeviceProcAddr(
5388             device, "vkCmdSetPerformanceStreamMarkerINTEL");
5389     out->vkCmdSetPerformanceOverrideINTEL =
5390         (PFN_vkCmdSetPerformanceOverrideINTEL)vk->vkGetDeviceProcAddr(
5391             device, "vkCmdSetPerformanceOverrideINTEL");
5392     out->vkAcquirePerformanceConfigurationINTEL =
5393         (PFN_vkAcquirePerformanceConfigurationINTEL)vk->vkGetDeviceProcAddr(
5394             device, "vkAcquirePerformanceConfigurationINTEL");
5395     out->vkReleasePerformanceConfigurationINTEL =
5396         (PFN_vkReleasePerformanceConfigurationINTEL)vk->vkGetDeviceProcAddr(
5397             device, "vkReleasePerformanceConfigurationINTEL");
5398     out->vkQueueSetPerformanceConfigurationINTEL =
5399         (PFN_vkQueueSetPerformanceConfigurationINTEL)vk->vkGetDeviceProcAddr(
5400             device, "vkQueueSetPerformanceConfigurationINTEL");
5401     out->vkGetPerformanceParameterINTEL =
5402         (PFN_vkGetPerformanceParameterINTEL)vk->vkGetDeviceProcAddr(
5403             device, "vkGetPerformanceParameterINTEL");
5404 #endif
5405 #ifdef VK_AMD_display_native_hdr
5406     out->vkSetLocalDimmingAMD =
5407         (PFN_vkSetLocalDimmingAMD)vk->vkGetDeviceProcAddr(device, "vkSetLocalDimmingAMD");
5408 #endif
5409 #ifdef VK_EXT_buffer_device_address
5410     out->vkGetBufferDeviceAddressEXT = (PFN_vkGetBufferDeviceAddressEXT)vk->vkGetDeviceProcAddr(
5411         device, "vkGetBufferDeviceAddressEXT");
5412 #endif
5413 #ifdef VK_EXT_tooling_info
5414     out->vkGetPhysicalDeviceToolPropertiesEXT =
5415         (PFN_vkGetPhysicalDeviceToolPropertiesEXT)vk->vkGetDeviceProcAddr(
5416             device, "vkGetPhysicalDeviceToolPropertiesEXT");
5417 #endif
5418 #ifdef VK_NV_cooperative_matrix
5419     out->vkGetPhysicalDeviceCooperativeMatrixPropertiesNV =
5420         (PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV)vk->vkGetDeviceProcAddr(
5421             device, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV");
5422 #endif
5423 #ifdef VK_NV_coverage_reduction_mode
5424     out->vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV =
5425         (PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV)
5426             vk->vkGetDeviceProcAddr(
5427                 device, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV");
5428 #endif
5429 #ifdef VK_EXT_full_screen_exclusive
5430     out->vkGetPhysicalDeviceSurfacePresentModes2EXT =
5431         (PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT)vk->vkGetDeviceProcAddr(
5432             device, "vkGetPhysicalDeviceSurfacePresentModes2EXT");
5433     out->vkAcquireFullScreenExclusiveModeEXT =
5434         (PFN_vkAcquireFullScreenExclusiveModeEXT)vk->vkGetDeviceProcAddr(
5435             device, "vkAcquireFullScreenExclusiveModeEXT");
5436     out->vkReleaseFullScreenExclusiveModeEXT =
5437         (PFN_vkReleaseFullScreenExclusiveModeEXT)vk->vkGetDeviceProcAddr(
5438             device, "vkReleaseFullScreenExclusiveModeEXT");
5439     out->vkGetDeviceGroupSurfacePresentModes2EXT =
5440         (PFN_vkGetDeviceGroupSurfacePresentModes2EXT)vk->vkGetDeviceProcAddr(
5441             device, "vkGetDeviceGroupSurfacePresentModes2EXT");
5442 #endif
5443 #ifdef VK_EXT_line_rasterization
5444     out->vkCmdSetLineStippleEXT =
5445         (PFN_vkCmdSetLineStippleEXT)vk->vkGetDeviceProcAddr(device, "vkCmdSetLineStippleEXT");
5446 #endif
5447 #ifdef VK_EXT_host_query_reset
5448     out->vkResetQueryPoolEXT =
5449         (PFN_vkResetQueryPoolEXT)vk->vkGetDeviceProcAddr(device, "vkResetQueryPoolEXT");
5450 #endif
5451 #ifdef VK_EXT_extended_dynamic_state
5452     out->vkCmdSetCullModeEXT =
5453         (PFN_vkCmdSetCullModeEXT)vk->vkGetDeviceProcAddr(device, "vkCmdSetCullModeEXT");
5454     out->vkCmdSetFrontFaceEXT =
5455         (PFN_vkCmdSetFrontFaceEXT)vk->vkGetDeviceProcAddr(device, "vkCmdSetFrontFaceEXT");
5456     out->vkCmdSetPrimitiveTopologyEXT = (PFN_vkCmdSetPrimitiveTopologyEXT)vk->vkGetDeviceProcAddr(
5457         device, "vkCmdSetPrimitiveTopologyEXT");
5458     out->vkCmdSetViewportWithCountEXT = (PFN_vkCmdSetViewportWithCountEXT)vk->vkGetDeviceProcAddr(
5459         device, "vkCmdSetViewportWithCountEXT");
5460     out->vkCmdSetScissorWithCountEXT = (PFN_vkCmdSetScissorWithCountEXT)vk->vkGetDeviceProcAddr(
5461         device, "vkCmdSetScissorWithCountEXT");
5462     out->vkCmdBindVertexBuffers2EXT = (PFN_vkCmdBindVertexBuffers2EXT)vk->vkGetDeviceProcAddr(
5463         device, "vkCmdBindVertexBuffers2EXT");
5464     out->vkCmdSetDepthTestEnableEXT = (PFN_vkCmdSetDepthTestEnableEXT)vk->vkGetDeviceProcAddr(
5465         device, "vkCmdSetDepthTestEnableEXT");
5466     out->vkCmdSetDepthWriteEnableEXT = (PFN_vkCmdSetDepthWriteEnableEXT)vk->vkGetDeviceProcAddr(
5467         device, "vkCmdSetDepthWriteEnableEXT");
5468     out->vkCmdSetDepthCompareOpEXT =
5469         (PFN_vkCmdSetDepthCompareOpEXT)vk->vkGetDeviceProcAddr(device, "vkCmdSetDepthCompareOpEXT");
5470     out->vkCmdSetDepthBoundsTestEnableEXT =
5471         (PFN_vkCmdSetDepthBoundsTestEnableEXT)vk->vkGetDeviceProcAddr(
5472             device, "vkCmdSetDepthBoundsTestEnableEXT");
5473     out->vkCmdSetStencilTestEnableEXT = (PFN_vkCmdSetStencilTestEnableEXT)vk->vkGetDeviceProcAddr(
5474         device, "vkCmdSetStencilTestEnableEXT");
5475     out->vkCmdSetStencilOpEXT =
5476         (PFN_vkCmdSetStencilOpEXT)vk->vkGetDeviceProcAddr(device, "vkCmdSetStencilOpEXT");
5477 #endif
5478 #ifdef VK_EXT_swapchain_maintenance1
5479     out->vkReleaseSwapchainImagesEXT = (PFN_vkReleaseSwapchainImagesEXT)vk->vkGetDeviceProcAddr(
5480         device, "vkReleaseSwapchainImagesEXT");
5481 #endif
5482 #ifdef VK_NV_device_generated_commands
5483     out->vkGetGeneratedCommandsMemoryRequirementsNV =
5484         (PFN_vkGetGeneratedCommandsMemoryRequirementsNV)vk->vkGetDeviceProcAddr(
5485             device, "vkGetGeneratedCommandsMemoryRequirementsNV");
5486     out->vkCmdPreprocessGeneratedCommandsNV =
5487         (PFN_vkCmdPreprocessGeneratedCommandsNV)vk->vkGetDeviceProcAddr(
5488             device, "vkCmdPreprocessGeneratedCommandsNV");
5489     out->vkCmdExecuteGeneratedCommandsNV =
5490         (PFN_vkCmdExecuteGeneratedCommandsNV)vk->vkGetDeviceProcAddr(
5491             device, "vkCmdExecuteGeneratedCommandsNV");
5492     out->vkCmdBindPipelineShaderGroupNV =
5493         (PFN_vkCmdBindPipelineShaderGroupNV)vk->vkGetDeviceProcAddr(
5494             device, "vkCmdBindPipelineShaderGroupNV");
5495     out->vkCreateIndirectCommandsLayoutNV =
5496         (PFN_vkCreateIndirectCommandsLayoutNV)vk->vkGetDeviceProcAddr(
5497             device, "vkCreateIndirectCommandsLayoutNV");
5498     out->vkDestroyIndirectCommandsLayoutNV =
5499         (PFN_vkDestroyIndirectCommandsLayoutNV)vk->vkGetDeviceProcAddr(
5500             device, "vkDestroyIndirectCommandsLayoutNV");
5501 #endif
5502 #ifdef VK_EXT_acquire_drm_display
5503     out->vkAcquireDrmDisplayEXT =
5504         (PFN_vkAcquireDrmDisplayEXT)vk->vkGetDeviceProcAddr(device, "vkAcquireDrmDisplayEXT");
5505     out->vkGetDrmDisplayEXT =
5506         (PFN_vkGetDrmDisplayEXT)vk->vkGetDeviceProcAddr(device, "vkGetDrmDisplayEXT");
5507 #endif
5508 #ifdef VK_EXT_private_data
5509     out->vkCreatePrivateDataSlotEXT = (PFN_vkCreatePrivateDataSlotEXT)vk->vkGetDeviceProcAddr(
5510         device, "vkCreatePrivateDataSlotEXT");
5511     out->vkDestroyPrivateDataSlotEXT = (PFN_vkDestroyPrivateDataSlotEXT)vk->vkGetDeviceProcAddr(
5512         device, "vkDestroyPrivateDataSlotEXT");
5513     out->vkSetPrivateDataEXT =
5514         (PFN_vkSetPrivateDataEXT)vk->vkGetDeviceProcAddr(device, "vkSetPrivateDataEXT");
5515     out->vkGetPrivateDataEXT =
5516         (PFN_vkGetPrivateDataEXT)vk->vkGetDeviceProcAddr(device, "vkGetPrivateDataEXT");
5517 #endif
5518 #ifdef VK_EXT_metal_objects
5519     out->vkExportMetalObjectsEXT =
5520         (PFN_vkExportMetalObjectsEXT)vk->vkGetDeviceProcAddr(device, "vkExportMetalObjectsEXT");
5521 #endif
5522 #ifdef VK_EXT_descriptor_buffer
5523     out->vkGetDescriptorSetLayoutSizeEXT =
5524         (PFN_vkGetDescriptorSetLayoutSizeEXT)vk->vkGetDeviceProcAddr(
5525             device, "vkGetDescriptorSetLayoutSizeEXT");
5526     out->vkGetDescriptorSetLayoutBindingOffsetEXT =
5527         (PFN_vkGetDescriptorSetLayoutBindingOffsetEXT)vk->vkGetDeviceProcAddr(
5528             device, "vkGetDescriptorSetLayoutBindingOffsetEXT");
5529     out->vkGetDescriptorEXT =
5530         (PFN_vkGetDescriptorEXT)vk->vkGetDeviceProcAddr(device, "vkGetDescriptorEXT");
5531     out->vkCmdBindDescriptorBuffersEXT = (PFN_vkCmdBindDescriptorBuffersEXT)vk->vkGetDeviceProcAddr(
5532         device, "vkCmdBindDescriptorBuffersEXT");
5533     out->vkCmdSetDescriptorBufferOffsetsEXT =
5534         (PFN_vkCmdSetDescriptorBufferOffsetsEXT)vk->vkGetDeviceProcAddr(
5535             device, "vkCmdSetDescriptorBufferOffsetsEXT");
5536     out->vkCmdBindDescriptorBufferEmbeddedSamplersEXT =
5537         (PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT)vk->vkGetDeviceProcAddr(
5538             device, "vkCmdBindDescriptorBufferEmbeddedSamplersEXT");
5539     out->vkGetBufferOpaqueCaptureDescriptorDataEXT =
5540         (PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT)vk->vkGetDeviceProcAddr(
5541             device, "vkGetBufferOpaqueCaptureDescriptorDataEXT");
5542     out->vkGetImageOpaqueCaptureDescriptorDataEXT =
5543         (PFN_vkGetImageOpaqueCaptureDescriptorDataEXT)vk->vkGetDeviceProcAddr(
5544             device, "vkGetImageOpaqueCaptureDescriptorDataEXT");
5545     out->vkGetImageViewOpaqueCaptureDescriptorDataEXT =
5546         (PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT)vk->vkGetDeviceProcAddr(
5547             device, "vkGetImageViewOpaqueCaptureDescriptorDataEXT");
5548     out->vkGetSamplerOpaqueCaptureDescriptorDataEXT =
5549         (PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT)vk->vkGetDeviceProcAddr(
5550             device, "vkGetSamplerOpaqueCaptureDescriptorDataEXT");
5551     out->vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT =
5552         (PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT)vk->vkGetDeviceProcAddr(
5553             device, "vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT");
5554 #endif
5555 #ifdef VK_NV_fragment_shading_rate_enums
5556     out->vkCmdSetFragmentShadingRateEnumNV =
5557         (PFN_vkCmdSetFragmentShadingRateEnumNV)vk->vkGetDeviceProcAddr(
5558             device, "vkCmdSetFragmentShadingRateEnumNV");
5559 #endif
5560 #ifdef VK_EXT_image_compression_control
5561     out->vkGetImageSubresourceLayout2EXT =
5562         (PFN_vkGetImageSubresourceLayout2EXT)vk->vkGetDeviceProcAddr(
5563             device, "vkGetImageSubresourceLayout2EXT");
5564 #endif
5565 #ifdef VK_EXT_device_fault
5566     out->vkGetDeviceFaultInfoEXT =
5567         (PFN_vkGetDeviceFaultInfoEXT)vk->vkGetDeviceProcAddr(device, "vkGetDeviceFaultInfoEXT");
5568 #endif
5569 #ifdef VK_NV_acquire_winrt_display
5570     out->vkAcquireWinrtDisplayNV =
5571         (PFN_vkAcquireWinrtDisplayNV)vk->vkGetDeviceProcAddr(device, "vkAcquireWinrtDisplayNV");
5572     out->vkGetWinrtDisplayNV =
5573         (PFN_vkGetWinrtDisplayNV)vk->vkGetDeviceProcAddr(device, "vkGetWinrtDisplayNV");
5574 #endif
5575 #ifdef VK_EXT_directfb_surface
5576     out->vkGetPhysicalDeviceDirectFBPresentationSupportEXT =
5577         (PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT)vk->vkGetDeviceProcAddr(
5578             device, "vkGetPhysicalDeviceDirectFBPresentationSupportEXT");
5579 #endif
5580 #ifdef VK_EXT_vertex_input_dynamic_state
5581     out->vkCmdSetVertexInputEXT =
5582         (PFN_vkCmdSetVertexInputEXT)vk->vkGetDeviceProcAddr(device, "vkCmdSetVertexInputEXT");
5583 #endif
5584 #ifdef VK_FUCHSIA_external_memory
5585     out->vkGetMemoryZirconHandleFUCHSIA =
5586         (PFN_vkGetMemoryZirconHandleFUCHSIA)vk->vkGetDeviceProcAddr(
5587             device, "vkGetMemoryZirconHandleFUCHSIA");
5588     out->vkGetMemoryZirconHandlePropertiesFUCHSIA =
5589         (PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA)vk->vkGetDeviceProcAddr(
5590             device, "vkGetMemoryZirconHandlePropertiesFUCHSIA");
5591 #endif
5592 #ifdef VK_FUCHSIA_external_semaphore
5593     out->vkImportSemaphoreZirconHandleFUCHSIA =
5594         (PFN_vkImportSemaphoreZirconHandleFUCHSIA)vk->vkGetDeviceProcAddr(
5595             device, "vkImportSemaphoreZirconHandleFUCHSIA");
5596     out->vkGetSemaphoreZirconHandleFUCHSIA =
5597         (PFN_vkGetSemaphoreZirconHandleFUCHSIA)vk->vkGetDeviceProcAddr(
5598             device, "vkGetSemaphoreZirconHandleFUCHSIA");
5599 #endif
5600 #ifdef VK_FUCHSIA_buffer_collection
5601     out->vkCreateBufferCollectionFUCHSIA =
5602         (PFN_vkCreateBufferCollectionFUCHSIA)vk->vkGetDeviceProcAddr(
5603             device, "vkCreateBufferCollectionFUCHSIA");
5604     out->vkSetBufferCollectionImageConstraintsFUCHSIA =
5605         (PFN_vkSetBufferCollectionImageConstraintsFUCHSIA)vk->vkGetDeviceProcAddr(
5606             device, "vkSetBufferCollectionImageConstraintsFUCHSIA");
5607     out->vkSetBufferCollectionBufferConstraintsFUCHSIA =
5608         (PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA)vk->vkGetDeviceProcAddr(
5609             device, "vkSetBufferCollectionBufferConstraintsFUCHSIA");
5610     out->vkDestroyBufferCollectionFUCHSIA =
5611         (PFN_vkDestroyBufferCollectionFUCHSIA)vk->vkGetDeviceProcAddr(
5612             device, "vkDestroyBufferCollectionFUCHSIA");
5613     out->vkGetBufferCollectionPropertiesFUCHSIA =
5614         (PFN_vkGetBufferCollectionPropertiesFUCHSIA)vk->vkGetDeviceProcAddr(
5615             device, "vkGetBufferCollectionPropertiesFUCHSIA");
5616 #endif
5617 #ifdef VK_HUAWEI_subpass_shading
5618     out->vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI =
5619         (PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI)vk->vkGetDeviceProcAddr(
5620             device, "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI");
5621     out->vkCmdSubpassShadingHUAWEI =
5622         (PFN_vkCmdSubpassShadingHUAWEI)vk->vkGetDeviceProcAddr(device, "vkCmdSubpassShadingHUAWEI");
5623 #endif
5624 #ifdef VK_HUAWEI_invocation_mask
5625     out->vkCmdBindInvocationMaskHUAWEI = (PFN_vkCmdBindInvocationMaskHUAWEI)vk->vkGetDeviceProcAddr(
5626         device, "vkCmdBindInvocationMaskHUAWEI");
5627 #endif
5628 #ifdef VK_NV_external_memory_rdma
5629     out->vkGetMemoryRemoteAddressNV = (PFN_vkGetMemoryRemoteAddressNV)vk->vkGetDeviceProcAddr(
5630         device, "vkGetMemoryRemoteAddressNV");
5631 #endif
5632 #ifdef VK_EXT_pipeline_properties
5633     out->vkGetPipelinePropertiesEXT = (PFN_vkGetPipelinePropertiesEXT)vk->vkGetDeviceProcAddr(
5634         device, "vkGetPipelinePropertiesEXT");
5635 #endif
5636 #ifdef VK_EXT_extended_dynamic_state2
5637     out->vkCmdSetPatchControlPointsEXT = (PFN_vkCmdSetPatchControlPointsEXT)vk->vkGetDeviceProcAddr(
5638         device, "vkCmdSetPatchControlPointsEXT");
5639     out->vkCmdSetRasterizerDiscardEnableEXT =
5640         (PFN_vkCmdSetRasterizerDiscardEnableEXT)vk->vkGetDeviceProcAddr(
5641             device, "vkCmdSetRasterizerDiscardEnableEXT");
5642     out->vkCmdSetDepthBiasEnableEXT = (PFN_vkCmdSetDepthBiasEnableEXT)vk->vkGetDeviceProcAddr(
5643         device, "vkCmdSetDepthBiasEnableEXT");
5644     out->vkCmdSetLogicOpEXT =
5645         (PFN_vkCmdSetLogicOpEXT)vk->vkGetDeviceProcAddr(device, "vkCmdSetLogicOpEXT");
5646     out->vkCmdSetPrimitiveRestartEnableEXT =
5647         (PFN_vkCmdSetPrimitiveRestartEnableEXT)vk->vkGetDeviceProcAddr(
5648             device, "vkCmdSetPrimitiveRestartEnableEXT");
5649 #endif
5650 #ifdef VK_QNX_screen_surface
5651     out->vkGetPhysicalDeviceScreenPresentationSupportQNX =
5652         (PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX)vk->vkGetDeviceProcAddr(
5653             device, "vkGetPhysicalDeviceScreenPresentationSupportQNX");
5654 #endif
5655 #ifdef VK_EXT_color_write_enable
5656     out->vkCmdSetColorWriteEnableEXT = (PFN_vkCmdSetColorWriteEnableEXT)vk->vkGetDeviceProcAddr(
5657         device, "vkCmdSetColorWriteEnableEXT");
5658 #endif
5659 #ifdef VK_GOOGLE_gfxstream
5660     out->vkMapMemoryIntoAddressSpaceGOOGLE =
5661         (PFN_vkMapMemoryIntoAddressSpaceGOOGLE)vk->vkGetDeviceProcAddr(
5662             device, "vkMapMemoryIntoAddressSpaceGOOGLE");
5663     out->vkUpdateDescriptorSetWithTemplateSizedGOOGLE =
5664         (PFN_vkUpdateDescriptorSetWithTemplateSizedGOOGLE)vk->vkGetDeviceProcAddr(
5665             device, "vkUpdateDescriptorSetWithTemplateSizedGOOGLE");
5666     out->vkBeginCommandBufferAsyncGOOGLE =
5667         (PFN_vkBeginCommandBufferAsyncGOOGLE)vk->vkGetDeviceProcAddr(
5668             device, "vkBeginCommandBufferAsyncGOOGLE");
5669     out->vkEndCommandBufferAsyncGOOGLE = (PFN_vkEndCommandBufferAsyncGOOGLE)vk->vkGetDeviceProcAddr(
5670         device, "vkEndCommandBufferAsyncGOOGLE");
5671     out->vkResetCommandBufferAsyncGOOGLE =
5672         (PFN_vkResetCommandBufferAsyncGOOGLE)vk->vkGetDeviceProcAddr(
5673             device, "vkResetCommandBufferAsyncGOOGLE");
5674     out->vkCommandBufferHostSyncGOOGLE = (PFN_vkCommandBufferHostSyncGOOGLE)vk->vkGetDeviceProcAddr(
5675         device, "vkCommandBufferHostSyncGOOGLE");
5676     out->vkCreateImageWithRequirementsGOOGLE =
5677         (PFN_vkCreateImageWithRequirementsGOOGLE)vk->vkGetDeviceProcAddr(
5678             device, "vkCreateImageWithRequirementsGOOGLE");
5679     out->vkCreateBufferWithRequirementsGOOGLE =
5680         (PFN_vkCreateBufferWithRequirementsGOOGLE)vk->vkGetDeviceProcAddr(
5681             device, "vkCreateBufferWithRequirementsGOOGLE");
5682     out->vkGetMemoryHostAddressInfoGOOGLE =
5683         (PFN_vkGetMemoryHostAddressInfoGOOGLE)vk->vkGetDeviceProcAddr(
5684             device, "vkGetMemoryHostAddressInfoGOOGLE");
5685     out->vkFreeMemorySyncGOOGLE =
5686         (PFN_vkFreeMemorySyncGOOGLE)vk->vkGetDeviceProcAddr(device, "vkFreeMemorySyncGOOGLE");
5687     out->vkQueueHostSyncGOOGLE =
5688         (PFN_vkQueueHostSyncGOOGLE)vk->vkGetDeviceProcAddr(device, "vkQueueHostSyncGOOGLE");
5689     out->vkQueueSubmitAsyncGOOGLE =
5690         (PFN_vkQueueSubmitAsyncGOOGLE)vk->vkGetDeviceProcAddr(device, "vkQueueSubmitAsyncGOOGLE");
5691     out->vkQueueWaitIdleAsyncGOOGLE = (PFN_vkQueueWaitIdleAsyncGOOGLE)vk->vkGetDeviceProcAddr(
5692         device, "vkQueueWaitIdleAsyncGOOGLE");
5693     out->vkQueueBindSparseAsyncGOOGLE = (PFN_vkQueueBindSparseAsyncGOOGLE)vk->vkGetDeviceProcAddr(
5694         device, "vkQueueBindSparseAsyncGOOGLE");
5695     out->vkGetLinearImageLayoutGOOGLE = (PFN_vkGetLinearImageLayoutGOOGLE)vk->vkGetDeviceProcAddr(
5696         device, "vkGetLinearImageLayoutGOOGLE");
5697     out->vkGetLinearImageLayout2GOOGLE = (PFN_vkGetLinearImageLayout2GOOGLE)vk->vkGetDeviceProcAddr(
5698         device, "vkGetLinearImageLayout2GOOGLE");
5699     out->vkQueueFlushCommandsGOOGLE = (PFN_vkQueueFlushCommandsGOOGLE)vk->vkGetDeviceProcAddr(
5700         device, "vkQueueFlushCommandsGOOGLE");
5701     out->vkQueueCommitDescriptorSetUpdatesGOOGLE =
5702         (PFN_vkQueueCommitDescriptorSetUpdatesGOOGLE)vk->vkGetDeviceProcAddr(
5703             device, "vkQueueCommitDescriptorSetUpdatesGOOGLE");
5704     out->vkCollectDescriptorPoolIdsGOOGLE =
5705         (PFN_vkCollectDescriptorPoolIdsGOOGLE)vk->vkGetDeviceProcAddr(
5706             device, "vkCollectDescriptorPoolIdsGOOGLE");
5707     out->vkQueueSignalReleaseImageANDROIDAsyncGOOGLE =
5708         (PFN_vkQueueSignalReleaseImageANDROIDAsyncGOOGLE)vk->vkGetDeviceProcAddr(
5709             device, "vkQueueSignalReleaseImageANDROIDAsyncGOOGLE");
5710     out->vkQueueFlushCommandsFromAuxMemoryGOOGLE =
5711         (PFN_vkQueueFlushCommandsFromAuxMemoryGOOGLE)vk->vkGetDeviceProcAddr(
5712             device, "vkQueueFlushCommandsFromAuxMemoryGOOGLE");
5713     out->vkGetBlobGOOGLE = (PFN_vkGetBlobGOOGLE)vk->vkGetDeviceProcAddr(device, "vkGetBlobGOOGLE");
5714     out->vkUpdateDescriptorSetWithTemplateSized2GOOGLE =
5715         (PFN_vkUpdateDescriptorSetWithTemplateSized2GOOGLE)vk->vkGetDeviceProcAddr(
5716             device, "vkUpdateDescriptorSetWithTemplateSized2GOOGLE");
5717 #endif
5718 #ifdef VK_EXT_multi_draw
5719     out->vkCmdDrawMultiEXT =
5720         (PFN_vkCmdDrawMultiEXT)vk->vkGetDeviceProcAddr(device, "vkCmdDrawMultiEXT");
5721     out->vkCmdDrawMultiIndexedEXT =
5722         (PFN_vkCmdDrawMultiIndexedEXT)vk->vkGetDeviceProcAddr(device, "vkCmdDrawMultiIndexedEXT");
5723 #endif
5724 #ifdef VK_EXT_opacity_micromap
5725     out->vkCreateMicromapEXT =
5726         (PFN_vkCreateMicromapEXT)vk->vkGetDeviceProcAddr(device, "vkCreateMicromapEXT");
5727     out->vkDestroyMicromapEXT =
5728         (PFN_vkDestroyMicromapEXT)vk->vkGetDeviceProcAddr(device, "vkDestroyMicromapEXT");
5729     out->vkCmdBuildMicromapsEXT =
5730         (PFN_vkCmdBuildMicromapsEXT)vk->vkGetDeviceProcAddr(device, "vkCmdBuildMicromapsEXT");
5731     out->vkBuildMicromapsEXT =
5732         (PFN_vkBuildMicromapsEXT)vk->vkGetDeviceProcAddr(device, "vkBuildMicromapsEXT");
5733     out->vkCopyMicromapEXT =
5734         (PFN_vkCopyMicromapEXT)vk->vkGetDeviceProcAddr(device, "vkCopyMicromapEXT");
5735     out->vkCopyMicromapToMemoryEXT =
5736         (PFN_vkCopyMicromapToMemoryEXT)vk->vkGetDeviceProcAddr(device, "vkCopyMicromapToMemoryEXT");
5737     out->vkCopyMemoryToMicromapEXT =
5738         (PFN_vkCopyMemoryToMicromapEXT)vk->vkGetDeviceProcAddr(device, "vkCopyMemoryToMicromapEXT");
5739     out->vkWriteMicromapsPropertiesEXT = (PFN_vkWriteMicromapsPropertiesEXT)vk->vkGetDeviceProcAddr(
5740         device, "vkWriteMicromapsPropertiesEXT");
5741     out->vkCmdCopyMicromapEXT =
5742         (PFN_vkCmdCopyMicromapEXT)vk->vkGetDeviceProcAddr(device, "vkCmdCopyMicromapEXT");
5743     out->vkCmdCopyMicromapToMemoryEXT = (PFN_vkCmdCopyMicromapToMemoryEXT)vk->vkGetDeviceProcAddr(
5744         device, "vkCmdCopyMicromapToMemoryEXT");
5745     out->vkCmdCopyMemoryToMicromapEXT = (PFN_vkCmdCopyMemoryToMicromapEXT)vk->vkGetDeviceProcAddr(
5746         device, "vkCmdCopyMemoryToMicromapEXT");
5747     out->vkCmdWriteMicromapsPropertiesEXT =
5748         (PFN_vkCmdWriteMicromapsPropertiesEXT)vk->vkGetDeviceProcAddr(
5749             device, "vkCmdWriteMicromapsPropertiesEXT");
5750     out->vkGetDeviceMicromapCompatibilityEXT =
5751         (PFN_vkGetDeviceMicromapCompatibilityEXT)vk->vkGetDeviceProcAddr(
5752             device, "vkGetDeviceMicromapCompatibilityEXT");
5753     out->vkGetMicromapBuildSizesEXT = (PFN_vkGetMicromapBuildSizesEXT)vk->vkGetDeviceProcAddr(
5754         device, "vkGetMicromapBuildSizesEXT");
5755 #endif
5756 #ifdef VK_HUAWEI_cluster_culling_shader
5757     out->vkCmdDrawClusterHUAWEI =
5758         (PFN_vkCmdDrawClusterHUAWEI)vk->vkGetDeviceProcAddr(device, "vkCmdDrawClusterHUAWEI");
5759     out->vkCmdDrawClusterIndirectHUAWEI =
5760         (PFN_vkCmdDrawClusterIndirectHUAWEI)vk->vkGetDeviceProcAddr(
5761             device, "vkCmdDrawClusterIndirectHUAWEI");
5762 #endif
5763 #ifdef VK_EXT_pageable_device_local_memory
5764     out->vkSetDeviceMemoryPriorityEXT = (PFN_vkSetDeviceMemoryPriorityEXT)vk->vkGetDeviceProcAddr(
5765         device, "vkSetDeviceMemoryPriorityEXT");
5766 #endif
5767 #ifdef VK_VALVE_descriptor_set_host_mapping
5768     out->vkGetDescriptorSetLayoutHostMappingInfoVALVE =
5769         (PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE)vk->vkGetDeviceProcAddr(
5770             device, "vkGetDescriptorSetLayoutHostMappingInfoVALVE");
5771     out->vkGetDescriptorSetHostMappingVALVE =
5772         (PFN_vkGetDescriptorSetHostMappingVALVE)vk->vkGetDeviceProcAddr(
5773             device, "vkGetDescriptorSetHostMappingVALVE");
5774 #endif
5775 #ifdef VK_NV_copy_memory_indirect
5776     out->vkCmdCopyMemoryIndirectNV =
5777         (PFN_vkCmdCopyMemoryIndirectNV)vk->vkGetDeviceProcAddr(device, "vkCmdCopyMemoryIndirectNV");
5778     out->vkCmdCopyMemoryToImageIndirectNV =
5779         (PFN_vkCmdCopyMemoryToImageIndirectNV)vk->vkGetDeviceProcAddr(
5780             device, "vkCmdCopyMemoryToImageIndirectNV");
5781 #endif
5782 #ifdef VK_NV_memory_decompression
5783     out->vkCmdDecompressMemoryNV =
5784         (PFN_vkCmdDecompressMemoryNV)vk->vkGetDeviceProcAddr(device, "vkCmdDecompressMemoryNV");
5785     out->vkCmdDecompressMemoryIndirectCountNV =
5786         (PFN_vkCmdDecompressMemoryIndirectCountNV)vk->vkGetDeviceProcAddr(
5787             device, "vkCmdDecompressMemoryIndirectCountNV");
5788 #endif
5789 #ifdef VK_EXT_extended_dynamic_state3
5790     out->vkCmdSetTessellationDomainOriginEXT =
5791         (PFN_vkCmdSetTessellationDomainOriginEXT)vk->vkGetDeviceProcAddr(
5792             device, "vkCmdSetTessellationDomainOriginEXT");
5793     out->vkCmdSetDepthClampEnableEXT = (PFN_vkCmdSetDepthClampEnableEXT)vk->vkGetDeviceProcAddr(
5794         device, "vkCmdSetDepthClampEnableEXT");
5795     out->vkCmdSetPolygonModeEXT =
5796         (PFN_vkCmdSetPolygonModeEXT)vk->vkGetDeviceProcAddr(device, "vkCmdSetPolygonModeEXT");
5797     out->vkCmdSetRasterizationSamplesEXT =
5798         (PFN_vkCmdSetRasterizationSamplesEXT)vk->vkGetDeviceProcAddr(
5799             device, "vkCmdSetRasterizationSamplesEXT");
5800     out->vkCmdSetSampleMaskEXT =
5801         (PFN_vkCmdSetSampleMaskEXT)vk->vkGetDeviceProcAddr(device, "vkCmdSetSampleMaskEXT");
5802     out->vkCmdSetAlphaToCoverageEnableEXT =
5803         (PFN_vkCmdSetAlphaToCoverageEnableEXT)vk->vkGetDeviceProcAddr(
5804             device, "vkCmdSetAlphaToCoverageEnableEXT");
5805     out->vkCmdSetAlphaToOneEnableEXT = (PFN_vkCmdSetAlphaToOneEnableEXT)vk->vkGetDeviceProcAddr(
5806         device, "vkCmdSetAlphaToOneEnableEXT");
5807     out->vkCmdSetLogicOpEnableEXT =
5808         (PFN_vkCmdSetLogicOpEnableEXT)vk->vkGetDeviceProcAddr(device, "vkCmdSetLogicOpEnableEXT");
5809     out->vkCmdSetColorBlendEnableEXT = (PFN_vkCmdSetColorBlendEnableEXT)vk->vkGetDeviceProcAddr(
5810         device, "vkCmdSetColorBlendEnableEXT");
5811     out->vkCmdSetColorBlendEquationEXT = (PFN_vkCmdSetColorBlendEquationEXT)vk->vkGetDeviceProcAddr(
5812         device, "vkCmdSetColorBlendEquationEXT");
5813     out->vkCmdSetColorWriteMaskEXT =
5814         (PFN_vkCmdSetColorWriteMaskEXT)vk->vkGetDeviceProcAddr(device, "vkCmdSetColorWriteMaskEXT");
5815     out->vkCmdSetRasterizationStreamEXT =
5816         (PFN_vkCmdSetRasterizationStreamEXT)vk->vkGetDeviceProcAddr(
5817             device, "vkCmdSetRasterizationStreamEXT");
5818     out->vkCmdSetConservativeRasterizationModeEXT =
5819         (PFN_vkCmdSetConservativeRasterizationModeEXT)vk->vkGetDeviceProcAddr(
5820             device, "vkCmdSetConservativeRasterizationModeEXT");
5821     out->vkCmdSetExtraPrimitiveOverestimationSizeEXT =
5822         (PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT)vk->vkGetDeviceProcAddr(
5823             device, "vkCmdSetExtraPrimitiveOverestimationSizeEXT");
5824     out->vkCmdSetDepthClipEnableEXT = (PFN_vkCmdSetDepthClipEnableEXT)vk->vkGetDeviceProcAddr(
5825         device, "vkCmdSetDepthClipEnableEXT");
5826     out->vkCmdSetSampleLocationsEnableEXT =
5827         (PFN_vkCmdSetSampleLocationsEnableEXT)vk->vkGetDeviceProcAddr(
5828             device, "vkCmdSetSampleLocationsEnableEXT");
5829     out->vkCmdSetColorBlendAdvancedEXT = (PFN_vkCmdSetColorBlendAdvancedEXT)vk->vkGetDeviceProcAddr(
5830         device, "vkCmdSetColorBlendAdvancedEXT");
5831     out->vkCmdSetProvokingVertexModeEXT =
5832         (PFN_vkCmdSetProvokingVertexModeEXT)vk->vkGetDeviceProcAddr(
5833             device, "vkCmdSetProvokingVertexModeEXT");
5834     out->vkCmdSetLineRasterizationModeEXT =
5835         (PFN_vkCmdSetLineRasterizationModeEXT)vk->vkGetDeviceProcAddr(
5836             device, "vkCmdSetLineRasterizationModeEXT");
5837     out->vkCmdSetLineStippleEnableEXT = (PFN_vkCmdSetLineStippleEnableEXT)vk->vkGetDeviceProcAddr(
5838         device, "vkCmdSetLineStippleEnableEXT");
5839     out->vkCmdSetDepthClipNegativeOneToOneEXT =
5840         (PFN_vkCmdSetDepthClipNegativeOneToOneEXT)vk->vkGetDeviceProcAddr(
5841             device, "vkCmdSetDepthClipNegativeOneToOneEXT");
5842     out->vkCmdSetViewportWScalingEnableNV =
5843         (PFN_vkCmdSetViewportWScalingEnableNV)vk->vkGetDeviceProcAddr(
5844             device, "vkCmdSetViewportWScalingEnableNV");
5845     out->vkCmdSetViewportSwizzleNV =
5846         (PFN_vkCmdSetViewportSwizzleNV)vk->vkGetDeviceProcAddr(device, "vkCmdSetViewportSwizzleNV");
5847     out->vkCmdSetCoverageToColorEnableNV =
5848         (PFN_vkCmdSetCoverageToColorEnableNV)vk->vkGetDeviceProcAddr(
5849             device, "vkCmdSetCoverageToColorEnableNV");
5850     out->vkCmdSetCoverageToColorLocationNV =
5851         (PFN_vkCmdSetCoverageToColorLocationNV)vk->vkGetDeviceProcAddr(
5852             device, "vkCmdSetCoverageToColorLocationNV");
5853     out->vkCmdSetCoverageModulationModeNV =
5854         (PFN_vkCmdSetCoverageModulationModeNV)vk->vkGetDeviceProcAddr(
5855             device, "vkCmdSetCoverageModulationModeNV");
5856     out->vkCmdSetCoverageModulationTableEnableNV =
5857         (PFN_vkCmdSetCoverageModulationTableEnableNV)vk->vkGetDeviceProcAddr(
5858             device, "vkCmdSetCoverageModulationTableEnableNV");
5859     out->vkCmdSetCoverageModulationTableNV =
5860         (PFN_vkCmdSetCoverageModulationTableNV)vk->vkGetDeviceProcAddr(
5861             device, "vkCmdSetCoverageModulationTableNV");
5862     out->vkCmdSetShadingRateImageEnableNV =
5863         (PFN_vkCmdSetShadingRateImageEnableNV)vk->vkGetDeviceProcAddr(
5864             device, "vkCmdSetShadingRateImageEnableNV");
5865     out->vkCmdSetRepresentativeFragmentTestEnableNV =
5866         (PFN_vkCmdSetRepresentativeFragmentTestEnableNV)vk->vkGetDeviceProcAddr(
5867             device, "vkCmdSetRepresentativeFragmentTestEnableNV");
5868     out->vkCmdSetCoverageReductionModeNV =
5869         (PFN_vkCmdSetCoverageReductionModeNV)vk->vkGetDeviceProcAddr(
5870             device, "vkCmdSetCoverageReductionModeNV");
5871 #endif
5872 #ifdef VK_EXT_shader_module_identifier
5873     out->vkGetShaderModuleIdentifierEXT =
5874         (PFN_vkGetShaderModuleIdentifierEXT)vk->vkGetDeviceProcAddr(
5875             device, "vkGetShaderModuleIdentifierEXT");
5876     out->vkGetShaderModuleCreateInfoIdentifierEXT =
5877         (PFN_vkGetShaderModuleCreateInfoIdentifierEXT)vk->vkGetDeviceProcAddr(
5878             device, "vkGetShaderModuleCreateInfoIdentifierEXT");
5879 #endif
5880 #ifdef VK_NV_optical_flow
5881     out->vkGetPhysicalDeviceOpticalFlowImageFormatsNV =
5882         (PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV)vk->vkGetDeviceProcAddr(
5883             device, "vkGetPhysicalDeviceOpticalFlowImageFormatsNV");
5884     out->vkCreateOpticalFlowSessionNV = (PFN_vkCreateOpticalFlowSessionNV)vk->vkGetDeviceProcAddr(
5885         device, "vkCreateOpticalFlowSessionNV");
5886     out->vkDestroyOpticalFlowSessionNV = (PFN_vkDestroyOpticalFlowSessionNV)vk->vkGetDeviceProcAddr(
5887         device, "vkDestroyOpticalFlowSessionNV");
5888     out->vkBindOpticalFlowSessionImageNV =
5889         (PFN_vkBindOpticalFlowSessionImageNV)vk->vkGetDeviceProcAddr(
5890             device, "vkBindOpticalFlowSessionImageNV");
5891     out->vkCmdOpticalFlowExecuteNV =
5892         (PFN_vkCmdOpticalFlowExecuteNV)vk->vkGetDeviceProcAddr(device, "vkCmdOpticalFlowExecuteNV");
5893 #endif
5894 #ifdef VK_EXT_shader_object
5895     out->vkCreateShadersEXT =
5896         (PFN_vkCreateShadersEXT)vk->vkGetDeviceProcAddr(device, "vkCreateShadersEXT");
5897     out->vkDestroyShaderEXT =
5898         (PFN_vkDestroyShaderEXT)vk->vkGetDeviceProcAddr(device, "vkDestroyShaderEXT");
5899     out->vkGetShaderBinaryDataEXT =
5900         (PFN_vkGetShaderBinaryDataEXT)vk->vkGetDeviceProcAddr(device, "vkGetShaderBinaryDataEXT");
5901     out->vkCmdBindShadersEXT =
5902         (PFN_vkCmdBindShadersEXT)vk->vkGetDeviceProcAddr(device, "vkCmdBindShadersEXT");
5903 #endif
5904 #ifdef VK_QCOM_tile_properties
5905     out->vkGetFramebufferTilePropertiesQCOM =
5906         (PFN_vkGetFramebufferTilePropertiesQCOM)vk->vkGetDeviceProcAddr(
5907             device, "vkGetFramebufferTilePropertiesQCOM");
5908     out->vkGetDynamicRenderingTilePropertiesQCOM =
5909         (PFN_vkGetDynamicRenderingTilePropertiesQCOM)vk->vkGetDeviceProcAddr(
5910             device, "vkGetDynamicRenderingTilePropertiesQCOM");
5911 #endif
5912 #ifdef VK_EXT_attachment_feedback_loop_dynamic_state
5913     out->vkCmdSetAttachmentFeedbackLoopEnableEXT =
5914         (PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT)vk->vkGetDeviceProcAddr(
5915             device, "vkCmdSetAttachmentFeedbackLoopEnableEXT");
5916 #endif
5917 #ifdef VK_KHR_acceleration_structure
5918     out->vkCreateAccelerationStructureKHR =
5919         (PFN_vkCreateAccelerationStructureKHR)vk->vkGetDeviceProcAddr(
5920             device, "vkCreateAccelerationStructureKHR");
5921     out->vkDestroyAccelerationStructureKHR =
5922         (PFN_vkDestroyAccelerationStructureKHR)vk->vkGetDeviceProcAddr(
5923             device, "vkDestroyAccelerationStructureKHR");
5924     out->vkCmdBuildAccelerationStructuresKHR =
5925         (PFN_vkCmdBuildAccelerationStructuresKHR)vk->vkGetDeviceProcAddr(
5926             device, "vkCmdBuildAccelerationStructuresKHR");
5927     out->vkCmdBuildAccelerationStructuresIndirectKHR =
5928         (PFN_vkCmdBuildAccelerationStructuresIndirectKHR)vk->vkGetDeviceProcAddr(
5929             device, "vkCmdBuildAccelerationStructuresIndirectKHR");
5930     out->vkBuildAccelerationStructuresKHR =
5931         (PFN_vkBuildAccelerationStructuresKHR)vk->vkGetDeviceProcAddr(
5932             device, "vkBuildAccelerationStructuresKHR");
5933     out->vkCopyAccelerationStructureKHR =
5934         (PFN_vkCopyAccelerationStructureKHR)vk->vkGetDeviceProcAddr(
5935             device, "vkCopyAccelerationStructureKHR");
5936     out->vkCopyAccelerationStructureToMemoryKHR =
5937         (PFN_vkCopyAccelerationStructureToMemoryKHR)vk->vkGetDeviceProcAddr(
5938             device, "vkCopyAccelerationStructureToMemoryKHR");
5939     out->vkCopyMemoryToAccelerationStructureKHR =
5940         (PFN_vkCopyMemoryToAccelerationStructureKHR)vk->vkGetDeviceProcAddr(
5941             device, "vkCopyMemoryToAccelerationStructureKHR");
5942     out->vkWriteAccelerationStructuresPropertiesKHR =
5943         (PFN_vkWriteAccelerationStructuresPropertiesKHR)vk->vkGetDeviceProcAddr(
5944             device, "vkWriteAccelerationStructuresPropertiesKHR");
5945     out->vkCmdCopyAccelerationStructureKHR =
5946         (PFN_vkCmdCopyAccelerationStructureKHR)vk->vkGetDeviceProcAddr(
5947             device, "vkCmdCopyAccelerationStructureKHR");
5948     out->vkCmdCopyAccelerationStructureToMemoryKHR =
5949         (PFN_vkCmdCopyAccelerationStructureToMemoryKHR)vk->vkGetDeviceProcAddr(
5950             device, "vkCmdCopyAccelerationStructureToMemoryKHR");
5951     out->vkCmdCopyMemoryToAccelerationStructureKHR =
5952         (PFN_vkCmdCopyMemoryToAccelerationStructureKHR)vk->vkGetDeviceProcAddr(
5953             device, "vkCmdCopyMemoryToAccelerationStructureKHR");
5954     out->vkGetAccelerationStructureDeviceAddressKHR =
5955         (PFN_vkGetAccelerationStructureDeviceAddressKHR)vk->vkGetDeviceProcAddr(
5956             device, "vkGetAccelerationStructureDeviceAddressKHR");
5957     out->vkCmdWriteAccelerationStructuresPropertiesKHR =
5958         (PFN_vkCmdWriteAccelerationStructuresPropertiesKHR)vk->vkGetDeviceProcAddr(
5959             device, "vkCmdWriteAccelerationStructuresPropertiesKHR");
5960     out->vkGetDeviceAccelerationStructureCompatibilityKHR =
5961         (PFN_vkGetDeviceAccelerationStructureCompatibilityKHR)vk->vkGetDeviceProcAddr(
5962             device, "vkGetDeviceAccelerationStructureCompatibilityKHR");
5963     out->vkGetAccelerationStructureBuildSizesKHR =
5964         (PFN_vkGetAccelerationStructureBuildSizesKHR)vk->vkGetDeviceProcAddr(
5965             device, "vkGetAccelerationStructureBuildSizesKHR");
5966 #endif
5967 #ifdef VK_KHR_ray_tracing_pipeline
5968     out->vkCmdTraceRaysKHR =
5969         (PFN_vkCmdTraceRaysKHR)vk->vkGetDeviceProcAddr(device, "vkCmdTraceRaysKHR");
5970     out->vkCreateRayTracingPipelinesKHR =
5971         (PFN_vkCreateRayTracingPipelinesKHR)vk->vkGetDeviceProcAddr(
5972             device, "vkCreateRayTracingPipelinesKHR");
5973     out->vkGetRayTracingCaptureReplayShaderGroupHandlesKHR =
5974         (PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR)vk->vkGetDeviceProcAddr(
5975             device, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR");
5976     out->vkCmdTraceRaysIndirectKHR =
5977         (PFN_vkCmdTraceRaysIndirectKHR)vk->vkGetDeviceProcAddr(device, "vkCmdTraceRaysIndirectKHR");
5978     out->vkGetRayTracingShaderGroupStackSizeKHR =
5979         (PFN_vkGetRayTracingShaderGroupStackSizeKHR)vk->vkGetDeviceProcAddr(
5980             device, "vkGetRayTracingShaderGroupStackSizeKHR");
5981     out->vkCmdSetRayTracingPipelineStackSizeKHR =
5982         (PFN_vkCmdSetRayTracingPipelineStackSizeKHR)vk->vkGetDeviceProcAddr(
5983             device, "vkCmdSetRayTracingPipelineStackSizeKHR");
5984 #endif
5985 #ifdef VK_EXT_mesh_shader
5986     out->vkCmdDrawMeshTasksEXT =
5987         (PFN_vkCmdDrawMeshTasksEXT)vk->vkGetDeviceProcAddr(device, "vkCmdDrawMeshTasksEXT");
5988     out->vkCmdDrawMeshTasksIndirectEXT = (PFN_vkCmdDrawMeshTasksIndirectEXT)vk->vkGetDeviceProcAddr(
5989         device, "vkCmdDrawMeshTasksIndirectEXT");
5990     out->vkCmdDrawMeshTasksIndirectCountEXT =
5991         (PFN_vkCmdDrawMeshTasksIndirectCountEXT)vk->vkGetDeviceProcAddr(
5992             device, "vkCmdDrawMeshTasksIndirectCountEXT");
5993 #endif
5994 }
5995 
vulkan_dispatch_check_instance_VK_VERSION_1_0(const VulkanDispatch * vk)5996 bool vulkan_dispatch_check_instance_VK_VERSION_1_0(const VulkanDispatch* vk)
5997 
5998 {
5999     bool good = true;
6000     if (!vk->vkCreateInstance) {
6001         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCreateInstance not found\n");
6002         good = false;
6003     }
6004     if (!vk->vkEnumerateInstanceExtensionProperties) {
6005         fprintf(stderr,
6006                 "VK_VERSION_1_0 check failed: vkEnumerateInstanceExtensionProperties not found\n");
6007         good = false;
6008     }
6009     if (!vk->vkEnumerateInstanceLayerProperties) {
6010         fprintf(stderr,
6011                 "VK_VERSION_1_0 check failed: vkEnumerateInstanceLayerProperties not found\n");
6012         good = false;
6013     }
6014     if (!vk->vkGetDeviceProcAddr) {
6015         fprintf(stderr, "VK_VERSION_1_0 check failed: vkGetDeviceProcAddr not found\n");
6016         good = false;
6017     }
6018     if (!vk->vkGetPhysicalDeviceSparseImageFormatProperties) {
6019         fprintf(stderr,
6020                 "VK_VERSION_1_0 check failed: vkGetPhysicalDeviceSparseImageFormatProperties not "
6021                 "found\n");
6022         good = false;
6023     }
6024     return good;
6025 }
6026 
vulkan_dispatch_check_instance_VK_VERSION_1_1(const VulkanDispatch * vk)6027 bool vulkan_dispatch_check_instance_VK_VERSION_1_1(const VulkanDispatch* vk)
6028 
6029 {
6030     bool good = true;
6031     if (!vk->vkEnumerateInstanceVersion) {
6032         fprintf(stderr, "VK_VERSION_1_1 check failed: vkEnumerateInstanceVersion not found\n");
6033         good = false;
6034     }
6035     if (!vk->vkEnumeratePhysicalDeviceGroups) {
6036         fprintf(stderr, "VK_VERSION_1_1 check failed: vkEnumeratePhysicalDeviceGroups not found\n");
6037         good = false;
6038     }
6039     if (!vk->vkGetPhysicalDeviceFeatures2) {
6040         fprintf(stderr, "VK_VERSION_1_1 check failed: vkGetPhysicalDeviceFeatures2 not found\n");
6041         good = false;
6042     }
6043     if (!vk->vkGetPhysicalDeviceProperties2) {
6044         fprintf(stderr, "VK_VERSION_1_1 check failed: vkGetPhysicalDeviceProperties2 not found\n");
6045         good = false;
6046     }
6047     if (!vk->vkGetPhysicalDeviceFormatProperties2) {
6048         fprintf(stderr,
6049                 "VK_VERSION_1_1 check failed: vkGetPhysicalDeviceFormatProperties2 not found\n");
6050         good = false;
6051     }
6052     if (!vk->vkGetPhysicalDeviceImageFormatProperties2) {
6053         fprintf(
6054             stderr,
6055             "VK_VERSION_1_1 check failed: vkGetPhysicalDeviceImageFormatProperties2 not found\n");
6056         good = false;
6057     }
6058     if (!vk->vkGetPhysicalDeviceQueueFamilyProperties2) {
6059         fprintf(
6060             stderr,
6061             "VK_VERSION_1_1 check failed: vkGetPhysicalDeviceQueueFamilyProperties2 not found\n");
6062         good = false;
6063     }
6064     if (!vk->vkGetPhysicalDeviceMemoryProperties2) {
6065         fprintf(stderr,
6066                 "VK_VERSION_1_1 check failed: vkGetPhysicalDeviceMemoryProperties2 not found\n");
6067         good = false;
6068     }
6069     if (!vk->vkGetPhysicalDeviceSparseImageFormatProperties2) {
6070         fprintf(stderr,
6071                 "VK_VERSION_1_1 check failed: vkGetPhysicalDeviceSparseImageFormatProperties2 not "
6072                 "found\n");
6073         good = false;
6074     }
6075     if (!vk->vkGetPhysicalDeviceExternalBufferProperties) {
6076         fprintf(
6077             stderr,
6078             "VK_VERSION_1_1 check failed: vkGetPhysicalDeviceExternalBufferProperties not found\n");
6079         good = false;
6080     }
6081     if (!vk->vkGetPhysicalDeviceExternalFenceProperties) {
6082         fprintf(
6083             stderr,
6084             "VK_VERSION_1_1 check failed: vkGetPhysicalDeviceExternalFenceProperties not found\n");
6085         good = false;
6086     }
6087     if (!vk->vkGetPhysicalDeviceExternalSemaphoreProperties) {
6088         fprintf(stderr,
6089                 "VK_VERSION_1_1 check failed: vkGetPhysicalDeviceExternalSemaphoreProperties not "
6090                 "found\n");
6091         good = false;
6092     }
6093     return good;
6094 }
6095 
vulkan_dispatch_check_device_VK_VERSION_1_0(const VulkanDispatch * vk)6096 bool vulkan_dispatch_check_device_VK_VERSION_1_0(const VulkanDispatch* vk)
6097 
6098 {
6099     bool good = true;
6100     if (!vk->vkGetDeviceQueue) {
6101         fprintf(stderr, "VK_VERSION_1_0 check failed: vkGetDeviceQueue not found\n");
6102         good = false;
6103     }
6104     if (!vk->vkQueueSubmit) {
6105         fprintf(stderr, "VK_VERSION_1_0 check failed: vkQueueSubmit not found\n");
6106         good = false;
6107     }
6108     if (!vk->vkQueueWaitIdle) {
6109         fprintf(stderr, "VK_VERSION_1_0 check failed: vkQueueWaitIdle not found\n");
6110         good = false;
6111     }
6112     if (!vk->vkDeviceWaitIdle) {
6113         fprintf(stderr, "VK_VERSION_1_0 check failed: vkDeviceWaitIdle not found\n");
6114         good = false;
6115     }
6116     if (!vk->vkAllocateMemory) {
6117         fprintf(stderr, "VK_VERSION_1_0 check failed: vkAllocateMemory not found\n");
6118         good = false;
6119     }
6120     if (!vk->vkFreeMemory) {
6121         fprintf(stderr, "VK_VERSION_1_0 check failed: vkFreeMemory not found\n");
6122         good = false;
6123     }
6124     if (!vk->vkMapMemory) {
6125         fprintf(stderr, "VK_VERSION_1_0 check failed: vkMapMemory not found\n");
6126         good = false;
6127     }
6128     if (!vk->vkUnmapMemory) {
6129         fprintf(stderr, "VK_VERSION_1_0 check failed: vkUnmapMemory not found\n");
6130         good = false;
6131     }
6132     if (!vk->vkFlushMappedMemoryRanges) {
6133         fprintf(stderr, "VK_VERSION_1_0 check failed: vkFlushMappedMemoryRanges not found\n");
6134         good = false;
6135     }
6136     if (!vk->vkInvalidateMappedMemoryRanges) {
6137         fprintf(stderr, "VK_VERSION_1_0 check failed: vkInvalidateMappedMemoryRanges not found\n");
6138         good = false;
6139     }
6140     if (!vk->vkGetDeviceMemoryCommitment) {
6141         fprintf(stderr, "VK_VERSION_1_0 check failed: vkGetDeviceMemoryCommitment not found\n");
6142         good = false;
6143     }
6144     if (!vk->vkBindBufferMemory) {
6145         fprintf(stderr, "VK_VERSION_1_0 check failed: vkBindBufferMemory not found\n");
6146         good = false;
6147     }
6148     if (!vk->vkBindImageMemory) {
6149         fprintf(stderr, "VK_VERSION_1_0 check failed: vkBindImageMemory not found\n");
6150         good = false;
6151     }
6152     if (!vk->vkGetBufferMemoryRequirements) {
6153         fprintf(stderr, "VK_VERSION_1_0 check failed: vkGetBufferMemoryRequirements not found\n");
6154         good = false;
6155     }
6156     if (!vk->vkGetImageMemoryRequirements) {
6157         fprintf(stderr, "VK_VERSION_1_0 check failed: vkGetImageMemoryRequirements not found\n");
6158         good = false;
6159     }
6160     if (!vk->vkGetImageSparseMemoryRequirements) {
6161         fprintf(stderr,
6162                 "VK_VERSION_1_0 check failed: vkGetImageSparseMemoryRequirements not found\n");
6163         good = false;
6164     }
6165     if (!vk->vkQueueBindSparse) {
6166         fprintf(stderr, "VK_VERSION_1_0 check failed: vkQueueBindSparse not found\n");
6167         good = false;
6168     }
6169     if (!vk->vkCreateFence) {
6170         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCreateFence not found\n");
6171         good = false;
6172     }
6173     if (!vk->vkDestroyFence) {
6174         fprintf(stderr, "VK_VERSION_1_0 check failed: vkDestroyFence not found\n");
6175         good = false;
6176     }
6177     if (!vk->vkResetFences) {
6178         fprintf(stderr, "VK_VERSION_1_0 check failed: vkResetFences not found\n");
6179         good = false;
6180     }
6181     if (!vk->vkGetFenceStatus) {
6182         fprintf(stderr, "VK_VERSION_1_0 check failed: vkGetFenceStatus not found\n");
6183         good = false;
6184     }
6185     if (!vk->vkWaitForFences) {
6186         fprintf(stderr, "VK_VERSION_1_0 check failed: vkWaitForFences not found\n");
6187         good = false;
6188     }
6189     if (!vk->vkCreateSemaphore) {
6190         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCreateSemaphore not found\n");
6191         good = false;
6192     }
6193     if (!vk->vkDestroySemaphore) {
6194         fprintf(stderr, "VK_VERSION_1_0 check failed: vkDestroySemaphore not found\n");
6195         good = false;
6196     }
6197     if (!vk->vkCreateEvent) {
6198         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCreateEvent not found\n");
6199         good = false;
6200     }
6201     if (!vk->vkDestroyEvent) {
6202         fprintf(stderr, "VK_VERSION_1_0 check failed: vkDestroyEvent not found\n");
6203         good = false;
6204     }
6205     if (!vk->vkGetEventStatus) {
6206         fprintf(stderr, "VK_VERSION_1_0 check failed: vkGetEventStatus not found\n");
6207         good = false;
6208     }
6209     if (!vk->vkSetEvent) {
6210         fprintf(stderr, "VK_VERSION_1_0 check failed: vkSetEvent not found\n");
6211         good = false;
6212     }
6213     if (!vk->vkResetEvent) {
6214         fprintf(stderr, "VK_VERSION_1_0 check failed: vkResetEvent not found\n");
6215         good = false;
6216     }
6217     if (!vk->vkCreateQueryPool) {
6218         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCreateQueryPool not found\n");
6219         good = false;
6220     }
6221     if (!vk->vkDestroyQueryPool) {
6222         fprintf(stderr, "VK_VERSION_1_0 check failed: vkDestroyQueryPool not found\n");
6223         good = false;
6224     }
6225     if (!vk->vkGetQueryPoolResults) {
6226         fprintf(stderr, "VK_VERSION_1_0 check failed: vkGetQueryPoolResults not found\n");
6227         good = false;
6228     }
6229     if (!vk->vkCreateBuffer) {
6230         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCreateBuffer not found\n");
6231         good = false;
6232     }
6233     if (!vk->vkDestroyBuffer) {
6234         fprintf(stderr, "VK_VERSION_1_0 check failed: vkDestroyBuffer not found\n");
6235         good = false;
6236     }
6237     if (!vk->vkCreateBufferView) {
6238         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCreateBufferView not found\n");
6239         good = false;
6240     }
6241     if (!vk->vkDestroyBufferView) {
6242         fprintf(stderr, "VK_VERSION_1_0 check failed: vkDestroyBufferView not found\n");
6243         good = false;
6244     }
6245     if (!vk->vkCreateImage) {
6246         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCreateImage not found\n");
6247         good = false;
6248     }
6249     if (!vk->vkDestroyImage) {
6250         fprintf(stderr, "VK_VERSION_1_0 check failed: vkDestroyImage not found\n");
6251         good = false;
6252     }
6253     if (!vk->vkGetImageSubresourceLayout) {
6254         fprintf(stderr, "VK_VERSION_1_0 check failed: vkGetImageSubresourceLayout not found\n");
6255         good = false;
6256     }
6257     if (!vk->vkCreateImageView) {
6258         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCreateImageView not found\n");
6259         good = false;
6260     }
6261     if (!vk->vkDestroyImageView) {
6262         fprintf(stderr, "VK_VERSION_1_0 check failed: vkDestroyImageView not found\n");
6263         good = false;
6264     }
6265     if (!vk->vkCreateShaderModule) {
6266         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCreateShaderModule not found\n");
6267         good = false;
6268     }
6269     if (!vk->vkDestroyShaderModule) {
6270         fprintf(stderr, "VK_VERSION_1_0 check failed: vkDestroyShaderModule not found\n");
6271         good = false;
6272     }
6273     if (!vk->vkCreatePipelineCache) {
6274         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCreatePipelineCache not found\n");
6275         good = false;
6276     }
6277     if (!vk->vkDestroyPipelineCache) {
6278         fprintf(stderr, "VK_VERSION_1_0 check failed: vkDestroyPipelineCache not found\n");
6279         good = false;
6280     }
6281     if (!vk->vkGetPipelineCacheData) {
6282         fprintf(stderr, "VK_VERSION_1_0 check failed: vkGetPipelineCacheData not found\n");
6283         good = false;
6284     }
6285     if (!vk->vkMergePipelineCaches) {
6286         fprintf(stderr, "VK_VERSION_1_0 check failed: vkMergePipelineCaches not found\n");
6287         good = false;
6288     }
6289     if (!vk->vkCreateGraphicsPipelines) {
6290         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCreateGraphicsPipelines not found\n");
6291         good = false;
6292     }
6293     if (!vk->vkCreateComputePipelines) {
6294         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCreateComputePipelines not found\n");
6295         good = false;
6296     }
6297     if (!vk->vkDestroyPipeline) {
6298         fprintf(stderr, "VK_VERSION_1_0 check failed: vkDestroyPipeline not found\n");
6299         good = false;
6300     }
6301     if (!vk->vkCreatePipelineLayout) {
6302         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCreatePipelineLayout not found\n");
6303         good = false;
6304     }
6305     if (!vk->vkDestroyPipelineLayout) {
6306         fprintf(stderr, "VK_VERSION_1_0 check failed: vkDestroyPipelineLayout not found\n");
6307         good = false;
6308     }
6309     if (!vk->vkCreateSampler) {
6310         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCreateSampler not found\n");
6311         good = false;
6312     }
6313     if (!vk->vkDestroySampler) {
6314         fprintf(stderr, "VK_VERSION_1_0 check failed: vkDestroySampler not found\n");
6315         good = false;
6316     }
6317     if (!vk->vkCreateDescriptorSetLayout) {
6318         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCreateDescriptorSetLayout not found\n");
6319         good = false;
6320     }
6321     if (!vk->vkDestroyDescriptorSetLayout) {
6322         fprintf(stderr, "VK_VERSION_1_0 check failed: vkDestroyDescriptorSetLayout not found\n");
6323         good = false;
6324     }
6325     if (!vk->vkCreateDescriptorPool) {
6326         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCreateDescriptorPool not found\n");
6327         good = false;
6328     }
6329     if (!vk->vkDestroyDescriptorPool) {
6330         fprintf(stderr, "VK_VERSION_1_0 check failed: vkDestroyDescriptorPool not found\n");
6331         good = false;
6332     }
6333     if (!vk->vkResetDescriptorPool) {
6334         fprintf(stderr, "VK_VERSION_1_0 check failed: vkResetDescriptorPool not found\n");
6335         good = false;
6336     }
6337     if (!vk->vkAllocateDescriptorSets) {
6338         fprintf(stderr, "VK_VERSION_1_0 check failed: vkAllocateDescriptorSets not found\n");
6339         good = false;
6340     }
6341     if (!vk->vkFreeDescriptorSets) {
6342         fprintf(stderr, "VK_VERSION_1_0 check failed: vkFreeDescriptorSets not found\n");
6343         good = false;
6344     }
6345     if (!vk->vkUpdateDescriptorSets) {
6346         fprintf(stderr, "VK_VERSION_1_0 check failed: vkUpdateDescriptorSets not found\n");
6347         good = false;
6348     }
6349     if (!vk->vkCreateFramebuffer) {
6350         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCreateFramebuffer not found\n");
6351         good = false;
6352     }
6353     if (!vk->vkDestroyFramebuffer) {
6354         fprintf(stderr, "VK_VERSION_1_0 check failed: vkDestroyFramebuffer not found\n");
6355         good = false;
6356     }
6357     if (!vk->vkCreateRenderPass) {
6358         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCreateRenderPass not found\n");
6359         good = false;
6360     }
6361     if (!vk->vkDestroyRenderPass) {
6362         fprintf(stderr, "VK_VERSION_1_0 check failed: vkDestroyRenderPass not found\n");
6363         good = false;
6364     }
6365     if (!vk->vkGetRenderAreaGranularity) {
6366         fprintf(stderr, "VK_VERSION_1_0 check failed: vkGetRenderAreaGranularity not found\n");
6367         good = false;
6368     }
6369     if (!vk->vkCreateCommandPool) {
6370         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCreateCommandPool not found\n");
6371         good = false;
6372     }
6373     if (!vk->vkDestroyCommandPool) {
6374         fprintf(stderr, "VK_VERSION_1_0 check failed: vkDestroyCommandPool not found\n");
6375         good = false;
6376     }
6377     if (!vk->vkResetCommandPool) {
6378         fprintf(stderr, "VK_VERSION_1_0 check failed: vkResetCommandPool not found\n");
6379         good = false;
6380     }
6381     if (!vk->vkAllocateCommandBuffers) {
6382         fprintf(stderr, "VK_VERSION_1_0 check failed: vkAllocateCommandBuffers not found\n");
6383         good = false;
6384     }
6385     if (!vk->vkFreeCommandBuffers) {
6386         fprintf(stderr, "VK_VERSION_1_0 check failed: vkFreeCommandBuffers not found\n");
6387         good = false;
6388     }
6389     if (!vk->vkBeginCommandBuffer) {
6390         fprintf(stderr, "VK_VERSION_1_0 check failed: vkBeginCommandBuffer not found\n");
6391         good = false;
6392     }
6393     if (!vk->vkEndCommandBuffer) {
6394         fprintf(stderr, "VK_VERSION_1_0 check failed: vkEndCommandBuffer not found\n");
6395         good = false;
6396     }
6397     if (!vk->vkResetCommandBuffer) {
6398         fprintf(stderr, "VK_VERSION_1_0 check failed: vkResetCommandBuffer not found\n");
6399         good = false;
6400     }
6401     if (!vk->vkCmdBindPipeline) {
6402         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdBindPipeline not found\n");
6403         good = false;
6404     }
6405     if (!vk->vkCmdSetViewport) {
6406         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdSetViewport not found\n");
6407         good = false;
6408     }
6409     if (!vk->vkCmdSetScissor) {
6410         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdSetScissor not found\n");
6411         good = false;
6412     }
6413     if (!vk->vkCmdSetLineWidth) {
6414         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdSetLineWidth not found\n");
6415         good = false;
6416     }
6417     if (!vk->vkCmdSetDepthBias) {
6418         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdSetDepthBias not found\n");
6419         good = false;
6420     }
6421     if (!vk->vkCmdSetBlendConstants) {
6422         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdSetBlendConstants not found\n");
6423         good = false;
6424     }
6425     if (!vk->vkCmdSetDepthBounds) {
6426         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdSetDepthBounds not found\n");
6427         good = false;
6428     }
6429     if (!vk->vkCmdSetStencilCompareMask) {
6430         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdSetStencilCompareMask not found\n");
6431         good = false;
6432     }
6433     if (!vk->vkCmdSetStencilWriteMask) {
6434         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdSetStencilWriteMask not found\n");
6435         good = false;
6436     }
6437     if (!vk->vkCmdSetStencilReference) {
6438         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdSetStencilReference not found\n");
6439         good = false;
6440     }
6441     if (!vk->vkCmdBindDescriptorSets) {
6442         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdBindDescriptorSets not found\n");
6443         good = false;
6444     }
6445     if (!vk->vkCmdBindIndexBuffer) {
6446         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdBindIndexBuffer not found\n");
6447         good = false;
6448     }
6449     if (!vk->vkCmdBindVertexBuffers) {
6450         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdBindVertexBuffers not found\n");
6451         good = false;
6452     }
6453     if (!vk->vkCmdDraw) {
6454         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdDraw not found\n");
6455         good = false;
6456     }
6457     if (!vk->vkCmdDrawIndexed) {
6458         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdDrawIndexed not found\n");
6459         good = false;
6460     }
6461     if (!vk->vkCmdDrawIndirect) {
6462         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdDrawIndirect not found\n");
6463         good = false;
6464     }
6465     if (!vk->vkCmdDrawIndexedIndirect) {
6466         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdDrawIndexedIndirect not found\n");
6467         good = false;
6468     }
6469     if (!vk->vkCmdDispatch) {
6470         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdDispatch not found\n");
6471         good = false;
6472     }
6473     if (!vk->vkCmdDispatchIndirect) {
6474         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdDispatchIndirect not found\n");
6475         good = false;
6476     }
6477     if (!vk->vkCmdCopyBuffer) {
6478         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdCopyBuffer not found\n");
6479         good = false;
6480     }
6481     if (!vk->vkCmdCopyImage) {
6482         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdCopyImage not found\n");
6483         good = false;
6484     }
6485     if (!vk->vkCmdBlitImage) {
6486         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdBlitImage not found\n");
6487         good = false;
6488     }
6489     if (!vk->vkCmdCopyBufferToImage) {
6490         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdCopyBufferToImage not found\n");
6491         good = false;
6492     }
6493     if (!vk->vkCmdCopyImageToBuffer) {
6494         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdCopyImageToBuffer not found\n");
6495         good = false;
6496     }
6497     if (!vk->vkCmdUpdateBuffer) {
6498         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdUpdateBuffer not found\n");
6499         good = false;
6500     }
6501     if (!vk->vkCmdFillBuffer) {
6502         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdFillBuffer not found\n");
6503         good = false;
6504     }
6505     if (!vk->vkCmdClearColorImage) {
6506         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdClearColorImage not found\n");
6507         good = false;
6508     }
6509     if (!vk->vkCmdClearDepthStencilImage) {
6510         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdClearDepthStencilImage not found\n");
6511         good = false;
6512     }
6513     if (!vk->vkCmdClearAttachments) {
6514         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdClearAttachments not found\n");
6515         good = false;
6516     }
6517     if (!vk->vkCmdResolveImage) {
6518         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdResolveImage not found\n");
6519         good = false;
6520     }
6521     if (!vk->vkCmdSetEvent) {
6522         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdSetEvent not found\n");
6523         good = false;
6524     }
6525     if (!vk->vkCmdResetEvent) {
6526         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdResetEvent not found\n");
6527         good = false;
6528     }
6529     if (!vk->vkCmdWaitEvents) {
6530         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdWaitEvents not found\n");
6531         good = false;
6532     }
6533     if (!vk->vkCmdPipelineBarrier) {
6534         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdPipelineBarrier not found\n");
6535         good = false;
6536     }
6537     if (!vk->vkCmdBeginQuery) {
6538         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdBeginQuery not found\n");
6539         good = false;
6540     }
6541     if (!vk->vkCmdEndQuery) {
6542         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdEndQuery not found\n");
6543         good = false;
6544     }
6545     if (!vk->vkCmdResetQueryPool) {
6546         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdResetQueryPool not found\n");
6547         good = false;
6548     }
6549     if (!vk->vkCmdWriteTimestamp) {
6550         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdWriteTimestamp not found\n");
6551         good = false;
6552     }
6553     if (!vk->vkCmdCopyQueryPoolResults) {
6554         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdCopyQueryPoolResults not found\n");
6555         good = false;
6556     }
6557     if (!vk->vkCmdPushConstants) {
6558         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdPushConstants not found\n");
6559         good = false;
6560     }
6561     if (!vk->vkCmdBeginRenderPass) {
6562         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdBeginRenderPass not found\n");
6563         good = false;
6564     }
6565     if (!vk->vkCmdNextSubpass) {
6566         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdNextSubpass not found\n");
6567         good = false;
6568     }
6569     if (!vk->vkCmdEndRenderPass) {
6570         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdEndRenderPass not found\n");
6571         good = false;
6572     }
6573     if (!vk->vkCmdExecuteCommands) {
6574         fprintf(stderr, "VK_VERSION_1_0 check failed: vkCmdExecuteCommands not found\n");
6575         good = false;
6576     }
6577     return good;
6578 }
6579 
vulkan_dispatch_check_device_VK_VERSION_1_1(const VulkanDispatch * vk)6580 bool vulkan_dispatch_check_device_VK_VERSION_1_1(const VulkanDispatch* vk)
6581 
6582 {
6583     bool good = true;
6584     if (!vk->vkBindBufferMemory2) {
6585         fprintf(stderr, "VK_VERSION_1_1 check failed: vkBindBufferMemory2 not found\n");
6586         good = false;
6587     }
6588     if (!vk->vkBindImageMemory2) {
6589         fprintf(stderr, "VK_VERSION_1_1 check failed: vkBindImageMemory2 not found\n");
6590         good = false;
6591     }
6592     if (!vk->vkGetDeviceGroupPeerMemoryFeatures) {
6593         fprintf(stderr,
6594                 "VK_VERSION_1_1 check failed: vkGetDeviceGroupPeerMemoryFeatures not found\n");
6595         good = false;
6596     }
6597     if (!vk->vkCmdSetDeviceMask) {
6598         fprintf(stderr, "VK_VERSION_1_1 check failed: vkCmdSetDeviceMask not found\n");
6599         good = false;
6600     }
6601     if (!vk->vkCmdDispatchBase) {
6602         fprintf(stderr, "VK_VERSION_1_1 check failed: vkCmdDispatchBase not found\n");
6603         good = false;
6604     }
6605     if (!vk->vkGetImageMemoryRequirements2) {
6606         fprintf(stderr, "VK_VERSION_1_1 check failed: vkGetImageMemoryRequirements2 not found\n");
6607         good = false;
6608     }
6609     if (!vk->vkGetBufferMemoryRequirements2) {
6610         fprintf(stderr, "VK_VERSION_1_1 check failed: vkGetBufferMemoryRequirements2 not found\n");
6611         good = false;
6612     }
6613     if (!vk->vkGetImageSparseMemoryRequirements2) {
6614         fprintf(stderr,
6615                 "VK_VERSION_1_1 check failed: vkGetImageSparseMemoryRequirements2 not found\n");
6616         good = false;
6617     }
6618     if (!vk->vkTrimCommandPool) {
6619         fprintf(stderr, "VK_VERSION_1_1 check failed: vkTrimCommandPool not found\n");
6620         good = false;
6621     }
6622     if (!vk->vkGetDeviceQueue2) {
6623         fprintf(stderr, "VK_VERSION_1_1 check failed: vkGetDeviceQueue2 not found\n");
6624         good = false;
6625     }
6626     if (!vk->vkCreateSamplerYcbcrConversion) {
6627         fprintf(stderr, "VK_VERSION_1_1 check failed: vkCreateSamplerYcbcrConversion not found\n");
6628         good = false;
6629     }
6630     if (!vk->vkDestroySamplerYcbcrConversion) {
6631         fprintf(stderr, "VK_VERSION_1_1 check failed: vkDestroySamplerYcbcrConversion not found\n");
6632         good = false;
6633     }
6634     if (!vk->vkCreateDescriptorUpdateTemplate) {
6635         fprintf(stderr,
6636                 "VK_VERSION_1_1 check failed: vkCreateDescriptorUpdateTemplate not found\n");
6637         good = false;
6638     }
6639     if (!vk->vkDestroyDescriptorUpdateTemplate) {
6640         fprintf(stderr,
6641                 "VK_VERSION_1_1 check failed: vkDestroyDescriptorUpdateTemplate not found\n");
6642         good = false;
6643     }
6644     if (!vk->vkUpdateDescriptorSetWithTemplate) {
6645         fprintf(stderr,
6646                 "VK_VERSION_1_1 check failed: vkUpdateDescriptorSetWithTemplate not found\n");
6647         good = false;
6648     }
6649     if (!vk->vkGetDescriptorSetLayoutSupport) {
6650         fprintf(stderr, "VK_VERSION_1_1 check failed: vkGetDescriptorSetLayoutSupport not found\n");
6651         good = false;
6652     }
6653     return good;
6654 }
6655 
6656 }  // namespace vk
6657 }  // namespace gfxstream
6658