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