• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /**
2  * volk
3  *
4  * Copyright (C) 2018-2019, by Arseny Kapoulkine (arseny.kapoulkine@gmail.com)
5  * Report bugs and download new versions at https://github.com/zeux/volk
6  *
7  * This library is distributed under the MIT License. See notice at the end of this file.
8  */
9 /* clang-format off */
10 #ifndef VOLK_H_
11 #define VOLK_H_
12 
13 #if defined(VULKAN_H_) && !defined(VK_NO_PROTOTYPES)
14 #	error To use volk, you need to define VK_NO_PROTOTYPES before including vulkan.h
15 #endif
16 
17 /* VOLK_GENERATE_VERSION_DEFINE */
18 #define VOLK_HEADER_VERSION 130
19 /* VOLK_GENERATE_VERSION_DEFINE */
20 
21 #ifndef VK_NO_PROTOTYPES
22 #	define VK_NO_PROTOTYPES
23 #endif
24 
25 #ifndef VULKAN_H_
26 #       ifdef VOLK_VULKAN_H_PATH
27 #               include VOLK_VULKAN_H_PATH
28 #	elif defined(VK_USE_PLATFORM_WIN32_KHR)
29 #		include <vulkan/vk_platform.h>
30 #		include <vulkan/vulkan_core.h>
31 
32 		/* When VK_USE_PLATFORM_WIN32_KHR is defined, instead of including vulkan.h directly, we include individual parts of the SDK
33 		 * This is necessary to avoid including <windows.h> which is very heavy - it takes 200ms to parse without WIN32_LEAN_AND_MEAN
34 		 * and 100ms to parse with it. vulkan_win32.h only needs a few symbols that are easy to redefine ourselves.
35 		 */
36 		typedef unsigned long DWORD;
37 		typedef const wchar_t* LPCWSTR;
38 		typedef void* HANDLE;
39 		typedef struct HINSTANCE__* HINSTANCE;
40 		typedef struct HWND__* HWND;
41 		typedef struct HMONITOR__* HMONITOR;
42 		typedef struct _SECURITY_ATTRIBUTES SECURITY_ATTRIBUTES;
43 
44 #		include <vulkan/vulkan_win32.h>
45 #	else
46 #		include <vulkan/vulkan.h>
47 #	endif
48 #endif
49 
50 #ifdef __cplusplus
51 extern "C" {
52 #endif
53 
54 struct VolkDeviceTable;
55 
56 /**
57  * Initialize library by loading Vulkan loader; call this function before creating the Vulkan instance.
58  *
59  * Returns VK_SUCCESS on success and VK_ERROR_INITIALIZATION_FAILED otherwise.
60  */
61 VkResult volkInitialize(void);
62 
63 /**
64  * Initialize library by providing a custom handler to load global symbols.
65  *
66  * This function can be used instead of volkInitialize.
67  * The handler function pointer will be asked to load global Vulkan symbols which require no instance
68  * (such as vkCreateInstance, vkEnumerateInstance* and vkEnumerateInstanceVersion if available).
69  */
70 void volkInitializeCustom(PFN_vkGetInstanceProcAddr handler);
71 
72 /**
73  * Get Vulkan instance version supported by the Vulkan loader, or 0 if Vulkan isn't supported
74  *
75  * Returns 0 if volkInitialize wasn't called or failed.
76  */
77 uint32_t volkGetInstanceVersion(void);
78 
79 /**
80  * Load global function pointers using application-created VkInstance; call this function after creating the Vulkan instance.
81  */
82 void volkLoadInstance(VkInstance instance);
83 
84 /**
85  * Load global function pointers using application-created VkDevice; call this function after creating the Vulkan device.
86  *
87  * Note: this is not suitable for applications that want to use multiple VkDevice objects concurrently.
88  */
89 void volkLoadDevice(VkDevice device);
90 
91 /**
92  * Return last VkInstance for which global function pointers have been loaded via volkLoadInstance(),
93  * or VK_NULL_HANDLE if volkLoadInstance() has not been called.
94  */
95 VkInstance volkGetLoadedInstance();
96 
97 /**
98  * Return last VkDevice for which global function pointers have been loaded via volkLoadDevice(),
99  * or VK_NULL_HANDLE if volkLoadDevice() has not been called.
100  */
101 VkDevice volkGetLoadedDevice();
102 
103 /**
104  * Load function pointers using application-created VkDevice into a table.
105  * Application should use function pointers from that table instead of using global function pointers.
106  */
107 void volkLoadDeviceTable(struct VolkDeviceTable* table, VkDevice device);
108 
109 /**
110  * Device-specific function pointer table
111  */
112 struct VolkDeviceTable
113 {
114 	/* VOLK_GENERATE_DEVICE_TABLE */
115 #if defined(VK_VERSION_1_0)
116 	PFN_vkAllocateCommandBuffers vkAllocateCommandBuffers;
117 	PFN_vkAllocateDescriptorSets vkAllocateDescriptorSets;
118 	PFN_vkAllocateMemory vkAllocateMemory;
119 	PFN_vkBeginCommandBuffer vkBeginCommandBuffer;
120 	PFN_vkBindBufferMemory vkBindBufferMemory;
121 	PFN_vkBindImageMemory vkBindImageMemory;
122 	PFN_vkCmdBeginQuery vkCmdBeginQuery;
123 	PFN_vkCmdBeginRenderPass vkCmdBeginRenderPass;
124 	PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets;
125 	PFN_vkCmdBindIndexBuffer vkCmdBindIndexBuffer;
126 	PFN_vkCmdBindPipeline vkCmdBindPipeline;
127 	PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers;
128 	PFN_vkCmdBlitImage vkCmdBlitImage;
129 	PFN_vkCmdClearAttachments vkCmdClearAttachments;
130 	PFN_vkCmdClearColorImage vkCmdClearColorImage;
131 	PFN_vkCmdClearDepthStencilImage vkCmdClearDepthStencilImage;
132 	PFN_vkCmdCopyBuffer vkCmdCopyBuffer;
133 	PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage;
134 	PFN_vkCmdCopyImage vkCmdCopyImage;
135 	PFN_vkCmdCopyImageToBuffer vkCmdCopyImageToBuffer;
136 	PFN_vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults;
137 	PFN_vkCmdDispatch vkCmdDispatch;
138 	PFN_vkCmdDispatchIndirect vkCmdDispatchIndirect;
139 	PFN_vkCmdDraw vkCmdDraw;
140 	PFN_vkCmdDrawIndexed vkCmdDrawIndexed;
141 	PFN_vkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirect;
142 	PFN_vkCmdDrawIndirect vkCmdDrawIndirect;
143 	PFN_vkCmdEndQuery vkCmdEndQuery;
144 	PFN_vkCmdEndRenderPass vkCmdEndRenderPass;
145 	PFN_vkCmdExecuteCommands vkCmdExecuteCommands;
146 	PFN_vkCmdFillBuffer vkCmdFillBuffer;
147 	PFN_vkCmdNextSubpass vkCmdNextSubpass;
148 	PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier;
149 	PFN_vkCmdPushConstants vkCmdPushConstants;
150 	PFN_vkCmdResetEvent vkCmdResetEvent;
151 	PFN_vkCmdResetQueryPool vkCmdResetQueryPool;
152 	PFN_vkCmdResolveImage vkCmdResolveImage;
153 	PFN_vkCmdSetBlendConstants vkCmdSetBlendConstants;
154 	PFN_vkCmdSetDepthBias vkCmdSetDepthBias;
155 	PFN_vkCmdSetDepthBounds vkCmdSetDepthBounds;
156 	PFN_vkCmdSetEvent vkCmdSetEvent;
157 	PFN_vkCmdSetLineWidth vkCmdSetLineWidth;
158 	PFN_vkCmdSetScissor vkCmdSetScissor;
159 	PFN_vkCmdSetStencilCompareMask vkCmdSetStencilCompareMask;
160 	PFN_vkCmdSetStencilReference vkCmdSetStencilReference;
161 	PFN_vkCmdSetStencilWriteMask vkCmdSetStencilWriteMask;
162 	PFN_vkCmdSetViewport vkCmdSetViewport;
163 	PFN_vkCmdUpdateBuffer vkCmdUpdateBuffer;
164 	PFN_vkCmdWaitEvents vkCmdWaitEvents;
165 	PFN_vkCmdWriteTimestamp vkCmdWriteTimestamp;
166 	PFN_vkCreateBuffer vkCreateBuffer;
167 	PFN_vkCreateBufferView vkCreateBufferView;
168 	PFN_vkCreateCommandPool vkCreateCommandPool;
169 	PFN_vkCreateComputePipelines vkCreateComputePipelines;
170 	PFN_vkCreateDescriptorPool vkCreateDescriptorPool;
171 	PFN_vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout;
172 	PFN_vkCreateEvent vkCreateEvent;
173 	PFN_vkCreateFence vkCreateFence;
174 	PFN_vkCreateFramebuffer vkCreateFramebuffer;
175 	PFN_vkCreateGraphicsPipelines vkCreateGraphicsPipelines;
176 	PFN_vkCreateImage vkCreateImage;
177 	PFN_vkCreateImageView vkCreateImageView;
178 	PFN_vkCreatePipelineCache vkCreatePipelineCache;
179 	PFN_vkCreatePipelineLayout vkCreatePipelineLayout;
180 	PFN_vkCreateQueryPool vkCreateQueryPool;
181 	PFN_vkCreateRenderPass vkCreateRenderPass;
182 	PFN_vkCreateSampler vkCreateSampler;
183 	PFN_vkCreateSemaphore vkCreateSemaphore;
184 	PFN_vkCreateShaderModule vkCreateShaderModule;
185 	PFN_vkDestroyBuffer vkDestroyBuffer;
186 	PFN_vkDestroyBufferView vkDestroyBufferView;
187 	PFN_vkDestroyCommandPool vkDestroyCommandPool;
188 	PFN_vkDestroyDescriptorPool vkDestroyDescriptorPool;
189 	PFN_vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout;
190 	PFN_vkDestroyDevice vkDestroyDevice;
191 	PFN_vkDestroyEvent vkDestroyEvent;
192 	PFN_vkDestroyFence vkDestroyFence;
193 	PFN_vkDestroyFramebuffer vkDestroyFramebuffer;
194 	PFN_vkDestroyImage vkDestroyImage;
195 	PFN_vkDestroyImageView vkDestroyImageView;
196 	PFN_vkDestroyPipeline vkDestroyPipeline;
197 	PFN_vkDestroyPipelineCache vkDestroyPipelineCache;
198 	PFN_vkDestroyPipelineLayout vkDestroyPipelineLayout;
199 	PFN_vkDestroyQueryPool vkDestroyQueryPool;
200 	PFN_vkDestroyRenderPass vkDestroyRenderPass;
201 	PFN_vkDestroySampler vkDestroySampler;
202 	PFN_vkDestroySemaphore vkDestroySemaphore;
203 	PFN_vkDestroyShaderModule vkDestroyShaderModule;
204 	PFN_vkDeviceWaitIdle vkDeviceWaitIdle;
205 	PFN_vkEndCommandBuffer vkEndCommandBuffer;
206 	PFN_vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges;
207 	PFN_vkFreeCommandBuffers vkFreeCommandBuffers;
208 	PFN_vkFreeDescriptorSets vkFreeDescriptorSets;
209 	PFN_vkFreeMemory vkFreeMemory;
210 	PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements;
211 	PFN_vkGetDeviceMemoryCommitment vkGetDeviceMemoryCommitment;
212 	PFN_vkGetDeviceQueue vkGetDeviceQueue;
213 	PFN_vkGetEventStatus vkGetEventStatus;
214 	PFN_vkGetFenceStatus vkGetFenceStatus;
215 	PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements;
216 	PFN_vkGetImageSparseMemoryRequirements vkGetImageSparseMemoryRequirements;
217 	PFN_vkGetImageSubresourceLayout vkGetImageSubresourceLayout;
218 	PFN_vkGetPipelineCacheData vkGetPipelineCacheData;
219 	PFN_vkGetQueryPoolResults vkGetQueryPoolResults;
220 	PFN_vkGetRenderAreaGranularity vkGetRenderAreaGranularity;
221 	PFN_vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges;
222 	PFN_vkMapMemory vkMapMemory;
223 	PFN_vkMergePipelineCaches vkMergePipelineCaches;
224 	PFN_vkQueueBindSparse vkQueueBindSparse;
225 	PFN_vkQueueSubmit vkQueueSubmit;
226 	PFN_vkQueueWaitIdle vkQueueWaitIdle;
227 	PFN_vkResetCommandBuffer vkResetCommandBuffer;
228 	PFN_vkResetCommandPool vkResetCommandPool;
229 	PFN_vkResetDescriptorPool vkResetDescriptorPool;
230 	PFN_vkResetEvent vkResetEvent;
231 	PFN_vkResetFences vkResetFences;
232 	PFN_vkSetEvent vkSetEvent;
233 	PFN_vkUnmapMemory vkUnmapMemory;
234 	PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets;
235 	PFN_vkWaitForFences vkWaitForFences;
236 #endif /* defined(VK_VERSION_1_0) */
237 #if defined(VK_VERSION_1_1)
238 	PFN_vkBindBufferMemory2 vkBindBufferMemory2;
239 	PFN_vkBindImageMemory2 vkBindImageMemory2;
240 	PFN_vkCmdDispatchBase vkCmdDispatchBase;
241 	PFN_vkCmdSetDeviceMask vkCmdSetDeviceMask;
242 	PFN_vkCreateDescriptorUpdateTemplate vkCreateDescriptorUpdateTemplate;
243 	PFN_vkCreateSamplerYcbcrConversion vkCreateSamplerYcbcrConversion;
244 	PFN_vkDestroyDescriptorUpdateTemplate vkDestroyDescriptorUpdateTemplate;
245 	PFN_vkDestroySamplerYcbcrConversion vkDestroySamplerYcbcrConversion;
246 	PFN_vkGetBufferMemoryRequirements2 vkGetBufferMemoryRequirements2;
247 	PFN_vkGetDescriptorSetLayoutSupport vkGetDescriptorSetLayoutSupport;
248 	PFN_vkGetDeviceGroupPeerMemoryFeatures vkGetDeviceGroupPeerMemoryFeatures;
249 	PFN_vkGetDeviceQueue2 vkGetDeviceQueue2;
250 	PFN_vkGetImageMemoryRequirements2 vkGetImageMemoryRequirements2;
251 	PFN_vkGetImageSparseMemoryRequirements2 vkGetImageSparseMemoryRequirements2;
252 	PFN_vkTrimCommandPool vkTrimCommandPool;
253 	PFN_vkUpdateDescriptorSetWithTemplate vkUpdateDescriptorSetWithTemplate;
254 #endif /* defined(VK_VERSION_1_1) */
255 #if defined(VK_AMD_buffer_marker)
256 	PFN_vkCmdWriteBufferMarkerAMD vkCmdWriteBufferMarkerAMD;
257 #endif /* defined(VK_AMD_buffer_marker) */
258 #if defined(VK_AMD_display_native_hdr)
259 	PFN_vkSetLocalDimmingAMD vkSetLocalDimmingAMD;
260 #endif /* defined(VK_AMD_display_native_hdr) */
261 #if defined(VK_AMD_draw_indirect_count)
262 	PFN_vkCmdDrawIndexedIndirectCountAMD vkCmdDrawIndexedIndirectCountAMD;
263 	PFN_vkCmdDrawIndirectCountAMD vkCmdDrawIndirectCountAMD;
264 #endif /* defined(VK_AMD_draw_indirect_count) */
265 #if defined(VK_AMD_shader_info)
266 	PFN_vkGetShaderInfoAMD vkGetShaderInfoAMD;
267 #endif /* defined(VK_AMD_shader_info) */
268 #if defined(VK_ANDROID_external_memory_android_hardware_buffer)
269 	PFN_vkGetAndroidHardwareBufferPropertiesANDROID vkGetAndroidHardwareBufferPropertiesANDROID;
270 	PFN_vkGetMemoryAndroidHardwareBufferANDROID vkGetMemoryAndroidHardwareBufferANDROID;
271 #endif /* defined(VK_ANDROID_external_memory_android_hardware_buffer) */
272 #if defined(VK_EXT_buffer_device_address)
273 	PFN_vkGetBufferDeviceAddressEXT vkGetBufferDeviceAddressEXT;
274 #endif /* defined(VK_EXT_buffer_device_address) */
275 #if defined(VK_EXT_calibrated_timestamps)
276 	PFN_vkGetCalibratedTimestampsEXT vkGetCalibratedTimestampsEXT;
277 #endif /* defined(VK_EXT_calibrated_timestamps) */
278 #if defined(VK_EXT_conditional_rendering)
279 	PFN_vkCmdBeginConditionalRenderingEXT vkCmdBeginConditionalRenderingEXT;
280 	PFN_vkCmdEndConditionalRenderingEXT vkCmdEndConditionalRenderingEXT;
281 #endif /* defined(VK_EXT_conditional_rendering) */
282 #if defined(VK_EXT_debug_marker)
283 	PFN_vkCmdDebugMarkerBeginEXT vkCmdDebugMarkerBeginEXT;
284 	PFN_vkCmdDebugMarkerEndEXT vkCmdDebugMarkerEndEXT;
285 	PFN_vkCmdDebugMarkerInsertEXT vkCmdDebugMarkerInsertEXT;
286 	PFN_vkDebugMarkerSetObjectNameEXT vkDebugMarkerSetObjectNameEXT;
287 	PFN_vkDebugMarkerSetObjectTagEXT vkDebugMarkerSetObjectTagEXT;
288 #endif /* defined(VK_EXT_debug_marker) */
289 #if defined(VK_EXT_discard_rectangles)
290 	PFN_vkCmdSetDiscardRectangleEXT vkCmdSetDiscardRectangleEXT;
291 #endif /* defined(VK_EXT_discard_rectangles) */
292 #if defined(VK_EXT_display_control)
293 	PFN_vkDisplayPowerControlEXT vkDisplayPowerControlEXT;
294 	PFN_vkGetSwapchainCounterEXT vkGetSwapchainCounterEXT;
295 	PFN_vkRegisterDeviceEventEXT vkRegisterDeviceEventEXT;
296 	PFN_vkRegisterDisplayEventEXT vkRegisterDisplayEventEXT;
297 #endif /* defined(VK_EXT_display_control) */
298 #if defined(VK_EXT_external_memory_host)
299 	PFN_vkGetMemoryHostPointerPropertiesEXT vkGetMemoryHostPointerPropertiesEXT;
300 #endif /* defined(VK_EXT_external_memory_host) */
301 #if defined(VK_EXT_full_screen_exclusive)
302 	PFN_vkAcquireFullScreenExclusiveModeEXT vkAcquireFullScreenExclusiveModeEXT;
303 	PFN_vkReleaseFullScreenExclusiveModeEXT vkReleaseFullScreenExclusiveModeEXT;
304 #endif /* defined(VK_EXT_full_screen_exclusive) */
305 #if defined(VK_EXT_hdr_metadata)
306 	PFN_vkSetHdrMetadataEXT vkSetHdrMetadataEXT;
307 #endif /* defined(VK_EXT_hdr_metadata) */
308 #if defined(VK_EXT_host_query_reset)
309 	PFN_vkResetQueryPoolEXT vkResetQueryPoolEXT;
310 #endif /* defined(VK_EXT_host_query_reset) */
311 #if defined(VK_EXT_image_drm_format_modifier)
312 	PFN_vkGetImageDrmFormatModifierPropertiesEXT vkGetImageDrmFormatModifierPropertiesEXT;
313 #endif /* defined(VK_EXT_image_drm_format_modifier) */
314 #if defined(VK_EXT_line_rasterization)
315 	PFN_vkCmdSetLineStippleEXT vkCmdSetLineStippleEXT;
316 #endif /* defined(VK_EXT_line_rasterization) */
317 #if defined(VK_EXT_sample_locations)
318 	PFN_vkCmdSetSampleLocationsEXT vkCmdSetSampleLocationsEXT;
319 #endif /* defined(VK_EXT_sample_locations) */
320 #if defined(VK_EXT_transform_feedback)
321 	PFN_vkCmdBeginQueryIndexedEXT vkCmdBeginQueryIndexedEXT;
322 	PFN_vkCmdBeginTransformFeedbackEXT vkCmdBeginTransformFeedbackEXT;
323 	PFN_vkCmdBindTransformFeedbackBuffersEXT vkCmdBindTransformFeedbackBuffersEXT;
324 	PFN_vkCmdDrawIndirectByteCountEXT vkCmdDrawIndirectByteCountEXT;
325 	PFN_vkCmdEndQueryIndexedEXT vkCmdEndQueryIndexedEXT;
326 	PFN_vkCmdEndTransformFeedbackEXT vkCmdEndTransformFeedbackEXT;
327 #endif /* defined(VK_EXT_transform_feedback) */
328 #if defined(VK_EXT_validation_cache)
329 	PFN_vkCreateValidationCacheEXT vkCreateValidationCacheEXT;
330 	PFN_vkDestroyValidationCacheEXT vkDestroyValidationCacheEXT;
331 	PFN_vkGetValidationCacheDataEXT vkGetValidationCacheDataEXT;
332 	PFN_vkMergeValidationCachesEXT vkMergeValidationCachesEXT;
333 #endif /* defined(VK_EXT_validation_cache) */
334 #if defined(VK_GOOGLE_display_timing)
335 	PFN_vkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLE;
336 	PFN_vkGetRefreshCycleDurationGOOGLE vkGetRefreshCycleDurationGOOGLE;
337 #endif /* defined(VK_GOOGLE_display_timing) */
338 #if defined(VK_INTEL_performance_query)
339 	PFN_vkAcquirePerformanceConfigurationINTEL vkAcquirePerformanceConfigurationINTEL;
340 	PFN_vkCmdSetPerformanceMarkerINTEL vkCmdSetPerformanceMarkerINTEL;
341 	PFN_vkCmdSetPerformanceOverrideINTEL vkCmdSetPerformanceOverrideINTEL;
342 	PFN_vkCmdSetPerformanceStreamMarkerINTEL vkCmdSetPerformanceStreamMarkerINTEL;
343 	PFN_vkGetPerformanceParameterINTEL vkGetPerformanceParameterINTEL;
344 	PFN_vkInitializePerformanceApiINTEL vkInitializePerformanceApiINTEL;
345 	PFN_vkQueueSetPerformanceConfigurationINTEL vkQueueSetPerformanceConfigurationINTEL;
346 	PFN_vkReleasePerformanceConfigurationINTEL vkReleasePerformanceConfigurationINTEL;
347 	PFN_vkUninitializePerformanceApiINTEL vkUninitializePerformanceApiINTEL;
348 #endif /* defined(VK_INTEL_performance_query) */
349 #if defined(VK_KHR_bind_memory2)
350 	PFN_vkBindBufferMemory2KHR vkBindBufferMemory2KHR;
351 	PFN_vkBindImageMemory2KHR vkBindImageMemory2KHR;
352 #endif /* defined(VK_KHR_bind_memory2) */
353 #if defined(VK_KHR_buffer_device_address)
354 	PFN_vkGetBufferDeviceAddressKHR vkGetBufferDeviceAddressKHR;
355 	PFN_vkGetBufferOpaqueCaptureAddressKHR vkGetBufferOpaqueCaptureAddressKHR;
356 	PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR vkGetDeviceMemoryOpaqueCaptureAddressKHR;
357 #endif /* defined(VK_KHR_buffer_device_address) */
358 #if defined(VK_KHR_create_renderpass2)
359 	PFN_vkCmdBeginRenderPass2KHR vkCmdBeginRenderPass2KHR;
360 	PFN_vkCmdEndRenderPass2KHR vkCmdEndRenderPass2KHR;
361 	PFN_vkCmdNextSubpass2KHR vkCmdNextSubpass2KHR;
362 	PFN_vkCreateRenderPass2KHR vkCreateRenderPass2KHR;
363 #endif /* defined(VK_KHR_create_renderpass2) */
364 #if defined(VK_KHR_descriptor_update_template)
365 	PFN_vkCreateDescriptorUpdateTemplateKHR vkCreateDescriptorUpdateTemplateKHR;
366 	PFN_vkDestroyDescriptorUpdateTemplateKHR vkDestroyDescriptorUpdateTemplateKHR;
367 	PFN_vkUpdateDescriptorSetWithTemplateKHR vkUpdateDescriptorSetWithTemplateKHR;
368 #endif /* defined(VK_KHR_descriptor_update_template) */
369 #if defined(VK_KHR_device_group)
370 	PFN_vkCmdDispatchBaseKHR vkCmdDispatchBaseKHR;
371 	PFN_vkCmdSetDeviceMaskKHR vkCmdSetDeviceMaskKHR;
372 	PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR vkGetDeviceGroupPeerMemoryFeaturesKHR;
373 #endif /* defined(VK_KHR_device_group) */
374 #if defined(VK_KHR_display_swapchain)
375 	PFN_vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR;
376 #endif /* defined(VK_KHR_display_swapchain) */
377 #if defined(VK_KHR_draw_indirect_count)
378 	PFN_vkCmdDrawIndexedIndirectCountKHR vkCmdDrawIndexedIndirectCountKHR;
379 	PFN_vkCmdDrawIndirectCountKHR vkCmdDrawIndirectCountKHR;
380 #endif /* defined(VK_KHR_draw_indirect_count) */
381 #if defined(VK_KHR_external_fence_fd)
382 	PFN_vkGetFenceFdKHR vkGetFenceFdKHR;
383 	PFN_vkImportFenceFdKHR vkImportFenceFdKHR;
384 #endif /* defined(VK_KHR_external_fence_fd) */
385 #if defined(VK_KHR_external_fence_win32)
386 	PFN_vkGetFenceWin32HandleKHR vkGetFenceWin32HandleKHR;
387 	PFN_vkImportFenceWin32HandleKHR vkImportFenceWin32HandleKHR;
388 #endif /* defined(VK_KHR_external_fence_win32) */
389 #if defined(VK_KHR_external_memory_fd)
390 	PFN_vkGetMemoryFdKHR vkGetMemoryFdKHR;
391 	PFN_vkGetMemoryFdPropertiesKHR vkGetMemoryFdPropertiesKHR;
392 #endif /* defined(VK_KHR_external_memory_fd) */
393 #if defined(VK_KHR_external_memory_win32)
394 	PFN_vkGetMemoryWin32HandleKHR vkGetMemoryWin32HandleKHR;
395 	PFN_vkGetMemoryWin32HandlePropertiesKHR vkGetMemoryWin32HandlePropertiesKHR;
396 #endif /* defined(VK_KHR_external_memory_win32) */
397 #if defined(VK_KHR_external_semaphore_fd)
398 	PFN_vkGetSemaphoreFdKHR vkGetSemaphoreFdKHR;
399 	PFN_vkImportSemaphoreFdKHR vkImportSemaphoreFdKHR;
400 #endif /* defined(VK_KHR_external_semaphore_fd) */
401 #if defined(VK_KHR_external_semaphore_win32)
402 	PFN_vkGetSemaphoreWin32HandleKHR vkGetSemaphoreWin32HandleKHR;
403 	PFN_vkImportSemaphoreWin32HandleKHR vkImportSemaphoreWin32HandleKHR;
404 #endif /* defined(VK_KHR_external_semaphore_win32) */
405 #if defined(VK_KHR_get_memory_requirements2)
406 	PFN_vkGetBufferMemoryRequirements2KHR vkGetBufferMemoryRequirements2KHR;
407 	PFN_vkGetImageMemoryRequirements2KHR vkGetImageMemoryRequirements2KHR;
408 	PFN_vkGetImageSparseMemoryRequirements2KHR vkGetImageSparseMemoryRequirements2KHR;
409 #endif /* defined(VK_KHR_get_memory_requirements2) */
410 #if defined(VK_KHR_maintenance1)
411 	PFN_vkTrimCommandPoolKHR vkTrimCommandPoolKHR;
412 #endif /* defined(VK_KHR_maintenance1) */
413 #if defined(VK_KHR_maintenance3)
414 	PFN_vkGetDescriptorSetLayoutSupportKHR vkGetDescriptorSetLayoutSupportKHR;
415 #endif /* defined(VK_KHR_maintenance3) */
416 #if defined(VK_KHR_performance_query)
417 	PFN_vkAcquireProfilingLockKHR vkAcquireProfilingLockKHR;
418 	PFN_vkReleaseProfilingLockKHR vkReleaseProfilingLockKHR;
419 #endif /* defined(VK_KHR_performance_query) */
420 #if defined(VK_KHR_pipeline_executable_properties)
421 	PFN_vkGetPipelineExecutableInternalRepresentationsKHR vkGetPipelineExecutableInternalRepresentationsKHR;
422 	PFN_vkGetPipelineExecutablePropertiesKHR vkGetPipelineExecutablePropertiesKHR;
423 	PFN_vkGetPipelineExecutableStatisticsKHR vkGetPipelineExecutableStatisticsKHR;
424 #endif /* defined(VK_KHR_pipeline_executable_properties) */
425 #if defined(VK_KHR_push_descriptor)
426 	PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR;
427 #endif /* defined(VK_KHR_push_descriptor) */
428 #if defined(VK_KHR_sampler_ycbcr_conversion)
429 	PFN_vkCreateSamplerYcbcrConversionKHR vkCreateSamplerYcbcrConversionKHR;
430 	PFN_vkDestroySamplerYcbcrConversionKHR vkDestroySamplerYcbcrConversionKHR;
431 #endif /* defined(VK_KHR_sampler_ycbcr_conversion) */
432 #if defined(VK_KHR_shared_presentable_image)
433 	PFN_vkGetSwapchainStatusKHR vkGetSwapchainStatusKHR;
434 #endif /* defined(VK_KHR_shared_presentable_image) */
435 #if defined(VK_KHR_swapchain)
436 	PFN_vkAcquireNextImageKHR vkAcquireNextImageKHR;
437 	PFN_vkCreateSwapchainKHR vkCreateSwapchainKHR;
438 	PFN_vkDestroySwapchainKHR vkDestroySwapchainKHR;
439 	PFN_vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR;
440 	PFN_vkQueuePresentKHR vkQueuePresentKHR;
441 #endif /* defined(VK_KHR_swapchain) */
442 #if defined(VK_KHR_timeline_semaphore)
443 	PFN_vkGetSemaphoreCounterValueKHR vkGetSemaphoreCounterValueKHR;
444 	PFN_vkSignalSemaphoreKHR vkSignalSemaphoreKHR;
445 	PFN_vkWaitSemaphoresKHR vkWaitSemaphoresKHR;
446 #endif /* defined(VK_KHR_timeline_semaphore) */
447 #if defined(VK_NVX_device_generated_commands)
448 	PFN_vkCmdProcessCommandsNVX vkCmdProcessCommandsNVX;
449 	PFN_vkCmdReserveSpaceForCommandsNVX vkCmdReserveSpaceForCommandsNVX;
450 	PFN_vkCreateIndirectCommandsLayoutNVX vkCreateIndirectCommandsLayoutNVX;
451 	PFN_vkCreateObjectTableNVX vkCreateObjectTableNVX;
452 	PFN_vkDestroyIndirectCommandsLayoutNVX vkDestroyIndirectCommandsLayoutNVX;
453 	PFN_vkDestroyObjectTableNVX vkDestroyObjectTableNVX;
454 	PFN_vkRegisterObjectsNVX vkRegisterObjectsNVX;
455 	PFN_vkUnregisterObjectsNVX vkUnregisterObjectsNVX;
456 #endif /* defined(VK_NVX_device_generated_commands) */
457 #if defined(VK_NVX_image_view_handle)
458 	PFN_vkGetImageViewHandleNVX vkGetImageViewHandleNVX;
459 #endif /* defined(VK_NVX_image_view_handle) */
460 #if defined(VK_NV_clip_space_w_scaling)
461 	PFN_vkCmdSetViewportWScalingNV vkCmdSetViewportWScalingNV;
462 #endif /* defined(VK_NV_clip_space_w_scaling) */
463 #if defined(VK_NV_device_diagnostic_checkpoints)
464 	PFN_vkCmdSetCheckpointNV vkCmdSetCheckpointNV;
465 	PFN_vkGetQueueCheckpointDataNV vkGetQueueCheckpointDataNV;
466 #endif /* defined(VK_NV_device_diagnostic_checkpoints) */
467 #if defined(VK_NV_external_memory_win32)
468 	PFN_vkGetMemoryWin32HandleNV vkGetMemoryWin32HandleNV;
469 #endif /* defined(VK_NV_external_memory_win32) */
470 #if defined(VK_NV_mesh_shader)
471 	PFN_vkCmdDrawMeshTasksIndirectCountNV vkCmdDrawMeshTasksIndirectCountNV;
472 	PFN_vkCmdDrawMeshTasksIndirectNV vkCmdDrawMeshTasksIndirectNV;
473 	PFN_vkCmdDrawMeshTasksNV vkCmdDrawMeshTasksNV;
474 #endif /* defined(VK_NV_mesh_shader) */
475 #if defined(VK_NV_ray_tracing)
476 	PFN_vkBindAccelerationStructureMemoryNV vkBindAccelerationStructureMemoryNV;
477 	PFN_vkCmdBuildAccelerationStructureNV vkCmdBuildAccelerationStructureNV;
478 	PFN_vkCmdCopyAccelerationStructureNV vkCmdCopyAccelerationStructureNV;
479 	PFN_vkCmdTraceRaysNV vkCmdTraceRaysNV;
480 	PFN_vkCmdWriteAccelerationStructuresPropertiesNV vkCmdWriteAccelerationStructuresPropertiesNV;
481 	PFN_vkCompileDeferredNV vkCompileDeferredNV;
482 	PFN_vkCreateAccelerationStructureNV vkCreateAccelerationStructureNV;
483 	PFN_vkCreateRayTracingPipelinesNV vkCreateRayTracingPipelinesNV;
484 	PFN_vkDestroyAccelerationStructureNV vkDestroyAccelerationStructureNV;
485 	PFN_vkGetAccelerationStructureHandleNV vkGetAccelerationStructureHandleNV;
486 	PFN_vkGetAccelerationStructureMemoryRequirementsNV vkGetAccelerationStructureMemoryRequirementsNV;
487 	PFN_vkGetRayTracingShaderGroupHandlesNV vkGetRayTracingShaderGroupHandlesNV;
488 #endif /* defined(VK_NV_ray_tracing) */
489 #if defined(VK_NV_scissor_exclusive)
490 	PFN_vkCmdSetExclusiveScissorNV vkCmdSetExclusiveScissorNV;
491 #endif /* defined(VK_NV_scissor_exclusive) */
492 #if defined(VK_NV_shading_rate_image)
493 	PFN_vkCmdBindShadingRateImageNV vkCmdBindShadingRateImageNV;
494 	PFN_vkCmdSetCoarseSampleOrderNV vkCmdSetCoarseSampleOrderNV;
495 	PFN_vkCmdSetViewportShadingRatePaletteNV vkCmdSetViewportShadingRatePaletteNV;
496 #endif /* defined(VK_NV_shading_rate_image) */
497 #if (defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group)) || (defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1))
498 	PFN_vkGetDeviceGroupSurfacePresentModes2EXT vkGetDeviceGroupSurfacePresentModes2EXT;
499 #endif /* (defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group)) || (defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1)) */
500 #if (defined(VK_KHR_descriptor_update_template) && defined(VK_KHR_push_descriptor)) || (defined(VK_KHR_push_descriptor) && defined(VK_VERSION_1_1))
501 	PFN_vkCmdPushDescriptorSetWithTemplateKHR vkCmdPushDescriptorSetWithTemplateKHR;
502 #endif /* (defined(VK_KHR_descriptor_update_template) && defined(VK_KHR_push_descriptor)) || (defined(VK_KHR_push_descriptor) && defined(VK_VERSION_1_1)) */
503 #if (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1))
504 	PFN_vkGetDeviceGroupPresentCapabilitiesKHR vkGetDeviceGroupPresentCapabilitiesKHR;
505 	PFN_vkGetDeviceGroupSurfacePresentModesKHR vkGetDeviceGroupSurfacePresentModesKHR;
506 #endif /* (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) */
507 #if (defined(VK_KHR_device_group) && defined(VK_KHR_swapchain)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1))
508 	PFN_vkAcquireNextImage2KHR vkAcquireNextImage2KHR;
509 #endif /* (defined(VK_KHR_device_group) && defined(VK_KHR_swapchain)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) */
510 	/* VOLK_GENERATE_DEVICE_TABLE */
511 };
512 
513 /* VOLK_GENERATE_PROTOTYPES_H */
514 #if defined(VK_VERSION_1_0)
515 extern PFN_vkAllocateCommandBuffers vkAllocateCommandBuffers;
516 extern PFN_vkAllocateDescriptorSets vkAllocateDescriptorSets;
517 extern PFN_vkAllocateMemory vkAllocateMemory;
518 extern PFN_vkBeginCommandBuffer vkBeginCommandBuffer;
519 extern PFN_vkBindBufferMemory vkBindBufferMemory;
520 extern PFN_vkBindImageMemory vkBindImageMemory;
521 extern PFN_vkCmdBeginQuery vkCmdBeginQuery;
522 extern PFN_vkCmdBeginRenderPass vkCmdBeginRenderPass;
523 extern PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets;
524 extern PFN_vkCmdBindIndexBuffer vkCmdBindIndexBuffer;
525 extern PFN_vkCmdBindPipeline vkCmdBindPipeline;
526 extern PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers;
527 extern PFN_vkCmdBlitImage vkCmdBlitImage;
528 extern PFN_vkCmdClearAttachments vkCmdClearAttachments;
529 extern PFN_vkCmdClearColorImage vkCmdClearColorImage;
530 extern PFN_vkCmdClearDepthStencilImage vkCmdClearDepthStencilImage;
531 extern PFN_vkCmdCopyBuffer vkCmdCopyBuffer;
532 extern PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage;
533 extern PFN_vkCmdCopyImage vkCmdCopyImage;
534 extern PFN_vkCmdCopyImageToBuffer vkCmdCopyImageToBuffer;
535 extern PFN_vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults;
536 extern PFN_vkCmdDispatch vkCmdDispatch;
537 extern PFN_vkCmdDispatchIndirect vkCmdDispatchIndirect;
538 extern PFN_vkCmdDraw vkCmdDraw;
539 extern PFN_vkCmdDrawIndexed vkCmdDrawIndexed;
540 extern PFN_vkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirect;
541 extern PFN_vkCmdDrawIndirect vkCmdDrawIndirect;
542 extern PFN_vkCmdEndQuery vkCmdEndQuery;
543 extern PFN_vkCmdEndRenderPass vkCmdEndRenderPass;
544 extern PFN_vkCmdExecuteCommands vkCmdExecuteCommands;
545 extern PFN_vkCmdFillBuffer vkCmdFillBuffer;
546 extern PFN_vkCmdNextSubpass vkCmdNextSubpass;
547 extern PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier;
548 extern PFN_vkCmdPushConstants vkCmdPushConstants;
549 extern PFN_vkCmdResetEvent vkCmdResetEvent;
550 extern PFN_vkCmdResetQueryPool vkCmdResetQueryPool;
551 extern PFN_vkCmdResolveImage vkCmdResolveImage;
552 extern PFN_vkCmdSetBlendConstants vkCmdSetBlendConstants;
553 extern PFN_vkCmdSetDepthBias vkCmdSetDepthBias;
554 extern PFN_vkCmdSetDepthBounds vkCmdSetDepthBounds;
555 extern PFN_vkCmdSetEvent vkCmdSetEvent;
556 extern PFN_vkCmdSetLineWidth vkCmdSetLineWidth;
557 extern PFN_vkCmdSetScissor vkCmdSetScissor;
558 extern PFN_vkCmdSetStencilCompareMask vkCmdSetStencilCompareMask;
559 extern PFN_vkCmdSetStencilReference vkCmdSetStencilReference;
560 extern PFN_vkCmdSetStencilWriteMask vkCmdSetStencilWriteMask;
561 extern PFN_vkCmdSetViewport vkCmdSetViewport;
562 extern PFN_vkCmdUpdateBuffer vkCmdUpdateBuffer;
563 extern PFN_vkCmdWaitEvents vkCmdWaitEvents;
564 extern PFN_vkCmdWriteTimestamp vkCmdWriteTimestamp;
565 extern PFN_vkCreateBuffer vkCreateBuffer;
566 extern PFN_vkCreateBufferView vkCreateBufferView;
567 extern PFN_vkCreateCommandPool vkCreateCommandPool;
568 extern PFN_vkCreateComputePipelines vkCreateComputePipelines;
569 extern PFN_vkCreateDescriptorPool vkCreateDescriptorPool;
570 extern PFN_vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout;
571 extern PFN_vkCreateDevice vkCreateDevice;
572 extern PFN_vkCreateEvent vkCreateEvent;
573 extern PFN_vkCreateFence vkCreateFence;
574 extern PFN_vkCreateFramebuffer vkCreateFramebuffer;
575 extern PFN_vkCreateGraphicsPipelines vkCreateGraphicsPipelines;
576 extern PFN_vkCreateImage vkCreateImage;
577 extern PFN_vkCreateImageView vkCreateImageView;
578 extern PFN_vkCreateInstance vkCreateInstance;
579 extern PFN_vkCreatePipelineCache vkCreatePipelineCache;
580 extern PFN_vkCreatePipelineLayout vkCreatePipelineLayout;
581 extern PFN_vkCreateQueryPool vkCreateQueryPool;
582 extern PFN_vkCreateRenderPass vkCreateRenderPass;
583 extern PFN_vkCreateSampler vkCreateSampler;
584 extern PFN_vkCreateSemaphore vkCreateSemaphore;
585 extern PFN_vkCreateShaderModule vkCreateShaderModule;
586 extern PFN_vkDestroyBuffer vkDestroyBuffer;
587 extern PFN_vkDestroyBufferView vkDestroyBufferView;
588 extern PFN_vkDestroyCommandPool vkDestroyCommandPool;
589 extern PFN_vkDestroyDescriptorPool vkDestroyDescriptorPool;
590 extern PFN_vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout;
591 extern PFN_vkDestroyDevice vkDestroyDevice;
592 extern PFN_vkDestroyEvent vkDestroyEvent;
593 extern PFN_vkDestroyFence vkDestroyFence;
594 extern PFN_vkDestroyFramebuffer vkDestroyFramebuffer;
595 extern PFN_vkDestroyImage vkDestroyImage;
596 extern PFN_vkDestroyImageView vkDestroyImageView;
597 extern PFN_vkDestroyInstance vkDestroyInstance;
598 extern PFN_vkDestroyPipeline vkDestroyPipeline;
599 extern PFN_vkDestroyPipelineCache vkDestroyPipelineCache;
600 extern PFN_vkDestroyPipelineLayout vkDestroyPipelineLayout;
601 extern PFN_vkDestroyQueryPool vkDestroyQueryPool;
602 extern PFN_vkDestroyRenderPass vkDestroyRenderPass;
603 extern PFN_vkDestroySampler vkDestroySampler;
604 extern PFN_vkDestroySemaphore vkDestroySemaphore;
605 extern PFN_vkDestroyShaderModule vkDestroyShaderModule;
606 extern PFN_vkDeviceWaitIdle vkDeviceWaitIdle;
607 extern PFN_vkEndCommandBuffer vkEndCommandBuffer;
608 extern PFN_vkEnumerateDeviceExtensionProperties vkEnumerateDeviceExtensionProperties;
609 extern PFN_vkEnumerateDeviceLayerProperties vkEnumerateDeviceLayerProperties;
610 extern PFN_vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionProperties;
611 extern PFN_vkEnumerateInstanceLayerProperties vkEnumerateInstanceLayerProperties;
612 extern PFN_vkEnumeratePhysicalDevices vkEnumeratePhysicalDevices;
613 extern PFN_vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges;
614 extern PFN_vkFreeCommandBuffers vkFreeCommandBuffers;
615 extern PFN_vkFreeDescriptorSets vkFreeDescriptorSets;
616 extern PFN_vkFreeMemory vkFreeMemory;
617 extern PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements;
618 extern PFN_vkGetDeviceMemoryCommitment vkGetDeviceMemoryCommitment;
619 extern PFN_vkGetDeviceProcAddr vkGetDeviceProcAddr;
620 extern PFN_vkGetDeviceQueue vkGetDeviceQueue;
621 extern PFN_vkGetEventStatus vkGetEventStatus;
622 extern PFN_vkGetFenceStatus vkGetFenceStatus;
623 extern PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements;
624 extern PFN_vkGetImageSparseMemoryRequirements vkGetImageSparseMemoryRequirements;
625 extern PFN_vkGetImageSubresourceLayout vkGetImageSubresourceLayout;
626 extern PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr;
627 extern PFN_vkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeatures;
628 extern PFN_vkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatProperties;
629 extern PFN_vkGetPhysicalDeviceImageFormatProperties vkGetPhysicalDeviceImageFormatProperties;
630 extern PFN_vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties;
631 extern PFN_vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties;
632 extern PFN_vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties;
633 extern PFN_vkGetPhysicalDeviceSparseImageFormatProperties vkGetPhysicalDeviceSparseImageFormatProperties;
634 extern PFN_vkGetPipelineCacheData vkGetPipelineCacheData;
635 extern PFN_vkGetQueryPoolResults vkGetQueryPoolResults;
636 extern PFN_vkGetRenderAreaGranularity vkGetRenderAreaGranularity;
637 extern PFN_vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges;
638 extern PFN_vkMapMemory vkMapMemory;
639 extern PFN_vkMergePipelineCaches vkMergePipelineCaches;
640 extern PFN_vkQueueBindSparse vkQueueBindSparse;
641 extern PFN_vkQueueSubmit vkQueueSubmit;
642 extern PFN_vkQueueWaitIdle vkQueueWaitIdle;
643 extern PFN_vkResetCommandBuffer vkResetCommandBuffer;
644 extern PFN_vkResetCommandPool vkResetCommandPool;
645 extern PFN_vkResetDescriptorPool vkResetDescriptorPool;
646 extern PFN_vkResetEvent vkResetEvent;
647 extern PFN_vkResetFences vkResetFences;
648 extern PFN_vkSetEvent vkSetEvent;
649 extern PFN_vkUnmapMemory vkUnmapMemory;
650 extern PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets;
651 extern PFN_vkWaitForFences vkWaitForFences;
652 #endif /* defined(VK_VERSION_1_0) */
653 #if defined(VK_VERSION_1_1)
654 extern PFN_vkBindBufferMemory2 vkBindBufferMemory2;
655 extern PFN_vkBindImageMemory2 vkBindImageMemory2;
656 extern PFN_vkCmdDispatchBase vkCmdDispatchBase;
657 extern PFN_vkCmdSetDeviceMask vkCmdSetDeviceMask;
658 extern PFN_vkCreateDescriptorUpdateTemplate vkCreateDescriptorUpdateTemplate;
659 extern PFN_vkCreateSamplerYcbcrConversion vkCreateSamplerYcbcrConversion;
660 extern PFN_vkDestroyDescriptorUpdateTemplate vkDestroyDescriptorUpdateTemplate;
661 extern PFN_vkDestroySamplerYcbcrConversion vkDestroySamplerYcbcrConversion;
662 extern PFN_vkEnumerateInstanceVersion vkEnumerateInstanceVersion;
663 extern PFN_vkEnumeratePhysicalDeviceGroups vkEnumeratePhysicalDeviceGroups;
664 extern PFN_vkGetBufferMemoryRequirements2 vkGetBufferMemoryRequirements2;
665 extern PFN_vkGetDescriptorSetLayoutSupport vkGetDescriptorSetLayoutSupport;
666 extern PFN_vkGetDeviceGroupPeerMemoryFeatures vkGetDeviceGroupPeerMemoryFeatures;
667 extern PFN_vkGetDeviceQueue2 vkGetDeviceQueue2;
668 extern PFN_vkGetImageMemoryRequirements2 vkGetImageMemoryRequirements2;
669 extern PFN_vkGetImageSparseMemoryRequirements2 vkGetImageSparseMemoryRequirements2;
670 extern PFN_vkGetPhysicalDeviceExternalBufferProperties vkGetPhysicalDeviceExternalBufferProperties;
671 extern PFN_vkGetPhysicalDeviceExternalFenceProperties vkGetPhysicalDeviceExternalFenceProperties;
672 extern PFN_vkGetPhysicalDeviceExternalSemaphoreProperties vkGetPhysicalDeviceExternalSemaphoreProperties;
673 extern PFN_vkGetPhysicalDeviceFeatures2 vkGetPhysicalDeviceFeatures2;
674 extern PFN_vkGetPhysicalDeviceFormatProperties2 vkGetPhysicalDeviceFormatProperties2;
675 extern PFN_vkGetPhysicalDeviceImageFormatProperties2 vkGetPhysicalDeviceImageFormatProperties2;
676 extern PFN_vkGetPhysicalDeviceMemoryProperties2 vkGetPhysicalDeviceMemoryProperties2;
677 extern PFN_vkGetPhysicalDeviceProperties2 vkGetPhysicalDeviceProperties2;
678 extern PFN_vkGetPhysicalDeviceQueueFamilyProperties2 vkGetPhysicalDeviceQueueFamilyProperties2;
679 extern PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 vkGetPhysicalDeviceSparseImageFormatProperties2;
680 extern PFN_vkTrimCommandPool vkTrimCommandPool;
681 extern PFN_vkUpdateDescriptorSetWithTemplate vkUpdateDescriptorSetWithTemplate;
682 #endif /* defined(VK_VERSION_1_1) */
683 #if defined(VK_AMD_buffer_marker)
684 extern PFN_vkCmdWriteBufferMarkerAMD vkCmdWriteBufferMarkerAMD;
685 #endif /* defined(VK_AMD_buffer_marker) */
686 #if defined(VK_AMD_display_native_hdr)
687 extern PFN_vkSetLocalDimmingAMD vkSetLocalDimmingAMD;
688 #endif /* defined(VK_AMD_display_native_hdr) */
689 #if defined(VK_AMD_draw_indirect_count)
690 extern PFN_vkCmdDrawIndexedIndirectCountAMD vkCmdDrawIndexedIndirectCountAMD;
691 extern PFN_vkCmdDrawIndirectCountAMD vkCmdDrawIndirectCountAMD;
692 #endif /* defined(VK_AMD_draw_indirect_count) */
693 #if defined(VK_AMD_shader_info)
694 extern PFN_vkGetShaderInfoAMD vkGetShaderInfoAMD;
695 #endif /* defined(VK_AMD_shader_info) */
696 #if defined(VK_ANDROID_external_memory_android_hardware_buffer)
697 extern PFN_vkGetAndroidHardwareBufferPropertiesANDROID vkGetAndroidHardwareBufferPropertiesANDROID;
698 extern PFN_vkGetMemoryAndroidHardwareBufferANDROID vkGetMemoryAndroidHardwareBufferANDROID;
699 #endif /* defined(VK_ANDROID_external_memory_android_hardware_buffer) */
700 #if defined(VK_EXT_acquire_xlib_display)
701 extern PFN_vkAcquireXlibDisplayEXT vkAcquireXlibDisplayEXT;
702 extern PFN_vkGetRandROutputDisplayEXT vkGetRandROutputDisplayEXT;
703 #endif /* defined(VK_EXT_acquire_xlib_display) */
704 #if defined(VK_EXT_buffer_device_address)
705 extern PFN_vkGetBufferDeviceAddressEXT vkGetBufferDeviceAddressEXT;
706 #endif /* defined(VK_EXT_buffer_device_address) */
707 #if defined(VK_EXT_calibrated_timestamps)
708 extern PFN_vkGetCalibratedTimestampsEXT vkGetCalibratedTimestampsEXT;
709 extern PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT vkGetPhysicalDeviceCalibrateableTimeDomainsEXT;
710 #endif /* defined(VK_EXT_calibrated_timestamps) */
711 #if defined(VK_EXT_conditional_rendering)
712 extern PFN_vkCmdBeginConditionalRenderingEXT vkCmdBeginConditionalRenderingEXT;
713 extern PFN_vkCmdEndConditionalRenderingEXT vkCmdEndConditionalRenderingEXT;
714 #endif /* defined(VK_EXT_conditional_rendering) */
715 #if defined(VK_EXT_debug_marker)
716 extern PFN_vkCmdDebugMarkerBeginEXT vkCmdDebugMarkerBeginEXT;
717 extern PFN_vkCmdDebugMarkerEndEXT vkCmdDebugMarkerEndEXT;
718 extern PFN_vkCmdDebugMarkerInsertEXT vkCmdDebugMarkerInsertEXT;
719 extern PFN_vkDebugMarkerSetObjectNameEXT vkDebugMarkerSetObjectNameEXT;
720 extern PFN_vkDebugMarkerSetObjectTagEXT vkDebugMarkerSetObjectTagEXT;
721 #endif /* defined(VK_EXT_debug_marker) */
722 #if defined(VK_EXT_debug_report)
723 extern PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT;
724 extern PFN_vkDebugReportMessageEXT vkDebugReportMessageEXT;
725 extern PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT;
726 #endif /* defined(VK_EXT_debug_report) */
727 #if defined(VK_EXT_debug_utils)
728 extern PFN_vkCmdBeginDebugUtilsLabelEXT vkCmdBeginDebugUtilsLabelEXT;
729 extern PFN_vkCmdEndDebugUtilsLabelEXT vkCmdEndDebugUtilsLabelEXT;
730 extern PFN_vkCmdInsertDebugUtilsLabelEXT vkCmdInsertDebugUtilsLabelEXT;
731 extern PFN_vkCreateDebugUtilsMessengerEXT vkCreateDebugUtilsMessengerEXT;
732 extern PFN_vkDestroyDebugUtilsMessengerEXT vkDestroyDebugUtilsMessengerEXT;
733 extern PFN_vkQueueBeginDebugUtilsLabelEXT vkQueueBeginDebugUtilsLabelEXT;
734 extern PFN_vkQueueEndDebugUtilsLabelEXT vkQueueEndDebugUtilsLabelEXT;
735 extern PFN_vkQueueInsertDebugUtilsLabelEXT vkQueueInsertDebugUtilsLabelEXT;
736 extern PFN_vkSetDebugUtilsObjectNameEXT vkSetDebugUtilsObjectNameEXT;
737 extern PFN_vkSetDebugUtilsObjectTagEXT vkSetDebugUtilsObjectTagEXT;
738 extern PFN_vkSubmitDebugUtilsMessageEXT vkSubmitDebugUtilsMessageEXT;
739 #endif /* defined(VK_EXT_debug_utils) */
740 #if defined(VK_EXT_direct_mode_display)
741 extern PFN_vkReleaseDisplayEXT vkReleaseDisplayEXT;
742 #endif /* defined(VK_EXT_direct_mode_display) */
743 #if defined(VK_EXT_discard_rectangles)
744 extern PFN_vkCmdSetDiscardRectangleEXT vkCmdSetDiscardRectangleEXT;
745 #endif /* defined(VK_EXT_discard_rectangles) */
746 #if defined(VK_EXT_display_control)
747 extern PFN_vkDisplayPowerControlEXT vkDisplayPowerControlEXT;
748 extern PFN_vkGetSwapchainCounterEXT vkGetSwapchainCounterEXT;
749 extern PFN_vkRegisterDeviceEventEXT vkRegisterDeviceEventEXT;
750 extern PFN_vkRegisterDisplayEventEXT vkRegisterDisplayEventEXT;
751 #endif /* defined(VK_EXT_display_control) */
752 #if defined(VK_EXT_display_surface_counter)
753 extern PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT vkGetPhysicalDeviceSurfaceCapabilities2EXT;
754 #endif /* defined(VK_EXT_display_surface_counter) */
755 #if defined(VK_EXT_external_memory_host)
756 extern PFN_vkGetMemoryHostPointerPropertiesEXT vkGetMemoryHostPointerPropertiesEXT;
757 #endif /* defined(VK_EXT_external_memory_host) */
758 #if defined(VK_EXT_full_screen_exclusive)
759 extern PFN_vkAcquireFullScreenExclusiveModeEXT vkAcquireFullScreenExclusiveModeEXT;
760 extern PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT vkGetPhysicalDeviceSurfacePresentModes2EXT;
761 extern PFN_vkReleaseFullScreenExclusiveModeEXT vkReleaseFullScreenExclusiveModeEXT;
762 #endif /* defined(VK_EXT_full_screen_exclusive) */
763 #if defined(VK_EXT_hdr_metadata)
764 extern PFN_vkSetHdrMetadataEXT vkSetHdrMetadataEXT;
765 #endif /* defined(VK_EXT_hdr_metadata) */
766 #if defined(VK_EXT_headless_surface)
767 extern PFN_vkCreateHeadlessSurfaceEXT vkCreateHeadlessSurfaceEXT;
768 #endif /* defined(VK_EXT_headless_surface) */
769 #if defined(VK_EXT_host_query_reset)
770 extern PFN_vkResetQueryPoolEXT vkResetQueryPoolEXT;
771 #endif /* defined(VK_EXT_host_query_reset) */
772 #if defined(VK_EXT_image_drm_format_modifier)
773 extern PFN_vkGetImageDrmFormatModifierPropertiesEXT vkGetImageDrmFormatModifierPropertiesEXT;
774 #endif /* defined(VK_EXT_image_drm_format_modifier) */
775 #if defined(VK_EXT_line_rasterization)
776 extern PFN_vkCmdSetLineStippleEXT vkCmdSetLineStippleEXT;
777 #endif /* defined(VK_EXT_line_rasterization) */
778 #if defined(VK_EXT_metal_surface)
779 extern PFN_vkCreateMetalSurfaceEXT vkCreateMetalSurfaceEXT;
780 #endif /* defined(VK_EXT_metal_surface) */
781 #if defined(VK_EXT_sample_locations)
782 extern PFN_vkCmdSetSampleLocationsEXT vkCmdSetSampleLocationsEXT;
783 extern PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT vkGetPhysicalDeviceMultisamplePropertiesEXT;
784 #endif /* defined(VK_EXT_sample_locations) */
785 #if defined(VK_EXT_tooling_info)
786 extern PFN_vkGetPhysicalDeviceToolPropertiesEXT vkGetPhysicalDeviceToolPropertiesEXT;
787 #endif /* defined(VK_EXT_tooling_info) */
788 #if defined(VK_EXT_transform_feedback)
789 extern PFN_vkCmdBeginQueryIndexedEXT vkCmdBeginQueryIndexedEXT;
790 extern PFN_vkCmdBeginTransformFeedbackEXT vkCmdBeginTransformFeedbackEXT;
791 extern PFN_vkCmdBindTransformFeedbackBuffersEXT vkCmdBindTransformFeedbackBuffersEXT;
792 extern PFN_vkCmdDrawIndirectByteCountEXT vkCmdDrawIndirectByteCountEXT;
793 extern PFN_vkCmdEndQueryIndexedEXT vkCmdEndQueryIndexedEXT;
794 extern PFN_vkCmdEndTransformFeedbackEXT vkCmdEndTransformFeedbackEXT;
795 #endif /* defined(VK_EXT_transform_feedback) */
796 #if defined(VK_EXT_validation_cache)
797 extern PFN_vkCreateValidationCacheEXT vkCreateValidationCacheEXT;
798 extern PFN_vkDestroyValidationCacheEXT vkDestroyValidationCacheEXT;
799 extern PFN_vkGetValidationCacheDataEXT vkGetValidationCacheDataEXT;
800 extern PFN_vkMergeValidationCachesEXT vkMergeValidationCachesEXT;
801 #endif /* defined(VK_EXT_validation_cache) */
802 #if defined(VK_FUCHSIA_imagepipe_surface)
803 extern PFN_vkCreateImagePipeSurfaceFUCHSIA vkCreateImagePipeSurfaceFUCHSIA;
804 #endif /* defined(VK_FUCHSIA_imagepipe_surface) */
805 #if defined(VK_GGP_stream_descriptor_surface)
806 extern PFN_vkCreateStreamDescriptorSurfaceGGP vkCreateStreamDescriptorSurfaceGGP;
807 #endif /* defined(VK_GGP_stream_descriptor_surface) */
808 #if defined(VK_GOOGLE_display_timing)
809 extern PFN_vkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLE;
810 extern PFN_vkGetRefreshCycleDurationGOOGLE vkGetRefreshCycleDurationGOOGLE;
811 #endif /* defined(VK_GOOGLE_display_timing) */
812 #if defined(VK_INTEL_performance_query)
813 extern PFN_vkAcquirePerformanceConfigurationINTEL vkAcquirePerformanceConfigurationINTEL;
814 extern PFN_vkCmdSetPerformanceMarkerINTEL vkCmdSetPerformanceMarkerINTEL;
815 extern PFN_vkCmdSetPerformanceOverrideINTEL vkCmdSetPerformanceOverrideINTEL;
816 extern PFN_vkCmdSetPerformanceStreamMarkerINTEL vkCmdSetPerformanceStreamMarkerINTEL;
817 extern PFN_vkGetPerformanceParameterINTEL vkGetPerformanceParameterINTEL;
818 extern PFN_vkInitializePerformanceApiINTEL vkInitializePerformanceApiINTEL;
819 extern PFN_vkQueueSetPerformanceConfigurationINTEL vkQueueSetPerformanceConfigurationINTEL;
820 extern PFN_vkReleasePerformanceConfigurationINTEL vkReleasePerformanceConfigurationINTEL;
821 extern PFN_vkUninitializePerformanceApiINTEL vkUninitializePerformanceApiINTEL;
822 #endif /* defined(VK_INTEL_performance_query) */
823 #if defined(VK_KHR_android_surface)
824 extern PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR;
825 #endif /* defined(VK_KHR_android_surface) */
826 #if defined(VK_KHR_bind_memory2)
827 extern PFN_vkBindBufferMemory2KHR vkBindBufferMemory2KHR;
828 extern PFN_vkBindImageMemory2KHR vkBindImageMemory2KHR;
829 #endif /* defined(VK_KHR_bind_memory2) */
830 #if defined(VK_KHR_buffer_device_address)
831 extern PFN_vkGetBufferDeviceAddressKHR vkGetBufferDeviceAddressKHR;
832 extern PFN_vkGetBufferOpaqueCaptureAddressKHR vkGetBufferOpaqueCaptureAddressKHR;
833 extern PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR vkGetDeviceMemoryOpaqueCaptureAddressKHR;
834 #endif /* defined(VK_KHR_buffer_device_address) */
835 #if defined(VK_KHR_create_renderpass2)
836 extern PFN_vkCmdBeginRenderPass2KHR vkCmdBeginRenderPass2KHR;
837 extern PFN_vkCmdEndRenderPass2KHR vkCmdEndRenderPass2KHR;
838 extern PFN_vkCmdNextSubpass2KHR vkCmdNextSubpass2KHR;
839 extern PFN_vkCreateRenderPass2KHR vkCreateRenderPass2KHR;
840 #endif /* defined(VK_KHR_create_renderpass2) */
841 #if defined(VK_KHR_descriptor_update_template)
842 extern PFN_vkCreateDescriptorUpdateTemplateKHR vkCreateDescriptorUpdateTemplateKHR;
843 extern PFN_vkDestroyDescriptorUpdateTemplateKHR vkDestroyDescriptorUpdateTemplateKHR;
844 extern PFN_vkUpdateDescriptorSetWithTemplateKHR vkUpdateDescriptorSetWithTemplateKHR;
845 #endif /* defined(VK_KHR_descriptor_update_template) */
846 #if defined(VK_KHR_device_group)
847 extern PFN_vkCmdDispatchBaseKHR vkCmdDispatchBaseKHR;
848 extern PFN_vkCmdSetDeviceMaskKHR vkCmdSetDeviceMaskKHR;
849 extern PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR vkGetDeviceGroupPeerMemoryFeaturesKHR;
850 #endif /* defined(VK_KHR_device_group) */
851 #if defined(VK_KHR_device_group_creation)
852 extern PFN_vkEnumeratePhysicalDeviceGroupsKHR vkEnumeratePhysicalDeviceGroupsKHR;
853 #endif /* defined(VK_KHR_device_group_creation) */
854 #if defined(VK_KHR_display)
855 extern PFN_vkCreateDisplayModeKHR vkCreateDisplayModeKHR;
856 extern PFN_vkCreateDisplayPlaneSurfaceKHR vkCreateDisplayPlaneSurfaceKHR;
857 extern PFN_vkGetDisplayModePropertiesKHR vkGetDisplayModePropertiesKHR;
858 extern PFN_vkGetDisplayPlaneCapabilitiesKHR vkGetDisplayPlaneCapabilitiesKHR;
859 extern PFN_vkGetDisplayPlaneSupportedDisplaysKHR vkGetDisplayPlaneSupportedDisplaysKHR;
860 extern PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHR;
861 extern PFN_vkGetPhysicalDeviceDisplayPropertiesKHR vkGetPhysicalDeviceDisplayPropertiesKHR;
862 #endif /* defined(VK_KHR_display) */
863 #if defined(VK_KHR_display_swapchain)
864 extern PFN_vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR;
865 #endif /* defined(VK_KHR_display_swapchain) */
866 #if defined(VK_KHR_draw_indirect_count)
867 extern PFN_vkCmdDrawIndexedIndirectCountKHR vkCmdDrawIndexedIndirectCountKHR;
868 extern PFN_vkCmdDrawIndirectCountKHR vkCmdDrawIndirectCountKHR;
869 #endif /* defined(VK_KHR_draw_indirect_count) */
870 #if defined(VK_KHR_external_fence_capabilities)
871 extern PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR vkGetPhysicalDeviceExternalFencePropertiesKHR;
872 #endif /* defined(VK_KHR_external_fence_capabilities) */
873 #if defined(VK_KHR_external_fence_fd)
874 extern PFN_vkGetFenceFdKHR vkGetFenceFdKHR;
875 extern PFN_vkImportFenceFdKHR vkImportFenceFdKHR;
876 #endif /* defined(VK_KHR_external_fence_fd) */
877 #if defined(VK_KHR_external_fence_win32)
878 extern PFN_vkGetFenceWin32HandleKHR vkGetFenceWin32HandleKHR;
879 extern PFN_vkImportFenceWin32HandleKHR vkImportFenceWin32HandleKHR;
880 #endif /* defined(VK_KHR_external_fence_win32) */
881 #if defined(VK_KHR_external_memory_capabilities)
882 extern PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR vkGetPhysicalDeviceExternalBufferPropertiesKHR;
883 #endif /* defined(VK_KHR_external_memory_capabilities) */
884 #if defined(VK_KHR_external_memory_fd)
885 extern PFN_vkGetMemoryFdKHR vkGetMemoryFdKHR;
886 extern PFN_vkGetMemoryFdPropertiesKHR vkGetMemoryFdPropertiesKHR;
887 #endif /* defined(VK_KHR_external_memory_fd) */
888 #if defined(VK_KHR_external_memory_win32)
889 extern PFN_vkGetMemoryWin32HandleKHR vkGetMemoryWin32HandleKHR;
890 extern PFN_vkGetMemoryWin32HandlePropertiesKHR vkGetMemoryWin32HandlePropertiesKHR;
891 #endif /* defined(VK_KHR_external_memory_win32) */
892 #if defined(VK_KHR_external_semaphore_capabilities)
893 extern PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR vkGetPhysicalDeviceExternalSemaphorePropertiesKHR;
894 #endif /* defined(VK_KHR_external_semaphore_capabilities) */
895 #if defined(VK_KHR_external_semaphore_fd)
896 extern PFN_vkGetSemaphoreFdKHR vkGetSemaphoreFdKHR;
897 extern PFN_vkImportSemaphoreFdKHR vkImportSemaphoreFdKHR;
898 #endif /* defined(VK_KHR_external_semaphore_fd) */
899 #if defined(VK_KHR_external_semaphore_win32)
900 extern PFN_vkGetSemaphoreWin32HandleKHR vkGetSemaphoreWin32HandleKHR;
901 extern PFN_vkImportSemaphoreWin32HandleKHR vkImportSemaphoreWin32HandleKHR;
902 #endif /* defined(VK_KHR_external_semaphore_win32) */
903 #if defined(VK_KHR_get_display_properties2)
904 extern PFN_vkGetDisplayModeProperties2KHR vkGetDisplayModeProperties2KHR;
905 extern PFN_vkGetDisplayPlaneCapabilities2KHR vkGetDisplayPlaneCapabilities2KHR;
906 extern PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR vkGetPhysicalDeviceDisplayPlaneProperties2KHR;
907 extern PFN_vkGetPhysicalDeviceDisplayProperties2KHR vkGetPhysicalDeviceDisplayProperties2KHR;
908 #endif /* defined(VK_KHR_get_display_properties2) */
909 #if defined(VK_KHR_get_memory_requirements2)
910 extern PFN_vkGetBufferMemoryRequirements2KHR vkGetBufferMemoryRequirements2KHR;
911 extern PFN_vkGetImageMemoryRequirements2KHR vkGetImageMemoryRequirements2KHR;
912 extern PFN_vkGetImageSparseMemoryRequirements2KHR vkGetImageSparseMemoryRequirements2KHR;
913 #endif /* defined(VK_KHR_get_memory_requirements2) */
914 #if defined(VK_KHR_get_physical_device_properties2)
915 extern PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR;
916 extern PFN_vkGetPhysicalDeviceFormatProperties2KHR vkGetPhysicalDeviceFormatProperties2KHR;
917 extern PFN_vkGetPhysicalDeviceImageFormatProperties2KHR vkGetPhysicalDeviceImageFormatProperties2KHR;
918 extern PFN_vkGetPhysicalDeviceMemoryProperties2KHR vkGetPhysicalDeviceMemoryProperties2KHR;
919 extern PFN_vkGetPhysicalDeviceProperties2KHR vkGetPhysicalDeviceProperties2KHR;
920 extern PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR vkGetPhysicalDeviceQueueFamilyProperties2KHR;
921 extern PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR vkGetPhysicalDeviceSparseImageFormatProperties2KHR;
922 #endif /* defined(VK_KHR_get_physical_device_properties2) */
923 #if defined(VK_KHR_get_surface_capabilities2)
924 extern PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR vkGetPhysicalDeviceSurfaceCapabilities2KHR;
925 extern PFN_vkGetPhysicalDeviceSurfaceFormats2KHR vkGetPhysicalDeviceSurfaceFormats2KHR;
926 #endif /* defined(VK_KHR_get_surface_capabilities2) */
927 #if defined(VK_KHR_maintenance1)
928 extern PFN_vkTrimCommandPoolKHR vkTrimCommandPoolKHR;
929 #endif /* defined(VK_KHR_maintenance1) */
930 #if defined(VK_KHR_maintenance3)
931 extern PFN_vkGetDescriptorSetLayoutSupportKHR vkGetDescriptorSetLayoutSupportKHR;
932 #endif /* defined(VK_KHR_maintenance3) */
933 #if defined(VK_KHR_performance_query)
934 extern PFN_vkAcquireProfilingLockKHR vkAcquireProfilingLockKHR;
935 extern PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR;
936 extern PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR;
937 extern PFN_vkReleaseProfilingLockKHR vkReleaseProfilingLockKHR;
938 #endif /* defined(VK_KHR_performance_query) */
939 #if defined(VK_KHR_pipeline_executable_properties)
940 extern PFN_vkGetPipelineExecutableInternalRepresentationsKHR vkGetPipelineExecutableInternalRepresentationsKHR;
941 extern PFN_vkGetPipelineExecutablePropertiesKHR vkGetPipelineExecutablePropertiesKHR;
942 extern PFN_vkGetPipelineExecutableStatisticsKHR vkGetPipelineExecutableStatisticsKHR;
943 #endif /* defined(VK_KHR_pipeline_executable_properties) */
944 #if defined(VK_KHR_push_descriptor)
945 extern PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR;
946 #endif /* defined(VK_KHR_push_descriptor) */
947 #if defined(VK_KHR_sampler_ycbcr_conversion)
948 extern PFN_vkCreateSamplerYcbcrConversionKHR vkCreateSamplerYcbcrConversionKHR;
949 extern PFN_vkDestroySamplerYcbcrConversionKHR vkDestroySamplerYcbcrConversionKHR;
950 #endif /* defined(VK_KHR_sampler_ycbcr_conversion) */
951 #if defined(VK_KHR_shared_presentable_image)
952 extern PFN_vkGetSwapchainStatusKHR vkGetSwapchainStatusKHR;
953 #endif /* defined(VK_KHR_shared_presentable_image) */
954 #if defined(VK_KHR_surface)
955 extern PFN_vkDestroySurfaceKHR vkDestroySurfaceKHR;
956 extern PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR;
957 extern PFN_vkGetPhysicalDeviceSurfaceFormatsKHR vkGetPhysicalDeviceSurfaceFormatsKHR;
958 extern PFN_vkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModesKHR;
959 extern PFN_vkGetPhysicalDeviceSurfaceSupportKHR vkGetPhysicalDeviceSurfaceSupportKHR;
960 #endif /* defined(VK_KHR_surface) */
961 #if defined(VK_KHR_swapchain)
962 extern PFN_vkAcquireNextImageKHR vkAcquireNextImageKHR;
963 extern PFN_vkCreateSwapchainKHR vkCreateSwapchainKHR;
964 extern PFN_vkDestroySwapchainKHR vkDestroySwapchainKHR;
965 extern PFN_vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR;
966 extern PFN_vkQueuePresentKHR vkQueuePresentKHR;
967 #endif /* defined(VK_KHR_swapchain) */
968 #if defined(VK_KHR_timeline_semaphore)
969 extern PFN_vkGetSemaphoreCounterValueKHR vkGetSemaphoreCounterValueKHR;
970 extern PFN_vkSignalSemaphoreKHR vkSignalSemaphoreKHR;
971 extern PFN_vkWaitSemaphoresKHR vkWaitSemaphoresKHR;
972 #endif /* defined(VK_KHR_timeline_semaphore) */
973 #if defined(VK_KHR_wayland_surface)
974 extern PFN_vkCreateWaylandSurfaceKHR vkCreateWaylandSurfaceKHR;
975 extern PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR vkGetPhysicalDeviceWaylandPresentationSupportKHR;
976 #endif /* defined(VK_KHR_wayland_surface) */
977 #if defined(VK_KHR_win32_surface)
978 extern PFN_vkCreateWin32SurfaceKHR vkCreateWin32SurfaceKHR;
979 extern PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR vkGetPhysicalDeviceWin32PresentationSupportKHR;
980 #endif /* defined(VK_KHR_win32_surface) */
981 #if defined(VK_KHR_xcb_surface)
982 extern PFN_vkCreateXcbSurfaceKHR vkCreateXcbSurfaceKHR;
983 extern PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR vkGetPhysicalDeviceXcbPresentationSupportKHR;
984 #endif /* defined(VK_KHR_xcb_surface) */
985 #if defined(VK_KHR_xlib_surface)
986 extern PFN_vkCreateXlibSurfaceKHR vkCreateXlibSurfaceKHR;
987 extern PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR vkGetPhysicalDeviceXlibPresentationSupportKHR;
988 #endif /* defined(VK_KHR_xlib_surface) */
989 #if defined(VK_MVK_ios_surface)
990 extern PFN_vkCreateIOSSurfaceMVK vkCreateIOSSurfaceMVK;
991 #endif /* defined(VK_MVK_ios_surface) */
992 #if defined(VK_MVK_macos_surface)
993 extern PFN_vkCreateMacOSSurfaceMVK vkCreateMacOSSurfaceMVK;
994 #endif /* defined(VK_MVK_macos_surface) */
995 #if defined(VK_NN_vi_surface)
996 extern PFN_vkCreateViSurfaceNN vkCreateViSurfaceNN;
997 #endif /* defined(VK_NN_vi_surface) */
998 #if defined(VK_NVX_device_generated_commands)
999 extern PFN_vkCmdProcessCommandsNVX vkCmdProcessCommandsNVX;
1000 extern PFN_vkCmdReserveSpaceForCommandsNVX vkCmdReserveSpaceForCommandsNVX;
1001 extern PFN_vkCreateIndirectCommandsLayoutNVX vkCreateIndirectCommandsLayoutNVX;
1002 extern PFN_vkCreateObjectTableNVX vkCreateObjectTableNVX;
1003 extern PFN_vkDestroyIndirectCommandsLayoutNVX vkDestroyIndirectCommandsLayoutNVX;
1004 extern PFN_vkDestroyObjectTableNVX vkDestroyObjectTableNVX;
1005 extern PFN_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX;
1006 extern PFN_vkRegisterObjectsNVX vkRegisterObjectsNVX;
1007 extern PFN_vkUnregisterObjectsNVX vkUnregisterObjectsNVX;
1008 #endif /* defined(VK_NVX_device_generated_commands) */
1009 #if defined(VK_NVX_image_view_handle)
1010 extern PFN_vkGetImageViewHandleNVX vkGetImageViewHandleNVX;
1011 #endif /* defined(VK_NVX_image_view_handle) */
1012 #if defined(VK_NV_clip_space_w_scaling)
1013 extern PFN_vkCmdSetViewportWScalingNV vkCmdSetViewportWScalingNV;
1014 #endif /* defined(VK_NV_clip_space_w_scaling) */
1015 #if defined(VK_NV_cooperative_matrix)
1016 extern PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV vkGetPhysicalDeviceCooperativeMatrixPropertiesNV;
1017 #endif /* defined(VK_NV_cooperative_matrix) */
1018 #if defined(VK_NV_coverage_reduction_mode)
1019 extern PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV;
1020 #endif /* defined(VK_NV_coverage_reduction_mode) */
1021 #if defined(VK_NV_device_diagnostic_checkpoints)
1022 extern PFN_vkCmdSetCheckpointNV vkCmdSetCheckpointNV;
1023 extern PFN_vkGetQueueCheckpointDataNV vkGetQueueCheckpointDataNV;
1024 #endif /* defined(VK_NV_device_diagnostic_checkpoints) */
1025 #if defined(VK_NV_external_memory_capabilities)
1026 extern PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV vkGetPhysicalDeviceExternalImageFormatPropertiesNV;
1027 #endif /* defined(VK_NV_external_memory_capabilities) */
1028 #if defined(VK_NV_external_memory_win32)
1029 extern PFN_vkGetMemoryWin32HandleNV vkGetMemoryWin32HandleNV;
1030 #endif /* defined(VK_NV_external_memory_win32) */
1031 #if defined(VK_NV_mesh_shader)
1032 extern PFN_vkCmdDrawMeshTasksIndirectCountNV vkCmdDrawMeshTasksIndirectCountNV;
1033 extern PFN_vkCmdDrawMeshTasksIndirectNV vkCmdDrawMeshTasksIndirectNV;
1034 extern PFN_vkCmdDrawMeshTasksNV vkCmdDrawMeshTasksNV;
1035 #endif /* defined(VK_NV_mesh_shader) */
1036 #if defined(VK_NV_ray_tracing)
1037 extern PFN_vkBindAccelerationStructureMemoryNV vkBindAccelerationStructureMemoryNV;
1038 extern PFN_vkCmdBuildAccelerationStructureNV vkCmdBuildAccelerationStructureNV;
1039 extern PFN_vkCmdCopyAccelerationStructureNV vkCmdCopyAccelerationStructureNV;
1040 extern PFN_vkCmdTraceRaysNV vkCmdTraceRaysNV;
1041 extern PFN_vkCmdWriteAccelerationStructuresPropertiesNV vkCmdWriteAccelerationStructuresPropertiesNV;
1042 extern PFN_vkCompileDeferredNV vkCompileDeferredNV;
1043 extern PFN_vkCreateAccelerationStructureNV vkCreateAccelerationStructureNV;
1044 extern PFN_vkCreateRayTracingPipelinesNV vkCreateRayTracingPipelinesNV;
1045 extern PFN_vkDestroyAccelerationStructureNV vkDestroyAccelerationStructureNV;
1046 extern PFN_vkGetAccelerationStructureHandleNV vkGetAccelerationStructureHandleNV;
1047 extern PFN_vkGetAccelerationStructureMemoryRequirementsNV vkGetAccelerationStructureMemoryRequirementsNV;
1048 extern PFN_vkGetRayTracingShaderGroupHandlesNV vkGetRayTracingShaderGroupHandlesNV;
1049 #endif /* defined(VK_NV_ray_tracing) */
1050 #if defined(VK_NV_scissor_exclusive)
1051 extern PFN_vkCmdSetExclusiveScissorNV vkCmdSetExclusiveScissorNV;
1052 #endif /* defined(VK_NV_scissor_exclusive) */
1053 #if defined(VK_NV_shading_rate_image)
1054 extern PFN_vkCmdBindShadingRateImageNV vkCmdBindShadingRateImageNV;
1055 extern PFN_vkCmdSetCoarseSampleOrderNV vkCmdSetCoarseSampleOrderNV;
1056 extern PFN_vkCmdSetViewportShadingRatePaletteNV vkCmdSetViewportShadingRatePaletteNV;
1057 #endif /* defined(VK_NV_shading_rate_image) */
1058 #if (defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group)) || (defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1))
1059 extern PFN_vkGetDeviceGroupSurfacePresentModes2EXT vkGetDeviceGroupSurfacePresentModes2EXT;
1060 #endif /* (defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group)) || (defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1)) */
1061 #if (defined(VK_KHR_descriptor_update_template) && defined(VK_KHR_push_descriptor)) || (defined(VK_KHR_push_descriptor) && defined(VK_VERSION_1_1))
1062 extern PFN_vkCmdPushDescriptorSetWithTemplateKHR vkCmdPushDescriptorSetWithTemplateKHR;
1063 #endif /* (defined(VK_KHR_descriptor_update_template) && defined(VK_KHR_push_descriptor)) || (defined(VK_KHR_push_descriptor) && defined(VK_VERSION_1_1)) */
1064 #if (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1))
1065 extern PFN_vkGetDeviceGroupPresentCapabilitiesKHR vkGetDeviceGroupPresentCapabilitiesKHR;
1066 extern PFN_vkGetDeviceGroupSurfacePresentModesKHR vkGetDeviceGroupSurfacePresentModesKHR;
1067 extern PFN_vkGetPhysicalDevicePresentRectanglesKHR vkGetPhysicalDevicePresentRectanglesKHR;
1068 #endif /* (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) */
1069 #if (defined(VK_KHR_device_group) && defined(VK_KHR_swapchain)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1))
1070 extern PFN_vkAcquireNextImage2KHR vkAcquireNextImage2KHR;
1071 #endif /* (defined(VK_KHR_device_group) && defined(VK_KHR_swapchain)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) */
1072 /* VOLK_GENERATE_PROTOTYPES_H */
1073 
1074 #ifdef __cplusplus
1075 }
1076 #endif
1077 
1078 #endif
1079 
1080 #ifdef VOLK_IMPLEMENTATION
1081 #undef VOLK_IMPLEMENTATION
1082 // Prevent tools like dependency checkers that don't evaluate
1083 // macros from detecting a cyclic dependency.
1084 #define VOLK_SOURCE "volk.c"
1085 #include VOLK_SOURCE
1086 #endif
1087 
1088 /**
1089  * Copyright (c) 2018-2019 Arseny Kapoulkine
1090  *
1091  * Permission is hereby granted, free of charge, to any person obtaining a copy
1092  * of this software and associated documentation files (the "Software"), to deal
1093  * in the Software without restriction, including without limitation the rights
1094  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
1095  * copies of the Software, and to permit persons to whom the Software is
1096  * furnished to do so, subject to the following conditions:
1097  *
1098  * The above copyright notice and this permission notice shall be included in all
1099  * copies or substantial portions of the Software.
1100  *
1101  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1102  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1103  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1104  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1105  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
1106  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
1107  * SOFTWARE.
1108 */
1109 /* clang-format on */
1110