Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
#include "loader.h"
#include "stdio.h"
#include "stdlib.h"

#ifdef __linux
#include <dlfcn.h>
#endif
#ifdef _WIN32
#include <windows.h>
#endif

void assign_fn(void** fn, void* proc)
{
    if(proc)  *fn = proc;
}

#define Load_Global_Function(fn)	assign_fn((void**)&fn, vkGetInstanceProcAddr(0, #fn));        
#define Load_Function(fn)	        assign_fn((void**)&fn, vkGetInstanceProcAddr(instance, #fn)); //if(!fn) printf("%s\n", #fn);
#define Load_Device_Function(fn)    assign_fn((void**)&fn, vkGetDeviceProcAddr(device, #fn));     

int load_fn()
{
#ifdef __linux
    void* lib = dlopen("libvulkan.so.1", RTLD_NOW);
	if (!lib)
	{
		printf("FAILED TO FIND libvulkan.so.1\n");
		return 0;
	}
	vkGetInstanceProcAddr = (PFN_vkGetInstanceProcAddr)dlsym(lib, "vkGetInstanceProcAddr");
#endif
#ifdef _WIN32
    HMODULE lib = LoadLibraryA("vulkan-1.dll");
    if (!lib)
	{
		printf("FAILED TO FIND vulkan-1.dll\n");
		return 0;
	}
    vkGetInstanceProcAddr = (PFN_vkGetInstanceProcAddr)GetProcAddress(lib, "vkGetInstanceProcAddr");
#endif
    if (!vkGetInstanceProcAddr)
	{
		printf("FAILED to load vkGetInstanceProcAddr\n Make sure you have the latest drivers installed\n");
		return 0;
	}
    Load_Global_Function(vkCreateInstance);
    Load_Global_Function(vkEnumerateInstanceExtensionProperties);
    Load_Global_Function(vkEnumerateInstanceLayerProperties);
    Load_Global_Function(vkEnumerateInstanceVersion);

    return 1;
}

void load_instance_fn(VkInstance instance)
{
    Load_Function(vkAllocationFunction);
    Load_Function(vkReallocationFunction);
    Load_Function(vkFreeFunction);
    Load_Function(vkInternalAllocationNotification);
    Load_Function(vkInternalFreeNotification);
    Load_Function(vkVoidFunction);
    Load_Function(vkCreateInstance);
    Load_Function(vkDestroyInstance);
    Load_Function(vkEnumeratePhysicalDevices);
    Load_Function(vkGetPhysicalDeviceFeatures);
    Load_Function(vkGetPhysicalDeviceFormatProperties);
    Load_Function(vkGetPhysicalDeviceImageFormatProperties);
    Load_Function(vkGetPhysicalDeviceProperties);
    Load_Function(vkGetPhysicalDeviceQueueFamilyProperties);
    Load_Function(vkGetPhysicalDeviceMemoryProperties);
    Load_Function(vkGetInstanceProcAddr);
    Load_Function(vkGetDeviceProcAddr);
    Load_Function(vkCreateDevice);
    Load_Function(vkDestroyDevice);
    Load_Function(vkEnumerateInstanceExtensionProperties);
    Load_Function(vkEnumerateDeviceExtensionProperties);
    Load_Function(vkEnumerateInstanceLayerProperties);
    Load_Function(vkEnumerateDeviceLayerProperties);
    Load_Function(vkGetDeviceQueue);
    Load_Function(vkQueueSubmit);
    Load_Function(vkQueueWaitIdle);
    Load_Function(vkDeviceWaitIdle);
    Load_Function(vkAllocateMemory);
    Load_Function(vkFreeMemory);
    Load_Function(vkMapMemory);
    Load_Function(vkUnmapMemory);
    Load_Function(vkFlushMappedMemoryRanges);
    Load_Function(vkInvalidateMappedMemoryRanges);
    Load_Function(vkGetDeviceMemoryCommitment);
    Load_Function(vkBindBufferMemory);
    Load_Function(vkBindImageMemory);
    Load_Function(vkGetBufferMemoryRequirements);
    Load_Function(vkGetImageMemoryRequirements);
    Load_Function(vkGetImageSparseMemoryRequirements);
    Load_Function(vkGetPhysicalDeviceSparseImageFormatProperties);
    Load_Function(vkQueueBindSparse);
    Load_Function(vkCreateFence);
    Load_Function(vkDestroyFence);
    Load_Function(vkResetFences);
    Load_Function(vkGetFenceStatus);
    Load_Function(vkWaitForFences);
    Load_Function(vkCreateSemaphore);
    Load_Function(vkDestroySemaphore);
    Load_Function(vkCreateEvent);
    Load_Function(vkDestroyEvent);
    Load_Function(vkGetEventStatus);
    Load_Function(vkSetEvent);
    Load_Function(vkResetEvent);
    Load_Function(vkCreateQueryPool);
    Load_Function(vkDestroyQueryPool);
    Load_Function(vkGetQueryPoolResults);
    Load_Function(vkCreateBuffer);
    Load_Function(vkDestroyBuffer);
    Load_Function(vkCreateBufferView);
    Load_Function(vkDestroyBufferView);
    Load_Function(vkCreateImage);
    Load_Function(vkDestroyImage);
    Load_Function(vkGetImageSubresourceLayout);
    Load_Function(vkCreateImageView);
    Load_Function(vkDestroyImageView);
    Load_Function(vkCreateShaderModule);
    Load_Function(vkDestroyShaderModule);
    Load_Function(vkCreatePipelineCache);
    Load_Function(vkDestroyPipelineCache);
    Load_Function(vkGetPipelineCacheData);
    Load_Function(vkMergePipelineCaches);
    Load_Function(vkCreateGraphicsPipelines);
    Load_Function(vkCreateComputePipelines);
    Load_Function(vkDestroyPipeline);
    Load_Function(vkCreatePipelineLayout);
    Load_Function(vkDestroyPipelineLayout);
    Load_Function(vkCreateSampler);
    Load_Function(vkDestroySampler);
    Load_Function(vkCreateDescriptorSetLayout);
    Load_Function(vkDestroyDescriptorSetLayout);
    Load_Function(vkCreateDescriptorPool);
    Load_Function(vkDestroyDescriptorPool);
    Load_Function(vkResetDescriptorPool);
    Load_Function(vkAllocateDescriptorSets);
    Load_Function(vkFreeDescriptorSets);
    Load_Function(vkUpdateDescriptorSets);
    Load_Function(vkCreateFramebuffer);
    Load_Function(vkDestroyFramebuffer);
    Load_Function(vkCreateRenderPass);
    Load_Function(vkDestroyRenderPass);
    Load_Function(vkGetRenderAreaGranularity);
    Load_Function(vkCreateCommandPool);
    Load_Function(vkDestroyCommandPool);
    Load_Function(vkResetCommandPool);
    Load_Function(vkAllocateCommandBuffers);
    Load_Function(vkFreeCommandBuffers);
    Load_Function(vkBeginCommandBuffer);
    Load_Function(vkEndCommandBuffer);
    Load_Function(vkResetCommandBuffer);
    Load_Function(vkCmdBindPipeline);
    Load_Function(vkCmdSetViewport);
    Load_Function(vkCmdSetScissor);
    Load_Function(vkCmdSetLineWidth);
    Load_Function(vkCmdSetDepthBias);
    Load_Function(vkCmdSetBlendConstants);
    Load_Function(vkCmdSetDepthBounds);
    Load_Function(vkCmdSetStencilCompareMask);
    Load_Function(vkCmdSetStencilWriteMask);
    Load_Function(vkCmdSetStencilReference);
    Load_Function(vkCmdBindDescriptorSets);
    Load_Function(vkCmdBindIndexBuffer);
    Load_Function(vkCmdBindVertexBuffers);
    Load_Function(vkCmdDraw);
    Load_Function(vkCmdDrawIndexed);
    Load_Function(vkCmdDrawIndirect);
    Load_Function(vkCmdDrawIndexedIndirect);
    Load_Function(vkCmdDispatch);
    Load_Function(vkCmdDispatchIndirect);
    Load_Function(vkCmdCopyBuffer);
    Load_Function(vkCmdCopyImage);
    Load_Function(vkCmdBlitImage);
    Load_Function(vkCmdCopyBufferToImage);
    Load_Function(vkCmdCopyImageToBuffer);
    Load_Function(vkCmdUpdateBuffer);
    Load_Function(vkCmdFillBuffer);
    Load_Function(vkCmdClearColorImage);
    Load_Function(vkCmdClearDepthStencilImage);
    Load_Function(vkCmdClearAttachments);
    Load_Function(vkCmdResolveImage);
    Load_Function(vkCmdSetEvent);
    Load_Function(vkCmdResetEvent);
    Load_Function(vkCmdWaitEvents);
    Load_Function(vkCmdPipelineBarrier);
    Load_Function(vkCmdBeginQuery);
    Load_Function(vkCmdEndQuery);
    Load_Function(vkCmdResetQueryPool);
    Load_Function(vkCmdWriteTimestamp);
    Load_Function(vkCmdCopyQueryPoolResults);
    Load_Function(vkCmdPushConstants);
    Load_Function(vkCmdBeginRenderPass);
    Load_Function(vkCmdNextSubpass);
    Load_Function(vkCmdEndRenderPass);
    Load_Function(vkCmdExecuteCommands);
    Load_Function(vkEnumerateInstanceVersion);
    Load_Function(vkBindBufferMemory2);
    Load_Function(vkBindImageMemory2);
    Load_Function(vkGetDeviceGroupPeerMemoryFeatures);
    Load_Function(vkCmdSetDeviceMask);
    Load_Function(vkCmdDispatchBase);
    Load_Function(vkEnumeratePhysicalDeviceGroups);
    Load_Function(vkGetImageMemoryRequirements2);
    Load_Function(vkGetBufferMemoryRequirements2);
    Load_Function(vkGetImageSparseMemoryRequirements2);
    Load_Function(vkGetPhysicalDeviceFeatures2);
    Load_Function(vkGetPhysicalDeviceProperties2);
    Load_Function(vkGetPhysicalDeviceFormatProperties2);
    Load_Function(vkGetPhysicalDeviceImageFormatProperties2);
    Load_Function(vkGetPhysicalDeviceQueueFamilyProperties2);
    Load_Function(vkGetPhysicalDeviceMemoryProperties2);
    Load_Function(vkGetPhysicalDeviceSparseImageFormatProperties2);
    Load_Function(vkTrimCommandPool);
    Load_Function(vkGetDeviceQueue2);
    Load_Function(vkCreateSamplerYcbcrConversion);
    Load_Function(vkDestroySamplerYcbcrConversion);
    Load_Function(vkCreateDescriptorUpdateTemplate);
    Load_Function(vkDestroyDescriptorUpdateTemplate);
    Load_Function(vkUpdateDescriptorSetWithTemplate);
    Load_Function(vkGetPhysicalDeviceExternalBufferProperties);
    Load_Function(vkGetPhysicalDeviceExternalFenceProperties);
    Load_Function(vkGetPhysicalDeviceExternalSemaphoreProperties);
    Load_Function(vkGetDescriptorSetLayoutSupport);
    Load_Function(vkCmdDrawIndirectCount);
    Load_Function(vkCmdDrawIndexedIndirectCount);
    Load_Function(vkCreateRenderPass2);
    Load_Function(vkCmdBeginRenderPass2);
    Load_Function(vkCmdNextSubpass2);
    Load_Function(vkCmdEndRenderPass2);
    Load_Function(vkResetQueryPool);
    Load_Function(vkGetSemaphoreCounterValue);
    Load_Function(vkWaitSemaphores);
    Load_Function(vkSignalSemaphore);
    Load_Function(vkGetBufferDeviceAddress);
    Load_Function(vkGetBufferOpaqueCaptureAddress);
    Load_Function(vkGetDeviceMemoryOpaqueCaptureAddress);
    Load_Function(vkDestroySurfaceKHR);
    Load_Function(vkGetPhysicalDeviceSurfaceSupportKHR);
    Load_Function(vkGetPhysicalDeviceSurfaceCapabilitiesKHR);
    Load_Function(vkGetPhysicalDeviceSurfaceFormatsKHR);
    Load_Function(vkGetPhysicalDeviceSurfacePresentModesKHR);
    Load_Function(vkCreateSwapchainKHR);
    Load_Function(vkDestroySwapchainKHR);
    Load_Function(vkGetSwapchainImagesKHR);
    Load_Function(vkAcquireNextImageKHR);
    Load_Function(vkQueuePresentKHR);
    Load_Function(vkGetDeviceGroupPresentCapabilitiesKHR);
    Load_Function(vkGetDeviceGroupSurfacePresentModesKHR);
    Load_Function(vkGetPhysicalDevicePresentRectanglesKHR);
    Load_Function(vkAcquireNextImage2KHR);
    Load_Function(vkGetPhysicalDeviceDisplayPropertiesKHR);
    Load_Function(vkGetPhysicalDeviceDisplayPlanePropertiesKHR);
    Load_Function(vkGetDisplayPlaneSupportedDisplaysKHR);
    Load_Function(vkGetDisplayModePropertiesKHR);
    Load_Function(vkCreateDisplayModeKHR);
    Load_Function(vkGetDisplayPlaneCapabilitiesKHR);
    Load_Function(vkCreateDisplayPlaneSurfaceKHR);
    Load_Function(vkCreateSharedSwapchainsKHR);
    Load_Function(vkGetPhysicalDeviceFeatures2KHR);
    Load_Function(vkGetPhysicalDeviceProperties2KHR);
    Load_Function(vkGetPhysicalDeviceFormatProperties2KHR);
    Load_Function(vkGetPhysicalDeviceImageFormatProperties2KHR);
    Load_Function(vkGetPhysicalDeviceQueueFamilyProperties2KHR);
    Load_Function(vkGetPhysicalDeviceMemoryProperties2KHR);
    Load_Function(vkGetPhysicalDeviceSparseImageFormatProperties2KHR);
    Load_Function(vkGetDeviceGroupPeerMemoryFeaturesKHR);
    Load_Function(vkCmdSetDeviceMaskKHR);
    Load_Function(vkCmdDispatchBaseKHR);
    Load_Function(vkTrimCommandPoolKHR);
    Load_Function(vkEnumeratePhysicalDeviceGroupsKHR);
    Load_Function(vkGetPhysicalDeviceExternalBufferPropertiesKHR);
    Load_Function(vkGetMemoryFdKHR);
    Load_Function(vkGetMemoryFdPropertiesKHR);
    Load_Function(vkGetPhysicalDeviceExternalSemaphorePropertiesKHR);
    Load_Function(vkImportSemaphoreFdKHR);
    Load_Function(vkGetSemaphoreFdKHR);
    Load_Function(vkCmdPushDescriptorSetKHR);
    Load_Function(vkCmdPushDescriptorSetWithTemplateKHR);
    Load_Function(vkCreateDescriptorUpdateTemplateKHR);
    Load_Function(vkDestroyDescriptorUpdateTemplateKHR);
    Load_Function(vkUpdateDescriptorSetWithTemplateKHR);
    Load_Function(vkCreateRenderPass2KHR);
    Load_Function(vkCmdBeginRenderPass2KHR);
    Load_Function(vkCmdNextSubpass2KHR);
    Load_Function(vkCmdEndRenderPass2KHR);
    Load_Function(vkGetSwapchainStatusKHR);
    Load_Function(vkGetPhysicalDeviceExternalFencePropertiesKHR);
    Load_Function(vkImportFenceFdKHR);
    Load_Function(vkGetFenceFdKHR);
    Load_Function(vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR);
    Load_Function(vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR);
    Load_Function(vkAcquireProfilingLockKHR);
    Load_Function(vkReleaseProfilingLockKHR);
    Load_Function(vkGetPhysicalDeviceSurfaceCapabilities2KHR);
    Load_Function(vkGetPhysicalDeviceSurfaceFormats2KHR);
    Load_Function(vkGetPhysicalDeviceDisplayProperties2KHR);
    Load_Function(vkGetPhysicalDeviceDisplayPlaneProperties2KHR);
    Load_Function(vkGetDisplayModeProperties2KHR);
    Load_Function(vkGetDisplayPlaneCapabilities2KHR);
    Load_Function(vkGetImageMemoryRequirements2KHR);
    Load_Function(vkGetBufferMemoryRequirements2KHR);
    Load_Function(vkGetImageSparseMemoryRequirements2KHR);
    Load_Function(vkCreateSamplerYcbcrConversionKHR);
    Load_Function(vkDestroySamplerYcbcrConversionKHR);
    Load_Function(vkBindBufferMemory2KHR);
    Load_Function(vkBindImageMemory2KHR);
    Load_Function(vkGetDescriptorSetLayoutSupportKHR);
    Load_Function(vkCmdDrawIndirectCountKHR);
    Load_Function(vkCmdDrawIndexedIndirectCountKHR);
    Load_Function(vkGetSemaphoreCounterValueKHR);
    Load_Function(vkWaitSemaphoresKHR);
    Load_Function(vkSignalSemaphoreKHR);
    Load_Function(vkGetBufferDeviceAddressKHR);
    Load_Function(vkGetBufferOpaqueCaptureAddressKHR);
    Load_Function(vkGetDeviceMemoryOpaqueCaptureAddressKHR);
    Load_Function(vkGetPipelineExecutablePropertiesKHR);
    Load_Function(vkGetPipelineExecutableStatisticsKHR);
    Load_Function(vkGetPipelineExecutableInternalRepresentationsKHR);
    Load_Function(vkDebugReportCallbackEXT);
    Load_Function(vkCreateDebugReportCallbackEXT);
    Load_Function(vkDestroyDebugReportCallbackEXT);
    Load_Function(vkDebugReportMessageEXT);
    Load_Function(vkDebugMarkerSetObjectTagEXT);
    Load_Function(vkDebugMarkerSetObjectNameEXT);
    Load_Function(vkCmdDebugMarkerBeginEXT);
    Load_Function(vkCmdDebugMarkerEndEXT);
    Load_Function(vkCmdDebugMarkerInsertEXT);
    Load_Function(vkCmdBindTransformFeedbackBuffersEXT);
    Load_Function(vkCmdBeginTransformFeedbackEXT);
    Load_Function(vkCmdEndTransformFeedbackEXT);
    Load_Function(vkCmdBeginQueryIndexedEXT);
    Load_Function(vkCmdEndQueryIndexedEXT);
    Load_Function(vkCmdDrawIndirectByteCountEXT);
    Load_Function(vkGetImageViewHandleNVX);
    Load_Function(vkGetImageViewAddressNVX);
    Load_Function(vkCmdDrawIndirectCountAMD);
    Load_Function(vkCmdDrawIndexedIndirectCountAMD);
    Load_Function(vkGetShaderInfoAMD);
    Load_Function(vkGetPhysicalDeviceExternalImageFormatPropertiesNV);
    Load_Function(vkCmdBeginConditionalRenderingEXT);
    Load_Function(vkCmdEndConditionalRenderingEXT);
    Load_Function(vkCmdSetViewportWScalingNV);
    Load_Function(vkReleaseDisplayEXT);
    Load_Function(vkGetPhysicalDeviceSurfaceCapabilities2EXT);
    Load_Function(vkDisplayPowerControlEXT);
    Load_Function(vkRegisterDeviceEventEXT);
    Load_Function(vkRegisterDisplayEventEXT);
    Load_Function(vkGetSwapchainCounterEXT);
    Load_Function(vkGetRefreshCycleDurationGOOGLE);
    Load_Function(vkGetPastPresentationTimingGOOGLE);
    Load_Function(vkCmdSetDiscardRectangleEXT);
    Load_Function(vkSetHdrMetadataEXT);
    Load_Function(vkDebugUtilsMessengerCallbackEXT);
    Load_Function(vkSetDebugUtilsObjectNameEXT);
    Load_Function(vkSetDebugUtilsObjectTagEXT);
    Load_Function(vkQueueBeginDebugUtilsLabelEXT);
    Load_Function(vkQueueEndDebugUtilsLabelEXT);
    Load_Function(vkQueueInsertDebugUtilsLabelEXT);
    Load_Function(vkCmdBeginDebugUtilsLabelEXT);
    Load_Function(vkCmdEndDebugUtilsLabelEXT);
    Load_Function(vkCmdInsertDebugUtilsLabelEXT);
    Load_Function(vkCreateDebugUtilsMessengerEXT);
    Load_Function(vkDestroyDebugUtilsMessengerEXT);
    Load_Function(vkSubmitDebugUtilsMessageEXT);
    Load_Function(vkCmdSetSampleLocationsEXT);
    Load_Function(vkGetPhysicalDeviceMultisamplePropertiesEXT);
    Load_Function(vkGetImageDrmFormatModifierPropertiesEXT);
    Load_Function(vkCreateValidationCacheEXT);
    Load_Function(vkDestroyValidationCacheEXT);
    Load_Function(vkMergeValidationCachesEXT);
    Load_Function(vkGetValidationCacheDataEXT);
    Load_Function(vkCmdBindShadingRateImageNV);
    Load_Function(vkCmdSetViewportShadingRatePaletteNV);
    Load_Function(vkCmdSetCoarseSampleOrderNV);
    Load_Function(vkCreateAccelerationStructureNV);
    Load_Function(vkDestroyAccelerationStructureKHR);
    Load_Function(vkDestroyAccelerationStructureNV);
    Load_Function(vkGetAccelerationStructureMemoryRequirementsNV);
    Load_Function(vkBindAccelerationStructureMemoryKHR);
    Load_Function(vkBindAccelerationStructureMemoryNV);
    Load_Function(vkCmdBuildAccelerationStructureNV);
    Load_Function(vkCmdCopyAccelerationStructureNV);
    Load_Function(vkCmdTraceRaysNV);
    Load_Function(vkCreateRayTracingPipelinesNV);
    Load_Function(vkGetRayTracingShaderGroupHandlesKHR);
    Load_Function(vkGetRayTracingShaderGroupHandlesNV);
    Load_Function(vkGetAccelerationStructureHandleNV);
    Load_Function(vkCmdWriteAccelerationStructuresPropertiesKHR);
    Load_Function(vkCmdWriteAccelerationStructuresPropertiesNV);
    Load_Function(vkCompileDeferredNV);
    Load_Function(vkGetMemoryHostPointerPropertiesEXT);
    Load_Function(vkCmdWriteBufferMarkerAMD);
    Load_Function(vkGetPhysicalDeviceCalibrateableTimeDomainsEXT);
    Load_Function(vkGetCalibratedTimestampsEXT);
    Load_Function(vkCmdDrawMeshTasksNV);
    Load_Function(vkCmdDrawMeshTasksIndirectNV);
    Load_Function(vkCmdDrawMeshTasksIndirectCountNV);
    Load_Function(vkCmdSetExclusiveScissorNV);
    Load_Function(vkCmdSetCheckpointNV);
    Load_Function(vkGetQueueCheckpointDataNV);
    Load_Function(vkInitializePerformanceApiINTEL);
    Load_Function(vkUninitializePerformanceApiINTEL);
    Load_Function(vkCmdSetPerformanceMarkerINTEL);
    Load_Function(vkCmdSetPerformanceStreamMarkerINTEL);
    Load_Function(vkCmdSetPerformanceOverrideINTEL);
    Load_Function(vkAcquirePerformanceConfigurationINTEL);
    Load_Function(vkReleasePerformanceConfigurationINTEL);
    Load_Function(vkQueueSetPerformanceConfigurationINTEL);
    Load_Function(vkGetPerformanceParameterINTEL);
    Load_Function(vkSetLocalDimmingAMD);
    Load_Function(vkGetBufferDeviceAddressEXT);
    Load_Function(vkGetPhysicalDeviceToolPropertiesEXT);
    Load_Function(vkGetPhysicalDeviceCooperativeMatrixPropertiesNV);
    Load_Function(vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV);
    Load_Function(vkCreateHeadlessSurfaceEXT);
    Load_Function(vkCmdSetLineStippleEXT);
    Load_Function(vkResetQueryPoolEXT);
    Load_Function(vkGetGeneratedCommandsMemoryRequirementsNV);
    Load_Function(vkCmdPreprocessGeneratedCommandsNV);
    Load_Function(vkCmdExecuteGeneratedCommandsNV);
    Load_Function(vkCmdBindPipelineShaderGroupNV);
    Load_Function(vkCreateIndirectCommandsLayoutNV);
    Load_Function(vkDestroyIndirectCommandsLayoutNV);
    Load_Function(vkCreatePrivateDataSlotEXT);
    Load_Function(vkDestroyPrivateDataSlotEXT);
    Load_Function(vkSetPrivateDataEXT);
    Load_Function(vkGetPrivateDataEXT);

    Load_Function(vkCreateWin32SurfaceKHR);
    Load_Function(vkGetPhysicalDeviceWin32PresentationSupportKHR);
    Load_Function(vkGetMemoryWin32HandleKHR);
    Load_Function(vkGetMemoryWin32HandlePropertiesKHR);
    Load_Function(vkImportSemaphoreWin32HandleKHR);
    Load_Function(vkGetSemaphoreWin32HandleKHR);
    Load_Function(vkImportFenceWin32HandleKHR);
    Load_Function(vkGetFenceWin32HandleKHR);
    Load_Function(vkGetMemoryWin32HandleNV);
    Load_Function(vkGetPhysicalDeviceSurfacePresentModes2EXT);
    Load_Function(vkAcquireFullScreenExclusiveModeEXT);
    Load_Function(vkReleaseFullScreenExclusiveModeEXT);
    Load_Function(vkGetDeviceGroupSurfacePresentModes2EXT);

    Load_Function(vkCreateXlibSurfaceKHR);
    Load_Function(vkGetPhysicalDeviceXlibPresentationSupportKHR);

    Load_Function(vkCreateXcbSurfaceKHR);
    Load_Function(vkGetPhysicalDeviceXcbPresentationSupportKHR);

    Load_Function(vkCreateWaylandSurfaceKHR);
    Load_Function(vkGetPhysicalDeviceWaylandPresentationSupportKHR);
  
    Load_Function(vkCreateAndroidSurfaceKHR);
    Load_Function(vkGetAndroidHardwareBufferPropertiesANDROID);
    Load_Function(vkGetMemoryAndroidHardwareBufferANDROID);
}

void load_device_fn(VkDevice device)
{
    Load_Device_Function(vkAllocationFunction);
    Load_Device_Function(vkReallocationFunction);
    Load_Device_Function(vkFreeFunction);
    Load_Device_Function(vkInternalAllocationNotification);
    Load_Device_Function(vkInternalFreeNotification);
    Load_Device_Function(vkVoidFunction);
    Load_Device_Function(vkCreateInstance);
    Load_Device_Function(vkDestroyInstance);
    Load_Device_Function(vkEnumeratePhysicalDevices);
    Load_Device_Function(vkGetPhysicalDeviceFeatures);
    Load_Device_Function(vkGetPhysicalDeviceFormatProperties);
    Load_Device_Function(vkGetPhysicalDeviceImageFormatProperties);
    Load_Device_Function(vkGetPhysicalDeviceProperties);
    Load_Device_Function(vkGetPhysicalDeviceQueueFamilyProperties);
    Load_Device_Function(vkGetPhysicalDeviceMemoryProperties);
    Load_Device_Function(vkGetInstanceProcAddr);
    Load_Device_Function(vkGetDeviceProcAddr);
    Load_Device_Function(vkCreateDevice);
    Load_Device_Function(vkDestroyDevice);
    Load_Device_Function(vkEnumerateInstanceExtensionProperties);
    Load_Device_Function(vkEnumerateDeviceExtensionProperties);
    Load_Device_Function(vkEnumerateInstanceLayerProperties);
    Load_Device_Function(vkEnumerateDeviceLayerProperties);
    Load_Device_Function(vkGetDeviceQueue);
    Load_Device_Function(vkQueueSubmit);
    Load_Device_Function(vkQueueWaitIdle);
    Load_Device_Function(vkDeviceWaitIdle);
    Load_Device_Function(vkAllocateMemory);
    Load_Device_Function(vkFreeMemory);
    Load_Device_Function(vkMapMemory);
    Load_Device_Function(vkUnmapMemory);
    Load_Device_Function(vkFlushMappedMemoryRanges);
    Load_Device_Function(vkInvalidateMappedMemoryRanges);
    Load_Device_Function(vkGetDeviceMemoryCommitment);
    Load_Device_Function(vkBindBufferMemory);
    Load_Device_Function(vkBindImageMemory);
    Load_Device_Function(vkGetBufferMemoryRequirements);
    Load_Device_Function(vkGetImageMemoryRequirements);
    Load_Device_Function(vkGetImageSparseMemoryRequirements);
    Load_Device_Function(vkGetPhysicalDeviceSparseImageFormatProperties);
    Load_Device_Function(vkQueueBindSparse);
    Load_Device_Function(vkCreateFence);
    Load_Device_Function(vkDestroyFence);
    Load_Device_Function(vkResetFences);
    Load_Device_Function(vkGetFenceStatus);
    Load_Device_Function(vkWaitForFences);
    Load_Device_Function(vkCreateSemaphore);
    Load_Device_Function(vkDestroySemaphore);
    Load_Device_Function(vkCreateEvent);
    Load_Device_Function(vkDestroyEvent);
    Load_Device_Function(vkGetEventStatus);
    Load_Device_Function(vkSetEvent);
    Load_Device_Function(vkResetEvent);
    Load_Device_Function(vkCreateQueryPool);
    Load_Device_Function(vkDestroyQueryPool);
    Load_Device_Function(vkGetQueryPoolResults);
    Load_Device_Function(vkCreateBuffer);
    Load_Device_Function(vkDestroyBuffer);
    Load_Device_Function(vkCreateBufferView);
    Load_Device_Function(vkDestroyBufferView);
    Load_Device_Function(vkCreateImage);
    Load_Device_Function(vkDestroyImage);
    Load_Device_Function(vkGetImageSubresourceLayout);
    Load_Device_Function(vkCreateImageView);
    Load_Device_Function(vkDestroyImageView);
    Load_Device_Function(vkCreateShaderModule);
    Load_Device_Function(vkDestroyShaderModule);
    Load_Device_Function(vkCreatePipelineCache);
    Load_Device_Function(vkDestroyPipelineCache);
    Load_Device_Function(vkGetPipelineCacheData);
    Load_Device_Function(vkMergePipelineCaches);
    Load_Device_Function(vkCreateGraphicsPipelines);
    Load_Device_Function(vkCreateComputePipelines);
    Load_Device_Function(vkDestroyPipeline);
    Load_Device_Function(vkCreatePipelineLayout);
    Load_Device_Function(vkDestroyPipelineLayout);
    Load_Device_Function(vkCreateSampler);
    Load_Device_Function(vkDestroySampler);
    Load_Device_Function(vkCreateDescriptorSetLayout);
    Load_Device_Function(vkDestroyDescriptorSetLayout);
    Load_Device_Function(vkCreateDescriptorPool);
    Load_Device_Function(vkDestroyDescriptorPool);
    Load_Device_Function(vkResetDescriptorPool);
    Load_Device_Function(vkAllocateDescriptorSets);
    Load_Device_Function(vkFreeDescriptorSets);
    Load_Device_Function(vkUpdateDescriptorSets);
    Load_Device_Function(vkCreateFramebuffer);
    Load_Device_Function(vkDestroyFramebuffer);
    Load_Device_Function(vkCreateRenderPass);
    Load_Device_Function(vkDestroyRenderPass);
    Load_Device_Function(vkGetRenderAreaGranularity);
    Load_Device_Function(vkCreateCommandPool);
    Load_Device_Function(vkDestroyCommandPool);
    Load_Device_Function(vkResetCommandPool);
    Load_Device_Function(vkAllocateCommandBuffers);
    Load_Device_Function(vkFreeCommandBuffers);
    Load_Device_Function(vkBeginCommandBuffer);
    Load_Device_Function(vkEndCommandBuffer);
    Load_Device_Function(vkResetCommandBuffer);
    Load_Device_Function(vkCmdBindPipeline);
    Load_Device_Function(vkCmdSetViewport);
    Load_Device_Function(vkCmdSetScissor);
    Load_Device_Function(vkCmdSetLineWidth);
    Load_Device_Function(vkCmdSetDepthBias);
    Load_Device_Function(vkCmdSetBlendConstants);
    Load_Device_Function(vkCmdSetDepthBounds);
    Load_Device_Function(vkCmdSetStencilCompareMask);
    Load_Device_Function(vkCmdSetStencilWriteMask);
    Load_Device_Function(vkCmdSetStencilReference);
    Load_Device_Function(vkCmdBindDescriptorSets);
    Load_Device_Function(vkCmdBindIndexBuffer);
    Load_Device_Function(vkCmdBindVertexBuffers);
    Load_Device_Function(vkCmdDraw);
    Load_Device_Function(vkCmdDrawIndexed);
    Load_Device_Function(vkCmdDrawIndirect);
    Load_Device_Function(vkCmdDrawIndexedIndirect);
    Load_Device_Function(vkCmdDispatch);
    Load_Device_Function(vkCmdDispatchIndirect);
    Load_Device_Function(vkCmdCopyBuffer);
    Load_Device_Function(vkCmdCopyImage);
    Load_Device_Function(vkCmdBlitImage);
    Load_Device_Function(vkCmdCopyBufferToImage);
    Load_Device_Function(vkCmdCopyImageToBuffer);
    Load_Device_Function(vkCmdUpdateBuffer);
    Load_Device_Function(vkCmdFillBuffer);
    Load_Device_Function(vkCmdClearColorImage);
    Load_Device_Function(vkCmdClearDepthStencilImage);
    Load_Device_Function(vkCmdClearAttachments);
    Load_Device_Function(vkCmdResolveImage);
    Load_Device_Function(vkCmdSetEvent);
    Load_Device_Function(vkCmdResetEvent);
    Load_Device_Function(vkCmdWaitEvents);
    Load_Device_Function(vkCmdPipelineBarrier);
    Load_Device_Function(vkCmdBeginQuery);
    Load_Device_Function(vkCmdEndQuery);
    Load_Device_Function(vkCmdResetQueryPool);
    Load_Device_Function(vkCmdWriteTimestamp);
    Load_Device_Function(vkCmdCopyQueryPoolResults);
    Load_Device_Function(vkCmdPushConstants);
    Load_Device_Function(vkCmdBeginRenderPass);
    Load_Device_Function(vkCmdNextSubpass);
    Load_Device_Function(vkCmdEndRenderPass);
    Load_Device_Function(vkCmdExecuteCommands);
    Load_Device_Function(vkEnumerateInstanceVersion);
    Load_Device_Function(vkBindBufferMemory2);
    Load_Device_Function(vkBindImageMemory2);
    Load_Device_Function(vkGetDeviceGroupPeerMemoryFeatures);
    Load_Device_Function(vkCmdSetDeviceMask);
    Load_Device_Function(vkCmdDispatchBase);
    Load_Device_Function(vkEnumeratePhysicalDeviceGroups);
    Load_Device_Function(vkGetImageMemoryRequirements2);
    Load_Device_Function(vkGetBufferMemoryRequirements2);
    Load_Device_Function(vkGetImageSparseMemoryRequirements2);
    Load_Device_Function(vkGetPhysicalDeviceFeatures2);
    Load_Device_Function(vkGetPhysicalDeviceProperties2);
    Load_Device_Function(vkGetPhysicalDeviceFormatProperties2);
    Load_Device_Function(vkGetPhysicalDeviceImageFormatProperties2);
    Load_Device_Function(vkGetPhysicalDeviceQueueFamilyProperties2);
    Load_Device_Function(vkGetPhysicalDeviceMemoryProperties2);
    Load_Device_Function(vkGetPhysicalDeviceSparseImageFormatProperties2);
    Load_Device_Function(vkTrimCommandPool);
    Load_Device_Function(vkGetDeviceQueue2);
    Load_Device_Function(vkCreateSamplerYcbcrConversion);
    Load_Device_Function(vkDestroySamplerYcbcrConversion);
    Load_Device_Function(vkCreateDescriptorUpdateTemplate);
    Load_Device_Function(vkDestroyDescriptorUpdateTemplate);
    Load_Device_Function(vkUpdateDescriptorSetWithTemplate);
    Load_Device_Function(vkGetPhysicalDeviceExternalBufferProperties);
    Load_Device_Function(vkGetPhysicalDeviceExternalFenceProperties);
    Load_Device_Function(vkGetPhysicalDeviceExternalSemaphoreProperties);
    Load_Device_Function(vkGetDescriptorSetLayoutSupport);
    Load_Device_Function(vkCmdDrawIndirectCount);
    Load_Device_Function(vkCmdDrawIndexedIndirectCount);
    Load_Device_Function(vkCreateRenderPass2);
    Load_Device_Function(vkCmdBeginRenderPass2);
    Load_Device_Function(vkCmdNextSubpass2);
    Load_Device_Function(vkCmdEndRenderPass2);
    Load_Device_Function(vkResetQueryPool);
    Load_Device_Function(vkGetSemaphoreCounterValue);
    Load_Device_Function(vkWaitSemaphores);
    Load_Device_Function(vkSignalSemaphore);
    Load_Device_Function(vkGetBufferDeviceAddress);
    Load_Device_Function(vkGetBufferOpaqueCaptureAddress);
    Load_Device_Function(vkGetDeviceMemoryOpaqueCaptureAddress);
    Load_Device_Function(vkDestroySurfaceKHR);
    Load_Device_Function(vkGetPhysicalDeviceSurfaceSupportKHR);
    Load_Device_Function(vkGetPhysicalDeviceSurfaceCapabilitiesKHR);
    Load_Device_Function(vkGetPhysicalDeviceSurfaceFormatsKHR);
    Load_Device_Function(vkGetPhysicalDeviceSurfacePresentModesKHR);
    Load_Device_Function(vkCreateSwapchainKHR);
    Load_Device_Function(vkDestroySwapchainKHR);
    Load_Device_Function(vkGetSwapchainImagesKHR);
    Load_Device_Function(vkAcquireNextImageKHR);
    Load_Device_Function(vkQueuePresentKHR);
    Load_Device_Function(vkGetDeviceGroupPresentCapabilitiesKHR);
    Load_Device_Function(vkGetDeviceGroupSurfacePresentModesKHR);
    Load_Device_Function(vkGetPhysicalDevicePresentRectanglesKHR);
    Load_Device_Function(vkAcquireNextImage2KHR);
    Load_Device_Function(vkGetPhysicalDeviceDisplayPropertiesKHR);
    Load_Device_Function(vkGetPhysicalDeviceDisplayPlanePropertiesKHR);
    Load_Device_Function(vkGetDisplayPlaneSupportedDisplaysKHR);
    Load_Device_Function(vkGetDisplayModePropertiesKHR);
    Load_Device_Function(vkCreateDisplayModeKHR);
    Load_Device_Function(vkGetDisplayPlaneCapabilitiesKHR);
    Load_Device_Function(vkCreateDisplayPlaneSurfaceKHR);
    Load_Device_Function(vkCreateSharedSwapchainsKHR);
    Load_Device_Function(vkGetPhysicalDeviceFeatures2KHR);
    Load_Device_Function(vkGetPhysicalDeviceProperties2KHR);
    Load_Device_Function(vkGetPhysicalDeviceFormatProperties2KHR);
    Load_Device_Function(vkGetPhysicalDeviceImageFormatProperties2KHR);
    Load_Device_Function(vkGetPhysicalDeviceQueueFamilyProperties2KHR);
    Load_Device_Function(vkGetPhysicalDeviceMemoryProperties2KHR);
    Load_Device_Function(vkGetPhysicalDeviceSparseImageFormatProperties2KHR);
    Load_Device_Function(vkGetDeviceGroupPeerMemoryFeaturesKHR);
    Load_Device_Function(vkCmdSetDeviceMaskKHR);
    Load_Device_Function(vkCmdDispatchBaseKHR);
    Load_Device_Function(vkTrimCommandPoolKHR);
    Load_Device_Function(vkEnumeratePhysicalDeviceGroupsKHR);
    Load_Device_Function(vkGetPhysicalDeviceExternalBufferPropertiesKHR);
    Load_Device_Function(vkGetMemoryFdKHR);
    Load_Device_Function(vkGetMemoryFdPropertiesKHR);
    Load_Device_Function(vkGetPhysicalDeviceExternalSemaphorePropertiesKHR);
    Load_Device_Function(vkImportSemaphoreFdKHR);
    Load_Device_Function(vkGetSemaphoreFdKHR);
    Load_Device_Function(vkCmdPushDescriptorSetKHR);
    Load_Device_Function(vkCmdPushDescriptorSetWithTemplateKHR);
    Load_Device_Function(vkCreateDescriptorUpdateTemplateKHR);
    Load_Device_Function(vkDestroyDescriptorUpdateTemplateKHR);
    Load_Device_Function(vkUpdateDescriptorSetWithTemplateKHR);
    Load_Device_Function(vkCreateRenderPass2KHR);
    Load_Device_Function(vkCmdBeginRenderPass2KHR);
    Load_Device_Function(vkCmdNextSubpass2KHR);
    Load_Device_Function(vkCmdEndRenderPass2KHR);
    Load_Device_Function(vkGetSwapchainStatusKHR);
    Load_Device_Function(vkGetPhysicalDeviceExternalFencePropertiesKHR);
    Load_Device_Function(vkImportFenceFdKHR);
    Load_Device_Function(vkGetFenceFdKHR);
    Load_Device_Function(vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR);
    Load_Device_Function(vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR);
    Load_Device_Function(vkAcquireProfilingLockKHR);
    Load_Device_Function(vkReleaseProfilingLockKHR);
    Load_Device_Function(vkGetPhysicalDeviceSurfaceCapabilities2KHR);
    Load_Device_Function(vkGetPhysicalDeviceSurfaceFormats2KHR);
    Load_Device_Function(vkGetPhysicalDeviceDisplayProperties2KHR);
    Load_Device_Function(vkGetPhysicalDeviceDisplayPlaneProperties2KHR);
    Load_Device_Function(vkGetDisplayModeProperties2KHR);
    Load_Device_Function(vkGetDisplayPlaneCapabilities2KHR);
    Load_Device_Function(vkGetImageMemoryRequirements2KHR);
    Load_Device_Function(vkGetBufferMemoryRequirements2KHR);
    Load_Device_Function(vkGetImageSparseMemoryRequirements2KHR);
    Load_Device_Function(vkCreateSamplerYcbcrConversionKHR);
    Load_Device_Function(vkDestroySamplerYcbcrConversionKHR);
    Load_Device_Function(vkBindBufferMemory2KHR);
    Load_Device_Function(vkBindImageMemory2KHR);
    Load_Device_Function(vkGetDescriptorSetLayoutSupportKHR);
    Load_Device_Function(vkCmdDrawIndirectCountKHR);
    Load_Device_Function(vkCmdDrawIndexedIndirectCountKHR);
    Load_Device_Function(vkGetSemaphoreCounterValueKHR);
    Load_Device_Function(vkWaitSemaphoresKHR);
    Load_Device_Function(vkSignalSemaphoreKHR);
    Load_Device_Function(vkGetBufferDeviceAddressKHR);
    Load_Device_Function(vkGetBufferOpaqueCaptureAddressKHR);
    Load_Device_Function(vkGetDeviceMemoryOpaqueCaptureAddressKHR);
    Load_Device_Function(vkGetPipelineExecutablePropertiesKHR);
    Load_Device_Function(vkGetPipelineExecutableStatisticsKHR);
    Load_Device_Function(vkGetPipelineExecutableInternalRepresentationsKHR);
    Load_Device_Function(vkDebugReportCallbackEXT);
    Load_Device_Function(vkCreateDebugReportCallbackEXT);
    Load_Device_Function(vkDestroyDebugReportCallbackEXT);
    Load_Device_Function(vkDebugReportMessageEXT);
    Load_Device_Function(vkDebugMarkerSetObjectTagEXT);
    Load_Device_Function(vkDebugMarkerSetObjectNameEXT);
    Load_Device_Function(vkCmdDebugMarkerBeginEXT);
    Load_Device_Function(vkCmdDebugMarkerEndEXT);
    Load_Device_Function(vkCmdDebugMarkerInsertEXT);
    Load_Device_Function(vkCmdBindTransformFeedbackBuffersEXT);
    Load_Device_Function(vkCmdBeginTransformFeedbackEXT);
    Load_Device_Function(vkCmdEndTransformFeedbackEXT);
    Load_Device_Function(vkCmdBeginQueryIndexedEXT);
    Load_Device_Function(vkCmdEndQueryIndexedEXT);
    Load_Device_Function(vkCmdDrawIndirectByteCountEXT);
    Load_Device_Function(vkGetImageViewHandleNVX);
    Load_Device_Function(vkGetImageViewAddressNVX);
    Load_Device_Function(vkCmdDrawIndirectCountAMD);
    Load_Device_Function(vkCmdDrawIndexedIndirectCountAMD);
    Load_Device_Function(vkGetShaderInfoAMD);
    Load_Device_Function(vkGetPhysicalDeviceExternalImageFormatPropertiesNV);
    Load_Device_Function(vkCmdBeginConditionalRenderingEXT);
    Load_Device_Function(vkCmdEndConditionalRenderingEXT);
    Load_Device_Function(vkCmdSetViewportWScalingNV);
    Load_Device_Function(vkReleaseDisplayEXT);
    Load_Device_Function(vkGetPhysicalDeviceSurfaceCapabilities2EXT);
    Load_Device_Function(vkDisplayPowerControlEXT);
    Load_Device_Function(vkRegisterDeviceEventEXT);
    Load_Device_Function(vkRegisterDisplayEventEXT);
    Load_Device_Function(vkGetSwapchainCounterEXT);
    Load_Device_Function(vkGetRefreshCycleDurationGOOGLE);
    Load_Device_Function(vkGetPastPresentationTimingGOOGLE);
    Load_Device_Function(vkCmdSetDiscardRectangleEXT);
    Load_Device_Function(vkSetHdrMetadataEXT);
    Load_Device_Function(vkDebugUtilsMessengerCallbackEXT);
    Load_Device_Function(vkSetDebugUtilsObjectNameEXT);
    Load_Device_Function(vkSetDebugUtilsObjectTagEXT);
    Load_Device_Function(vkQueueBeginDebugUtilsLabelEXT);
    Load_Device_Function(vkQueueEndDebugUtilsLabelEXT);
    Load_Device_Function(vkQueueInsertDebugUtilsLabelEXT);
    Load_Device_Function(vkCmdBeginDebugUtilsLabelEXT);
    Load_Device_Function(vkCmdEndDebugUtilsLabelEXT);
    Load_Device_Function(vkCmdInsertDebugUtilsLabelEXT);
    Load_Device_Function(vkCreateDebugUtilsMessengerEXT);
    Load_Device_Function(vkDestroyDebugUtilsMessengerEXT);
    Load_Device_Function(vkSubmitDebugUtilsMessageEXT);
    Load_Device_Function(vkCmdSetSampleLocationsEXT);
    Load_Device_Function(vkGetPhysicalDeviceMultisamplePropertiesEXT);
    Load_Device_Function(vkGetImageDrmFormatModifierPropertiesEXT);
    Load_Device_Function(vkCreateValidationCacheEXT);
    Load_Device_Function(vkDestroyValidationCacheEXT);
    Load_Device_Function(vkMergeValidationCachesEXT);
    Load_Device_Function(vkGetValidationCacheDataEXT);
    Load_Device_Function(vkCmdBindShadingRateImageNV);
    Load_Device_Function(vkCmdSetViewportShadingRatePaletteNV);
    Load_Device_Function(vkCmdSetCoarseSampleOrderNV);
    Load_Device_Function(vkCreateAccelerationStructureNV);
    Load_Device_Function(vkDestroyAccelerationStructureKHR);
    Load_Device_Function(vkDestroyAccelerationStructureNV);
    Load_Device_Function(vkGetAccelerationStructureMemoryRequirementsNV);
    Load_Device_Function(vkBindAccelerationStructureMemoryKHR);
    Load_Device_Function(vkBindAccelerationStructureMemoryNV);
    Load_Device_Function(vkCmdBuildAccelerationStructureNV);
    Load_Device_Function(vkCmdCopyAccelerationStructureNV);
    Load_Device_Function(vkCmdTraceRaysNV);
    Load_Device_Function(vkCreateRayTracingPipelinesNV);
    Load_Device_Function(vkGetRayTracingShaderGroupHandlesKHR);
    Load_Device_Function(vkGetRayTracingShaderGroupHandlesNV);
    Load_Device_Function(vkGetAccelerationStructureHandleNV);
    Load_Device_Function(vkCmdWriteAccelerationStructuresPropertiesKHR);
    Load_Device_Function(vkCmdWriteAccelerationStructuresPropertiesNV);
    Load_Device_Function(vkCompileDeferredNV);
    Load_Device_Function(vkGetMemoryHostPointerPropertiesEXT);
    Load_Device_Function(vkCmdWriteBufferMarkerAMD);
    Load_Device_Function(vkGetPhysicalDeviceCalibrateableTimeDomainsEXT);
    Load_Device_Function(vkGetCalibratedTimestampsEXT);
    Load_Device_Function(vkCmdDrawMeshTasksNV);
    Load_Device_Function(vkCmdDrawMeshTasksIndirectNV);
    Load_Device_Function(vkCmdDrawMeshTasksIndirectCountNV);
    Load_Device_Function(vkCmdSetExclusiveScissorNV);
    Load_Device_Function(vkCmdSetCheckpointNV);
    Load_Device_Function(vkGetQueueCheckpointDataNV);
    Load_Device_Function(vkInitializePerformanceApiINTEL);
    Load_Device_Function(vkUninitializePerformanceApiINTEL);
    Load_Device_Function(vkCmdSetPerformanceMarkerINTEL);
    Load_Device_Function(vkCmdSetPerformanceStreamMarkerINTEL);
    Load_Device_Function(vkCmdSetPerformanceOverrideINTEL);
    Load_Device_Function(vkAcquirePerformanceConfigurationINTEL);
    Load_Device_Function(vkReleasePerformanceConfigurationINTEL);
    Load_Device_Function(vkQueueSetPerformanceConfigurationINTEL);
    Load_Device_Function(vkGetPerformanceParameterINTEL);
    Load_Device_Function(vkSetLocalDimmingAMD);
    Load_Device_Function(vkGetBufferDeviceAddressEXT);
    Load_Device_Function(vkGetPhysicalDeviceToolPropertiesEXT);
    Load_Device_Function(vkGetPhysicalDeviceCooperativeMatrixPropertiesNV);
    Load_Device_Function(vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV);
    Load_Device_Function(vkCreateHeadlessSurfaceEXT);
    Load_Device_Function(vkCmdSetLineStippleEXT);
    Load_Device_Function(vkResetQueryPoolEXT);
    Load_Device_Function(vkGetGeneratedCommandsMemoryRequirementsNV);
    Load_Device_Function(vkCmdPreprocessGeneratedCommandsNV);
    Load_Device_Function(vkCmdExecuteGeneratedCommandsNV);
    Load_Device_Function(vkCmdBindPipelineShaderGroupNV);
    Load_Device_Function(vkCreateIndirectCommandsLayoutNV);
    Load_Device_Function(vkDestroyIndirectCommandsLayoutNV);
    Load_Device_Function(vkCreatePrivateDataSlotEXT);
    Load_Device_Function(vkDestroyPrivateDataSlotEXT);
    Load_Device_Function(vkSetPrivateDataEXT);
    Load_Device_Function(vkGetPrivateDataEXT);
}


#define Vulkan_Function_Dec(fn) PFN_##fn fn;

Vulkan_Function_Dec(vkAllocationFunction);
Vulkan_Function_Dec(vkReallocationFunction);
Vulkan_Function_Dec(vkFreeFunction);
Vulkan_Function_Dec(vkInternalAllocationNotification);
Vulkan_Function_Dec(vkInternalFreeNotification);
Vulkan_Function_Dec(vkVoidFunction);
Vulkan_Function_Dec(vkCreateInstance);
Vulkan_Function_Dec(vkDestroyInstance);
Vulkan_Function_Dec(vkEnumeratePhysicalDevices);
Vulkan_Function_Dec(vkGetPhysicalDeviceFeatures);
Vulkan_Function_Dec(vkGetPhysicalDeviceFormatProperties);
Vulkan_Function_Dec(vkGetPhysicalDeviceImageFormatProperties);
Vulkan_Function_Dec(vkGetPhysicalDeviceProperties);
Vulkan_Function_Dec(vkGetPhysicalDeviceQueueFamilyProperties);
Vulkan_Function_Dec(vkGetPhysicalDeviceMemoryProperties);
Vulkan_Function_Dec(vkGetInstanceProcAddr);
Vulkan_Function_Dec(vkGetDeviceProcAddr);
Vulkan_Function_Dec(vkCreateDevice);
Vulkan_Function_Dec(vkDestroyDevice);
Vulkan_Function_Dec(vkEnumerateInstanceExtensionProperties);
Vulkan_Function_Dec(vkEnumerateDeviceExtensionProperties);
Vulkan_Function_Dec(vkEnumerateInstanceLayerProperties);
Vulkan_Function_Dec(vkEnumerateDeviceLayerProperties);
Vulkan_Function_Dec(vkGetDeviceQueue);
Vulkan_Function_Dec(vkQueueSubmit);
Vulkan_Function_Dec(vkQueueWaitIdle);
Vulkan_Function_Dec(vkDeviceWaitIdle);
Vulkan_Function_Dec(vkAllocateMemory);
Vulkan_Function_Dec(vkFreeMemory);
Vulkan_Function_Dec(vkMapMemory);
Vulkan_Function_Dec(vkUnmapMemory);
Vulkan_Function_Dec(vkFlushMappedMemoryRanges);
Vulkan_Function_Dec(vkInvalidateMappedMemoryRanges);
Vulkan_Function_Dec(vkGetDeviceMemoryCommitment);
Vulkan_Function_Dec(vkBindBufferMemory);
Vulkan_Function_Dec(vkBindImageMemory);
Vulkan_Function_Dec(vkGetBufferMemoryRequirements);
Vulkan_Function_Dec(vkGetImageMemoryRequirements);
Vulkan_Function_Dec(vkGetImageSparseMemoryRequirements);
Vulkan_Function_Dec(vkGetPhysicalDeviceSparseImageFormatProperties);
Vulkan_Function_Dec(vkQueueBindSparse);
Vulkan_Function_Dec(vkCreateFence);
Vulkan_Function_Dec(vkDestroyFence);
Vulkan_Function_Dec(vkResetFences);
Vulkan_Function_Dec(vkGetFenceStatus);
Vulkan_Function_Dec(vkWaitForFences);
Vulkan_Function_Dec(vkCreateSemaphore);
Vulkan_Function_Dec(vkDestroySemaphore);
Vulkan_Function_Dec(vkCreateEvent);
Vulkan_Function_Dec(vkDestroyEvent);
Vulkan_Function_Dec(vkGetEventStatus);
Vulkan_Function_Dec(vkSetEvent);
Vulkan_Function_Dec(vkResetEvent);
Vulkan_Function_Dec(vkCreateQueryPool);
Vulkan_Function_Dec(vkDestroyQueryPool);
Vulkan_Function_Dec(vkGetQueryPoolResults);
Vulkan_Function_Dec(vkCreateBuffer);
Vulkan_Function_Dec(vkDestroyBuffer);
Vulkan_Function_Dec(vkCreateBufferView);
Vulkan_Function_Dec(vkDestroyBufferView);
Vulkan_Function_Dec(vkCreateImage);
Vulkan_Function_Dec(vkDestroyImage);
Vulkan_Function_Dec(vkGetImageSubresourceLayout);
Vulkan_Function_Dec(vkCreateImageView);
Vulkan_Function_Dec(vkDestroyImageView);
Vulkan_Function_Dec(vkCreateShaderModule);
Vulkan_Function_Dec(vkDestroyShaderModule);
Vulkan_Function_Dec(vkCreatePipelineCache);
Vulkan_Function_Dec(vkDestroyPipelineCache);
Vulkan_Function_Dec(vkGetPipelineCacheData);
Vulkan_Function_Dec(vkMergePipelineCaches);
Vulkan_Function_Dec(vkCreateGraphicsPipelines);
Vulkan_Function_Dec(vkCreateComputePipelines);
Vulkan_Function_Dec(vkDestroyPipeline);
Vulkan_Function_Dec(vkCreatePipelineLayout);
Vulkan_Function_Dec(vkDestroyPipelineLayout);
Vulkan_Function_Dec(vkCreateSampler);
Vulkan_Function_Dec(vkDestroySampler);
Vulkan_Function_Dec(vkCreateDescriptorSetLayout);
Vulkan_Function_Dec(vkDestroyDescriptorSetLayout);
Vulkan_Function_Dec(vkCreateDescriptorPool);
Vulkan_Function_Dec(vkDestroyDescriptorPool);
Vulkan_Function_Dec(vkResetDescriptorPool);
Vulkan_Function_Dec(vkAllocateDescriptorSets);
Vulkan_Function_Dec(vkFreeDescriptorSets);
Vulkan_Function_Dec(vkUpdateDescriptorSets);
Vulkan_Function_Dec(vkCreateFramebuffer);
Vulkan_Function_Dec(vkDestroyFramebuffer);
Vulkan_Function_Dec(vkCreateRenderPass);
Vulkan_Function_Dec(vkDestroyRenderPass);
Vulkan_Function_Dec(vkGetRenderAreaGranularity);
Vulkan_Function_Dec(vkCreateCommandPool);
Vulkan_Function_Dec(vkDestroyCommandPool);
Vulkan_Function_Dec(vkResetCommandPool);
Vulkan_Function_Dec(vkAllocateCommandBuffers);
Vulkan_Function_Dec(vkFreeCommandBuffers);
Vulkan_Function_Dec(vkBeginCommandBuffer);
Vulkan_Function_Dec(vkEndCommandBuffer);
Vulkan_Function_Dec(vkResetCommandBuffer);
Vulkan_Function_Dec(vkCmdBindPipeline);
Vulkan_Function_Dec(vkCmdSetViewport);
Vulkan_Function_Dec(vkCmdSetScissor);
Vulkan_Function_Dec(vkCmdSetLineWidth);
Vulkan_Function_Dec(vkCmdSetDepthBias);
Vulkan_Function_Dec(vkCmdSetBlendConstants);
Vulkan_Function_Dec(vkCmdSetDepthBounds);
Vulkan_Function_Dec(vkCmdSetStencilCompareMask);
Vulkan_Function_Dec(vkCmdSetStencilWriteMask);
Vulkan_Function_Dec(vkCmdSetStencilReference);
Vulkan_Function_Dec(vkCmdBindDescriptorSets);
Vulkan_Function_Dec(vkCmdBindIndexBuffer);
Vulkan_Function_Dec(vkCmdBindVertexBuffers);
Vulkan_Function_Dec(vkCmdDraw);
Vulkan_Function_Dec(vkCmdDrawIndexed);
Vulkan_Function_Dec(vkCmdDrawIndirect);
Vulkan_Function_Dec(vkCmdDrawIndexedIndirect);
Vulkan_Function_Dec(vkCmdDispatch);
Vulkan_Function_Dec(vkCmdDispatchIndirect);
Vulkan_Function_Dec(vkCmdCopyBuffer);
Vulkan_Function_Dec(vkCmdCopyImage);
Vulkan_Function_Dec(vkCmdBlitImage);
Vulkan_Function_Dec(vkCmdCopyBufferToImage);
Vulkan_Function_Dec(vkCmdCopyImageToBuffer);
Vulkan_Function_Dec(vkCmdUpdateBuffer);
Vulkan_Function_Dec(vkCmdFillBuffer);
Vulkan_Function_Dec(vkCmdClearColorImage);
Vulkan_Function_Dec(vkCmdClearDepthStencilImage);
Vulkan_Function_Dec(vkCmdClearAttachments);
Vulkan_Function_Dec(vkCmdResolveImage);
Vulkan_Function_Dec(vkCmdSetEvent);
Vulkan_Function_Dec(vkCmdResetEvent);
Vulkan_Function_Dec(vkCmdWaitEvents);
Vulkan_Function_Dec(vkCmdPipelineBarrier);
Vulkan_Function_Dec(vkCmdBeginQuery);
Vulkan_Function_Dec(vkCmdEndQuery);
Vulkan_Function_Dec(vkCmdResetQueryPool);
Vulkan_Function_Dec(vkCmdWriteTimestamp);
Vulkan_Function_Dec(vkCmdCopyQueryPoolResults);
Vulkan_Function_Dec(vkCmdPushConstants);
Vulkan_Function_Dec(vkCmdBeginRenderPass);
Vulkan_Function_Dec(vkCmdNextSubpass);
Vulkan_Function_Dec(vkCmdEndRenderPass);
Vulkan_Function_Dec(vkCmdExecuteCommands);
Vulkan_Function_Dec(vkEnumerateInstanceVersion);
Vulkan_Function_Dec(vkBindBufferMemory2);
Vulkan_Function_Dec(vkBindImageMemory2);
Vulkan_Function_Dec(vkGetDeviceGroupPeerMemoryFeatures);
Vulkan_Function_Dec(vkCmdSetDeviceMask);
Vulkan_Function_Dec(vkCmdDispatchBase);
Vulkan_Function_Dec(vkEnumeratePhysicalDeviceGroups);
Vulkan_Function_Dec(vkGetImageMemoryRequirements2);
Vulkan_Function_Dec(vkGetBufferMemoryRequirements2);
Vulkan_Function_Dec(vkGetImageSparseMemoryRequirements2);
Vulkan_Function_Dec(vkGetPhysicalDeviceFeatures2);
Vulkan_Function_Dec(vkGetPhysicalDeviceProperties2);
Vulkan_Function_Dec(vkGetPhysicalDeviceFormatProperties2);
Vulkan_Function_Dec(vkGetPhysicalDeviceImageFormatProperties2);
Vulkan_Function_Dec(vkGetPhysicalDeviceQueueFamilyProperties2);
Vulkan_Function_Dec(vkGetPhysicalDeviceMemoryProperties2);
Vulkan_Function_Dec(vkGetPhysicalDeviceSparseImageFormatProperties2);
Vulkan_Function_Dec(vkTrimCommandPool);
Vulkan_Function_Dec(vkGetDeviceQueue2);
Vulkan_Function_Dec(vkCreateSamplerYcbcrConversion);
Vulkan_Function_Dec(vkDestroySamplerYcbcrConversion);
Vulkan_Function_Dec(vkCreateDescriptorUpdateTemplate);
Vulkan_Function_Dec(vkDestroyDescriptorUpdateTemplate);
Vulkan_Function_Dec(vkUpdateDescriptorSetWithTemplate);
Vulkan_Function_Dec(vkGetPhysicalDeviceExternalBufferProperties);
Vulkan_Function_Dec(vkGetPhysicalDeviceExternalFenceProperties);
Vulkan_Function_Dec(vkGetPhysicalDeviceExternalSemaphoreProperties);
Vulkan_Function_Dec(vkGetDescriptorSetLayoutSupport);
Vulkan_Function_Dec(vkCmdDrawIndirectCount);
Vulkan_Function_Dec(vkCmdDrawIndexedIndirectCount);
Vulkan_Function_Dec(vkCreateRenderPass2);
Vulkan_Function_Dec(vkCmdBeginRenderPass2);
Vulkan_Function_Dec(vkCmdNextSubpass2);
Vulkan_Function_Dec(vkCmdEndRenderPass2);
Vulkan_Function_Dec(vkResetQueryPool);
Vulkan_Function_Dec(vkGetSemaphoreCounterValue);
Vulkan_Function_Dec(vkWaitSemaphores);
Vulkan_Function_Dec(vkSignalSemaphore);
Vulkan_Function_Dec(vkGetBufferDeviceAddress);
Vulkan_Function_Dec(vkGetBufferOpaqueCaptureAddress);
Vulkan_Function_Dec(vkGetDeviceMemoryOpaqueCaptureAddress);
Vulkan_Function_Dec(vkDestroySurfaceKHR);
Vulkan_Function_Dec(vkGetPhysicalDeviceSurfaceSupportKHR);
Vulkan_Function_Dec(vkGetPhysicalDeviceSurfaceCapabilitiesKHR);
Vulkan_Function_Dec(vkGetPhysicalDeviceSurfaceFormatsKHR);
Vulkan_Function_Dec(vkGetPhysicalDeviceSurfacePresentModesKHR);
Vulkan_Function_Dec(vkCreateSwapchainKHR);
Vulkan_Function_Dec(vkDestroySwapchainKHR);
Vulkan_Function_Dec(vkGetSwapchainImagesKHR);
Vulkan_Function_Dec(vkAcquireNextImageKHR);
Vulkan_Function_Dec(vkQueuePresentKHR);
Vulkan_Function_Dec(vkGetDeviceGroupPresentCapabilitiesKHR);
Vulkan_Function_Dec(vkGetDeviceGroupSurfacePresentModesKHR);
Vulkan_Function_Dec(vkGetPhysicalDevicePresentRectanglesKHR);
Vulkan_Function_Dec(vkAcquireNextImage2KHR);
Vulkan_Function_Dec(vkGetPhysicalDeviceDisplayPropertiesKHR);
Vulkan_Function_Dec(vkGetPhysicalDeviceDisplayPlanePropertiesKHR);
Vulkan_Function_Dec(vkGetDisplayPlaneSupportedDisplaysKHR);
Vulkan_Function_Dec(vkGetDisplayModePropertiesKHR);
Vulkan_Function_Dec(vkCreateDisplayModeKHR);
Vulkan_Function_Dec(vkGetDisplayPlaneCapabilitiesKHR);
Vulkan_Function_Dec(vkCreateDisplayPlaneSurfaceKHR);
Vulkan_Function_Dec(vkCreateSharedSwapchainsKHR);
Vulkan_Function_Dec(vkGetPhysicalDeviceFeatures2KHR);
Vulkan_Function_Dec(vkGetPhysicalDeviceProperties2KHR);
Vulkan_Function_Dec(vkGetPhysicalDeviceFormatProperties2KHR);
Vulkan_Function_Dec(vkGetPhysicalDeviceImageFormatProperties2KHR);
Vulkan_Function_Dec(vkGetPhysicalDeviceQueueFamilyProperties2KHR);
Vulkan_Function_Dec(vkGetPhysicalDeviceMemoryProperties2KHR);
Vulkan_Function_Dec(vkGetPhysicalDeviceSparseImageFormatProperties2KHR);
Vulkan_Function_Dec(vkGetDeviceGroupPeerMemoryFeaturesKHR);
Vulkan_Function_Dec(vkCmdSetDeviceMaskKHR);
Vulkan_Function_Dec(vkCmdDispatchBaseKHR);
Vulkan_Function_Dec(vkTrimCommandPoolKHR);
Vulkan_Function_Dec(vkEnumeratePhysicalDeviceGroupsKHR);
Vulkan_Function_Dec(vkGetPhysicalDeviceExternalBufferPropertiesKHR);
Vulkan_Function_Dec(vkGetMemoryFdKHR);
Vulkan_Function_Dec(vkGetMemoryFdPropertiesKHR);
Vulkan_Function_Dec(vkGetPhysicalDeviceExternalSemaphorePropertiesKHR);
Vulkan_Function_Dec(vkImportSemaphoreFdKHR);
Vulkan_Function_Dec(vkGetSemaphoreFdKHR);
Vulkan_Function_Dec(vkCmdPushDescriptorSetKHR);
Vulkan_Function_Dec(vkCmdPushDescriptorSetWithTemplateKHR);
Vulkan_Function_Dec(vkCreateDescriptorUpdateTemplateKHR);
Vulkan_Function_Dec(vkDestroyDescriptorUpdateTemplateKHR);
Vulkan_Function_Dec(vkUpdateDescriptorSetWithTemplateKHR);
Vulkan_Function_Dec(vkCreateRenderPass2KHR);
Vulkan_Function_Dec(vkCmdBeginRenderPass2KHR);
Vulkan_Function_Dec(vkCmdNextSubpass2KHR);
Vulkan_Function_Dec(vkCmdEndRenderPass2KHR);
Vulkan_Function_Dec(vkGetSwapchainStatusKHR);
Vulkan_Function_Dec(vkGetPhysicalDeviceExternalFencePropertiesKHR);
Vulkan_Function_Dec(vkImportFenceFdKHR);
Vulkan_Function_Dec(vkGetFenceFdKHR);
Vulkan_Function_Dec(vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR);
Vulkan_Function_Dec(vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR);
Vulkan_Function_Dec(vkAcquireProfilingLockKHR);
Vulkan_Function_Dec(vkReleaseProfilingLockKHR);
Vulkan_Function_Dec(vkGetPhysicalDeviceSurfaceCapabilities2KHR);
Vulkan_Function_Dec(vkGetPhysicalDeviceSurfaceFormats2KHR);
Vulkan_Function_Dec(vkGetPhysicalDeviceDisplayProperties2KHR);
Vulkan_Function_Dec(vkGetPhysicalDeviceDisplayPlaneProperties2KHR);
Vulkan_Function_Dec(vkGetDisplayModeProperties2KHR);
Vulkan_Function_Dec(vkGetDisplayPlaneCapabilities2KHR);
Vulkan_Function_Dec(vkGetImageMemoryRequirements2KHR);
Vulkan_Function_Dec(vkGetBufferMemoryRequirements2KHR);
Vulkan_Function_Dec(vkGetImageSparseMemoryRequirements2KHR);
Vulkan_Function_Dec(vkCreateSamplerYcbcrConversionKHR);
Vulkan_Function_Dec(vkDestroySamplerYcbcrConversionKHR);
Vulkan_Function_Dec(vkBindBufferMemory2KHR);
Vulkan_Function_Dec(vkBindImageMemory2KHR);
Vulkan_Function_Dec(vkGetDescriptorSetLayoutSupportKHR);
Vulkan_Function_Dec(vkCmdDrawIndirectCountKHR);
Vulkan_Function_Dec(vkCmdDrawIndexedIndirectCountKHR);
Vulkan_Function_Dec(vkGetSemaphoreCounterValueKHR);
Vulkan_Function_Dec(vkWaitSemaphoresKHR);
Vulkan_Function_Dec(vkSignalSemaphoreKHR);
Vulkan_Function_Dec(vkGetBufferDeviceAddressKHR);
Vulkan_Function_Dec(vkGetBufferOpaqueCaptureAddressKHR);
Vulkan_Function_Dec(vkGetDeviceMemoryOpaqueCaptureAddressKHR);
Vulkan_Function_Dec(vkGetPipelineExecutablePropertiesKHR);
Vulkan_Function_Dec(vkGetPipelineExecutableStatisticsKHR);
Vulkan_Function_Dec(vkGetPipelineExecutableInternalRepresentationsKHR);
Vulkan_Function_Dec(vkDebugReportCallbackEXT);
Vulkan_Function_Dec(vkCreateDebugReportCallbackEXT);
Vulkan_Function_Dec(vkDestroyDebugReportCallbackEXT);
Vulkan_Function_Dec(vkDebugReportMessageEXT);
Vulkan_Function_Dec(vkDebugMarkerSetObjectTagEXT);
Vulkan_Function_Dec(vkDebugMarkerSetObjectNameEXT);
Vulkan_Function_Dec(vkCmdDebugMarkerBeginEXT);
Vulkan_Function_Dec(vkCmdDebugMarkerEndEXT);
Vulkan_Function_Dec(vkCmdDebugMarkerInsertEXT);
Vulkan_Function_Dec(vkCmdBindTransformFeedbackBuffersEXT);
Vulkan_Function_Dec(vkCmdBeginTransformFeedbackEXT);
Vulkan_Function_Dec(vkCmdEndTransformFeedbackEXT);
Vulkan_Function_Dec(vkCmdBeginQueryIndexedEXT);
Vulkan_Function_Dec(vkCmdEndQueryIndexedEXT);
Vulkan_Function_Dec(vkCmdDrawIndirectByteCountEXT);
Vulkan_Function_Dec(vkGetImageViewHandleNVX);
Vulkan_Function_Dec(vkGetImageViewAddressNVX);
Vulkan_Function_Dec(vkCmdDrawIndirectCountAMD);
Vulkan_Function_Dec(vkCmdDrawIndexedIndirectCountAMD);
Vulkan_Function_Dec(vkGetShaderInfoAMD);
Vulkan_Function_Dec(vkGetPhysicalDeviceExternalImageFormatPropertiesNV);
Vulkan_Function_Dec(vkCmdBeginConditionalRenderingEXT);
Vulkan_Function_Dec(vkCmdEndConditionalRenderingEXT);
Vulkan_Function_Dec(vkCmdSetViewportWScalingNV);
Vulkan_Function_Dec(vkReleaseDisplayEXT);
Vulkan_Function_Dec(vkGetPhysicalDeviceSurfaceCapabilities2EXT);
Vulkan_Function_Dec(vkDisplayPowerControlEXT);
Vulkan_Function_Dec(vkRegisterDeviceEventEXT);
Vulkan_Function_Dec(vkRegisterDisplayEventEXT);
Vulkan_Function_Dec(vkGetSwapchainCounterEXT);
Vulkan_Function_Dec(vkGetRefreshCycleDurationGOOGLE);
Vulkan_Function_Dec(vkGetPastPresentationTimingGOOGLE);
Vulkan_Function_Dec(vkCmdSetDiscardRectangleEXT);
Vulkan_Function_Dec(vkSetHdrMetadataEXT);
Vulkan_Function_Dec(vkDebugUtilsMessengerCallbackEXT);
Vulkan_Function_Dec(vkSetDebugUtilsObjectNameEXT);
Vulkan_Function_Dec(vkSetDebugUtilsObjectTagEXT);
Vulkan_Function_Dec(vkQueueBeginDebugUtilsLabelEXT);
Vulkan_Function_Dec(vkQueueEndDebugUtilsLabelEXT);
Vulkan_Function_Dec(vkQueueInsertDebugUtilsLabelEXT);
Vulkan_Function_Dec(vkCmdBeginDebugUtilsLabelEXT);
Vulkan_Function_Dec(vkCmdEndDebugUtilsLabelEXT);
Vulkan_Function_Dec(vkCmdInsertDebugUtilsLabelEXT);
Vulkan_Function_Dec(vkCreateDebugUtilsMessengerEXT);
Vulkan_Function_Dec(vkDestroyDebugUtilsMessengerEXT);
Vulkan_Function_Dec(vkSubmitDebugUtilsMessageEXT);
Vulkan_Function_Dec(vkCmdSetSampleLocationsEXT);
Vulkan_Function_Dec(vkGetPhysicalDeviceMultisamplePropertiesEXT);
Vulkan_Function_Dec(vkGetImageDrmFormatModifierPropertiesEXT);
Vulkan_Function_Dec(vkCreateValidationCacheEXT);
Vulkan_Function_Dec(vkDestroyValidationCacheEXT);
Vulkan_Function_Dec(vkMergeValidationCachesEXT);
Vulkan_Function_Dec(vkGetValidationCacheDataEXT);
Vulkan_Function_Dec(vkCmdBindShadingRateImageNV);
Vulkan_Function_Dec(vkCmdSetViewportShadingRatePaletteNV);
Vulkan_Function_Dec(vkCmdSetCoarseSampleOrderNV);
Vulkan_Function_Dec(vkCreateAccelerationStructureNV);
Vulkan_Function_Dec(vkDestroyAccelerationStructureKHR);
Vulkan_Function_Dec(vkDestroyAccelerationStructureNV);
Vulkan_Function_Dec(vkGetAccelerationStructureMemoryRequirementsNV);
Vulkan_Function_Dec(vkBindAccelerationStructureMemoryKHR);
Vulkan_Function_Dec(vkBindAccelerationStructureMemoryNV);
Vulkan_Function_Dec(vkCmdBuildAccelerationStructureNV);
Vulkan_Function_Dec(vkCmdCopyAccelerationStructureNV);
Vulkan_Function_Dec(vkCmdTraceRaysNV);
Vulkan_Function_Dec(vkCreateRayTracingPipelinesNV);
Vulkan_Function_Dec(vkGetRayTracingShaderGroupHandlesKHR);
Vulkan_Function_Dec(vkGetRayTracingShaderGroupHandlesNV);
Vulkan_Function_Dec(vkGetAccelerationStructureHandleNV);
Vulkan_Function_Dec(vkCmdWriteAccelerationStructuresPropertiesKHR);
Vulkan_Function_Dec(vkCmdWriteAccelerationStructuresPropertiesNV);
Vulkan_Function_Dec(vkCompileDeferredNV);
Vulkan_Function_Dec(vkGetMemoryHostPointerPropertiesEXT);
Vulkan_Function_Dec(vkCmdWriteBufferMarkerAMD);
Vulkan_Function_Dec(vkGetPhysicalDeviceCalibrateableTimeDomainsEXT);
Vulkan_Function_Dec(vkGetCalibratedTimestampsEXT);
Vulkan_Function_Dec(vkCmdDrawMeshTasksNV);
Vulkan_Function_Dec(vkCmdDrawMeshTasksIndirectNV);
Vulkan_Function_Dec(vkCmdDrawMeshTasksIndirectCountNV);
Vulkan_Function_Dec(vkCmdSetExclusiveScissorNV);
Vulkan_Function_Dec(vkCmdSetCheckpointNV);
Vulkan_Function_Dec(vkGetQueueCheckpointDataNV);
Vulkan_Function_Dec(vkInitializePerformanceApiINTEL);
Vulkan_Function_Dec(vkUninitializePerformanceApiINTEL);
Vulkan_Function_Dec(vkCmdSetPerformanceMarkerINTEL);
Vulkan_Function_Dec(vkCmdSetPerformanceStreamMarkerINTEL);
Vulkan_Function_Dec(vkCmdSetPerformanceOverrideINTEL);
Vulkan_Function_Dec(vkAcquirePerformanceConfigurationINTEL);
Vulkan_Function_Dec(vkReleasePerformanceConfigurationINTEL);
Vulkan_Function_Dec(vkQueueSetPerformanceConfigurationINTEL);
Vulkan_Function_Dec(vkGetPerformanceParameterINTEL);
Vulkan_Function_Dec(vkSetLocalDimmingAMD);
Vulkan_Function_Dec(vkGetBufferDeviceAddressEXT);
Vulkan_Function_Dec(vkGetPhysicalDeviceToolPropertiesEXT);
Vulkan_Function_Dec(vkGetPhysicalDeviceCooperativeMatrixPropertiesNV);
Vulkan_Function_Dec(vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV);
Vulkan_Function_Dec(vkCreateHeadlessSurfaceEXT);
Vulkan_Function_Dec(vkCmdSetLineStippleEXT);
Vulkan_Function_Dec(vkResetQueryPoolEXT);
Vulkan_Function_Dec(vkGetGeneratedCommandsMemoryRequirementsNV);
Vulkan_Function_Dec(vkCmdPreprocessGeneratedCommandsNV);
Vulkan_Function_Dec(vkCmdExecuteGeneratedCommandsNV);
Vulkan_Function_Dec(vkCmdBindPipelineShaderGroupNV);
Vulkan_Function_Dec(vkCreateIndirectCommandsLayoutNV);
Vulkan_Function_Dec(vkDestroyIndirectCommandsLayoutNV);
Vulkan_Function_Dec(vkCreatePrivateDataSlotEXT);
Vulkan_Function_Dec(vkDestroyPrivateDataSlotEXT);
Vulkan_Function_Dec(vkSetPrivateDataEXT);
Vulkan_Function_Dec(vkGetPrivateDataEXT);

//windows
void* vkCreateWin32SurfaceKHR;
void* vkGetPhysicalDeviceWin32PresentationSupportKHR;
void* vkGetMemoryWin32HandleKHR;
void* vkGetMemoryWin32HandlePropertiesKHR;
void* vkImportSemaphoreWin32HandleKHR;
void* vkGetSemaphoreWin32HandleKHR;
void* vkImportFenceWin32HandleKHR;
void* vkGetFenceWin32HandleKHR;
void* vkGetMemoryWin32HandleNV;
void* vkGetPhysicalDeviceSurfacePresentModes2EXT;
void* vkAcquireFullScreenExclusiveModeEXT;
void* vkReleaseFullScreenExclusiveModeEXT;
void* vkGetDeviceGroupSurfacePresentModes2EXT;

//x11
void* vkCreateXlibSurfaceKHR;
void* vkGetPhysicalDeviceXlibPresentationSupportKHR;

//xcb
void* vkCreateXcbSurfaceKHR;
void* vkGetPhysicalDeviceXcbPresentationSupportKHR;

//wayland
void* vkCreateWaylandSurfaceKHR;
void* vkGetPhysicalDeviceWaylandPresentationSupportKHR;

//android
void* vkCreateAndroidSurfaceKHR;
void* vkGetAndroidHardwareBufferPropertiesANDROID;
void* vkGetMemoryAndroidHardwareBufferANDROID;