1 /* This file is part of volk library; see volk.h for version/license details */
2 #include "volk.h"
3 
4 #ifdef _WIN32
5 #	include <windows.h>
6 #else
7 #	include <dlfcn.h>
8 #endif
9 
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
13 
14 static void volkGenLoadLoader(void* context, PFN_vkVoidFunction (*load)(void*, const char*));
15 static void volkGenLoadInstance(void* context, PFN_vkVoidFunction (*load)(void*, const char*));
16 static void volkGenLoadDevice(void* context, PFN_vkVoidFunction (*load)(void*, const char*));
17 static void volkGenLoadDeviceTable(struct VolkDeviceTable* table, void* context, PFN_vkVoidFunction (*load)(void*, const char*));
18 
vkGetInstanceProcAddrStub(void * context,const char * name)19 static PFN_vkVoidFunction vkGetInstanceProcAddrStub(void* context, const char* name)
20 {
21 	return vkGetInstanceProcAddr((VkInstance)context, name);
22 }
23 
vkGetDeviceProcAddrStub(void * context,const char * name)24 static PFN_vkVoidFunction vkGetDeviceProcAddrStub(void* context, const char* name)
25 {
26 	return vkGetDeviceProcAddr((VkDevice)context, name);
27 }
28 
volkInitialize(void)29 VkResult volkInitialize(void)
30 {
31 #if defined(_WIN32)
32 	HMODULE module = LoadLibraryA("vulkan-1.dll");
33 	if (!module)
34 		return VK_ERROR_INITIALIZATION_FAILED;
35 
36 	vkGetInstanceProcAddr = (PFN_vkGetInstanceProcAddr)GetProcAddress(module, "vkGetInstanceProcAddr");
37 #elif defined(__APPLE__)
38 	void* module = dlopen("libvulkan.dylib", RTLD_NOW | RTLD_LOCAL);
39 	if (!module)
40 		module = dlopen("libvulkan.dylib.1", RTLD_NOW | RTLD_LOCAL);
41 	if (!module)
42 		module = dlopen("libMoltenVK.dylib", RTLD_NOW | RTLD_LOCAL);
43 	if (!module)
44 		return VK_ERROR_INITIALIZATION_FAILED;
45 
46 	vkGetInstanceProcAddr = (PFN_vkGetInstanceProcAddr)dlsym(module, "vkGetInstanceProcAddr");
47 #else
48 	void* module = dlopen("libvulkan.so", RTLD_NOW | RTLD_LOCAL);
49 	if (!module)
50 		module = dlopen("libvulkan.so.1", RTLD_NOW | RTLD_LOCAL);
51 	if (!module)
52 		return VK_ERROR_INITIALIZATION_FAILED;
53 
54 	vkGetInstanceProcAddr = (PFN_vkGetInstanceProcAddr)dlsym(module, "vkGetInstanceProcAddr");
55 #endif
56 
57 	volkGenLoadLoader(NULL, vkGetInstanceProcAddrStub);
58 
59 	return VK_SUCCESS;
60 }
61 
volkInitializeCustom(PFN_vkGetInstanceProcAddr handler)62 void volkInitializeCustom(PFN_vkGetInstanceProcAddr handler)
63 {
64 	vkGetInstanceProcAddr = handler;
65 
66 	volkGenLoadLoader(NULL, vkGetInstanceProcAddrStub);
67 }
68 
volkGetInstanceVersion(void)69 uint32_t volkGetInstanceVersion(void)
70 {
71 #if defined(VK_VERSION_1_1)
72 	uint32_t apiVersion = 0;
73 	if (vkEnumerateInstanceVersion && vkEnumerateInstanceVersion(&apiVersion) == VK_SUCCESS)
74 		return apiVersion;
75 #endif
76 
77 	if (vkCreateInstance)
78 		return VK_API_VERSION_1_0;
79 
80 	return 0;
81 }
82 
volkLoadInstance(VkInstance instance)83 void volkLoadInstance(VkInstance instance)
84 {
85 	volkGenLoadInstance(instance, vkGetInstanceProcAddrStub);
86 	volkGenLoadDevice(instance, vkGetInstanceProcAddrStub);
87 }
88 
volkLoadDevice(VkDevice device)89 void volkLoadDevice(VkDevice device)
90 {
91 	volkGenLoadDevice(device, vkGetDeviceProcAddrStub);
92 }
93 
volkLoadDeviceTable(struct VolkDeviceTable * table,VkDevice device)94 void volkLoadDeviceTable(struct VolkDeviceTable* table, VkDevice device)
95 {
96 	volkGenLoadDeviceTable(table, device, vkGetDeviceProcAddrStub);
97 }
98 
volkGenLoadLoader(void * context,PFN_vkVoidFunction (* load)(void *,const char *))99 static void volkGenLoadLoader(void* context, PFN_vkVoidFunction (*load)(void*, const char*))
100 {
101 	/* VOLK_GENERATE_LOAD_LOADER */
102 #if defined(VK_VERSION_1_0)
103 	vkCreateInstance = (PFN_vkCreateInstance)load(context, "vkCreateInstance");
104 	vkEnumerateInstanceExtensionProperties = (PFN_vkEnumerateInstanceExtensionProperties)load(context, "vkEnumerateInstanceExtensionProperties");
105 	vkEnumerateInstanceLayerProperties = (PFN_vkEnumerateInstanceLayerProperties)load(context, "vkEnumerateInstanceLayerProperties");
106 #endif /* defined(VK_VERSION_1_0) */
107 #if defined(VK_VERSION_1_1)
108 	vkEnumerateInstanceVersion = (PFN_vkEnumerateInstanceVersion)load(context, "vkEnumerateInstanceVersion");
109 #endif /* defined(VK_VERSION_1_1) */
110 	/* VOLK_GENERATE_LOAD_LOADER */
111 }
112 
volkGenLoadInstance(void * context,PFN_vkVoidFunction (* load)(void *,const char *))113 static void volkGenLoadInstance(void* context, PFN_vkVoidFunction (*load)(void*, const char*))
114 {
115 	/* VOLK_GENERATE_LOAD_INSTANCE */
116 #if defined(VK_VERSION_1_0)
117 	vkCreateDevice = (PFN_vkCreateDevice)load(context, "vkCreateDevice");
118 	vkDestroyInstance = (PFN_vkDestroyInstance)load(context, "vkDestroyInstance");
119 	vkEnumerateDeviceExtensionProperties = (PFN_vkEnumerateDeviceExtensionProperties)load(context, "vkEnumerateDeviceExtensionProperties");
120 	vkEnumerateDeviceLayerProperties = (PFN_vkEnumerateDeviceLayerProperties)load(context, "vkEnumerateDeviceLayerProperties");
121 	vkEnumeratePhysicalDevices = (PFN_vkEnumeratePhysicalDevices)load(context, "vkEnumeratePhysicalDevices");
122 	vkGetDeviceProcAddr = (PFN_vkGetDeviceProcAddr)load(context, "vkGetDeviceProcAddr");
123 	vkGetPhysicalDeviceFeatures = (PFN_vkGetPhysicalDeviceFeatures)load(context, "vkGetPhysicalDeviceFeatures");
124 	vkGetPhysicalDeviceFormatProperties = (PFN_vkGetPhysicalDeviceFormatProperties)load(context, "vkGetPhysicalDeviceFormatProperties");
125 	vkGetPhysicalDeviceImageFormatProperties = (PFN_vkGetPhysicalDeviceImageFormatProperties)load(context, "vkGetPhysicalDeviceImageFormatProperties");
126 	vkGetPhysicalDeviceMemoryProperties = (PFN_vkGetPhysicalDeviceMemoryProperties)load(context, "vkGetPhysicalDeviceMemoryProperties");
127 	vkGetPhysicalDeviceProperties = (PFN_vkGetPhysicalDeviceProperties)load(context, "vkGetPhysicalDeviceProperties");
128 	vkGetPhysicalDeviceQueueFamilyProperties = (PFN_vkGetPhysicalDeviceQueueFamilyProperties)load(context, "vkGetPhysicalDeviceQueueFamilyProperties");
129 	vkGetPhysicalDeviceSparseImageFormatProperties = (PFN_vkGetPhysicalDeviceSparseImageFormatProperties)load(context, "vkGetPhysicalDeviceSparseImageFormatProperties");
130 #endif /* defined(VK_VERSION_1_0) */
131 #if defined(VK_VERSION_1_1)
132 	vkEnumeratePhysicalDeviceGroups = (PFN_vkEnumeratePhysicalDeviceGroups)load(context, "vkEnumeratePhysicalDeviceGroups");
133 	vkGetPhysicalDeviceExternalBufferProperties = (PFN_vkGetPhysicalDeviceExternalBufferProperties)load(context, "vkGetPhysicalDeviceExternalBufferProperties");
134 	vkGetPhysicalDeviceExternalFenceProperties = (PFN_vkGetPhysicalDeviceExternalFenceProperties)load(context, "vkGetPhysicalDeviceExternalFenceProperties");
135 	vkGetPhysicalDeviceExternalSemaphoreProperties = (PFN_vkGetPhysicalDeviceExternalSemaphoreProperties)load(context, "vkGetPhysicalDeviceExternalSemaphoreProperties");
136 	vkGetPhysicalDeviceFeatures2 = (PFN_vkGetPhysicalDeviceFeatures2)load(context, "vkGetPhysicalDeviceFeatures2");
137 	vkGetPhysicalDeviceFormatProperties2 = (PFN_vkGetPhysicalDeviceFormatProperties2)load(context, "vkGetPhysicalDeviceFormatProperties2");
138 	vkGetPhysicalDeviceImageFormatProperties2 = (PFN_vkGetPhysicalDeviceImageFormatProperties2)load(context, "vkGetPhysicalDeviceImageFormatProperties2");
139 	vkGetPhysicalDeviceMemoryProperties2 = (PFN_vkGetPhysicalDeviceMemoryProperties2)load(context, "vkGetPhysicalDeviceMemoryProperties2");
140 	vkGetPhysicalDeviceProperties2 = (PFN_vkGetPhysicalDeviceProperties2)load(context, "vkGetPhysicalDeviceProperties2");
141 	vkGetPhysicalDeviceQueueFamilyProperties2 = (PFN_vkGetPhysicalDeviceQueueFamilyProperties2)load(context, "vkGetPhysicalDeviceQueueFamilyProperties2");
142 	vkGetPhysicalDeviceSparseImageFormatProperties2 = (PFN_vkGetPhysicalDeviceSparseImageFormatProperties2)load(context, "vkGetPhysicalDeviceSparseImageFormatProperties2");
143 #endif /* defined(VK_VERSION_1_1) */
144 #if defined(VK_EXT_acquire_xlib_display)
145 	vkAcquireXlibDisplayEXT = (PFN_vkAcquireXlibDisplayEXT)load(context, "vkAcquireXlibDisplayEXT");
146 	vkGetRandROutputDisplayEXT = (PFN_vkGetRandROutputDisplayEXT)load(context, "vkGetRandROutputDisplayEXT");
147 #endif /* defined(VK_EXT_acquire_xlib_display) */
148 #if defined(VK_EXT_calibrated_timestamps)
149 	vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = (PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)load(context, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT");
150 #endif /* defined(VK_EXT_calibrated_timestamps) */
151 #if defined(VK_EXT_debug_report)
152 	vkCreateDebugReportCallbackEXT = (PFN_vkCreateDebugReportCallbackEXT)load(context, "vkCreateDebugReportCallbackEXT");
153 	vkDebugReportMessageEXT = (PFN_vkDebugReportMessageEXT)load(context, "vkDebugReportMessageEXT");
154 	vkDestroyDebugReportCallbackEXT = (PFN_vkDestroyDebugReportCallbackEXT)load(context, "vkDestroyDebugReportCallbackEXT");
155 #endif /* defined(VK_EXT_debug_report) */
156 #if defined(VK_EXT_debug_utils)
157 	vkCreateDebugUtilsMessengerEXT = (PFN_vkCreateDebugUtilsMessengerEXT)load(context, "vkCreateDebugUtilsMessengerEXT");
158 	vkDestroyDebugUtilsMessengerEXT = (PFN_vkDestroyDebugUtilsMessengerEXT)load(context, "vkDestroyDebugUtilsMessengerEXT");
159 	vkSubmitDebugUtilsMessageEXT = (PFN_vkSubmitDebugUtilsMessageEXT)load(context, "vkSubmitDebugUtilsMessageEXT");
160 #endif /* defined(VK_EXT_debug_utils) */
161 #if defined(VK_EXT_direct_mode_display)
162 	vkReleaseDisplayEXT = (PFN_vkReleaseDisplayEXT)load(context, "vkReleaseDisplayEXT");
163 #endif /* defined(VK_EXT_direct_mode_display) */
164 #if defined(VK_EXT_display_surface_counter)
165 	vkGetPhysicalDeviceSurfaceCapabilities2EXT = (PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)load(context, "vkGetPhysicalDeviceSurfaceCapabilities2EXT");
166 #endif /* defined(VK_EXT_display_surface_counter) */
167 #if defined(VK_EXT_sample_locations)
168 	vkGetPhysicalDeviceMultisamplePropertiesEXT = (PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT)load(context, "vkGetPhysicalDeviceMultisamplePropertiesEXT");
169 #endif /* defined(VK_EXT_sample_locations) */
170 #if defined(VK_FUCHSIA_imagepipe_surface)
171 	vkCreateImagePipeSurfaceFUCHSIA = (PFN_vkCreateImagePipeSurfaceFUCHSIA)load(context, "vkCreateImagePipeSurfaceFUCHSIA");
172 #endif /* defined(VK_FUCHSIA_imagepipe_surface) */
173 #if defined(VK_KHR_android_surface)
174 	vkCreateAndroidSurfaceKHR = (PFN_vkCreateAndroidSurfaceKHR)load(context, "vkCreateAndroidSurfaceKHR");
175 #endif /* defined(VK_KHR_android_surface) */
176 #if defined(VK_KHR_device_group_creation)
177 	vkEnumeratePhysicalDeviceGroupsKHR = (PFN_vkEnumeratePhysicalDeviceGroupsKHR)load(context, "vkEnumeratePhysicalDeviceGroupsKHR");
178 #endif /* defined(VK_KHR_device_group_creation) */
179 #if defined(VK_KHR_display)
180 	vkCreateDisplayModeKHR = (PFN_vkCreateDisplayModeKHR)load(context, "vkCreateDisplayModeKHR");
181 	vkCreateDisplayPlaneSurfaceKHR = (PFN_vkCreateDisplayPlaneSurfaceKHR)load(context, "vkCreateDisplayPlaneSurfaceKHR");
182 	vkGetDisplayModePropertiesKHR = (PFN_vkGetDisplayModePropertiesKHR)load(context, "vkGetDisplayModePropertiesKHR");
183 	vkGetDisplayPlaneCapabilitiesKHR = (PFN_vkGetDisplayPlaneCapabilitiesKHR)load(context, "vkGetDisplayPlaneCapabilitiesKHR");
184 	vkGetDisplayPlaneSupportedDisplaysKHR = (PFN_vkGetDisplayPlaneSupportedDisplaysKHR)load(context, "vkGetDisplayPlaneSupportedDisplaysKHR");
185 	vkGetPhysicalDeviceDisplayPlanePropertiesKHR = (PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)load(context, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR");
186 	vkGetPhysicalDeviceDisplayPropertiesKHR = (PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)load(context, "vkGetPhysicalDeviceDisplayPropertiesKHR");
187 #endif /* defined(VK_KHR_display) */
188 #if defined(VK_KHR_external_fence_capabilities)
189 	vkGetPhysicalDeviceExternalFencePropertiesKHR = (PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)load(context, "vkGetPhysicalDeviceExternalFencePropertiesKHR");
190 #endif /* defined(VK_KHR_external_fence_capabilities) */
191 #if defined(VK_KHR_external_memory_capabilities)
192 	vkGetPhysicalDeviceExternalBufferPropertiesKHR = (PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)load(context, "vkGetPhysicalDeviceExternalBufferPropertiesKHR");
193 #endif /* defined(VK_KHR_external_memory_capabilities) */
194 #if defined(VK_KHR_external_semaphore_capabilities)
195 	vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = (PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)load(context, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR");
196 #endif /* defined(VK_KHR_external_semaphore_capabilities) */
197 #if defined(VK_KHR_get_display_properties2)
198 	vkGetDisplayModeProperties2KHR = (PFN_vkGetDisplayModeProperties2KHR)load(context, "vkGetDisplayModeProperties2KHR");
199 	vkGetDisplayPlaneCapabilities2KHR = (PFN_vkGetDisplayPlaneCapabilities2KHR)load(context, "vkGetDisplayPlaneCapabilities2KHR");
200 	vkGetPhysicalDeviceDisplayPlaneProperties2KHR = (PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR)load(context, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR");
201 	vkGetPhysicalDeviceDisplayProperties2KHR = (PFN_vkGetPhysicalDeviceDisplayProperties2KHR)load(context, "vkGetPhysicalDeviceDisplayProperties2KHR");
202 #endif /* defined(VK_KHR_get_display_properties2) */
203 #if defined(VK_KHR_get_physical_device_properties2)
204 	vkGetPhysicalDeviceFeatures2KHR = (PFN_vkGetPhysicalDeviceFeatures2KHR)load(context, "vkGetPhysicalDeviceFeatures2KHR");
205 	vkGetPhysicalDeviceFormatProperties2KHR = (PFN_vkGetPhysicalDeviceFormatProperties2KHR)load(context, "vkGetPhysicalDeviceFormatProperties2KHR");
206 	vkGetPhysicalDeviceImageFormatProperties2KHR = (PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)load(context, "vkGetPhysicalDeviceImageFormatProperties2KHR");
207 	vkGetPhysicalDeviceMemoryProperties2KHR = (PFN_vkGetPhysicalDeviceMemoryProperties2KHR)load(context, "vkGetPhysicalDeviceMemoryProperties2KHR");
208 	vkGetPhysicalDeviceProperties2KHR = (PFN_vkGetPhysicalDeviceProperties2KHR)load(context, "vkGetPhysicalDeviceProperties2KHR");
209 	vkGetPhysicalDeviceQueueFamilyProperties2KHR = (PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)load(context, "vkGetPhysicalDeviceQueueFamilyProperties2KHR");
210 	vkGetPhysicalDeviceSparseImageFormatProperties2KHR = (PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)load(context, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR");
211 #endif /* defined(VK_KHR_get_physical_device_properties2) */
212 #if defined(VK_KHR_get_surface_capabilities2)
213 	vkGetPhysicalDeviceSurfaceCapabilities2KHR = (PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR)load(context, "vkGetPhysicalDeviceSurfaceCapabilities2KHR");
214 	vkGetPhysicalDeviceSurfaceFormats2KHR = (PFN_vkGetPhysicalDeviceSurfaceFormats2KHR)load(context, "vkGetPhysicalDeviceSurfaceFormats2KHR");
215 #endif /* defined(VK_KHR_get_surface_capabilities2) */
216 #if defined(VK_KHR_surface)
217 	vkDestroySurfaceKHR = (PFN_vkDestroySurfaceKHR)load(context, "vkDestroySurfaceKHR");
218 	vkGetPhysicalDeviceSurfaceCapabilitiesKHR = (PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)load(context, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR");
219 	vkGetPhysicalDeviceSurfaceFormatsKHR = (PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)load(context, "vkGetPhysicalDeviceSurfaceFormatsKHR");
220 	vkGetPhysicalDeviceSurfacePresentModesKHR = (PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)load(context, "vkGetPhysicalDeviceSurfacePresentModesKHR");
221 	vkGetPhysicalDeviceSurfaceSupportKHR = (PFN_vkGetPhysicalDeviceSurfaceSupportKHR)load(context, "vkGetPhysicalDeviceSurfaceSupportKHR");
222 #endif /* defined(VK_KHR_surface) */
223 #if defined(VK_KHR_wayland_surface)
224 	vkCreateWaylandSurfaceKHR = (PFN_vkCreateWaylandSurfaceKHR)load(context, "vkCreateWaylandSurfaceKHR");
225 	vkGetPhysicalDeviceWaylandPresentationSupportKHR = (PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR)load(context, "vkGetPhysicalDeviceWaylandPresentationSupportKHR");
226 #endif /* defined(VK_KHR_wayland_surface) */
227 #if defined(VK_KHR_win32_surface)
228 	vkCreateWin32SurfaceKHR = (PFN_vkCreateWin32SurfaceKHR)load(context, "vkCreateWin32SurfaceKHR");
229 	vkGetPhysicalDeviceWin32PresentationSupportKHR = (PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)load(context, "vkGetPhysicalDeviceWin32PresentationSupportKHR");
230 #endif /* defined(VK_KHR_win32_surface) */
231 #if defined(VK_KHR_xcb_surface)
232 	vkCreateXcbSurfaceKHR = (PFN_vkCreateXcbSurfaceKHR)load(context, "vkCreateXcbSurfaceKHR");
233 	vkGetPhysicalDeviceXcbPresentationSupportKHR = (PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR)load(context, "vkGetPhysicalDeviceXcbPresentationSupportKHR");
234 #endif /* defined(VK_KHR_xcb_surface) */
235 #if defined(VK_KHR_xlib_surface)
236 	vkCreateXlibSurfaceKHR = (PFN_vkCreateXlibSurfaceKHR)load(context, "vkCreateXlibSurfaceKHR");
237 	vkGetPhysicalDeviceXlibPresentationSupportKHR = (PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR)load(context, "vkGetPhysicalDeviceXlibPresentationSupportKHR");
238 #endif /* defined(VK_KHR_xlib_surface) */
239 #if defined(VK_MVK_ios_surface)
240 	vkCreateIOSSurfaceMVK = (PFN_vkCreateIOSSurfaceMVK)load(context, "vkCreateIOSSurfaceMVK");
241 #endif /* defined(VK_MVK_ios_surface) */
242 #if defined(VK_MVK_macos_surface)
243 	vkCreateMacOSSurfaceMVK = (PFN_vkCreateMacOSSurfaceMVK)load(context, "vkCreateMacOSSurfaceMVK");
244 #endif /* defined(VK_MVK_macos_surface) */
245 #if defined(VK_NN_vi_surface)
246 	vkCreateViSurfaceNN = (PFN_vkCreateViSurfaceNN)load(context, "vkCreateViSurfaceNN");
247 #endif /* defined(VK_NN_vi_surface) */
248 #if defined(VK_NVX_device_generated_commands)
249 	vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX = (PFN_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX)load(context, "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX");
250 #endif /* defined(VK_NVX_device_generated_commands) */
251 #if defined(VK_NV_external_memory_capabilities)
252 	vkGetPhysicalDeviceExternalImageFormatPropertiesNV = (PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)load(context, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV");
253 #endif /* defined(VK_NV_external_memory_capabilities) */
254 #if (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1))
255 	vkGetPhysicalDevicePresentRectanglesKHR = (PFN_vkGetPhysicalDevicePresentRectanglesKHR)load(context, "vkGetPhysicalDevicePresentRectanglesKHR");
256 #endif /* (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) */
257 	/* VOLK_GENERATE_LOAD_INSTANCE */
258 }
259 
volkGenLoadDevice(void * context,PFN_vkVoidFunction (* load)(void *,const char *))260 static void volkGenLoadDevice(void* context, PFN_vkVoidFunction (*load)(void*, const char*))
261 {
262 	/* VOLK_GENERATE_LOAD_DEVICE */
263 #if defined(VK_VERSION_1_0)
264 	vkAllocateCommandBuffers = (PFN_vkAllocateCommandBuffers)load(context, "vkAllocateCommandBuffers");
265 	vkAllocateDescriptorSets = (PFN_vkAllocateDescriptorSets)load(context, "vkAllocateDescriptorSets");
266 	vkAllocateMemory = (PFN_vkAllocateMemory)load(context, "vkAllocateMemory");
267 	vkBeginCommandBuffer = (PFN_vkBeginCommandBuffer)load(context, "vkBeginCommandBuffer");
268 	vkBindBufferMemory = (PFN_vkBindBufferMemory)load(context, "vkBindBufferMemory");
269 	vkBindImageMemory = (PFN_vkBindImageMemory)load(context, "vkBindImageMemory");
270 	vkCmdBeginQuery = (PFN_vkCmdBeginQuery)load(context, "vkCmdBeginQuery");
271 	vkCmdBeginRenderPass = (PFN_vkCmdBeginRenderPass)load(context, "vkCmdBeginRenderPass");
272 	vkCmdBindDescriptorSets = (PFN_vkCmdBindDescriptorSets)load(context, "vkCmdBindDescriptorSets");
273 	vkCmdBindIndexBuffer = (PFN_vkCmdBindIndexBuffer)load(context, "vkCmdBindIndexBuffer");
274 	vkCmdBindPipeline = (PFN_vkCmdBindPipeline)load(context, "vkCmdBindPipeline");
275 	vkCmdBindVertexBuffers = (PFN_vkCmdBindVertexBuffers)load(context, "vkCmdBindVertexBuffers");
276 	vkCmdBlitImage = (PFN_vkCmdBlitImage)load(context, "vkCmdBlitImage");
277 	vkCmdClearAttachments = (PFN_vkCmdClearAttachments)load(context, "vkCmdClearAttachments");
278 	vkCmdClearColorImage = (PFN_vkCmdClearColorImage)load(context, "vkCmdClearColorImage");
279 	vkCmdClearDepthStencilImage = (PFN_vkCmdClearDepthStencilImage)load(context, "vkCmdClearDepthStencilImage");
280 	vkCmdCopyBuffer = (PFN_vkCmdCopyBuffer)load(context, "vkCmdCopyBuffer");
281 	vkCmdCopyBufferToImage = (PFN_vkCmdCopyBufferToImage)load(context, "vkCmdCopyBufferToImage");
282 	vkCmdCopyImage = (PFN_vkCmdCopyImage)load(context, "vkCmdCopyImage");
283 	vkCmdCopyImageToBuffer = (PFN_vkCmdCopyImageToBuffer)load(context, "vkCmdCopyImageToBuffer");
284 	vkCmdCopyQueryPoolResults = (PFN_vkCmdCopyQueryPoolResults)load(context, "vkCmdCopyQueryPoolResults");
285 	vkCmdDispatch = (PFN_vkCmdDispatch)load(context, "vkCmdDispatch");
286 	vkCmdDispatchIndirect = (PFN_vkCmdDispatchIndirect)load(context, "vkCmdDispatchIndirect");
287 	vkCmdDraw = (PFN_vkCmdDraw)load(context, "vkCmdDraw");
288 	vkCmdDrawIndexed = (PFN_vkCmdDrawIndexed)load(context, "vkCmdDrawIndexed");
289 	vkCmdDrawIndexedIndirect = (PFN_vkCmdDrawIndexedIndirect)load(context, "vkCmdDrawIndexedIndirect");
290 	vkCmdDrawIndirect = (PFN_vkCmdDrawIndirect)load(context, "vkCmdDrawIndirect");
291 	vkCmdEndQuery = (PFN_vkCmdEndQuery)load(context, "vkCmdEndQuery");
292 	vkCmdEndRenderPass = (PFN_vkCmdEndRenderPass)load(context, "vkCmdEndRenderPass");
293 	vkCmdExecuteCommands = (PFN_vkCmdExecuteCommands)load(context, "vkCmdExecuteCommands");
294 	vkCmdFillBuffer = (PFN_vkCmdFillBuffer)load(context, "vkCmdFillBuffer");
295 	vkCmdNextSubpass = (PFN_vkCmdNextSubpass)load(context, "vkCmdNextSubpass");
296 	vkCmdPipelineBarrier = (PFN_vkCmdPipelineBarrier)load(context, "vkCmdPipelineBarrier");
297 	vkCmdPushConstants = (PFN_vkCmdPushConstants)load(context, "vkCmdPushConstants");
298 	vkCmdResetEvent = (PFN_vkCmdResetEvent)load(context, "vkCmdResetEvent");
299 	vkCmdResetQueryPool = (PFN_vkCmdResetQueryPool)load(context, "vkCmdResetQueryPool");
300 	vkCmdResolveImage = (PFN_vkCmdResolveImage)load(context, "vkCmdResolveImage");
301 	vkCmdSetBlendConstants = (PFN_vkCmdSetBlendConstants)load(context, "vkCmdSetBlendConstants");
302 	vkCmdSetDepthBias = (PFN_vkCmdSetDepthBias)load(context, "vkCmdSetDepthBias");
303 	vkCmdSetDepthBounds = (PFN_vkCmdSetDepthBounds)load(context, "vkCmdSetDepthBounds");
304 	vkCmdSetEvent = (PFN_vkCmdSetEvent)load(context, "vkCmdSetEvent");
305 	vkCmdSetLineWidth = (PFN_vkCmdSetLineWidth)load(context, "vkCmdSetLineWidth");
306 	vkCmdSetScissor = (PFN_vkCmdSetScissor)load(context, "vkCmdSetScissor");
307 	vkCmdSetStencilCompareMask = (PFN_vkCmdSetStencilCompareMask)load(context, "vkCmdSetStencilCompareMask");
308 	vkCmdSetStencilReference = (PFN_vkCmdSetStencilReference)load(context, "vkCmdSetStencilReference");
309 	vkCmdSetStencilWriteMask = (PFN_vkCmdSetStencilWriteMask)load(context, "vkCmdSetStencilWriteMask");
310 	vkCmdSetViewport = (PFN_vkCmdSetViewport)load(context, "vkCmdSetViewport");
311 	vkCmdUpdateBuffer = (PFN_vkCmdUpdateBuffer)load(context, "vkCmdUpdateBuffer");
312 	vkCmdWaitEvents = (PFN_vkCmdWaitEvents)load(context, "vkCmdWaitEvents");
313 	vkCmdWriteTimestamp = (PFN_vkCmdWriteTimestamp)load(context, "vkCmdWriteTimestamp");
314 	vkCreateBuffer = (PFN_vkCreateBuffer)load(context, "vkCreateBuffer");
315 	vkCreateBufferView = (PFN_vkCreateBufferView)load(context, "vkCreateBufferView");
316 	vkCreateCommandPool = (PFN_vkCreateCommandPool)load(context, "vkCreateCommandPool");
317 	vkCreateComputePipelines = (PFN_vkCreateComputePipelines)load(context, "vkCreateComputePipelines");
318 	vkCreateDescriptorPool = (PFN_vkCreateDescriptorPool)load(context, "vkCreateDescriptorPool");
319 	vkCreateDescriptorSetLayout = (PFN_vkCreateDescriptorSetLayout)load(context, "vkCreateDescriptorSetLayout");
320 	vkCreateEvent = (PFN_vkCreateEvent)load(context, "vkCreateEvent");
321 	vkCreateFence = (PFN_vkCreateFence)load(context, "vkCreateFence");
322 	vkCreateFramebuffer = (PFN_vkCreateFramebuffer)load(context, "vkCreateFramebuffer");
323 	vkCreateGraphicsPipelines = (PFN_vkCreateGraphicsPipelines)load(context, "vkCreateGraphicsPipelines");
324 	vkCreateImage = (PFN_vkCreateImage)load(context, "vkCreateImage");
325 	vkCreateImageView = (PFN_vkCreateImageView)load(context, "vkCreateImageView");
326 	vkCreatePipelineCache = (PFN_vkCreatePipelineCache)load(context, "vkCreatePipelineCache");
327 	vkCreatePipelineLayout = (PFN_vkCreatePipelineLayout)load(context, "vkCreatePipelineLayout");
328 	vkCreateQueryPool = (PFN_vkCreateQueryPool)load(context, "vkCreateQueryPool");
329 	vkCreateRenderPass = (PFN_vkCreateRenderPass)load(context, "vkCreateRenderPass");
330 	vkCreateSampler = (PFN_vkCreateSampler)load(context, "vkCreateSampler");
331 	vkCreateSemaphore = (PFN_vkCreateSemaphore)load(context, "vkCreateSemaphore");
332 	vkCreateShaderModule = (PFN_vkCreateShaderModule)load(context, "vkCreateShaderModule");
333 	vkDestroyBuffer = (PFN_vkDestroyBuffer)load(context, "vkDestroyBuffer");
334 	vkDestroyBufferView = (PFN_vkDestroyBufferView)load(context, "vkDestroyBufferView");
335 	vkDestroyCommandPool = (PFN_vkDestroyCommandPool)load(context, "vkDestroyCommandPool");
336 	vkDestroyDescriptorPool = (PFN_vkDestroyDescriptorPool)load(context, "vkDestroyDescriptorPool");
337 	vkDestroyDescriptorSetLayout = (PFN_vkDestroyDescriptorSetLayout)load(context, "vkDestroyDescriptorSetLayout");
338 	vkDestroyDevice = (PFN_vkDestroyDevice)load(context, "vkDestroyDevice");
339 	vkDestroyEvent = (PFN_vkDestroyEvent)load(context, "vkDestroyEvent");
340 	vkDestroyFence = (PFN_vkDestroyFence)load(context, "vkDestroyFence");
341 	vkDestroyFramebuffer = (PFN_vkDestroyFramebuffer)load(context, "vkDestroyFramebuffer");
342 	vkDestroyImage = (PFN_vkDestroyImage)load(context, "vkDestroyImage");
343 	vkDestroyImageView = (PFN_vkDestroyImageView)load(context, "vkDestroyImageView");
344 	vkDestroyPipeline = (PFN_vkDestroyPipeline)load(context, "vkDestroyPipeline");
345 	vkDestroyPipelineCache = (PFN_vkDestroyPipelineCache)load(context, "vkDestroyPipelineCache");
346 	vkDestroyPipelineLayout = (PFN_vkDestroyPipelineLayout)load(context, "vkDestroyPipelineLayout");
347 	vkDestroyQueryPool = (PFN_vkDestroyQueryPool)load(context, "vkDestroyQueryPool");
348 	vkDestroyRenderPass = (PFN_vkDestroyRenderPass)load(context, "vkDestroyRenderPass");
349 	vkDestroySampler = (PFN_vkDestroySampler)load(context, "vkDestroySampler");
350 	vkDestroySemaphore = (PFN_vkDestroySemaphore)load(context, "vkDestroySemaphore");
351 	vkDestroyShaderModule = (PFN_vkDestroyShaderModule)load(context, "vkDestroyShaderModule");
352 	vkDeviceWaitIdle = (PFN_vkDeviceWaitIdle)load(context, "vkDeviceWaitIdle");
353 	vkEndCommandBuffer = (PFN_vkEndCommandBuffer)load(context, "vkEndCommandBuffer");
354 	vkFlushMappedMemoryRanges = (PFN_vkFlushMappedMemoryRanges)load(context, "vkFlushMappedMemoryRanges");
355 	vkFreeCommandBuffers = (PFN_vkFreeCommandBuffers)load(context, "vkFreeCommandBuffers");
356 	vkFreeDescriptorSets = (PFN_vkFreeDescriptorSets)load(context, "vkFreeDescriptorSets");
357 	vkFreeMemory = (PFN_vkFreeMemory)load(context, "vkFreeMemory");
358 	vkGetBufferMemoryRequirements = (PFN_vkGetBufferMemoryRequirements)load(context, "vkGetBufferMemoryRequirements");
359 	vkGetDeviceMemoryCommitment = (PFN_vkGetDeviceMemoryCommitment)load(context, "vkGetDeviceMemoryCommitment");
360 	vkGetDeviceQueue = (PFN_vkGetDeviceQueue)load(context, "vkGetDeviceQueue");
361 	vkGetEventStatus = (PFN_vkGetEventStatus)load(context, "vkGetEventStatus");
362 	vkGetFenceStatus = (PFN_vkGetFenceStatus)load(context, "vkGetFenceStatus");
363 	vkGetImageMemoryRequirements = (PFN_vkGetImageMemoryRequirements)load(context, "vkGetImageMemoryRequirements");
364 	vkGetImageSparseMemoryRequirements = (PFN_vkGetImageSparseMemoryRequirements)load(context, "vkGetImageSparseMemoryRequirements");
365 	vkGetImageSubresourceLayout = (PFN_vkGetImageSubresourceLayout)load(context, "vkGetImageSubresourceLayout");
366 	vkGetPipelineCacheData = (PFN_vkGetPipelineCacheData)load(context, "vkGetPipelineCacheData");
367 	vkGetQueryPoolResults = (PFN_vkGetQueryPoolResults)load(context, "vkGetQueryPoolResults");
368 	vkGetRenderAreaGranularity = (PFN_vkGetRenderAreaGranularity)load(context, "vkGetRenderAreaGranularity");
369 	vkInvalidateMappedMemoryRanges = (PFN_vkInvalidateMappedMemoryRanges)load(context, "vkInvalidateMappedMemoryRanges");
370 	vkMapMemory = (PFN_vkMapMemory)load(context, "vkMapMemory");
371 	vkMergePipelineCaches = (PFN_vkMergePipelineCaches)load(context, "vkMergePipelineCaches");
372 	vkQueueBindSparse = (PFN_vkQueueBindSparse)load(context, "vkQueueBindSparse");
373 	vkQueueSubmit = (PFN_vkQueueSubmit)load(context, "vkQueueSubmit");
374 	vkQueueWaitIdle = (PFN_vkQueueWaitIdle)load(context, "vkQueueWaitIdle");
375 	vkResetCommandBuffer = (PFN_vkResetCommandBuffer)load(context, "vkResetCommandBuffer");
376 	vkResetCommandPool = (PFN_vkResetCommandPool)load(context, "vkResetCommandPool");
377 	vkResetDescriptorPool = (PFN_vkResetDescriptorPool)load(context, "vkResetDescriptorPool");
378 	vkResetEvent = (PFN_vkResetEvent)load(context, "vkResetEvent");
379 	vkResetFences = (PFN_vkResetFences)load(context, "vkResetFences");
380 	vkSetEvent = (PFN_vkSetEvent)load(context, "vkSetEvent");
381 	vkUnmapMemory = (PFN_vkUnmapMemory)load(context, "vkUnmapMemory");
382 	vkUpdateDescriptorSets = (PFN_vkUpdateDescriptorSets)load(context, "vkUpdateDescriptorSets");
383 	vkWaitForFences = (PFN_vkWaitForFences)load(context, "vkWaitForFences");
384 #endif /* defined(VK_VERSION_1_0) */
385 #if defined(VK_VERSION_1_1)
386 	vkBindBufferMemory2 = (PFN_vkBindBufferMemory2)load(context, "vkBindBufferMemory2");
387 	vkBindImageMemory2 = (PFN_vkBindImageMemory2)load(context, "vkBindImageMemory2");
388 	vkCmdDispatchBase = (PFN_vkCmdDispatchBase)load(context, "vkCmdDispatchBase");
389 	vkCmdSetDeviceMask = (PFN_vkCmdSetDeviceMask)load(context, "vkCmdSetDeviceMask");
390 	vkCreateDescriptorUpdateTemplate = (PFN_vkCreateDescriptorUpdateTemplate)load(context, "vkCreateDescriptorUpdateTemplate");
391 	vkCreateSamplerYcbcrConversion = (PFN_vkCreateSamplerYcbcrConversion)load(context, "vkCreateSamplerYcbcrConversion");
392 	vkDestroyDescriptorUpdateTemplate = (PFN_vkDestroyDescriptorUpdateTemplate)load(context, "vkDestroyDescriptorUpdateTemplate");
393 	vkDestroySamplerYcbcrConversion = (PFN_vkDestroySamplerYcbcrConversion)load(context, "vkDestroySamplerYcbcrConversion");
394 	vkGetBufferMemoryRequirements2 = (PFN_vkGetBufferMemoryRequirements2)load(context, "vkGetBufferMemoryRequirements2");
395 	vkGetDescriptorSetLayoutSupport = (PFN_vkGetDescriptorSetLayoutSupport)load(context, "vkGetDescriptorSetLayoutSupport");
396 	vkGetDeviceGroupPeerMemoryFeatures = (PFN_vkGetDeviceGroupPeerMemoryFeatures)load(context, "vkGetDeviceGroupPeerMemoryFeatures");
397 	vkGetDeviceQueue2 = (PFN_vkGetDeviceQueue2)load(context, "vkGetDeviceQueue2");
398 	vkGetImageMemoryRequirements2 = (PFN_vkGetImageMemoryRequirements2)load(context, "vkGetImageMemoryRequirements2");
399 	vkGetImageSparseMemoryRequirements2 = (PFN_vkGetImageSparseMemoryRequirements2)load(context, "vkGetImageSparseMemoryRequirements2");
400 	vkTrimCommandPool = (PFN_vkTrimCommandPool)load(context, "vkTrimCommandPool");
401 	vkUpdateDescriptorSetWithTemplate = (PFN_vkUpdateDescriptorSetWithTemplate)load(context, "vkUpdateDescriptorSetWithTemplate");
402 #endif /* defined(VK_VERSION_1_1) */
403 #if defined(VK_AMD_buffer_marker)
404 	vkCmdWriteBufferMarkerAMD = (PFN_vkCmdWriteBufferMarkerAMD)load(context, "vkCmdWriteBufferMarkerAMD");
405 #endif /* defined(VK_AMD_buffer_marker) */
406 #if defined(VK_AMD_draw_indirect_count)
407 	vkCmdDrawIndexedIndirectCountAMD = (PFN_vkCmdDrawIndexedIndirectCountAMD)load(context, "vkCmdDrawIndexedIndirectCountAMD");
408 	vkCmdDrawIndirectCountAMD = (PFN_vkCmdDrawIndirectCountAMD)load(context, "vkCmdDrawIndirectCountAMD");
409 #endif /* defined(VK_AMD_draw_indirect_count) */
410 #if defined(VK_AMD_shader_info)
411 	vkGetShaderInfoAMD = (PFN_vkGetShaderInfoAMD)load(context, "vkGetShaderInfoAMD");
412 #endif /* defined(VK_AMD_shader_info) */
413 #if defined(VK_ANDROID_external_memory_android_hardware_buffer)
414 	vkGetAndroidHardwareBufferPropertiesANDROID = (PFN_vkGetAndroidHardwareBufferPropertiesANDROID)load(context, "vkGetAndroidHardwareBufferPropertiesANDROID");
415 	vkGetMemoryAndroidHardwareBufferANDROID = (PFN_vkGetMemoryAndroidHardwareBufferANDROID)load(context, "vkGetMemoryAndroidHardwareBufferANDROID");
416 #endif /* defined(VK_ANDROID_external_memory_android_hardware_buffer) */
417 #if defined(VK_EXT_calibrated_timestamps)
418 	vkGetCalibratedTimestampsEXT = (PFN_vkGetCalibratedTimestampsEXT)load(context, "vkGetCalibratedTimestampsEXT");
419 #endif /* defined(VK_EXT_calibrated_timestamps) */
420 #if defined(VK_EXT_conditional_rendering)
421 	vkCmdBeginConditionalRenderingEXT = (PFN_vkCmdBeginConditionalRenderingEXT)load(context, "vkCmdBeginConditionalRenderingEXT");
422 	vkCmdEndConditionalRenderingEXT = (PFN_vkCmdEndConditionalRenderingEXT)load(context, "vkCmdEndConditionalRenderingEXT");
423 #endif /* defined(VK_EXT_conditional_rendering) */
424 #if defined(VK_EXT_debug_marker)
425 	vkCmdDebugMarkerBeginEXT = (PFN_vkCmdDebugMarkerBeginEXT)load(context, "vkCmdDebugMarkerBeginEXT");
426 	vkCmdDebugMarkerEndEXT = (PFN_vkCmdDebugMarkerEndEXT)load(context, "vkCmdDebugMarkerEndEXT");
427 	vkCmdDebugMarkerInsertEXT = (PFN_vkCmdDebugMarkerInsertEXT)load(context, "vkCmdDebugMarkerInsertEXT");
428 	vkDebugMarkerSetObjectNameEXT = (PFN_vkDebugMarkerSetObjectNameEXT)load(context, "vkDebugMarkerSetObjectNameEXT");
429 	vkDebugMarkerSetObjectTagEXT = (PFN_vkDebugMarkerSetObjectTagEXT)load(context, "vkDebugMarkerSetObjectTagEXT");
430 #endif /* defined(VK_EXT_debug_marker) */
431 #if defined(VK_EXT_debug_utils)
432 	vkCmdBeginDebugUtilsLabelEXT = (PFN_vkCmdBeginDebugUtilsLabelEXT)load(context, "vkCmdBeginDebugUtilsLabelEXT");
433 	vkCmdEndDebugUtilsLabelEXT = (PFN_vkCmdEndDebugUtilsLabelEXT)load(context, "vkCmdEndDebugUtilsLabelEXT");
434 	vkCmdInsertDebugUtilsLabelEXT = (PFN_vkCmdInsertDebugUtilsLabelEXT)load(context, "vkCmdInsertDebugUtilsLabelEXT");
435 	vkQueueBeginDebugUtilsLabelEXT = (PFN_vkQueueBeginDebugUtilsLabelEXT)load(context, "vkQueueBeginDebugUtilsLabelEXT");
436 	vkQueueEndDebugUtilsLabelEXT = (PFN_vkQueueEndDebugUtilsLabelEXT)load(context, "vkQueueEndDebugUtilsLabelEXT");
437 	vkQueueInsertDebugUtilsLabelEXT = (PFN_vkQueueInsertDebugUtilsLabelEXT)load(context, "vkQueueInsertDebugUtilsLabelEXT");
438 	vkSetDebugUtilsObjectNameEXT = (PFN_vkSetDebugUtilsObjectNameEXT)load(context, "vkSetDebugUtilsObjectNameEXT");
439 	vkSetDebugUtilsObjectTagEXT = (PFN_vkSetDebugUtilsObjectTagEXT)load(context, "vkSetDebugUtilsObjectTagEXT");
440 #endif /* defined(VK_EXT_debug_utils) */
441 #if defined(VK_EXT_discard_rectangles)
442 	vkCmdSetDiscardRectangleEXT = (PFN_vkCmdSetDiscardRectangleEXT)load(context, "vkCmdSetDiscardRectangleEXT");
443 #endif /* defined(VK_EXT_discard_rectangles) */
444 #if defined(VK_EXT_display_control)
445 	vkDisplayPowerControlEXT = (PFN_vkDisplayPowerControlEXT)load(context, "vkDisplayPowerControlEXT");
446 	vkGetSwapchainCounterEXT = (PFN_vkGetSwapchainCounterEXT)load(context, "vkGetSwapchainCounterEXT");
447 	vkRegisterDeviceEventEXT = (PFN_vkRegisterDeviceEventEXT)load(context, "vkRegisterDeviceEventEXT");
448 	vkRegisterDisplayEventEXT = (PFN_vkRegisterDisplayEventEXT)load(context, "vkRegisterDisplayEventEXT");
449 #endif /* defined(VK_EXT_display_control) */
450 #if defined(VK_EXT_external_memory_host)
451 	vkGetMemoryHostPointerPropertiesEXT = (PFN_vkGetMemoryHostPointerPropertiesEXT)load(context, "vkGetMemoryHostPointerPropertiesEXT");
452 #endif /* defined(VK_EXT_external_memory_host) */
453 #if defined(VK_EXT_hdr_metadata)
454 	vkSetHdrMetadataEXT = (PFN_vkSetHdrMetadataEXT)load(context, "vkSetHdrMetadataEXT");
455 #endif /* defined(VK_EXT_hdr_metadata) */
456 #if defined(VK_EXT_image_drm_format_modifier)
457 	vkGetImageDrmFormatModifierPropertiesEXT = (PFN_vkGetImageDrmFormatModifierPropertiesEXT)load(context, "vkGetImageDrmFormatModifierPropertiesEXT");
458 #endif /* defined(VK_EXT_image_drm_format_modifier) */
459 #if defined(VK_EXT_sample_locations)
460 	vkCmdSetSampleLocationsEXT = (PFN_vkCmdSetSampleLocationsEXT)load(context, "vkCmdSetSampleLocationsEXT");
461 #endif /* defined(VK_EXT_sample_locations) */
462 #if defined(VK_EXT_transform_feedback)
463 	vkCmdBeginQueryIndexedEXT = (PFN_vkCmdBeginQueryIndexedEXT)load(context, "vkCmdBeginQueryIndexedEXT");
464 	vkCmdBeginTransformFeedbackEXT = (PFN_vkCmdBeginTransformFeedbackEXT)load(context, "vkCmdBeginTransformFeedbackEXT");
465 	vkCmdBindTransformFeedbackBuffersEXT = (PFN_vkCmdBindTransformFeedbackBuffersEXT)load(context, "vkCmdBindTransformFeedbackBuffersEXT");
466 	vkCmdDrawIndirectByteCountEXT = (PFN_vkCmdDrawIndirectByteCountEXT)load(context, "vkCmdDrawIndirectByteCountEXT");
467 	vkCmdEndQueryIndexedEXT = (PFN_vkCmdEndQueryIndexedEXT)load(context, "vkCmdEndQueryIndexedEXT");
468 	vkCmdEndTransformFeedbackEXT = (PFN_vkCmdEndTransformFeedbackEXT)load(context, "vkCmdEndTransformFeedbackEXT");
469 #endif /* defined(VK_EXT_transform_feedback) */
470 #if defined(VK_EXT_validation_cache)
471 	vkCreateValidationCacheEXT = (PFN_vkCreateValidationCacheEXT)load(context, "vkCreateValidationCacheEXT");
472 	vkDestroyValidationCacheEXT = (PFN_vkDestroyValidationCacheEXT)load(context, "vkDestroyValidationCacheEXT");
473 	vkGetValidationCacheDataEXT = (PFN_vkGetValidationCacheDataEXT)load(context, "vkGetValidationCacheDataEXT");
474 	vkMergeValidationCachesEXT = (PFN_vkMergeValidationCachesEXT)load(context, "vkMergeValidationCachesEXT");
475 #endif /* defined(VK_EXT_validation_cache) */
476 #if defined(VK_GOOGLE_display_timing)
477 	vkGetPastPresentationTimingGOOGLE = (PFN_vkGetPastPresentationTimingGOOGLE)load(context, "vkGetPastPresentationTimingGOOGLE");
478 	vkGetRefreshCycleDurationGOOGLE = (PFN_vkGetRefreshCycleDurationGOOGLE)load(context, "vkGetRefreshCycleDurationGOOGLE");
479 #endif /* defined(VK_GOOGLE_display_timing) */
480 #if defined(VK_KHR_bind_memory2)
481 	vkBindBufferMemory2KHR = (PFN_vkBindBufferMemory2KHR)load(context, "vkBindBufferMemory2KHR");
482 	vkBindImageMemory2KHR = (PFN_vkBindImageMemory2KHR)load(context, "vkBindImageMemory2KHR");
483 #endif /* defined(VK_KHR_bind_memory2) */
484 #if defined(VK_KHR_create_renderpass2)
485 	vkCmdBeginRenderPass2KHR = (PFN_vkCmdBeginRenderPass2KHR)load(context, "vkCmdBeginRenderPass2KHR");
486 	vkCmdEndRenderPass2KHR = (PFN_vkCmdEndRenderPass2KHR)load(context, "vkCmdEndRenderPass2KHR");
487 	vkCmdNextSubpass2KHR = (PFN_vkCmdNextSubpass2KHR)load(context, "vkCmdNextSubpass2KHR");
488 	vkCreateRenderPass2KHR = (PFN_vkCreateRenderPass2KHR)load(context, "vkCreateRenderPass2KHR");
489 #endif /* defined(VK_KHR_create_renderpass2) */
490 #if defined(VK_KHR_descriptor_update_template)
491 	vkCreateDescriptorUpdateTemplateKHR = (PFN_vkCreateDescriptorUpdateTemplateKHR)load(context, "vkCreateDescriptorUpdateTemplateKHR");
492 	vkDestroyDescriptorUpdateTemplateKHR = (PFN_vkDestroyDescriptorUpdateTemplateKHR)load(context, "vkDestroyDescriptorUpdateTemplateKHR");
493 	vkUpdateDescriptorSetWithTemplateKHR = (PFN_vkUpdateDescriptorSetWithTemplateKHR)load(context, "vkUpdateDescriptorSetWithTemplateKHR");
494 #endif /* defined(VK_KHR_descriptor_update_template) */
495 #if defined(VK_KHR_device_group)
496 	vkCmdDispatchBaseKHR = (PFN_vkCmdDispatchBaseKHR)load(context, "vkCmdDispatchBaseKHR");
497 	vkCmdSetDeviceMaskKHR = (PFN_vkCmdSetDeviceMaskKHR)load(context, "vkCmdSetDeviceMaskKHR");
498 	vkGetDeviceGroupPeerMemoryFeaturesKHR = (PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR)load(context, "vkGetDeviceGroupPeerMemoryFeaturesKHR");
499 #endif /* defined(VK_KHR_device_group) */
500 #if defined(VK_KHR_display_swapchain)
501 	vkCreateSharedSwapchainsKHR = (PFN_vkCreateSharedSwapchainsKHR)load(context, "vkCreateSharedSwapchainsKHR");
502 #endif /* defined(VK_KHR_display_swapchain) */
503 #if defined(VK_KHR_draw_indirect_count)
504 	vkCmdDrawIndexedIndirectCountKHR = (PFN_vkCmdDrawIndexedIndirectCountKHR)load(context, "vkCmdDrawIndexedIndirectCountKHR");
505 	vkCmdDrawIndirectCountKHR = (PFN_vkCmdDrawIndirectCountKHR)load(context, "vkCmdDrawIndirectCountKHR");
506 #endif /* defined(VK_KHR_draw_indirect_count) */
507 #if defined(VK_KHR_external_fence_fd)
508 	vkGetFenceFdKHR = (PFN_vkGetFenceFdKHR)load(context, "vkGetFenceFdKHR");
509 	vkImportFenceFdKHR = (PFN_vkImportFenceFdKHR)load(context, "vkImportFenceFdKHR");
510 #endif /* defined(VK_KHR_external_fence_fd) */
511 #if defined(VK_KHR_external_fence_win32)
512 	vkGetFenceWin32HandleKHR = (PFN_vkGetFenceWin32HandleKHR)load(context, "vkGetFenceWin32HandleKHR");
513 	vkImportFenceWin32HandleKHR = (PFN_vkImportFenceWin32HandleKHR)load(context, "vkImportFenceWin32HandleKHR");
514 #endif /* defined(VK_KHR_external_fence_win32) */
515 #if defined(VK_KHR_external_memory_fd)
516 	vkGetMemoryFdKHR = (PFN_vkGetMemoryFdKHR)load(context, "vkGetMemoryFdKHR");
517 	vkGetMemoryFdPropertiesKHR = (PFN_vkGetMemoryFdPropertiesKHR)load(context, "vkGetMemoryFdPropertiesKHR");
518 #endif /* defined(VK_KHR_external_memory_fd) */
519 #if defined(VK_KHR_external_memory_win32)
520 	vkGetMemoryWin32HandleKHR = (PFN_vkGetMemoryWin32HandleKHR)load(context, "vkGetMemoryWin32HandleKHR");
521 	vkGetMemoryWin32HandlePropertiesKHR = (PFN_vkGetMemoryWin32HandlePropertiesKHR)load(context, "vkGetMemoryWin32HandlePropertiesKHR");
522 #endif /* defined(VK_KHR_external_memory_win32) */
523 #if defined(VK_KHR_external_semaphore_fd)
524 	vkGetSemaphoreFdKHR = (PFN_vkGetSemaphoreFdKHR)load(context, "vkGetSemaphoreFdKHR");
525 	vkImportSemaphoreFdKHR = (PFN_vkImportSemaphoreFdKHR)load(context, "vkImportSemaphoreFdKHR");
526 #endif /* defined(VK_KHR_external_semaphore_fd) */
527 #if defined(VK_KHR_external_semaphore_win32)
528 	vkGetSemaphoreWin32HandleKHR = (PFN_vkGetSemaphoreWin32HandleKHR)load(context, "vkGetSemaphoreWin32HandleKHR");
529 	vkImportSemaphoreWin32HandleKHR = (PFN_vkImportSemaphoreWin32HandleKHR)load(context, "vkImportSemaphoreWin32HandleKHR");
530 #endif /* defined(VK_KHR_external_semaphore_win32) */
531 #if defined(VK_KHR_get_memory_requirements2)
532 	vkGetBufferMemoryRequirements2KHR = (PFN_vkGetBufferMemoryRequirements2KHR)load(context, "vkGetBufferMemoryRequirements2KHR");
533 	vkGetImageMemoryRequirements2KHR = (PFN_vkGetImageMemoryRequirements2KHR)load(context, "vkGetImageMemoryRequirements2KHR");
534 	vkGetImageSparseMemoryRequirements2KHR = (PFN_vkGetImageSparseMemoryRequirements2KHR)load(context, "vkGetImageSparseMemoryRequirements2KHR");
535 #endif /* defined(VK_KHR_get_memory_requirements2) */
536 #if defined(VK_KHR_maintenance1)
537 	vkTrimCommandPoolKHR = (PFN_vkTrimCommandPoolKHR)load(context, "vkTrimCommandPoolKHR");
538 #endif /* defined(VK_KHR_maintenance1) */
539 #if defined(VK_KHR_maintenance3)
540 	vkGetDescriptorSetLayoutSupportKHR = (PFN_vkGetDescriptorSetLayoutSupportKHR)load(context, "vkGetDescriptorSetLayoutSupportKHR");
541 #endif /* defined(VK_KHR_maintenance3) */
542 #if defined(VK_KHR_push_descriptor)
543 	vkCmdPushDescriptorSetKHR = (PFN_vkCmdPushDescriptorSetKHR)load(context, "vkCmdPushDescriptorSetKHR");
544 #endif /* defined(VK_KHR_push_descriptor) */
545 #if defined(VK_KHR_sampler_ycbcr_conversion)
546 	vkCreateSamplerYcbcrConversionKHR = (PFN_vkCreateSamplerYcbcrConversionKHR)load(context, "vkCreateSamplerYcbcrConversionKHR");
547 	vkDestroySamplerYcbcrConversionKHR = (PFN_vkDestroySamplerYcbcrConversionKHR)load(context, "vkDestroySamplerYcbcrConversionKHR");
548 #endif /* defined(VK_KHR_sampler_ycbcr_conversion) */
549 #if defined(VK_KHR_shared_presentable_image)
550 	vkGetSwapchainStatusKHR = (PFN_vkGetSwapchainStatusKHR)load(context, "vkGetSwapchainStatusKHR");
551 #endif /* defined(VK_KHR_shared_presentable_image) */
552 #if defined(VK_KHR_swapchain)
553 	vkAcquireNextImageKHR = (PFN_vkAcquireNextImageKHR)load(context, "vkAcquireNextImageKHR");
554 	vkCreateSwapchainKHR = (PFN_vkCreateSwapchainKHR)load(context, "vkCreateSwapchainKHR");
555 	vkDestroySwapchainKHR = (PFN_vkDestroySwapchainKHR)load(context, "vkDestroySwapchainKHR");
556 	vkGetSwapchainImagesKHR = (PFN_vkGetSwapchainImagesKHR)load(context, "vkGetSwapchainImagesKHR");
557 	vkQueuePresentKHR = (PFN_vkQueuePresentKHR)load(context, "vkQueuePresentKHR");
558 #endif /* defined(VK_KHR_swapchain) */
559 #if defined(VK_NVX_device_generated_commands)
560 	vkCmdProcessCommandsNVX = (PFN_vkCmdProcessCommandsNVX)load(context, "vkCmdProcessCommandsNVX");
561 	vkCmdReserveSpaceForCommandsNVX = (PFN_vkCmdReserveSpaceForCommandsNVX)load(context, "vkCmdReserveSpaceForCommandsNVX");
562 	vkCreateIndirectCommandsLayoutNVX = (PFN_vkCreateIndirectCommandsLayoutNVX)load(context, "vkCreateIndirectCommandsLayoutNVX");
563 	vkCreateObjectTableNVX = (PFN_vkCreateObjectTableNVX)load(context, "vkCreateObjectTableNVX");
564 	vkDestroyIndirectCommandsLayoutNVX = (PFN_vkDestroyIndirectCommandsLayoutNVX)load(context, "vkDestroyIndirectCommandsLayoutNVX");
565 	vkDestroyObjectTableNVX = (PFN_vkDestroyObjectTableNVX)load(context, "vkDestroyObjectTableNVX");
566 	vkRegisterObjectsNVX = (PFN_vkRegisterObjectsNVX)load(context, "vkRegisterObjectsNVX");
567 	vkUnregisterObjectsNVX = (PFN_vkUnregisterObjectsNVX)load(context, "vkUnregisterObjectsNVX");
568 #endif /* defined(VK_NVX_device_generated_commands) */
569 #if defined(VK_NVX_raytracing)
570 	vkBindAccelerationStructureMemoryNVX = (PFN_vkBindAccelerationStructureMemoryNVX)load(context, "vkBindAccelerationStructureMemoryNVX");
571 	vkCmdBuildAccelerationStructureNVX = (PFN_vkCmdBuildAccelerationStructureNVX)load(context, "vkCmdBuildAccelerationStructureNVX");
572 	vkCmdCopyAccelerationStructureNVX = (PFN_vkCmdCopyAccelerationStructureNVX)load(context, "vkCmdCopyAccelerationStructureNVX");
573 	vkCmdTraceRaysNVX = (PFN_vkCmdTraceRaysNVX)load(context, "vkCmdTraceRaysNVX");
574 	vkCmdWriteAccelerationStructurePropertiesNVX = (PFN_vkCmdWriteAccelerationStructurePropertiesNVX)load(context, "vkCmdWriteAccelerationStructurePropertiesNVX");
575 	vkCompileDeferredNVX = (PFN_vkCompileDeferredNVX)load(context, "vkCompileDeferredNVX");
576 	vkCreateAccelerationStructureNVX = (PFN_vkCreateAccelerationStructureNVX)load(context, "vkCreateAccelerationStructureNVX");
577 	vkCreateRaytracingPipelinesNVX = (PFN_vkCreateRaytracingPipelinesNVX)load(context, "vkCreateRaytracingPipelinesNVX");
578 	vkDestroyAccelerationStructureNVX = (PFN_vkDestroyAccelerationStructureNVX)load(context, "vkDestroyAccelerationStructureNVX");
579 	vkGetAccelerationStructureHandleNVX = (PFN_vkGetAccelerationStructureHandleNVX)load(context, "vkGetAccelerationStructureHandleNVX");
580 	vkGetAccelerationStructureMemoryRequirementsNVX = (PFN_vkGetAccelerationStructureMemoryRequirementsNVX)load(context, "vkGetAccelerationStructureMemoryRequirementsNVX");
581 	vkGetAccelerationStructureScratchMemoryRequirementsNVX = (PFN_vkGetAccelerationStructureScratchMemoryRequirementsNVX)load(context, "vkGetAccelerationStructureScratchMemoryRequirementsNVX");
582 	vkGetRaytracingShaderHandlesNVX = (PFN_vkGetRaytracingShaderHandlesNVX)load(context, "vkGetRaytracingShaderHandlesNVX");
583 #endif /* defined(VK_NVX_raytracing) */
584 #if defined(VK_NV_clip_space_w_scaling)
585 	vkCmdSetViewportWScalingNV = (PFN_vkCmdSetViewportWScalingNV)load(context, "vkCmdSetViewportWScalingNV");
586 #endif /* defined(VK_NV_clip_space_w_scaling) */
587 #if defined(VK_NV_device_diagnostic_checkpoints)
588 	vkCmdSetCheckpointNV = (PFN_vkCmdSetCheckpointNV)load(context, "vkCmdSetCheckpointNV");
589 	vkGetQueueCheckpointDataNV = (PFN_vkGetQueueCheckpointDataNV)load(context, "vkGetQueueCheckpointDataNV");
590 #endif /* defined(VK_NV_device_diagnostic_checkpoints) */
591 #if defined(VK_NV_external_memory_win32)
592 	vkGetMemoryWin32HandleNV = (PFN_vkGetMemoryWin32HandleNV)load(context, "vkGetMemoryWin32HandleNV");
593 #endif /* defined(VK_NV_external_memory_win32) */
594 #if defined(VK_NV_mesh_shader)
595 	vkCmdDrawMeshTasksIndirectCountNV = (PFN_vkCmdDrawMeshTasksIndirectCountNV)load(context, "vkCmdDrawMeshTasksIndirectCountNV");
596 	vkCmdDrawMeshTasksIndirectNV = (PFN_vkCmdDrawMeshTasksIndirectNV)load(context, "vkCmdDrawMeshTasksIndirectNV");
597 	vkCmdDrawMeshTasksNV = (PFN_vkCmdDrawMeshTasksNV)load(context, "vkCmdDrawMeshTasksNV");
598 #endif /* defined(VK_NV_mesh_shader) */
599 #if defined(VK_NV_ray_tracing)
600 	vkBindAccelerationStructureMemoryNV = (PFN_vkBindAccelerationStructureMemoryNV)load(context, "vkBindAccelerationStructureMemoryNV");
601 	vkCmdBuildAccelerationStructureNV = (PFN_vkCmdBuildAccelerationStructureNV)load(context, "vkCmdBuildAccelerationStructureNV");
602 	vkCmdCopyAccelerationStructureNV = (PFN_vkCmdCopyAccelerationStructureNV)load(context, "vkCmdCopyAccelerationStructureNV");
603 	vkCmdTraceRaysNV = (PFN_vkCmdTraceRaysNV)load(context, "vkCmdTraceRaysNV");
604 	vkCmdWriteAccelerationStructuresPropertiesNV = (PFN_vkCmdWriteAccelerationStructuresPropertiesNV)load(context, "vkCmdWriteAccelerationStructuresPropertiesNV");
605 	vkCompileDeferredNV = (PFN_vkCompileDeferredNV)load(context, "vkCompileDeferredNV");
606 	vkCreateAccelerationStructureNV = (PFN_vkCreateAccelerationStructureNV)load(context, "vkCreateAccelerationStructureNV");
607 	vkCreateRayTracingPipelinesNV = (PFN_vkCreateRayTracingPipelinesNV)load(context, "vkCreateRayTracingPipelinesNV");
608 	vkDestroyAccelerationStructureNV = (PFN_vkDestroyAccelerationStructureNV)load(context, "vkDestroyAccelerationStructureNV");
609 	vkGetAccelerationStructureHandleNV = (PFN_vkGetAccelerationStructureHandleNV)load(context, "vkGetAccelerationStructureHandleNV");
610 	vkGetAccelerationStructureMemoryRequirementsNV = (PFN_vkGetAccelerationStructureMemoryRequirementsNV)load(context, "vkGetAccelerationStructureMemoryRequirementsNV");
611 	vkGetRayTracingShaderGroupHandlesNV = (PFN_vkGetRayTracingShaderGroupHandlesNV)load(context, "vkGetRayTracingShaderGroupHandlesNV");
612 #endif /* defined(VK_NV_ray_tracing) */
613 #if defined(VK_NV_scissor_exclusive)
614 	vkCmdSetExclusiveScissorNV = (PFN_vkCmdSetExclusiveScissorNV)load(context, "vkCmdSetExclusiveScissorNV");
615 #endif /* defined(VK_NV_scissor_exclusive) */
616 #if defined(VK_NV_shading_rate_image)
617 	vkCmdBindShadingRateImageNV = (PFN_vkCmdBindShadingRateImageNV)load(context, "vkCmdBindShadingRateImageNV");
618 	vkCmdSetCoarseSampleOrderNV = (PFN_vkCmdSetCoarseSampleOrderNV)load(context, "vkCmdSetCoarseSampleOrderNV");
619 	vkCmdSetViewportShadingRatePaletteNV = (PFN_vkCmdSetViewportShadingRatePaletteNV)load(context, "vkCmdSetViewportShadingRatePaletteNV");
620 #endif /* defined(VK_NV_shading_rate_image) */
621 #if (defined(VK_KHR_descriptor_update_template) && defined(VK_KHR_push_descriptor)) || (defined(VK_KHR_push_descriptor) && defined(VK_VERSION_1_1))
622 	vkCmdPushDescriptorSetWithTemplateKHR = (PFN_vkCmdPushDescriptorSetWithTemplateKHR)load(context, "vkCmdPushDescriptorSetWithTemplateKHR");
623 #endif /* (defined(VK_KHR_descriptor_update_template) && defined(VK_KHR_push_descriptor)) || (defined(VK_KHR_push_descriptor) && defined(VK_VERSION_1_1)) */
624 #if (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1))
625 	vkGetDeviceGroupPresentCapabilitiesKHR = (PFN_vkGetDeviceGroupPresentCapabilitiesKHR)load(context, "vkGetDeviceGroupPresentCapabilitiesKHR");
626 	vkGetDeviceGroupSurfacePresentModesKHR = (PFN_vkGetDeviceGroupSurfacePresentModesKHR)load(context, "vkGetDeviceGroupSurfacePresentModesKHR");
627 #endif /* (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) */
628 #if (defined(VK_KHR_device_group) && defined(VK_KHR_swapchain)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1))
629 	vkAcquireNextImage2KHR = (PFN_vkAcquireNextImage2KHR)load(context, "vkAcquireNextImage2KHR");
630 #endif /* (defined(VK_KHR_device_group) && defined(VK_KHR_swapchain)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) */
631 	/* VOLK_GENERATE_LOAD_DEVICE */
632 }
633 
volkGenLoadDeviceTable(struct VolkDeviceTable * table,void * context,PFN_vkVoidFunction (* load)(void *,const char *))634 static void volkGenLoadDeviceTable(struct VolkDeviceTable* table, void* context, PFN_vkVoidFunction (*load)(void*, const char*))
635 {
636 	/* VOLK_GENERATE_LOAD_DEVICE_TABLE */
637 #if defined(VK_VERSION_1_0)
638 	table->vkAllocateCommandBuffers = (PFN_vkAllocateCommandBuffers)load(context, "vkAllocateCommandBuffers");
639 	table->vkAllocateDescriptorSets = (PFN_vkAllocateDescriptorSets)load(context, "vkAllocateDescriptorSets");
640 	table->vkAllocateMemory = (PFN_vkAllocateMemory)load(context, "vkAllocateMemory");
641 	table->vkBeginCommandBuffer = (PFN_vkBeginCommandBuffer)load(context, "vkBeginCommandBuffer");
642 	table->vkBindBufferMemory = (PFN_vkBindBufferMemory)load(context, "vkBindBufferMemory");
643 	table->vkBindImageMemory = (PFN_vkBindImageMemory)load(context, "vkBindImageMemory");
644 	table->vkCmdBeginQuery = (PFN_vkCmdBeginQuery)load(context, "vkCmdBeginQuery");
645 	table->vkCmdBeginRenderPass = (PFN_vkCmdBeginRenderPass)load(context, "vkCmdBeginRenderPass");
646 	table->vkCmdBindDescriptorSets = (PFN_vkCmdBindDescriptorSets)load(context, "vkCmdBindDescriptorSets");
647 	table->vkCmdBindIndexBuffer = (PFN_vkCmdBindIndexBuffer)load(context, "vkCmdBindIndexBuffer");
648 	table->vkCmdBindPipeline = (PFN_vkCmdBindPipeline)load(context, "vkCmdBindPipeline");
649 	table->vkCmdBindVertexBuffers = (PFN_vkCmdBindVertexBuffers)load(context, "vkCmdBindVertexBuffers");
650 	table->vkCmdBlitImage = (PFN_vkCmdBlitImage)load(context, "vkCmdBlitImage");
651 	table->vkCmdClearAttachments = (PFN_vkCmdClearAttachments)load(context, "vkCmdClearAttachments");
652 	table->vkCmdClearColorImage = (PFN_vkCmdClearColorImage)load(context, "vkCmdClearColorImage");
653 	table->vkCmdClearDepthStencilImage = (PFN_vkCmdClearDepthStencilImage)load(context, "vkCmdClearDepthStencilImage");
654 	table->vkCmdCopyBuffer = (PFN_vkCmdCopyBuffer)load(context, "vkCmdCopyBuffer");
655 	table->vkCmdCopyBufferToImage = (PFN_vkCmdCopyBufferToImage)load(context, "vkCmdCopyBufferToImage");
656 	table->vkCmdCopyImage = (PFN_vkCmdCopyImage)load(context, "vkCmdCopyImage");
657 	table->vkCmdCopyImageToBuffer = (PFN_vkCmdCopyImageToBuffer)load(context, "vkCmdCopyImageToBuffer");
658 	table->vkCmdCopyQueryPoolResults = (PFN_vkCmdCopyQueryPoolResults)load(context, "vkCmdCopyQueryPoolResults");
659 	table->vkCmdDispatch = (PFN_vkCmdDispatch)load(context, "vkCmdDispatch");
660 	table->vkCmdDispatchIndirect = (PFN_vkCmdDispatchIndirect)load(context, "vkCmdDispatchIndirect");
661 	table->vkCmdDraw = (PFN_vkCmdDraw)load(context, "vkCmdDraw");
662 	table->vkCmdDrawIndexed = (PFN_vkCmdDrawIndexed)load(context, "vkCmdDrawIndexed");
663 	table->vkCmdDrawIndexedIndirect = (PFN_vkCmdDrawIndexedIndirect)load(context, "vkCmdDrawIndexedIndirect");
664 	table->vkCmdDrawIndirect = (PFN_vkCmdDrawIndirect)load(context, "vkCmdDrawIndirect");
665 	table->vkCmdEndQuery = (PFN_vkCmdEndQuery)load(context, "vkCmdEndQuery");
666 	table->vkCmdEndRenderPass = (PFN_vkCmdEndRenderPass)load(context, "vkCmdEndRenderPass");
667 	table->vkCmdExecuteCommands = (PFN_vkCmdExecuteCommands)load(context, "vkCmdExecuteCommands");
668 	table->vkCmdFillBuffer = (PFN_vkCmdFillBuffer)load(context, "vkCmdFillBuffer");
669 	table->vkCmdNextSubpass = (PFN_vkCmdNextSubpass)load(context, "vkCmdNextSubpass");
670 	table->vkCmdPipelineBarrier = (PFN_vkCmdPipelineBarrier)load(context, "vkCmdPipelineBarrier");
671 	table->vkCmdPushConstants = (PFN_vkCmdPushConstants)load(context, "vkCmdPushConstants");
672 	table->vkCmdResetEvent = (PFN_vkCmdResetEvent)load(context, "vkCmdResetEvent");
673 	table->vkCmdResetQueryPool = (PFN_vkCmdResetQueryPool)load(context, "vkCmdResetQueryPool");
674 	table->vkCmdResolveImage = (PFN_vkCmdResolveImage)load(context, "vkCmdResolveImage");
675 	table->vkCmdSetBlendConstants = (PFN_vkCmdSetBlendConstants)load(context, "vkCmdSetBlendConstants");
676 	table->vkCmdSetDepthBias = (PFN_vkCmdSetDepthBias)load(context, "vkCmdSetDepthBias");
677 	table->vkCmdSetDepthBounds = (PFN_vkCmdSetDepthBounds)load(context, "vkCmdSetDepthBounds");
678 	table->vkCmdSetEvent = (PFN_vkCmdSetEvent)load(context, "vkCmdSetEvent");
679 	table->vkCmdSetLineWidth = (PFN_vkCmdSetLineWidth)load(context, "vkCmdSetLineWidth");
680 	table->vkCmdSetScissor = (PFN_vkCmdSetScissor)load(context, "vkCmdSetScissor");
681 	table->vkCmdSetStencilCompareMask = (PFN_vkCmdSetStencilCompareMask)load(context, "vkCmdSetStencilCompareMask");
682 	table->vkCmdSetStencilReference = (PFN_vkCmdSetStencilReference)load(context, "vkCmdSetStencilReference");
683 	table->vkCmdSetStencilWriteMask = (PFN_vkCmdSetStencilWriteMask)load(context, "vkCmdSetStencilWriteMask");
684 	table->vkCmdSetViewport = (PFN_vkCmdSetViewport)load(context, "vkCmdSetViewport");
685 	table->vkCmdUpdateBuffer = (PFN_vkCmdUpdateBuffer)load(context, "vkCmdUpdateBuffer");
686 	table->vkCmdWaitEvents = (PFN_vkCmdWaitEvents)load(context, "vkCmdWaitEvents");
687 	table->vkCmdWriteTimestamp = (PFN_vkCmdWriteTimestamp)load(context, "vkCmdWriteTimestamp");
688 	table->vkCreateBuffer = (PFN_vkCreateBuffer)load(context, "vkCreateBuffer");
689 	table->vkCreateBufferView = (PFN_vkCreateBufferView)load(context, "vkCreateBufferView");
690 	table->vkCreateCommandPool = (PFN_vkCreateCommandPool)load(context, "vkCreateCommandPool");
691 	table->vkCreateComputePipelines = (PFN_vkCreateComputePipelines)load(context, "vkCreateComputePipelines");
692 	table->vkCreateDescriptorPool = (PFN_vkCreateDescriptorPool)load(context, "vkCreateDescriptorPool");
693 	table->vkCreateDescriptorSetLayout = (PFN_vkCreateDescriptorSetLayout)load(context, "vkCreateDescriptorSetLayout");
694 	table->vkCreateEvent = (PFN_vkCreateEvent)load(context, "vkCreateEvent");
695 	table->vkCreateFence = (PFN_vkCreateFence)load(context, "vkCreateFence");
696 	table->vkCreateFramebuffer = (PFN_vkCreateFramebuffer)load(context, "vkCreateFramebuffer");
697 	table->vkCreateGraphicsPipelines = (PFN_vkCreateGraphicsPipelines)load(context, "vkCreateGraphicsPipelines");
698 	table->vkCreateImage = (PFN_vkCreateImage)load(context, "vkCreateImage");
699 	table->vkCreateImageView = (PFN_vkCreateImageView)load(context, "vkCreateImageView");
700 	table->vkCreatePipelineCache = (PFN_vkCreatePipelineCache)load(context, "vkCreatePipelineCache");
701 	table->vkCreatePipelineLayout = (PFN_vkCreatePipelineLayout)load(context, "vkCreatePipelineLayout");
702 	table->vkCreateQueryPool = (PFN_vkCreateQueryPool)load(context, "vkCreateQueryPool");
703 	table->vkCreateRenderPass = (PFN_vkCreateRenderPass)load(context, "vkCreateRenderPass");
704 	table->vkCreateSampler = (PFN_vkCreateSampler)load(context, "vkCreateSampler");
705 	table->vkCreateSemaphore = (PFN_vkCreateSemaphore)load(context, "vkCreateSemaphore");
706 	table->vkCreateShaderModule = (PFN_vkCreateShaderModule)load(context, "vkCreateShaderModule");
707 	table->vkDestroyBuffer = (PFN_vkDestroyBuffer)load(context, "vkDestroyBuffer");
708 	table->vkDestroyBufferView = (PFN_vkDestroyBufferView)load(context, "vkDestroyBufferView");
709 	table->vkDestroyCommandPool = (PFN_vkDestroyCommandPool)load(context, "vkDestroyCommandPool");
710 	table->vkDestroyDescriptorPool = (PFN_vkDestroyDescriptorPool)load(context, "vkDestroyDescriptorPool");
711 	table->vkDestroyDescriptorSetLayout = (PFN_vkDestroyDescriptorSetLayout)load(context, "vkDestroyDescriptorSetLayout");
712 	table->vkDestroyDevice = (PFN_vkDestroyDevice)load(context, "vkDestroyDevice");
713 	table->vkDestroyEvent = (PFN_vkDestroyEvent)load(context, "vkDestroyEvent");
714 	table->vkDestroyFence = (PFN_vkDestroyFence)load(context, "vkDestroyFence");
715 	table->vkDestroyFramebuffer = (PFN_vkDestroyFramebuffer)load(context, "vkDestroyFramebuffer");
716 	table->vkDestroyImage = (PFN_vkDestroyImage)load(context, "vkDestroyImage");
717 	table->vkDestroyImageView = (PFN_vkDestroyImageView)load(context, "vkDestroyImageView");
718 	table->vkDestroyPipeline = (PFN_vkDestroyPipeline)load(context, "vkDestroyPipeline");
719 	table->vkDestroyPipelineCache = (PFN_vkDestroyPipelineCache)load(context, "vkDestroyPipelineCache");
720 	table->vkDestroyPipelineLayout = (PFN_vkDestroyPipelineLayout)load(context, "vkDestroyPipelineLayout");
721 	table->vkDestroyQueryPool = (PFN_vkDestroyQueryPool)load(context, "vkDestroyQueryPool");
722 	table->vkDestroyRenderPass = (PFN_vkDestroyRenderPass)load(context, "vkDestroyRenderPass");
723 	table->vkDestroySampler = (PFN_vkDestroySampler)load(context, "vkDestroySampler");
724 	table->vkDestroySemaphore = (PFN_vkDestroySemaphore)load(context, "vkDestroySemaphore");
725 	table->vkDestroyShaderModule = (PFN_vkDestroyShaderModule)load(context, "vkDestroyShaderModule");
726 	table->vkDeviceWaitIdle = (PFN_vkDeviceWaitIdle)load(context, "vkDeviceWaitIdle");
727 	table->vkEndCommandBuffer = (PFN_vkEndCommandBuffer)load(context, "vkEndCommandBuffer");
728 	table->vkFlushMappedMemoryRanges = (PFN_vkFlushMappedMemoryRanges)load(context, "vkFlushMappedMemoryRanges");
729 	table->vkFreeCommandBuffers = (PFN_vkFreeCommandBuffers)load(context, "vkFreeCommandBuffers");
730 	table->vkFreeDescriptorSets = (PFN_vkFreeDescriptorSets)load(context, "vkFreeDescriptorSets");
731 	table->vkFreeMemory = (PFN_vkFreeMemory)load(context, "vkFreeMemory");
732 	table->vkGetBufferMemoryRequirements = (PFN_vkGetBufferMemoryRequirements)load(context, "vkGetBufferMemoryRequirements");
733 	table->vkGetDeviceMemoryCommitment = (PFN_vkGetDeviceMemoryCommitment)load(context, "vkGetDeviceMemoryCommitment");
734 	table->vkGetDeviceQueue = (PFN_vkGetDeviceQueue)load(context, "vkGetDeviceQueue");
735 	table->vkGetEventStatus = (PFN_vkGetEventStatus)load(context, "vkGetEventStatus");
736 	table->vkGetFenceStatus = (PFN_vkGetFenceStatus)load(context, "vkGetFenceStatus");
737 	table->vkGetImageMemoryRequirements = (PFN_vkGetImageMemoryRequirements)load(context, "vkGetImageMemoryRequirements");
738 	table->vkGetImageSparseMemoryRequirements = (PFN_vkGetImageSparseMemoryRequirements)load(context, "vkGetImageSparseMemoryRequirements");
739 	table->vkGetImageSubresourceLayout = (PFN_vkGetImageSubresourceLayout)load(context, "vkGetImageSubresourceLayout");
740 	table->vkGetPipelineCacheData = (PFN_vkGetPipelineCacheData)load(context, "vkGetPipelineCacheData");
741 	table->vkGetQueryPoolResults = (PFN_vkGetQueryPoolResults)load(context, "vkGetQueryPoolResults");
742 	table->vkGetRenderAreaGranularity = (PFN_vkGetRenderAreaGranularity)load(context, "vkGetRenderAreaGranularity");
743 	table->vkInvalidateMappedMemoryRanges = (PFN_vkInvalidateMappedMemoryRanges)load(context, "vkInvalidateMappedMemoryRanges");
744 	table->vkMapMemory = (PFN_vkMapMemory)load(context, "vkMapMemory");
745 	table->vkMergePipelineCaches = (PFN_vkMergePipelineCaches)load(context, "vkMergePipelineCaches");
746 	table->vkQueueBindSparse = (PFN_vkQueueBindSparse)load(context, "vkQueueBindSparse");
747 	table->vkQueueSubmit = (PFN_vkQueueSubmit)load(context, "vkQueueSubmit");
748 	table->vkQueueWaitIdle = (PFN_vkQueueWaitIdle)load(context, "vkQueueWaitIdle");
749 	table->vkResetCommandBuffer = (PFN_vkResetCommandBuffer)load(context, "vkResetCommandBuffer");
750 	table->vkResetCommandPool = (PFN_vkResetCommandPool)load(context, "vkResetCommandPool");
751 	table->vkResetDescriptorPool = (PFN_vkResetDescriptorPool)load(context, "vkResetDescriptorPool");
752 	table->vkResetEvent = (PFN_vkResetEvent)load(context, "vkResetEvent");
753 	table->vkResetFences = (PFN_vkResetFences)load(context, "vkResetFences");
754 	table->vkSetEvent = (PFN_vkSetEvent)load(context, "vkSetEvent");
755 	table->vkUnmapMemory = (PFN_vkUnmapMemory)load(context, "vkUnmapMemory");
756 	table->vkUpdateDescriptorSets = (PFN_vkUpdateDescriptorSets)load(context, "vkUpdateDescriptorSets");
757 	table->vkWaitForFences = (PFN_vkWaitForFences)load(context, "vkWaitForFences");
758 #endif /* defined(VK_VERSION_1_0) */
759 #if defined(VK_VERSION_1_1)
760 	table->vkBindBufferMemory2 = (PFN_vkBindBufferMemory2)load(context, "vkBindBufferMemory2");
761 	table->vkBindImageMemory2 = (PFN_vkBindImageMemory2)load(context, "vkBindImageMemory2");
762 	table->vkCmdDispatchBase = (PFN_vkCmdDispatchBase)load(context, "vkCmdDispatchBase");
763 	table->vkCmdSetDeviceMask = (PFN_vkCmdSetDeviceMask)load(context, "vkCmdSetDeviceMask");
764 	table->vkCreateDescriptorUpdateTemplate = (PFN_vkCreateDescriptorUpdateTemplate)load(context, "vkCreateDescriptorUpdateTemplate");
765 	table->vkCreateSamplerYcbcrConversion = (PFN_vkCreateSamplerYcbcrConversion)load(context, "vkCreateSamplerYcbcrConversion");
766 	table->vkDestroyDescriptorUpdateTemplate = (PFN_vkDestroyDescriptorUpdateTemplate)load(context, "vkDestroyDescriptorUpdateTemplate");
767 	table->vkDestroySamplerYcbcrConversion = (PFN_vkDestroySamplerYcbcrConversion)load(context, "vkDestroySamplerYcbcrConversion");
768 	table->vkGetBufferMemoryRequirements2 = (PFN_vkGetBufferMemoryRequirements2)load(context, "vkGetBufferMemoryRequirements2");
769 	table->vkGetDescriptorSetLayoutSupport = (PFN_vkGetDescriptorSetLayoutSupport)load(context, "vkGetDescriptorSetLayoutSupport");
770 	table->vkGetDeviceGroupPeerMemoryFeatures = (PFN_vkGetDeviceGroupPeerMemoryFeatures)load(context, "vkGetDeviceGroupPeerMemoryFeatures");
771 	table->vkGetDeviceQueue2 = (PFN_vkGetDeviceQueue2)load(context, "vkGetDeviceQueue2");
772 	table->vkGetImageMemoryRequirements2 = (PFN_vkGetImageMemoryRequirements2)load(context, "vkGetImageMemoryRequirements2");
773 	table->vkGetImageSparseMemoryRequirements2 = (PFN_vkGetImageSparseMemoryRequirements2)load(context, "vkGetImageSparseMemoryRequirements2");
774 	table->vkTrimCommandPool = (PFN_vkTrimCommandPool)load(context, "vkTrimCommandPool");
775 	table->vkUpdateDescriptorSetWithTemplate = (PFN_vkUpdateDescriptorSetWithTemplate)load(context, "vkUpdateDescriptorSetWithTemplate");
776 #endif /* defined(VK_VERSION_1_1) */
777 #if defined(VK_AMD_buffer_marker)
778 	table->vkCmdWriteBufferMarkerAMD = (PFN_vkCmdWriteBufferMarkerAMD)load(context, "vkCmdWriteBufferMarkerAMD");
779 #endif /* defined(VK_AMD_buffer_marker) */
780 #if defined(VK_AMD_draw_indirect_count)
781 	table->vkCmdDrawIndexedIndirectCountAMD = (PFN_vkCmdDrawIndexedIndirectCountAMD)load(context, "vkCmdDrawIndexedIndirectCountAMD");
782 	table->vkCmdDrawIndirectCountAMD = (PFN_vkCmdDrawIndirectCountAMD)load(context, "vkCmdDrawIndirectCountAMD");
783 #endif /* defined(VK_AMD_draw_indirect_count) */
784 #if defined(VK_AMD_shader_info)
785 	table->vkGetShaderInfoAMD = (PFN_vkGetShaderInfoAMD)load(context, "vkGetShaderInfoAMD");
786 #endif /* defined(VK_AMD_shader_info) */
787 #if defined(VK_ANDROID_external_memory_android_hardware_buffer)
788 	table->vkGetAndroidHardwareBufferPropertiesANDROID = (PFN_vkGetAndroidHardwareBufferPropertiesANDROID)load(context, "vkGetAndroidHardwareBufferPropertiesANDROID");
789 	table->vkGetMemoryAndroidHardwareBufferANDROID = (PFN_vkGetMemoryAndroidHardwareBufferANDROID)load(context, "vkGetMemoryAndroidHardwareBufferANDROID");
790 #endif /* defined(VK_ANDROID_external_memory_android_hardware_buffer) */
791 #if defined(VK_EXT_calibrated_timestamps)
792 	table->vkGetCalibratedTimestampsEXT = (PFN_vkGetCalibratedTimestampsEXT)load(context, "vkGetCalibratedTimestampsEXT");
793 #endif /* defined(VK_EXT_calibrated_timestamps) */
794 #if defined(VK_EXT_conditional_rendering)
795 	table->vkCmdBeginConditionalRenderingEXT = (PFN_vkCmdBeginConditionalRenderingEXT)load(context, "vkCmdBeginConditionalRenderingEXT");
796 	table->vkCmdEndConditionalRenderingEXT = (PFN_vkCmdEndConditionalRenderingEXT)load(context, "vkCmdEndConditionalRenderingEXT");
797 #endif /* defined(VK_EXT_conditional_rendering) */
798 #if defined(VK_EXT_debug_marker)
799 	table->vkCmdDebugMarkerBeginEXT = (PFN_vkCmdDebugMarkerBeginEXT)load(context, "vkCmdDebugMarkerBeginEXT");
800 	table->vkCmdDebugMarkerEndEXT = (PFN_vkCmdDebugMarkerEndEXT)load(context, "vkCmdDebugMarkerEndEXT");
801 	table->vkCmdDebugMarkerInsertEXT = (PFN_vkCmdDebugMarkerInsertEXT)load(context, "vkCmdDebugMarkerInsertEXT");
802 	table->vkDebugMarkerSetObjectNameEXT = (PFN_vkDebugMarkerSetObjectNameEXT)load(context, "vkDebugMarkerSetObjectNameEXT");
803 	table->vkDebugMarkerSetObjectTagEXT = (PFN_vkDebugMarkerSetObjectTagEXT)load(context, "vkDebugMarkerSetObjectTagEXT");
804 #endif /* defined(VK_EXT_debug_marker) */
805 #if defined(VK_EXT_debug_utils)
806 	table->vkCmdBeginDebugUtilsLabelEXT = (PFN_vkCmdBeginDebugUtilsLabelEXT)load(context, "vkCmdBeginDebugUtilsLabelEXT");
807 	table->vkCmdEndDebugUtilsLabelEXT = (PFN_vkCmdEndDebugUtilsLabelEXT)load(context, "vkCmdEndDebugUtilsLabelEXT");
808 	table->vkCmdInsertDebugUtilsLabelEXT = (PFN_vkCmdInsertDebugUtilsLabelEXT)load(context, "vkCmdInsertDebugUtilsLabelEXT");
809 	table->vkQueueBeginDebugUtilsLabelEXT = (PFN_vkQueueBeginDebugUtilsLabelEXT)load(context, "vkQueueBeginDebugUtilsLabelEXT");
810 	table->vkQueueEndDebugUtilsLabelEXT = (PFN_vkQueueEndDebugUtilsLabelEXT)load(context, "vkQueueEndDebugUtilsLabelEXT");
811 	table->vkQueueInsertDebugUtilsLabelEXT = (PFN_vkQueueInsertDebugUtilsLabelEXT)load(context, "vkQueueInsertDebugUtilsLabelEXT");
812 	table->vkSetDebugUtilsObjectNameEXT = (PFN_vkSetDebugUtilsObjectNameEXT)load(context, "vkSetDebugUtilsObjectNameEXT");
813 	table->vkSetDebugUtilsObjectTagEXT = (PFN_vkSetDebugUtilsObjectTagEXT)load(context, "vkSetDebugUtilsObjectTagEXT");
814 #endif /* defined(VK_EXT_debug_utils) */
815 #if defined(VK_EXT_discard_rectangles)
816 	table->vkCmdSetDiscardRectangleEXT = (PFN_vkCmdSetDiscardRectangleEXT)load(context, "vkCmdSetDiscardRectangleEXT");
817 #endif /* defined(VK_EXT_discard_rectangles) */
818 #if defined(VK_EXT_display_control)
819 	table->vkDisplayPowerControlEXT = (PFN_vkDisplayPowerControlEXT)load(context, "vkDisplayPowerControlEXT");
820 	table->vkGetSwapchainCounterEXT = (PFN_vkGetSwapchainCounterEXT)load(context, "vkGetSwapchainCounterEXT");
821 	table->vkRegisterDeviceEventEXT = (PFN_vkRegisterDeviceEventEXT)load(context, "vkRegisterDeviceEventEXT");
822 	table->vkRegisterDisplayEventEXT = (PFN_vkRegisterDisplayEventEXT)load(context, "vkRegisterDisplayEventEXT");
823 #endif /* defined(VK_EXT_display_control) */
824 #if defined(VK_EXT_external_memory_host)
825 	table->vkGetMemoryHostPointerPropertiesEXT = (PFN_vkGetMemoryHostPointerPropertiesEXT)load(context, "vkGetMemoryHostPointerPropertiesEXT");
826 #endif /* defined(VK_EXT_external_memory_host) */
827 #if defined(VK_EXT_hdr_metadata)
828 	table->vkSetHdrMetadataEXT = (PFN_vkSetHdrMetadataEXT)load(context, "vkSetHdrMetadataEXT");
829 #endif /* defined(VK_EXT_hdr_metadata) */
830 #if defined(VK_EXT_image_drm_format_modifier)
831 	table->vkGetImageDrmFormatModifierPropertiesEXT = (PFN_vkGetImageDrmFormatModifierPropertiesEXT)load(context, "vkGetImageDrmFormatModifierPropertiesEXT");
832 #endif /* defined(VK_EXT_image_drm_format_modifier) */
833 #if defined(VK_EXT_sample_locations)
834 	table->vkCmdSetSampleLocationsEXT = (PFN_vkCmdSetSampleLocationsEXT)load(context, "vkCmdSetSampleLocationsEXT");
835 #endif /* defined(VK_EXT_sample_locations) */
836 #if defined(VK_EXT_transform_feedback)
837 	table->vkCmdBeginQueryIndexedEXT = (PFN_vkCmdBeginQueryIndexedEXT)load(context, "vkCmdBeginQueryIndexedEXT");
838 	table->vkCmdBeginTransformFeedbackEXT = (PFN_vkCmdBeginTransformFeedbackEXT)load(context, "vkCmdBeginTransformFeedbackEXT");
839 	table->vkCmdBindTransformFeedbackBuffersEXT = (PFN_vkCmdBindTransformFeedbackBuffersEXT)load(context, "vkCmdBindTransformFeedbackBuffersEXT");
840 	table->vkCmdDrawIndirectByteCountEXT = (PFN_vkCmdDrawIndirectByteCountEXT)load(context, "vkCmdDrawIndirectByteCountEXT");
841 	table->vkCmdEndQueryIndexedEXT = (PFN_vkCmdEndQueryIndexedEXT)load(context, "vkCmdEndQueryIndexedEXT");
842 	table->vkCmdEndTransformFeedbackEXT = (PFN_vkCmdEndTransformFeedbackEXT)load(context, "vkCmdEndTransformFeedbackEXT");
843 #endif /* defined(VK_EXT_transform_feedback) */
844 #if defined(VK_EXT_validation_cache)
845 	table->vkCreateValidationCacheEXT = (PFN_vkCreateValidationCacheEXT)load(context, "vkCreateValidationCacheEXT");
846 	table->vkDestroyValidationCacheEXT = (PFN_vkDestroyValidationCacheEXT)load(context, "vkDestroyValidationCacheEXT");
847 	table->vkGetValidationCacheDataEXT = (PFN_vkGetValidationCacheDataEXT)load(context, "vkGetValidationCacheDataEXT");
848 	table->vkMergeValidationCachesEXT = (PFN_vkMergeValidationCachesEXT)load(context, "vkMergeValidationCachesEXT");
849 #endif /* defined(VK_EXT_validation_cache) */
850 #if defined(VK_GOOGLE_display_timing)
851 	table->vkGetPastPresentationTimingGOOGLE = (PFN_vkGetPastPresentationTimingGOOGLE)load(context, "vkGetPastPresentationTimingGOOGLE");
852 	table->vkGetRefreshCycleDurationGOOGLE = (PFN_vkGetRefreshCycleDurationGOOGLE)load(context, "vkGetRefreshCycleDurationGOOGLE");
853 #endif /* defined(VK_GOOGLE_display_timing) */
854 #if defined(VK_KHR_bind_memory2)
855 	table->vkBindBufferMemory2KHR = (PFN_vkBindBufferMemory2KHR)load(context, "vkBindBufferMemory2KHR");
856 	table->vkBindImageMemory2KHR = (PFN_vkBindImageMemory2KHR)load(context, "vkBindImageMemory2KHR");
857 #endif /* defined(VK_KHR_bind_memory2) */
858 #if defined(VK_KHR_create_renderpass2)
859 	table->vkCmdBeginRenderPass2KHR = (PFN_vkCmdBeginRenderPass2KHR)load(context, "vkCmdBeginRenderPass2KHR");
860 	table->vkCmdEndRenderPass2KHR = (PFN_vkCmdEndRenderPass2KHR)load(context, "vkCmdEndRenderPass2KHR");
861 	table->vkCmdNextSubpass2KHR = (PFN_vkCmdNextSubpass2KHR)load(context, "vkCmdNextSubpass2KHR");
862 	table->vkCreateRenderPass2KHR = (PFN_vkCreateRenderPass2KHR)load(context, "vkCreateRenderPass2KHR");
863 #endif /* defined(VK_KHR_create_renderpass2) */
864 #if defined(VK_KHR_descriptor_update_template)
865 	table->vkCreateDescriptorUpdateTemplateKHR = (PFN_vkCreateDescriptorUpdateTemplateKHR)load(context, "vkCreateDescriptorUpdateTemplateKHR");
866 	table->vkDestroyDescriptorUpdateTemplateKHR = (PFN_vkDestroyDescriptorUpdateTemplateKHR)load(context, "vkDestroyDescriptorUpdateTemplateKHR");
867 	table->vkUpdateDescriptorSetWithTemplateKHR = (PFN_vkUpdateDescriptorSetWithTemplateKHR)load(context, "vkUpdateDescriptorSetWithTemplateKHR");
868 #endif /* defined(VK_KHR_descriptor_update_template) */
869 #if defined(VK_KHR_device_group)
870 	table->vkCmdDispatchBaseKHR = (PFN_vkCmdDispatchBaseKHR)load(context, "vkCmdDispatchBaseKHR");
871 	table->vkCmdSetDeviceMaskKHR = (PFN_vkCmdSetDeviceMaskKHR)load(context, "vkCmdSetDeviceMaskKHR");
872 	table->vkGetDeviceGroupPeerMemoryFeaturesKHR = (PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR)load(context, "vkGetDeviceGroupPeerMemoryFeaturesKHR");
873 #endif /* defined(VK_KHR_device_group) */
874 #if defined(VK_KHR_display_swapchain)
875 	table->vkCreateSharedSwapchainsKHR = (PFN_vkCreateSharedSwapchainsKHR)load(context, "vkCreateSharedSwapchainsKHR");
876 #endif /* defined(VK_KHR_display_swapchain) */
877 #if defined(VK_KHR_draw_indirect_count)
878 	table->vkCmdDrawIndexedIndirectCountKHR = (PFN_vkCmdDrawIndexedIndirectCountKHR)load(context, "vkCmdDrawIndexedIndirectCountKHR");
879 	table->vkCmdDrawIndirectCountKHR = (PFN_vkCmdDrawIndirectCountKHR)load(context, "vkCmdDrawIndirectCountKHR");
880 #endif /* defined(VK_KHR_draw_indirect_count) */
881 #if defined(VK_KHR_external_fence_fd)
882 	table->vkGetFenceFdKHR = (PFN_vkGetFenceFdKHR)load(context, "vkGetFenceFdKHR");
883 	table->vkImportFenceFdKHR = (PFN_vkImportFenceFdKHR)load(context, "vkImportFenceFdKHR");
884 #endif /* defined(VK_KHR_external_fence_fd) */
885 #if defined(VK_KHR_external_fence_win32)
886 	table->vkGetFenceWin32HandleKHR = (PFN_vkGetFenceWin32HandleKHR)load(context, "vkGetFenceWin32HandleKHR");
887 	table->vkImportFenceWin32HandleKHR = (PFN_vkImportFenceWin32HandleKHR)load(context, "vkImportFenceWin32HandleKHR");
888 #endif /* defined(VK_KHR_external_fence_win32) */
889 #if defined(VK_KHR_external_memory_fd)
890 	table->vkGetMemoryFdKHR = (PFN_vkGetMemoryFdKHR)load(context, "vkGetMemoryFdKHR");
891 	table->vkGetMemoryFdPropertiesKHR = (PFN_vkGetMemoryFdPropertiesKHR)load(context, "vkGetMemoryFdPropertiesKHR");
892 #endif /* defined(VK_KHR_external_memory_fd) */
893 #if defined(VK_KHR_external_memory_win32)
894 	table->vkGetMemoryWin32HandleKHR = (PFN_vkGetMemoryWin32HandleKHR)load(context, "vkGetMemoryWin32HandleKHR");
895 	table->vkGetMemoryWin32HandlePropertiesKHR = (PFN_vkGetMemoryWin32HandlePropertiesKHR)load(context, "vkGetMemoryWin32HandlePropertiesKHR");
896 #endif /* defined(VK_KHR_external_memory_win32) */
897 #if defined(VK_KHR_external_semaphore_fd)
898 	table->vkGetSemaphoreFdKHR = (PFN_vkGetSemaphoreFdKHR)load(context, "vkGetSemaphoreFdKHR");
899 	table->vkImportSemaphoreFdKHR = (PFN_vkImportSemaphoreFdKHR)load(context, "vkImportSemaphoreFdKHR");
900 #endif /* defined(VK_KHR_external_semaphore_fd) */
901 #if defined(VK_KHR_external_semaphore_win32)
902 	table->vkGetSemaphoreWin32HandleKHR = (PFN_vkGetSemaphoreWin32HandleKHR)load(context, "vkGetSemaphoreWin32HandleKHR");
903 	table->vkImportSemaphoreWin32HandleKHR = (PFN_vkImportSemaphoreWin32HandleKHR)load(context, "vkImportSemaphoreWin32HandleKHR");
904 #endif /* defined(VK_KHR_external_semaphore_win32) */
905 #if defined(VK_KHR_get_memory_requirements2)
906 	table->vkGetBufferMemoryRequirements2KHR = (PFN_vkGetBufferMemoryRequirements2KHR)load(context, "vkGetBufferMemoryRequirements2KHR");
907 	table->vkGetImageMemoryRequirements2KHR = (PFN_vkGetImageMemoryRequirements2KHR)load(context, "vkGetImageMemoryRequirements2KHR");
908 	table->vkGetImageSparseMemoryRequirements2KHR = (PFN_vkGetImageSparseMemoryRequirements2KHR)load(context, "vkGetImageSparseMemoryRequirements2KHR");
909 #endif /* defined(VK_KHR_get_memory_requirements2) */
910 #if defined(VK_KHR_maintenance1)
911 	table->vkTrimCommandPoolKHR = (PFN_vkTrimCommandPoolKHR)load(context, "vkTrimCommandPoolKHR");
912 #endif /* defined(VK_KHR_maintenance1) */
913 #if defined(VK_KHR_maintenance3)
914 	table->vkGetDescriptorSetLayoutSupportKHR = (PFN_vkGetDescriptorSetLayoutSupportKHR)load(context, "vkGetDescriptorSetLayoutSupportKHR");
915 #endif /* defined(VK_KHR_maintenance3) */
916 #if defined(VK_KHR_push_descriptor)
917 	table->vkCmdPushDescriptorSetKHR = (PFN_vkCmdPushDescriptorSetKHR)load(context, "vkCmdPushDescriptorSetKHR");
918 #endif /* defined(VK_KHR_push_descriptor) */
919 #if defined(VK_KHR_sampler_ycbcr_conversion)
920 	table->vkCreateSamplerYcbcrConversionKHR = (PFN_vkCreateSamplerYcbcrConversionKHR)load(context, "vkCreateSamplerYcbcrConversionKHR");
921 	table->vkDestroySamplerYcbcrConversionKHR = (PFN_vkDestroySamplerYcbcrConversionKHR)load(context, "vkDestroySamplerYcbcrConversionKHR");
922 #endif /* defined(VK_KHR_sampler_ycbcr_conversion) */
923 #if defined(VK_KHR_shared_presentable_image)
924 	table->vkGetSwapchainStatusKHR = (PFN_vkGetSwapchainStatusKHR)load(context, "vkGetSwapchainStatusKHR");
925 #endif /* defined(VK_KHR_shared_presentable_image) */
926 #if defined(VK_KHR_swapchain)
927 	table->vkAcquireNextImageKHR = (PFN_vkAcquireNextImageKHR)load(context, "vkAcquireNextImageKHR");
928 	table->vkCreateSwapchainKHR = (PFN_vkCreateSwapchainKHR)load(context, "vkCreateSwapchainKHR");
929 	table->vkDestroySwapchainKHR = (PFN_vkDestroySwapchainKHR)load(context, "vkDestroySwapchainKHR");
930 	table->vkGetSwapchainImagesKHR = (PFN_vkGetSwapchainImagesKHR)load(context, "vkGetSwapchainImagesKHR");
931 	table->vkQueuePresentKHR = (PFN_vkQueuePresentKHR)load(context, "vkQueuePresentKHR");
932 #endif /* defined(VK_KHR_swapchain) */
933 #if defined(VK_NVX_device_generated_commands)
934 	table->vkCmdProcessCommandsNVX = (PFN_vkCmdProcessCommandsNVX)load(context, "vkCmdProcessCommandsNVX");
935 	table->vkCmdReserveSpaceForCommandsNVX = (PFN_vkCmdReserveSpaceForCommandsNVX)load(context, "vkCmdReserveSpaceForCommandsNVX");
936 	table->vkCreateIndirectCommandsLayoutNVX = (PFN_vkCreateIndirectCommandsLayoutNVX)load(context, "vkCreateIndirectCommandsLayoutNVX");
937 	table->vkCreateObjectTableNVX = (PFN_vkCreateObjectTableNVX)load(context, "vkCreateObjectTableNVX");
938 	table->vkDestroyIndirectCommandsLayoutNVX = (PFN_vkDestroyIndirectCommandsLayoutNVX)load(context, "vkDestroyIndirectCommandsLayoutNVX");
939 	table->vkDestroyObjectTableNVX = (PFN_vkDestroyObjectTableNVX)load(context, "vkDestroyObjectTableNVX");
940 	table->vkRegisterObjectsNVX = (PFN_vkRegisterObjectsNVX)load(context, "vkRegisterObjectsNVX");
941 	table->vkUnregisterObjectsNVX = (PFN_vkUnregisterObjectsNVX)load(context, "vkUnregisterObjectsNVX");
942 #endif /* defined(VK_NVX_device_generated_commands) */
943 #if defined(VK_NVX_raytracing)
944 	table->vkBindAccelerationStructureMemoryNVX = (PFN_vkBindAccelerationStructureMemoryNVX)load(context, "vkBindAccelerationStructureMemoryNVX");
945 	table->vkCmdBuildAccelerationStructureNVX = (PFN_vkCmdBuildAccelerationStructureNVX)load(context, "vkCmdBuildAccelerationStructureNVX");
946 	table->vkCmdCopyAccelerationStructureNVX = (PFN_vkCmdCopyAccelerationStructureNVX)load(context, "vkCmdCopyAccelerationStructureNVX");
947 	table->vkCmdTraceRaysNVX = (PFN_vkCmdTraceRaysNVX)load(context, "vkCmdTraceRaysNVX");
948 	table->vkCmdWriteAccelerationStructurePropertiesNVX = (PFN_vkCmdWriteAccelerationStructurePropertiesNVX)load(context, "vkCmdWriteAccelerationStructurePropertiesNVX");
949 	table->vkCompileDeferredNVX = (PFN_vkCompileDeferredNVX)load(context, "vkCompileDeferredNVX");
950 	table->vkCreateAccelerationStructureNVX = (PFN_vkCreateAccelerationStructureNVX)load(context, "vkCreateAccelerationStructureNVX");
951 	table->vkCreateRaytracingPipelinesNVX = (PFN_vkCreateRaytracingPipelinesNVX)load(context, "vkCreateRaytracingPipelinesNVX");
952 	table->vkDestroyAccelerationStructureNVX = (PFN_vkDestroyAccelerationStructureNVX)load(context, "vkDestroyAccelerationStructureNVX");
953 	table->vkGetAccelerationStructureHandleNVX = (PFN_vkGetAccelerationStructureHandleNVX)load(context, "vkGetAccelerationStructureHandleNVX");
954 	table->vkGetAccelerationStructureMemoryRequirementsNVX = (PFN_vkGetAccelerationStructureMemoryRequirementsNVX)load(context, "vkGetAccelerationStructureMemoryRequirementsNVX");
955 	table->vkGetAccelerationStructureScratchMemoryRequirementsNVX = (PFN_vkGetAccelerationStructureScratchMemoryRequirementsNVX)load(context, "vkGetAccelerationStructureScratchMemoryRequirementsNVX");
956 	table->vkGetRaytracingShaderHandlesNVX = (PFN_vkGetRaytracingShaderHandlesNVX)load(context, "vkGetRaytracingShaderHandlesNVX");
957 #endif /* defined(VK_NVX_raytracing) */
958 #if defined(VK_NV_clip_space_w_scaling)
959 	table->vkCmdSetViewportWScalingNV = (PFN_vkCmdSetViewportWScalingNV)load(context, "vkCmdSetViewportWScalingNV");
960 #endif /* defined(VK_NV_clip_space_w_scaling) */
961 #if defined(VK_NV_device_diagnostic_checkpoints)
962 	table->vkCmdSetCheckpointNV = (PFN_vkCmdSetCheckpointNV)load(context, "vkCmdSetCheckpointNV");
963 	table->vkGetQueueCheckpointDataNV = (PFN_vkGetQueueCheckpointDataNV)load(context, "vkGetQueueCheckpointDataNV");
964 #endif /* defined(VK_NV_device_diagnostic_checkpoints) */
965 #if defined(VK_NV_external_memory_win32)
966 	table->vkGetMemoryWin32HandleNV = (PFN_vkGetMemoryWin32HandleNV)load(context, "vkGetMemoryWin32HandleNV");
967 #endif /* defined(VK_NV_external_memory_win32) */
968 #if defined(VK_NV_mesh_shader)
969 	table->vkCmdDrawMeshTasksIndirectCountNV = (PFN_vkCmdDrawMeshTasksIndirectCountNV)load(context, "vkCmdDrawMeshTasksIndirectCountNV");
970 	table->vkCmdDrawMeshTasksIndirectNV = (PFN_vkCmdDrawMeshTasksIndirectNV)load(context, "vkCmdDrawMeshTasksIndirectNV");
971 	table->vkCmdDrawMeshTasksNV = (PFN_vkCmdDrawMeshTasksNV)load(context, "vkCmdDrawMeshTasksNV");
972 #endif /* defined(VK_NV_mesh_shader) */
973 #if defined(VK_NV_ray_tracing)
974 	table->vkBindAccelerationStructureMemoryNV = (PFN_vkBindAccelerationStructureMemoryNV)load(context, "vkBindAccelerationStructureMemoryNV");
975 	table->vkCmdBuildAccelerationStructureNV = (PFN_vkCmdBuildAccelerationStructureNV)load(context, "vkCmdBuildAccelerationStructureNV");
976 	table->vkCmdCopyAccelerationStructureNV = (PFN_vkCmdCopyAccelerationStructureNV)load(context, "vkCmdCopyAccelerationStructureNV");
977 	table->vkCmdTraceRaysNV = (PFN_vkCmdTraceRaysNV)load(context, "vkCmdTraceRaysNV");
978 	table->vkCmdWriteAccelerationStructuresPropertiesNV = (PFN_vkCmdWriteAccelerationStructuresPropertiesNV)load(context, "vkCmdWriteAccelerationStructuresPropertiesNV");
979 	table->vkCompileDeferredNV = (PFN_vkCompileDeferredNV)load(context, "vkCompileDeferredNV");
980 	table->vkCreateAccelerationStructureNV = (PFN_vkCreateAccelerationStructureNV)load(context, "vkCreateAccelerationStructureNV");
981 	table->vkCreateRayTracingPipelinesNV = (PFN_vkCreateRayTracingPipelinesNV)load(context, "vkCreateRayTracingPipelinesNV");
982 	table->vkDestroyAccelerationStructureNV = (PFN_vkDestroyAccelerationStructureNV)load(context, "vkDestroyAccelerationStructureNV");
983 	table->vkGetAccelerationStructureHandleNV = (PFN_vkGetAccelerationStructureHandleNV)load(context, "vkGetAccelerationStructureHandleNV");
984 	table->vkGetAccelerationStructureMemoryRequirementsNV = (PFN_vkGetAccelerationStructureMemoryRequirementsNV)load(context, "vkGetAccelerationStructureMemoryRequirementsNV");
985 	table->vkGetRayTracingShaderGroupHandlesNV = (PFN_vkGetRayTracingShaderGroupHandlesNV)load(context, "vkGetRayTracingShaderGroupHandlesNV");
986 #endif /* defined(VK_NV_ray_tracing) */
987 #if defined(VK_NV_scissor_exclusive)
988 	table->vkCmdSetExclusiveScissorNV = (PFN_vkCmdSetExclusiveScissorNV)load(context, "vkCmdSetExclusiveScissorNV");
989 #endif /* defined(VK_NV_scissor_exclusive) */
990 #if defined(VK_NV_shading_rate_image)
991 	table->vkCmdBindShadingRateImageNV = (PFN_vkCmdBindShadingRateImageNV)load(context, "vkCmdBindShadingRateImageNV");
992 	table->vkCmdSetCoarseSampleOrderNV = (PFN_vkCmdSetCoarseSampleOrderNV)load(context, "vkCmdSetCoarseSampleOrderNV");
993 	table->vkCmdSetViewportShadingRatePaletteNV = (PFN_vkCmdSetViewportShadingRatePaletteNV)load(context, "vkCmdSetViewportShadingRatePaletteNV");
994 #endif /* defined(VK_NV_shading_rate_image) */
995 #if (defined(VK_KHR_descriptor_update_template) && defined(VK_KHR_push_descriptor)) || (defined(VK_KHR_push_descriptor) && defined(VK_VERSION_1_1))
996 	table->vkCmdPushDescriptorSetWithTemplateKHR = (PFN_vkCmdPushDescriptorSetWithTemplateKHR)load(context, "vkCmdPushDescriptorSetWithTemplateKHR");
997 #endif /* (defined(VK_KHR_descriptor_update_template) && defined(VK_KHR_push_descriptor)) || (defined(VK_KHR_push_descriptor) && defined(VK_VERSION_1_1)) */
998 #if (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1))
999 	table->vkGetDeviceGroupPresentCapabilitiesKHR = (PFN_vkGetDeviceGroupPresentCapabilitiesKHR)load(context, "vkGetDeviceGroupPresentCapabilitiesKHR");
1000 	table->vkGetDeviceGroupSurfacePresentModesKHR = (PFN_vkGetDeviceGroupSurfacePresentModesKHR)load(context, "vkGetDeviceGroupSurfacePresentModesKHR");
1001 #endif /* (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) */
1002 #if (defined(VK_KHR_device_group) && defined(VK_KHR_swapchain)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1))
1003 	table->vkAcquireNextImage2KHR = (PFN_vkAcquireNextImage2KHR)load(context, "vkAcquireNextImage2KHR");
1004 #endif /* (defined(VK_KHR_device_group) && defined(VK_KHR_swapchain)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) */
1005 	/* VOLK_GENERATE_LOAD_DEVICE_TABLE */
1006 }
1007 
1008 #ifdef __GNUC__
1009 #	pragma GCC visibility push(hidden)
1010 #endif
1011 
1012 /* VOLK_GENERATE_PROTOTYPES_C */
1013 #if defined(VK_VERSION_1_0)
1014 PFN_vkAllocateCommandBuffers vkAllocateCommandBuffers;
1015 PFN_vkAllocateDescriptorSets vkAllocateDescriptorSets;
1016 PFN_vkAllocateMemory vkAllocateMemory;
1017 PFN_vkBeginCommandBuffer vkBeginCommandBuffer;
1018 PFN_vkBindBufferMemory vkBindBufferMemory;
1019 PFN_vkBindImageMemory vkBindImageMemory;
1020 PFN_vkCmdBeginQuery vkCmdBeginQuery;
1021 PFN_vkCmdBeginRenderPass vkCmdBeginRenderPass;
1022 PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets;
1023 PFN_vkCmdBindIndexBuffer vkCmdBindIndexBuffer;
1024 PFN_vkCmdBindPipeline vkCmdBindPipeline;
1025 PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers;
1026 PFN_vkCmdBlitImage vkCmdBlitImage;
1027 PFN_vkCmdClearAttachments vkCmdClearAttachments;
1028 PFN_vkCmdClearColorImage vkCmdClearColorImage;
1029 PFN_vkCmdClearDepthStencilImage vkCmdClearDepthStencilImage;
1030 PFN_vkCmdCopyBuffer vkCmdCopyBuffer;
1031 PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage;
1032 PFN_vkCmdCopyImage vkCmdCopyImage;
1033 PFN_vkCmdCopyImageToBuffer vkCmdCopyImageToBuffer;
1034 PFN_vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults;
1035 PFN_vkCmdDispatch vkCmdDispatch;
1036 PFN_vkCmdDispatchIndirect vkCmdDispatchIndirect;
1037 PFN_vkCmdDraw vkCmdDraw;
1038 PFN_vkCmdDrawIndexed vkCmdDrawIndexed;
1039 PFN_vkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirect;
1040 PFN_vkCmdDrawIndirect vkCmdDrawIndirect;
1041 PFN_vkCmdEndQuery vkCmdEndQuery;
1042 PFN_vkCmdEndRenderPass vkCmdEndRenderPass;
1043 PFN_vkCmdExecuteCommands vkCmdExecuteCommands;
1044 PFN_vkCmdFillBuffer vkCmdFillBuffer;
1045 PFN_vkCmdNextSubpass vkCmdNextSubpass;
1046 PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier;
1047 PFN_vkCmdPushConstants vkCmdPushConstants;
1048 PFN_vkCmdResetEvent vkCmdResetEvent;
1049 PFN_vkCmdResetQueryPool vkCmdResetQueryPool;
1050 PFN_vkCmdResolveImage vkCmdResolveImage;
1051 PFN_vkCmdSetBlendConstants vkCmdSetBlendConstants;
1052 PFN_vkCmdSetDepthBias vkCmdSetDepthBias;
1053 PFN_vkCmdSetDepthBounds vkCmdSetDepthBounds;
1054 PFN_vkCmdSetEvent vkCmdSetEvent;
1055 PFN_vkCmdSetLineWidth vkCmdSetLineWidth;
1056 PFN_vkCmdSetScissor vkCmdSetScissor;
1057 PFN_vkCmdSetStencilCompareMask vkCmdSetStencilCompareMask;
1058 PFN_vkCmdSetStencilReference vkCmdSetStencilReference;
1059 PFN_vkCmdSetStencilWriteMask vkCmdSetStencilWriteMask;
1060 PFN_vkCmdSetViewport vkCmdSetViewport;
1061 PFN_vkCmdUpdateBuffer vkCmdUpdateBuffer;
1062 PFN_vkCmdWaitEvents vkCmdWaitEvents;
1063 PFN_vkCmdWriteTimestamp vkCmdWriteTimestamp;
1064 PFN_vkCreateBuffer vkCreateBuffer;
1065 PFN_vkCreateBufferView vkCreateBufferView;
1066 PFN_vkCreateCommandPool vkCreateCommandPool;
1067 PFN_vkCreateComputePipelines vkCreateComputePipelines;
1068 PFN_vkCreateDescriptorPool vkCreateDescriptorPool;
1069 PFN_vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout;
1070 PFN_vkCreateDevice vkCreateDevice;
1071 PFN_vkCreateEvent vkCreateEvent;
1072 PFN_vkCreateFence vkCreateFence;
1073 PFN_vkCreateFramebuffer vkCreateFramebuffer;
1074 PFN_vkCreateGraphicsPipelines vkCreateGraphicsPipelines;
1075 PFN_vkCreateImage vkCreateImage;
1076 PFN_vkCreateImageView vkCreateImageView;
1077 PFN_vkCreateInstance vkCreateInstance;
1078 PFN_vkCreatePipelineCache vkCreatePipelineCache;
1079 PFN_vkCreatePipelineLayout vkCreatePipelineLayout;
1080 PFN_vkCreateQueryPool vkCreateQueryPool;
1081 PFN_vkCreateRenderPass vkCreateRenderPass;
1082 PFN_vkCreateSampler vkCreateSampler;
1083 PFN_vkCreateSemaphore vkCreateSemaphore;
1084 PFN_vkCreateShaderModule vkCreateShaderModule;
1085 PFN_vkDestroyBuffer vkDestroyBuffer;
1086 PFN_vkDestroyBufferView vkDestroyBufferView;
1087 PFN_vkDestroyCommandPool vkDestroyCommandPool;
1088 PFN_vkDestroyDescriptorPool vkDestroyDescriptorPool;
1089 PFN_vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout;
1090 PFN_vkDestroyDevice vkDestroyDevice;
1091 PFN_vkDestroyEvent vkDestroyEvent;
1092 PFN_vkDestroyFence vkDestroyFence;
1093 PFN_vkDestroyFramebuffer vkDestroyFramebuffer;
1094 PFN_vkDestroyImage vkDestroyImage;
1095 PFN_vkDestroyImageView vkDestroyImageView;
1096 PFN_vkDestroyInstance vkDestroyInstance;
1097 PFN_vkDestroyPipeline vkDestroyPipeline;
1098 PFN_vkDestroyPipelineCache vkDestroyPipelineCache;
1099 PFN_vkDestroyPipelineLayout vkDestroyPipelineLayout;
1100 PFN_vkDestroyQueryPool vkDestroyQueryPool;
1101 PFN_vkDestroyRenderPass vkDestroyRenderPass;
1102 PFN_vkDestroySampler vkDestroySampler;
1103 PFN_vkDestroySemaphore vkDestroySemaphore;
1104 PFN_vkDestroyShaderModule vkDestroyShaderModule;
1105 PFN_vkDeviceWaitIdle vkDeviceWaitIdle;
1106 PFN_vkEndCommandBuffer vkEndCommandBuffer;
1107 PFN_vkEnumerateDeviceExtensionProperties vkEnumerateDeviceExtensionProperties;
1108 PFN_vkEnumerateDeviceLayerProperties vkEnumerateDeviceLayerProperties;
1109 PFN_vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionProperties;
1110 PFN_vkEnumerateInstanceLayerProperties vkEnumerateInstanceLayerProperties;
1111 PFN_vkEnumeratePhysicalDevices vkEnumeratePhysicalDevices;
1112 PFN_vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges;
1113 PFN_vkFreeCommandBuffers vkFreeCommandBuffers;
1114 PFN_vkFreeDescriptorSets vkFreeDescriptorSets;
1115 PFN_vkFreeMemory vkFreeMemory;
1116 PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements;
1117 PFN_vkGetDeviceMemoryCommitment vkGetDeviceMemoryCommitment;
1118 PFN_vkGetDeviceProcAddr vkGetDeviceProcAddr;
1119 PFN_vkGetDeviceQueue vkGetDeviceQueue;
1120 PFN_vkGetEventStatus vkGetEventStatus;
1121 PFN_vkGetFenceStatus vkGetFenceStatus;
1122 PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements;
1123 PFN_vkGetImageSparseMemoryRequirements vkGetImageSparseMemoryRequirements;
1124 PFN_vkGetImageSubresourceLayout vkGetImageSubresourceLayout;
1125 PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr;
1126 PFN_vkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeatures;
1127 PFN_vkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatProperties;
1128 PFN_vkGetPhysicalDeviceImageFormatProperties vkGetPhysicalDeviceImageFormatProperties;
1129 PFN_vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties;
1130 PFN_vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties;
1131 PFN_vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties;
1132 PFN_vkGetPhysicalDeviceSparseImageFormatProperties vkGetPhysicalDeviceSparseImageFormatProperties;
1133 PFN_vkGetPipelineCacheData vkGetPipelineCacheData;
1134 PFN_vkGetQueryPoolResults vkGetQueryPoolResults;
1135 PFN_vkGetRenderAreaGranularity vkGetRenderAreaGranularity;
1136 PFN_vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges;
1137 PFN_vkMapMemory vkMapMemory;
1138 PFN_vkMergePipelineCaches vkMergePipelineCaches;
1139 PFN_vkQueueBindSparse vkQueueBindSparse;
1140 PFN_vkQueueSubmit vkQueueSubmit;
1141 PFN_vkQueueWaitIdle vkQueueWaitIdle;
1142 PFN_vkResetCommandBuffer vkResetCommandBuffer;
1143 PFN_vkResetCommandPool vkResetCommandPool;
1144 PFN_vkResetDescriptorPool vkResetDescriptorPool;
1145 PFN_vkResetEvent vkResetEvent;
1146 PFN_vkResetFences vkResetFences;
1147 PFN_vkSetEvent vkSetEvent;
1148 PFN_vkUnmapMemory vkUnmapMemory;
1149 PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets;
1150 PFN_vkWaitForFences vkWaitForFences;
1151 #endif /* defined(VK_VERSION_1_0) */
1152 #if defined(VK_VERSION_1_1)
1153 PFN_vkBindBufferMemory2 vkBindBufferMemory2;
1154 PFN_vkBindImageMemory2 vkBindImageMemory2;
1155 PFN_vkCmdDispatchBase vkCmdDispatchBase;
1156 PFN_vkCmdSetDeviceMask vkCmdSetDeviceMask;
1157 PFN_vkCreateDescriptorUpdateTemplate vkCreateDescriptorUpdateTemplate;
1158 PFN_vkCreateSamplerYcbcrConversion vkCreateSamplerYcbcrConversion;
1159 PFN_vkDestroyDescriptorUpdateTemplate vkDestroyDescriptorUpdateTemplate;
1160 PFN_vkDestroySamplerYcbcrConversion vkDestroySamplerYcbcrConversion;
1161 PFN_vkEnumerateInstanceVersion vkEnumerateInstanceVersion;
1162 PFN_vkEnumeratePhysicalDeviceGroups vkEnumeratePhysicalDeviceGroups;
1163 PFN_vkGetBufferMemoryRequirements2 vkGetBufferMemoryRequirements2;
1164 PFN_vkGetDescriptorSetLayoutSupport vkGetDescriptorSetLayoutSupport;
1165 PFN_vkGetDeviceGroupPeerMemoryFeatures vkGetDeviceGroupPeerMemoryFeatures;
1166 PFN_vkGetDeviceQueue2 vkGetDeviceQueue2;
1167 PFN_vkGetImageMemoryRequirements2 vkGetImageMemoryRequirements2;
1168 PFN_vkGetImageSparseMemoryRequirements2 vkGetImageSparseMemoryRequirements2;
1169 PFN_vkGetPhysicalDeviceExternalBufferProperties vkGetPhysicalDeviceExternalBufferProperties;
1170 PFN_vkGetPhysicalDeviceExternalFenceProperties vkGetPhysicalDeviceExternalFenceProperties;
1171 PFN_vkGetPhysicalDeviceExternalSemaphoreProperties vkGetPhysicalDeviceExternalSemaphoreProperties;
1172 PFN_vkGetPhysicalDeviceFeatures2 vkGetPhysicalDeviceFeatures2;
1173 PFN_vkGetPhysicalDeviceFormatProperties2 vkGetPhysicalDeviceFormatProperties2;
1174 PFN_vkGetPhysicalDeviceImageFormatProperties2 vkGetPhysicalDeviceImageFormatProperties2;
1175 PFN_vkGetPhysicalDeviceMemoryProperties2 vkGetPhysicalDeviceMemoryProperties2;
1176 PFN_vkGetPhysicalDeviceProperties2 vkGetPhysicalDeviceProperties2;
1177 PFN_vkGetPhysicalDeviceQueueFamilyProperties2 vkGetPhysicalDeviceQueueFamilyProperties2;
1178 PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 vkGetPhysicalDeviceSparseImageFormatProperties2;
1179 PFN_vkTrimCommandPool vkTrimCommandPool;
1180 PFN_vkUpdateDescriptorSetWithTemplate vkUpdateDescriptorSetWithTemplate;
1181 #endif /* defined(VK_VERSION_1_1) */
1182 #if defined(VK_AMD_buffer_marker)
1183 PFN_vkCmdWriteBufferMarkerAMD vkCmdWriteBufferMarkerAMD;
1184 #endif /* defined(VK_AMD_buffer_marker) */
1185 #if defined(VK_AMD_draw_indirect_count)
1186 PFN_vkCmdDrawIndexedIndirectCountAMD vkCmdDrawIndexedIndirectCountAMD;
1187 PFN_vkCmdDrawIndirectCountAMD vkCmdDrawIndirectCountAMD;
1188 #endif /* defined(VK_AMD_draw_indirect_count) */
1189 #if defined(VK_AMD_shader_info)
1190 PFN_vkGetShaderInfoAMD vkGetShaderInfoAMD;
1191 #endif /* defined(VK_AMD_shader_info) */
1192 #if defined(VK_ANDROID_external_memory_android_hardware_buffer)
1193 PFN_vkGetAndroidHardwareBufferPropertiesANDROID vkGetAndroidHardwareBufferPropertiesANDROID;
1194 PFN_vkGetMemoryAndroidHardwareBufferANDROID vkGetMemoryAndroidHardwareBufferANDROID;
1195 #endif /* defined(VK_ANDROID_external_memory_android_hardware_buffer) */
1196 #if defined(VK_EXT_acquire_xlib_display)
1197 PFN_vkAcquireXlibDisplayEXT vkAcquireXlibDisplayEXT;
1198 PFN_vkGetRandROutputDisplayEXT vkGetRandROutputDisplayEXT;
1199 #endif /* defined(VK_EXT_acquire_xlib_display) */
1200 #if defined(VK_EXT_calibrated_timestamps)
1201 PFN_vkGetCalibratedTimestampsEXT vkGetCalibratedTimestampsEXT;
1202 PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT vkGetPhysicalDeviceCalibrateableTimeDomainsEXT;
1203 #endif /* defined(VK_EXT_calibrated_timestamps) */
1204 #if defined(VK_EXT_conditional_rendering)
1205 PFN_vkCmdBeginConditionalRenderingEXT vkCmdBeginConditionalRenderingEXT;
1206 PFN_vkCmdEndConditionalRenderingEXT vkCmdEndConditionalRenderingEXT;
1207 #endif /* defined(VK_EXT_conditional_rendering) */
1208 #if defined(VK_EXT_debug_marker)
1209 PFN_vkCmdDebugMarkerBeginEXT vkCmdDebugMarkerBeginEXT;
1210 PFN_vkCmdDebugMarkerEndEXT vkCmdDebugMarkerEndEXT;
1211 PFN_vkCmdDebugMarkerInsertEXT vkCmdDebugMarkerInsertEXT;
1212 PFN_vkDebugMarkerSetObjectNameEXT vkDebugMarkerSetObjectNameEXT;
1213 PFN_vkDebugMarkerSetObjectTagEXT vkDebugMarkerSetObjectTagEXT;
1214 #endif /* defined(VK_EXT_debug_marker) */
1215 #if defined(VK_EXT_debug_report)
1216 PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT;
1217 PFN_vkDebugReportMessageEXT vkDebugReportMessageEXT;
1218 PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT;
1219 #endif /* defined(VK_EXT_debug_report) */
1220 #if defined(VK_EXT_debug_utils)
1221 PFN_vkCmdBeginDebugUtilsLabelEXT vkCmdBeginDebugUtilsLabelEXT;
1222 PFN_vkCmdEndDebugUtilsLabelEXT vkCmdEndDebugUtilsLabelEXT;
1223 PFN_vkCmdInsertDebugUtilsLabelEXT vkCmdInsertDebugUtilsLabelEXT;
1224 PFN_vkCreateDebugUtilsMessengerEXT vkCreateDebugUtilsMessengerEXT;
1225 PFN_vkDestroyDebugUtilsMessengerEXT vkDestroyDebugUtilsMessengerEXT;
1226 PFN_vkQueueBeginDebugUtilsLabelEXT vkQueueBeginDebugUtilsLabelEXT;
1227 PFN_vkQueueEndDebugUtilsLabelEXT vkQueueEndDebugUtilsLabelEXT;
1228 PFN_vkQueueInsertDebugUtilsLabelEXT vkQueueInsertDebugUtilsLabelEXT;
1229 PFN_vkSetDebugUtilsObjectNameEXT vkSetDebugUtilsObjectNameEXT;
1230 PFN_vkSetDebugUtilsObjectTagEXT vkSetDebugUtilsObjectTagEXT;
1231 PFN_vkSubmitDebugUtilsMessageEXT vkSubmitDebugUtilsMessageEXT;
1232 #endif /* defined(VK_EXT_debug_utils) */
1233 #if defined(VK_EXT_direct_mode_display)
1234 PFN_vkReleaseDisplayEXT vkReleaseDisplayEXT;
1235 #endif /* defined(VK_EXT_direct_mode_display) */
1236 #if defined(VK_EXT_discard_rectangles)
1237 PFN_vkCmdSetDiscardRectangleEXT vkCmdSetDiscardRectangleEXT;
1238 #endif /* defined(VK_EXT_discard_rectangles) */
1239 #if defined(VK_EXT_display_control)
1240 PFN_vkDisplayPowerControlEXT vkDisplayPowerControlEXT;
1241 PFN_vkGetSwapchainCounterEXT vkGetSwapchainCounterEXT;
1242 PFN_vkRegisterDeviceEventEXT vkRegisterDeviceEventEXT;
1243 PFN_vkRegisterDisplayEventEXT vkRegisterDisplayEventEXT;
1244 #endif /* defined(VK_EXT_display_control) */
1245 #if defined(VK_EXT_display_surface_counter)
1246 PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT vkGetPhysicalDeviceSurfaceCapabilities2EXT;
1247 #endif /* defined(VK_EXT_display_surface_counter) */
1248 #if defined(VK_EXT_external_memory_host)
1249 PFN_vkGetMemoryHostPointerPropertiesEXT vkGetMemoryHostPointerPropertiesEXT;
1250 #endif /* defined(VK_EXT_external_memory_host) */
1251 #if defined(VK_EXT_hdr_metadata)
1252 PFN_vkSetHdrMetadataEXT vkSetHdrMetadataEXT;
1253 #endif /* defined(VK_EXT_hdr_metadata) */
1254 #if defined(VK_EXT_image_drm_format_modifier)
1255 PFN_vkGetImageDrmFormatModifierPropertiesEXT vkGetImageDrmFormatModifierPropertiesEXT;
1256 #endif /* defined(VK_EXT_image_drm_format_modifier) */
1257 #if defined(VK_EXT_sample_locations)
1258 PFN_vkCmdSetSampleLocationsEXT vkCmdSetSampleLocationsEXT;
1259 PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT vkGetPhysicalDeviceMultisamplePropertiesEXT;
1260 #endif /* defined(VK_EXT_sample_locations) */
1261 #if defined(VK_EXT_transform_feedback)
1262 PFN_vkCmdBeginQueryIndexedEXT vkCmdBeginQueryIndexedEXT;
1263 PFN_vkCmdBeginTransformFeedbackEXT vkCmdBeginTransformFeedbackEXT;
1264 PFN_vkCmdBindTransformFeedbackBuffersEXT vkCmdBindTransformFeedbackBuffersEXT;
1265 PFN_vkCmdDrawIndirectByteCountEXT vkCmdDrawIndirectByteCountEXT;
1266 PFN_vkCmdEndQueryIndexedEXT vkCmdEndQueryIndexedEXT;
1267 PFN_vkCmdEndTransformFeedbackEXT vkCmdEndTransformFeedbackEXT;
1268 #endif /* defined(VK_EXT_transform_feedback) */
1269 #if defined(VK_EXT_validation_cache)
1270 PFN_vkCreateValidationCacheEXT vkCreateValidationCacheEXT;
1271 PFN_vkDestroyValidationCacheEXT vkDestroyValidationCacheEXT;
1272 PFN_vkGetValidationCacheDataEXT vkGetValidationCacheDataEXT;
1273 PFN_vkMergeValidationCachesEXT vkMergeValidationCachesEXT;
1274 #endif /* defined(VK_EXT_validation_cache) */
1275 #if defined(VK_FUCHSIA_imagepipe_surface)
1276 PFN_vkCreateImagePipeSurfaceFUCHSIA vkCreateImagePipeSurfaceFUCHSIA;
1277 #endif /* defined(VK_FUCHSIA_imagepipe_surface) */
1278 #if defined(VK_GOOGLE_display_timing)
1279 PFN_vkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLE;
1280 PFN_vkGetRefreshCycleDurationGOOGLE vkGetRefreshCycleDurationGOOGLE;
1281 #endif /* defined(VK_GOOGLE_display_timing) */
1282 #if defined(VK_KHR_android_surface)
1283 PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR;
1284 #endif /* defined(VK_KHR_android_surface) */
1285 #if defined(VK_KHR_bind_memory2)
1286 PFN_vkBindBufferMemory2KHR vkBindBufferMemory2KHR;
1287 PFN_vkBindImageMemory2KHR vkBindImageMemory2KHR;
1288 #endif /* defined(VK_KHR_bind_memory2) */
1289 #if defined(VK_KHR_create_renderpass2)
1290 PFN_vkCmdBeginRenderPass2KHR vkCmdBeginRenderPass2KHR;
1291 PFN_vkCmdEndRenderPass2KHR vkCmdEndRenderPass2KHR;
1292 PFN_vkCmdNextSubpass2KHR vkCmdNextSubpass2KHR;
1293 PFN_vkCreateRenderPass2KHR vkCreateRenderPass2KHR;
1294 #endif /* defined(VK_KHR_create_renderpass2) */
1295 #if defined(VK_KHR_descriptor_update_template)
1296 PFN_vkCreateDescriptorUpdateTemplateKHR vkCreateDescriptorUpdateTemplateKHR;
1297 PFN_vkDestroyDescriptorUpdateTemplateKHR vkDestroyDescriptorUpdateTemplateKHR;
1298 PFN_vkUpdateDescriptorSetWithTemplateKHR vkUpdateDescriptorSetWithTemplateKHR;
1299 #endif /* defined(VK_KHR_descriptor_update_template) */
1300 #if defined(VK_KHR_device_group)
1301 PFN_vkCmdDispatchBaseKHR vkCmdDispatchBaseKHR;
1302 PFN_vkCmdSetDeviceMaskKHR vkCmdSetDeviceMaskKHR;
1303 PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR vkGetDeviceGroupPeerMemoryFeaturesKHR;
1304 #endif /* defined(VK_KHR_device_group) */
1305 #if defined(VK_KHR_device_group_creation)
1306 PFN_vkEnumeratePhysicalDeviceGroupsKHR vkEnumeratePhysicalDeviceGroupsKHR;
1307 #endif /* defined(VK_KHR_device_group_creation) */
1308 #if defined(VK_KHR_display)
1309 PFN_vkCreateDisplayModeKHR vkCreateDisplayModeKHR;
1310 PFN_vkCreateDisplayPlaneSurfaceKHR vkCreateDisplayPlaneSurfaceKHR;
1311 PFN_vkGetDisplayModePropertiesKHR vkGetDisplayModePropertiesKHR;
1312 PFN_vkGetDisplayPlaneCapabilitiesKHR vkGetDisplayPlaneCapabilitiesKHR;
1313 PFN_vkGetDisplayPlaneSupportedDisplaysKHR vkGetDisplayPlaneSupportedDisplaysKHR;
1314 PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHR;
1315 PFN_vkGetPhysicalDeviceDisplayPropertiesKHR vkGetPhysicalDeviceDisplayPropertiesKHR;
1316 #endif /* defined(VK_KHR_display) */
1317 #if defined(VK_KHR_display_swapchain)
1318 PFN_vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR;
1319 #endif /* defined(VK_KHR_display_swapchain) */
1320 #if defined(VK_KHR_draw_indirect_count)
1321 PFN_vkCmdDrawIndexedIndirectCountKHR vkCmdDrawIndexedIndirectCountKHR;
1322 PFN_vkCmdDrawIndirectCountKHR vkCmdDrawIndirectCountKHR;
1323 #endif /* defined(VK_KHR_draw_indirect_count) */
1324 #if defined(VK_KHR_external_fence_capabilities)
1325 PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR vkGetPhysicalDeviceExternalFencePropertiesKHR;
1326 #endif /* defined(VK_KHR_external_fence_capabilities) */
1327 #if defined(VK_KHR_external_fence_fd)
1328 PFN_vkGetFenceFdKHR vkGetFenceFdKHR;
1329 PFN_vkImportFenceFdKHR vkImportFenceFdKHR;
1330 #endif /* defined(VK_KHR_external_fence_fd) */
1331 #if defined(VK_KHR_external_fence_win32)
1332 PFN_vkGetFenceWin32HandleKHR vkGetFenceWin32HandleKHR;
1333 PFN_vkImportFenceWin32HandleKHR vkImportFenceWin32HandleKHR;
1334 #endif /* defined(VK_KHR_external_fence_win32) */
1335 #if defined(VK_KHR_external_memory_capabilities)
1336 PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR vkGetPhysicalDeviceExternalBufferPropertiesKHR;
1337 #endif /* defined(VK_KHR_external_memory_capabilities) */
1338 #if defined(VK_KHR_external_memory_fd)
1339 PFN_vkGetMemoryFdKHR vkGetMemoryFdKHR;
1340 PFN_vkGetMemoryFdPropertiesKHR vkGetMemoryFdPropertiesKHR;
1341 #endif /* defined(VK_KHR_external_memory_fd) */
1342 #if defined(VK_KHR_external_memory_win32)
1343 PFN_vkGetMemoryWin32HandleKHR vkGetMemoryWin32HandleKHR;
1344 PFN_vkGetMemoryWin32HandlePropertiesKHR vkGetMemoryWin32HandlePropertiesKHR;
1345 #endif /* defined(VK_KHR_external_memory_win32) */
1346 #if defined(VK_KHR_external_semaphore_capabilities)
1347 PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR vkGetPhysicalDeviceExternalSemaphorePropertiesKHR;
1348 #endif /* defined(VK_KHR_external_semaphore_capabilities) */
1349 #if defined(VK_KHR_external_semaphore_fd)
1350 PFN_vkGetSemaphoreFdKHR vkGetSemaphoreFdKHR;
1351 PFN_vkImportSemaphoreFdKHR vkImportSemaphoreFdKHR;
1352 #endif /* defined(VK_KHR_external_semaphore_fd) */
1353 #if defined(VK_KHR_external_semaphore_win32)
1354 PFN_vkGetSemaphoreWin32HandleKHR vkGetSemaphoreWin32HandleKHR;
1355 PFN_vkImportSemaphoreWin32HandleKHR vkImportSemaphoreWin32HandleKHR;
1356 #endif /* defined(VK_KHR_external_semaphore_win32) */
1357 #if defined(VK_KHR_get_display_properties2)
1358 PFN_vkGetDisplayModeProperties2KHR vkGetDisplayModeProperties2KHR;
1359 PFN_vkGetDisplayPlaneCapabilities2KHR vkGetDisplayPlaneCapabilities2KHR;
1360 PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR vkGetPhysicalDeviceDisplayPlaneProperties2KHR;
1361 PFN_vkGetPhysicalDeviceDisplayProperties2KHR vkGetPhysicalDeviceDisplayProperties2KHR;
1362 #endif /* defined(VK_KHR_get_display_properties2) */
1363 #if defined(VK_KHR_get_memory_requirements2)
1364 PFN_vkGetBufferMemoryRequirements2KHR vkGetBufferMemoryRequirements2KHR;
1365 PFN_vkGetImageMemoryRequirements2KHR vkGetImageMemoryRequirements2KHR;
1366 PFN_vkGetImageSparseMemoryRequirements2KHR vkGetImageSparseMemoryRequirements2KHR;
1367 #endif /* defined(VK_KHR_get_memory_requirements2) */
1368 #if defined(VK_KHR_get_physical_device_properties2)
1369 PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR;
1370 PFN_vkGetPhysicalDeviceFormatProperties2KHR vkGetPhysicalDeviceFormatProperties2KHR;
1371 PFN_vkGetPhysicalDeviceImageFormatProperties2KHR vkGetPhysicalDeviceImageFormatProperties2KHR;
1372 PFN_vkGetPhysicalDeviceMemoryProperties2KHR vkGetPhysicalDeviceMemoryProperties2KHR;
1373 PFN_vkGetPhysicalDeviceProperties2KHR vkGetPhysicalDeviceProperties2KHR;
1374 PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR vkGetPhysicalDeviceQueueFamilyProperties2KHR;
1375 PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR vkGetPhysicalDeviceSparseImageFormatProperties2KHR;
1376 #endif /* defined(VK_KHR_get_physical_device_properties2) */
1377 #if defined(VK_KHR_get_surface_capabilities2)
1378 PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR vkGetPhysicalDeviceSurfaceCapabilities2KHR;
1379 PFN_vkGetPhysicalDeviceSurfaceFormats2KHR vkGetPhysicalDeviceSurfaceFormats2KHR;
1380 #endif /* defined(VK_KHR_get_surface_capabilities2) */
1381 #if defined(VK_KHR_maintenance1)
1382 PFN_vkTrimCommandPoolKHR vkTrimCommandPoolKHR;
1383 #endif /* defined(VK_KHR_maintenance1) */
1384 #if defined(VK_KHR_maintenance3)
1385 PFN_vkGetDescriptorSetLayoutSupportKHR vkGetDescriptorSetLayoutSupportKHR;
1386 #endif /* defined(VK_KHR_maintenance3) */
1387 #if defined(VK_KHR_push_descriptor)
1388 PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR;
1389 #endif /* defined(VK_KHR_push_descriptor) */
1390 #if defined(VK_KHR_sampler_ycbcr_conversion)
1391 PFN_vkCreateSamplerYcbcrConversionKHR vkCreateSamplerYcbcrConversionKHR;
1392 PFN_vkDestroySamplerYcbcrConversionKHR vkDestroySamplerYcbcrConversionKHR;
1393 #endif /* defined(VK_KHR_sampler_ycbcr_conversion) */
1394 #if defined(VK_KHR_shared_presentable_image)
1395 PFN_vkGetSwapchainStatusKHR vkGetSwapchainStatusKHR;
1396 #endif /* defined(VK_KHR_shared_presentable_image) */
1397 #if defined(VK_KHR_surface)
1398 PFN_vkDestroySurfaceKHR vkDestroySurfaceKHR;
1399 PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR;
1400 PFN_vkGetPhysicalDeviceSurfaceFormatsKHR vkGetPhysicalDeviceSurfaceFormatsKHR;
1401 PFN_vkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModesKHR;
1402 PFN_vkGetPhysicalDeviceSurfaceSupportKHR vkGetPhysicalDeviceSurfaceSupportKHR;
1403 #endif /* defined(VK_KHR_surface) */
1404 #if defined(VK_KHR_swapchain)
1405 PFN_vkAcquireNextImageKHR vkAcquireNextImageKHR;
1406 PFN_vkCreateSwapchainKHR vkCreateSwapchainKHR;
1407 PFN_vkDestroySwapchainKHR vkDestroySwapchainKHR;
1408 PFN_vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR;
1409 PFN_vkQueuePresentKHR vkQueuePresentKHR;
1410 #endif /* defined(VK_KHR_swapchain) */
1411 #if defined(VK_KHR_wayland_surface)
1412 PFN_vkCreateWaylandSurfaceKHR vkCreateWaylandSurfaceKHR;
1413 PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR vkGetPhysicalDeviceWaylandPresentationSupportKHR;
1414 #endif /* defined(VK_KHR_wayland_surface) */
1415 #if defined(VK_KHR_win32_surface)
1416 PFN_vkCreateWin32SurfaceKHR vkCreateWin32SurfaceKHR;
1417 PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR vkGetPhysicalDeviceWin32PresentationSupportKHR;
1418 #endif /* defined(VK_KHR_win32_surface) */
1419 #if defined(VK_KHR_xcb_surface)
1420 PFN_vkCreateXcbSurfaceKHR vkCreateXcbSurfaceKHR;
1421 PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR vkGetPhysicalDeviceXcbPresentationSupportKHR;
1422 #endif /* defined(VK_KHR_xcb_surface) */
1423 #if defined(VK_KHR_xlib_surface)
1424 PFN_vkCreateXlibSurfaceKHR vkCreateXlibSurfaceKHR;
1425 PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR vkGetPhysicalDeviceXlibPresentationSupportKHR;
1426 #endif /* defined(VK_KHR_xlib_surface) */
1427 #if defined(VK_MVK_ios_surface)
1428 PFN_vkCreateIOSSurfaceMVK vkCreateIOSSurfaceMVK;
1429 #endif /* defined(VK_MVK_ios_surface) */
1430 #if defined(VK_MVK_macos_surface)
1431 PFN_vkCreateMacOSSurfaceMVK vkCreateMacOSSurfaceMVK;
1432 #endif /* defined(VK_MVK_macos_surface) */
1433 #if defined(VK_NN_vi_surface)
1434 PFN_vkCreateViSurfaceNN vkCreateViSurfaceNN;
1435 #endif /* defined(VK_NN_vi_surface) */
1436 #if defined(VK_NVX_device_generated_commands)
1437 PFN_vkCmdProcessCommandsNVX vkCmdProcessCommandsNVX;
1438 PFN_vkCmdReserveSpaceForCommandsNVX vkCmdReserveSpaceForCommandsNVX;
1439 PFN_vkCreateIndirectCommandsLayoutNVX vkCreateIndirectCommandsLayoutNVX;
1440 PFN_vkCreateObjectTableNVX vkCreateObjectTableNVX;
1441 PFN_vkDestroyIndirectCommandsLayoutNVX vkDestroyIndirectCommandsLayoutNVX;
1442 PFN_vkDestroyObjectTableNVX vkDestroyObjectTableNVX;
1443 PFN_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX;
1444 PFN_vkRegisterObjectsNVX vkRegisterObjectsNVX;
1445 PFN_vkUnregisterObjectsNVX vkUnregisterObjectsNVX;
1446 #endif /* defined(VK_NVX_device_generated_commands) */
1447 #if defined(VK_NVX_raytracing)
1448 PFN_vkBindAccelerationStructureMemoryNVX vkBindAccelerationStructureMemoryNVX;
1449 PFN_vkCmdBuildAccelerationStructureNVX vkCmdBuildAccelerationStructureNVX;
1450 PFN_vkCmdCopyAccelerationStructureNVX vkCmdCopyAccelerationStructureNVX;
1451 PFN_vkCmdTraceRaysNVX vkCmdTraceRaysNVX;
1452 PFN_vkCmdWriteAccelerationStructurePropertiesNVX vkCmdWriteAccelerationStructurePropertiesNVX;
1453 PFN_vkCompileDeferredNVX vkCompileDeferredNVX;
1454 PFN_vkCreateAccelerationStructureNVX vkCreateAccelerationStructureNVX;
1455 PFN_vkCreateRaytracingPipelinesNVX vkCreateRaytracingPipelinesNVX;
1456 PFN_vkDestroyAccelerationStructureNVX vkDestroyAccelerationStructureNVX;
1457 PFN_vkGetAccelerationStructureHandleNVX vkGetAccelerationStructureHandleNVX;
1458 PFN_vkGetAccelerationStructureMemoryRequirementsNVX vkGetAccelerationStructureMemoryRequirementsNVX;
1459 PFN_vkGetAccelerationStructureScratchMemoryRequirementsNVX vkGetAccelerationStructureScratchMemoryRequirementsNVX;
1460 PFN_vkGetRaytracingShaderHandlesNVX vkGetRaytracingShaderHandlesNVX;
1461 #endif /* defined(VK_NVX_raytracing) */
1462 #if defined(VK_NV_clip_space_w_scaling)
1463 PFN_vkCmdSetViewportWScalingNV vkCmdSetViewportWScalingNV;
1464 #endif /* defined(VK_NV_clip_space_w_scaling) */
1465 #if defined(VK_NV_device_diagnostic_checkpoints)
1466 PFN_vkCmdSetCheckpointNV vkCmdSetCheckpointNV;
1467 PFN_vkGetQueueCheckpointDataNV vkGetQueueCheckpointDataNV;
1468 #endif /* defined(VK_NV_device_diagnostic_checkpoints) */
1469 #if defined(VK_NV_external_memory_capabilities)
1470 PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV vkGetPhysicalDeviceExternalImageFormatPropertiesNV;
1471 #endif /* defined(VK_NV_external_memory_capabilities) */
1472 #if defined(VK_NV_external_memory_win32)
1473 PFN_vkGetMemoryWin32HandleNV vkGetMemoryWin32HandleNV;
1474 #endif /* defined(VK_NV_external_memory_win32) */
1475 #if defined(VK_NV_mesh_shader)
1476 PFN_vkCmdDrawMeshTasksIndirectCountNV vkCmdDrawMeshTasksIndirectCountNV;
1477 PFN_vkCmdDrawMeshTasksIndirectNV vkCmdDrawMeshTasksIndirectNV;
1478 PFN_vkCmdDrawMeshTasksNV vkCmdDrawMeshTasksNV;
1479 #endif /* defined(VK_NV_mesh_shader) */
1480 #if defined(VK_NV_ray_tracing)
1481 PFN_vkBindAccelerationStructureMemoryNV vkBindAccelerationStructureMemoryNV;
1482 PFN_vkCmdBuildAccelerationStructureNV vkCmdBuildAccelerationStructureNV;
1483 PFN_vkCmdCopyAccelerationStructureNV vkCmdCopyAccelerationStructureNV;
1484 PFN_vkCmdTraceRaysNV vkCmdTraceRaysNV;
1485 PFN_vkCmdWriteAccelerationStructuresPropertiesNV vkCmdWriteAccelerationStructuresPropertiesNV;
1486 PFN_vkCompileDeferredNV vkCompileDeferredNV;
1487 PFN_vkCreateAccelerationStructureNV vkCreateAccelerationStructureNV;
1488 PFN_vkCreateRayTracingPipelinesNV vkCreateRayTracingPipelinesNV;
1489 PFN_vkDestroyAccelerationStructureNV vkDestroyAccelerationStructureNV;
1490 PFN_vkGetAccelerationStructureHandleNV vkGetAccelerationStructureHandleNV;
1491 PFN_vkGetAccelerationStructureMemoryRequirementsNV vkGetAccelerationStructureMemoryRequirementsNV;
1492 PFN_vkGetRayTracingShaderGroupHandlesNV vkGetRayTracingShaderGroupHandlesNV;
1493 #endif /* defined(VK_NV_ray_tracing) */
1494 #if defined(VK_NV_scissor_exclusive)
1495 PFN_vkCmdSetExclusiveScissorNV vkCmdSetExclusiveScissorNV;
1496 #endif /* defined(VK_NV_scissor_exclusive) */
1497 #if defined(VK_NV_shading_rate_image)
1498 PFN_vkCmdBindShadingRateImageNV vkCmdBindShadingRateImageNV;
1499 PFN_vkCmdSetCoarseSampleOrderNV vkCmdSetCoarseSampleOrderNV;
1500 PFN_vkCmdSetViewportShadingRatePaletteNV vkCmdSetViewportShadingRatePaletteNV;
1501 #endif /* defined(VK_NV_shading_rate_image) */
1502 #if (defined(VK_KHR_descriptor_update_template) && defined(VK_KHR_push_descriptor)) || (defined(VK_KHR_push_descriptor) && defined(VK_VERSION_1_1))
1503 PFN_vkCmdPushDescriptorSetWithTemplateKHR vkCmdPushDescriptorSetWithTemplateKHR;
1504 #endif /* (defined(VK_KHR_descriptor_update_template) && defined(VK_KHR_push_descriptor)) || (defined(VK_KHR_push_descriptor) && defined(VK_VERSION_1_1)) */
1505 #if (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1))
1506 PFN_vkGetDeviceGroupPresentCapabilitiesKHR vkGetDeviceGroupPresentCapabilitiesKHR;
1507 PFN_vkGetDeviceGroupSurfacePresentModesKHR vkGetDeviceGroupSurfacePresentModesKHR;
1508 PFN_vkGetPhysicalDevicePresentRectanglesKHR vkGetPhysicalDevicePresentRectanglesKHR;
1509 #endif /* (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) */
1510 #if (defined(VK_KHR_device_group) && defined(VK_KHR_swapchain)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1))
1511 PFN_vkAcquireNextImage2KHR vkAcquireNextImage2KHR;
1512 #endif /* (defined(VK_KHR_device_group) && defined(VK_KHR_swapchain)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) */
1513 /* VOLK_GENERATE_PROTOTYPES_C */
1514 
1515 #ifdef __GNUC__
1516 #	pragma GCC visibility pop
1517 #endif
1518 
1519 #ifdef __cplusplus
1520 }
1521 #endif
1522