• 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 204
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 
46 #       ifdef VK_ENABLE_BETA_EXTENSIONS
47 #           include <vulkan/vulkan_beta.h>
48 #       endif
49 #   else
50 #       include <vulkan/vulkan.h>
51 #   endif
52 #endif
53 
54 /* Disable several extensions on earlier SDKs because later SDKs introduce a backwards incompatible change to function signatures */
55 #if VK_HEADER_VERSION < 140
56 #   undef VK_NVX_image_view_handle
57 #endif
58 #if VK_HEADER_VERSION < 184
59 #   undef VK_HUAWEI_subpass_shading
60 #endif
61 
62 #ifdef __cplusplus
63 extern "C" {
64 #endif
65 
66 struct VolkDeviceTable;
67 
68 /**
69  * Initialize library by loading Vulkan loader; call this function before creating the Vulkan instance.
70  *
71  * Returns VK_SUCCESS on success and VK_ERROR_INITIALIZATION_FAILED otherwise.
72  */
73 VkResult volkInitialize(void);
74 
75 /**
76  * Initialize library by providing a custom handler to load global symbols.
77  *
78  * This function can be used instead of volkInitialize.
79  * The handler function pointer will be asked to load global Vulkan symbols which require no instance
80  * (such as vkCreateInstance, vkEnumerateInstance* and vkEnumerateInstanceVersion if available).
81  */
82 void volkInitializeCustom(PFN_vkGetInstanceProcAddr handler);
83 
84 /**
85  * Get Vulkan instance version supported by the Vulkan loader, or 0 if Vulkan isn't supported
86  *
87  * Returns 0 if volkInitialize wasn't called or failed.
88  */
89 uint32_t volkGetInstanceVersion(void);
90 
91 /**
92  * Load global function pointers using application-created VkInstance; call this function after creating the Vulkan instance.
93  */
94 void volkLoadInstance(VkInstance instance);
95 
96 /**
97  * Load global function pointers using application-created VkInstance; call this function after creating the Vulkan instance.
98  * Skips loading device-based function pointers, requires usage of volkLoadDevice afterwards.
99  */
100 void volkLoadInstanceOnly(VkInstance instance);
101 
102 /**
103  * Load global function pointers using application-created VkDevice; call this function after creating the Vulkan device.
104  *
105  * Note: this is not suitable for applications that want to use multiple VkDevice objects concurrently.
106  */
107 void volkLoadDevice(VkDevice device);
108 
109 /**
110  * Return last VkInstance for which global function pointers have been loaded via volkLoadInstance(),
111  * or VK_NULL_HANDLE if volkLoadInstance() has not been called.
112  */
113 VkInstance volkGetLoadedInstance(void);
114 
115 /**
116  * Return last VkDevice for which global function pointers have been loaded via volkLoadDevice(),
117  * or VK_NULL_HANDLE if volkLoadDevice() has not been called.
118  */
119 VkDevice volkGetLoadedDevice(void);
120 
121 /**
122  * Load function pointers using application-created VkDevice into a table.
123  * Application should use function pointers from that table instead of using global function pointers.
124  */
125 void volkLoadDeviceTable(struct VolkDeviceTable* table, VkDevice device);
126 
127 /**
128  * Device-specific function pointer table
129  */
130 struct VolkDeviceTable
131 {
132     /* VOLK_GENERATE_DEVICE_TABLE */
133 #if defined(VK_VERSION_1_0)
134     PFN_vkAllocateCommandBuffers vkAllocateCommandBuffers;
135     PFN_vkAllocateDescriptorSets vkAllocateDescriptorSets;
136     PFN_vkAllocateMemory vkAllocateMemory;
137     PFN_vkBeginCommandBuffer vkBeginCommandBuffer;
138     PFN_vkBindBufferMemory vkBindBufferMemory;
139     PFN_vkBindImageMemory vkBindImageMemory;
140     PFN_vkCmdBeginQuery vkCmdBeginQuery;
141     PFN_vkCmdBeginRenderPass vkCmdBeginRenderPass;
142     PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets;
143     PFN_vkCmdBindIndexBuffer vkCmdBindIndexBuffer;
144     PFN_vkCmdBindPipeline vkCmdBindPipeline;
145     PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers;
146     PFN_vkCmdBlitImage vkCmdBlitImage;
147     PFN_vkCmdClearAttachments vkCmdClearAttachments;
148     PFN_vkCmdClearColorImage vkCmdClearColorImage;
149     PFN_vkCmdClearDepthStencilImage vkCmdClearDepthStencilImage;
150     PFN_vkCmdCopyBuffer vkCmdCopyBuffer;
151     PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage;
152     PFN_vkCmdCopyImage vkCmdCopyImage;
153     PFN_vkCmdCopyImageToBuffer vkCmdCopyImageToBuffer;
154     PFN_vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults;
155     PFN_vkCmdDispatch vkCmdDispatch;
156     PFN_vkCmdDispatchIndirect vkCmdDispatchIndirect;
157     PFN_vkCmdDraw vkCmdDraw;
158     PFN_vkCmdDrawIndexed vkCmdDrawIndexed;
159     PFN_vkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirect;
160     PFN_vkCmdDrawIndirect vkCmdDrawIndirect;
161     PFN_vkCmdEndQuery vkCmdEndQuery;
162     PFN_vkCmdEndRenderPass vkCmdEndRenderPass;
163     PFN_vkCmdExecuteCommands vkCmdExecuteCommands;
164     PFN_vkCmdFillBuffer vkCmdFillBuffer;
165     PFN_vkCmdNextSubpass vkCmdNextSubpass;
166     PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier;
167     PFN_vkCmdPushConstants vkCmdPushConstants;
168     PFN_vkCmdResetEvent vkCmdResetEvent;
169     PFN_vkCmdResetQueryPool vkCmdResetQueryPool;
170     PFN_vkCmdResolveImage vkCmdResolveImage;
171     PFN_vkCmdSetBlendConstants vkCmdSetBlendConstants;
172     PFN_vkCmdSetDepthBias vkCmdSetDepthBias;
173     PFN_vkCmdSetDepthBounds vkCmdSetDepthBounds;
174     PFN_vkCmdSetEvent vkCmdSetEvent;
175     PFN_vkCmdSetLineWidth vkCmdSetLineWidth;
176     PFN_vkCmdSetScissor vkCmdSetScissor;
177     PFN_vkCmdSetStencilCompareMask vkCmdSetStencilCompareMask;
178     PFN_vkCmdSetStencilReference vkCmdSetStencilReference;
179     PFN_vkCmdSetStencilWriteMask vkCmdSetStencilWriteMask;
180     PFN_vkCmdSetViewport vkCmdSetViewport;
181     PFN_vkCmdUpdateBuffer vkCmdUpdateBuffer;
182     PFN_vkCmdWaitEvents vkCmdWaitEvents;
183     PFN_vkCmdWriteTimestamp vkCmdWriteTimestamp;
184     PFN_vkCreateBuffer vkCreateBuffer;
185     PFN_vkCreateBufferView vkCreateBufferView;
186     PFN_vkCreateCommandPool vkCreateCommandPool;
187     PFN_vkCreateComputePipelines vkCreateComputePipelines;
188     PFN_vkCreateDescriptorPool vkCreateDescriptorPool;
189     PFN_vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout;
190     PFN_vkCreateEvent vkCreateEvent;
191     PFN_vkCreateFence vkCreateFence;
192     PFN_vkCreateFramebuffer vkCreateFramebuffer;
193     PFN_vkCreateGraphicsPipelines vkCreateGraphicsPipelines;
194     PFN_vkCreateImage vkCreateImage;
195     PFN_vkCreateImageView vkCreateImageView;
196     PFN_vkCreatePipelineCache vkCreatePipelineCache;
197     PFN_vkCreatePipelineLayout vkCreatePipelineLayout;
198     PFN_vkCreateQueryPool vkCreateQueryPool;
199     PFN_vkCreateRenderPass vkCreateRenderPass;
200     PFN_vkCreateSampler vkCreateSampler;
201     PFN_vkCreateSemaphore vkCreateSemaphore;
202     PFN_vkCreateShaderModule vkCreateShaderModule;
203     PFN_vkDestroyBuffer vkDestroyBuffer;
204     PFN_vkDestroyBufferView vkDestroyBufferView;
205     PFN_vkDestroyCommandPool vkDestroyCommandPool;
206     PFN_vkDestroyDescriptorPool vkDestroyDescriptorPool;
207     PFN_vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout;
208     PFN_vkDestroyDevice vkDestroyDevice;
209     PFN_vkDestroyEvent vkDestroyEvent;
210     PFN_vkDestroyFence vkDestroyFence;
211     PFN_vkDestroyFramebuffer vkDestroyFramebuffer;
212     PFN_vkDestroyImage vkDestroyImage;
213     PFN_vkDestroyImageView vkDestroyImageView;
214     PFN_vkDestroyPipeline vkDestroyPipeline;
215     PFN_vkDestroyPipelineCache vkDestroyPipelineCache;
216     PFN_vkDestroyPipelineLayout vkDestroyPipelineLayout;
217     PFN_vkDestroyQueryPool vkDestroyQueryPool;
218     PFN_vkDestroyRenderPass vkDestroyRenderPass;
219     PFN_vkDestroySampler vkDestroySampler;
220     PFN_vkDestroySemaphore vkDestroySemaphore;
221     PFN_vkDestroyShaderModule vkDestroyShaderModule;
222     PFN_vkDeviceWaitIdle vkDeviceWaitIdle;
223     PFN_vkEndCommandBuffer vkEndCommandBuffer;
224     PFN_vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges;
225     PFN_vkFreeCommandBuffers vkFreeCommandBuffers;
226     PFN_vkFreeDescriptorSets vkFreeDescriptorSets;
227     PFN_vkFreeMemory vkFreeMemory;
228     PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements;
229     PFN_vkGetDeviceMemoryCommitment vkGetDeviceMemoryCommitment;
230     PFN_vkGetDeviceQueue vkGetDeviceQueue;
231     PFN_vkGetEventStatus vkGetEventStatus;
232     PFN_vkGetFenceStatus vkGetFenceStatus;
233     PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements;
234     PFN_vkGetImageSparseMemoryRequirements vkGetImageSparseMemoryRequirements;
235     PFN_vkGetImageSubresourceLayout vkGetImageSubresourceLayout;
236     PFN_vkGetPipelineCacheData vkGetPipelineCacheData;
237     PFN_vkGetQueryPoolResults vkGetQueryPoolResults;
238     PFN_vkGetRenderAreaGranularity vkGetRenderAreaGranularity;
239     PFN_vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges;
240     PFN_vkMapMemory vkMapMemory;
241     PFN_vkMergePipelineCaches vkMergePipelineCaches;
242     PFN_vkQueueBindSparse vkQueueBindSparse;
243     PFN_vkQueueSubmit vkQueueSubmit;
244     PFN_vkQueueWaitIdle vkQueueWaitIdle;
245     PFN_vkResetCommandBuffer vkResetCommandBuffer;
246     PFN_vkResetCommandPool vkResetCommandPool;
247     PFN_vkResetDescriptorPool vkResetDescriptorPool;
248     PFN_vkResetEvent vkResetEvent;
249     PFN_vkResetFences vkResetFences;
250     PFN_vkSetEvent vkSetEvent;
251     PFN_vkUnmapMemory vkUnmapMemory;
252     PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets;
253     PFN_vkWaitForFences vkWaitForFences;
254 #endif /* defined(VK_VERSION_1_0) */
255 #if defined(VK_VERSION_1_1)
256     PFN_vkBindBufferMemory2 vkBindBufferMemory2;
257     PFN_vkBindImageMemory2 vkBindImageMemory2;
258     PFN_vkCmdDispatchBase vkCmdDispatchBase;
259     PFN_vkCmdSetDeviceMask vkCmdSetDeviceMask;
260     PFN_vkCreateDescriptorUpdateTemplate vkCreateDescriptorUpdateTemplate;
261     PFN_vkCreateSamplerYcbcrConversion vkCreateSamplerYcbcrConversion;
262     PFN_vkDestroyDescriptorUpdateTemplate vkDestroyDescriptorUpdateTemplate;
263     PFN_vkDestroySamplerYcbcrConversion vkDestroySamplerYcbcrConversion;
264     PFN_vkGetBufferMemoryRequirements2 vkGetBufferMemoryRequirements2;
265     PFN_vkGetDescriptorSetLayoutSupport vkGetDescriptorSetLayoutSupport;
266     PFN_vkGetDeviceGroupPeerMemoryFeatures vkGetDeviceGroupPeerMemoryFeatures;
267     PFN_vkGetDeviceQueue2 vkGetDeviceQueue2;
268     PFN_vkGetImageMemoryRequirements2 vkGetImageMemoryRequirements2;
269     PFN_vkGetImageSparseMemoryRequirements2 vkGetImageSparseMemoryRequirements2;
270     PFN_vkTrimCommandPool vkTrimCommandPool;
271     PFN_vkUpdateDescriptorSetWithTemplate vkUpdateDescriptorSetWithTemplate;
272 #endif /* defined(VK_VERSION_1_1) */
273 #if defined(VK_VERSION_1_2)
274     PFN_vkCmdBeginRenderPass2 vkCmdBeginRenderPass2;
275     PFN_vkCmdDrawIndexedIndirectCount vkCmdDrawIndexedIndirectCount;
276     PFN_vkCmdDrawIndirectCount vkCmdDrawIndirectCount;
277     PFN_vkCmdEndRenderPass2 vkCmdEndRenderPass2;
278     PFN_vkCmdNextSubpass2 vkCmdNextSubpass2;
279     PFN_vkCreateRenderPass2 vkCreateRenderPass2;
280     PFN_vkGetBufferDeviceAddress vkGetBufferDeviceAddress;
281     PFN_vkGetBufferOpaqueCaptureAddress vkGetBufferOpaqueCaptureAddress;
282     PFN_vkGetDeviceMemoryOpaqueCaptureAddress vkGetDeviceMemoryOpaqueCaptureAddress;
283     PFN_vkGetSemaphoreCounterValue vkGetSemaphoreCounterValue;
284     PFN_vkResetQueryPool vkResetQueryPool;
285     PFN_vkSignalSemaphore vkSignalSemaphore;
286     PFN_vkWaitSemaphores vkWaitSemaphores;
287 #endif /* defined(VK_VERSION_1_2) */
288 #if defined(VK_VERSION_1_3)
289     PFN_vkCmdBeginRendering vkCmdBeginRendering;
290     PFN_vkCmdBindVertexBuffers2 vkCmdBindVertexBuffers2;
291     PFN_vkCmdBlitImage2 vkCmdBlitImage2;
292     PFN_vkCmdCopyBuffer2 vkCmdCopyBuffer2;
293     PFN_vkCmdCopyBufferToImage2 vkCmdCopyBufferToImage2;
294     PFN_vkCmdCopyImage2 vkCmdCopyImage2;
295     PFN_vkCmdCopyImageToBuffer2 vkCmdCopyImageToBuffer2;
296     PFN_vkCmdEndRendering vkCmdEndRendering;
297     PFN_vkCmdPipelineBarrier2 vkCmdPipelineBarrier2;
298     PFN_vkCmdResetEvent2 vkCmdResetEvent2;
299     PFN_vkCmdResolveImage2 vkCmdResolveImage2;
300     PFN_vkCmdSetCullMode vkCmdSetCullMode;
301     PFN_vkCmdSetDepthBiasEnable vkCmdSetDepthBiasEnable;
302     PFN_vkCmdSetDepthBoundsTestEnable vkCmdSetDepthBoundsTestEnable;
303     PFN_vkCmdSetDepthCompareOp vkCmdSetDepthCompareOp;
304     PFN_vkCmdSetDepthTestEnable vkCmdSetDepthTestEnable;
305     PFN_vkCmdSetDepthWriteEnable vkCmdSetDepthWriteEnable;
306     PFN_vkCmdSetEvent2 vkCmdSetEvent2;
307     PFN_vkCmdSetFrontFace vkCmdSetFrontFace;
308     PFN_vkCmdSetPrimitiveRestartEnable vkCmdSetPrimitiveRestartEnable;
309     PFN_vkCmdSetPrimitiveTopology vkCmdSetPrimitiveTopology;
310     PFN_vkCmdSetRasterizerDiscardEnable vkCmdSetRasterizerDiscardEnable;
311     PFN_vkCmdSetScissorWithCount vkCmdSetScissorWithCount;
312     PFN_vkCmdSetStencilOp vkCmdSetStencilOp;
313     PFN_vkCmdSetStencilTestEnable vkCmdSetStencilTestEnable;
314     PFN_vkCmdSetViewportWithCount vkCmdSetViewportWithCount;
315     PFN_vkCmdWaitEvents2 vkCmdWaitEvents2;
316     PFN_vkCmdWriteTimestamp2 vkCmdWriteTimestamp2;
317     PFN_vkCreatePrivateDataSlot vkCreatePrivateDataSlot;
318     PFN_vkDestroyPrivateDataSlot vkDestroyPrivateDataSlot;
319     PFN_vkGetDeviceBufferMemoryRequirements vkGetDeviceBufferMemoryRequirements;
320     PFN_vkGetDeviceImageMemoryRequirements vkGetDeviceImageMemoryRequirements;
321     PFN_vkGetDeviceImageSparseMemoryRequirements vkGetDeviceImageSparseMemoryRequirements;
322     PFN_vkGetPrivateData vkGetPrivateData;
323     PFN_vkQueueSubmit2 vkQueueSubmit2;
324     PFN_vkSetPrivateData vkSetPrivateData;
325 #endif /* defined(VK_VERSION_1_3) */
326 #if defined(VK_AMD_buffer_marker)
327     PFN_vkCmdWriteBufferMarkerAMD vkCmdWriteBufferMarkerAMD;
328 #endif /* defined(VK_AMD_buffer_marker) */
329 #if defined(VK_AMD_display_native_hdr)
330     PFN_vkSetLocalDimmingAMD vkSetLocalDimmingAMD;
331 #endif /* defined(VK_AMD_display_native_hdr) */
332 #if defined(VK_AMD_draw_indirect_count)
333     PFN_vkCmdDrawIndexedIndirectCountAMD vkCmdDrawIndexedIndirectCountAMD;
334     PFN_vkCmdDrawIndirectCountAMD vkCmdDrawIndirectCountAMD;
335 #endif /* defined(VK_AMD_draw_indirect_count) */
336 #if defined(VK_AMD_shader_info)
337     PFN_vkGetShaderInfoAMD vkGetShaderInfoAMD;
338 #endif /* defined(VK_AMD_shader_info) */
339 #if defined(VK_ANDROID_external_memory_android_hardware_buffer)
340     PFN_vkGetAndroidHardwareBufferPropertiesANDROID vkGetAndroidHardwareBufferPropertiesANDROID;
341     PFN_vkGetMemoryAndroidHardwareBufferANDROID vkGetMemoryAndroidHardwareBufferANDROID;
342 #endif /* defined(VK_ANDROID_external_memory_android_hardware_buffer) */
343 #if defined(VK_EXT_buffer_device_address)
344     PFN_vkGetBufferDeviceAddressEXT vkGetBufferDeviceAddressEXT;
345 #endif /* defined(VK_EXT_buffer_device_address) */
346 #if defined(VK_EXT_calibrated_timestamps)
347     PFN_vkGetCalibratedTimestampsEXT vkGetCalibratedTimestampsEXT;
348 #endif /* defined(VK_EXT_calibrated_timestamps) */
349 #if defined(VK_EXT_color_write_enable)
350     PFN_vkCmdSetColorWriteEnableEXT vkCmdSetColorWriteEnableEXT;
351 #endif /* defined(VK_EXT_color_write_enable) */
352 #if defined(VK_EXT_conditional_rendering)
353     PFN_vkCmdBeginConditionalRenderingEXT vkCmdBeginConditionalRenderingEXT;
354     PFN_vkCmdEndConditionalRenderingEXT vkCmdEndConditionalRenderingEXT;
355 #endif /* defined(VK_EXT_conditional_rendering) */
356 #if defined(VK_EXT_debug_marker)
357     PFN_vkCmdDebugMarkerBeginEXT vkCmdDebugMarkerBeginEXT;
358     PFN_vkCmdDebugMarkerEndEXT vkCmdDebugMarkerEndEXT;
359     PFN_vkCmdDebugMarkerInsertEXT vkCmdDebugMarkerInsertEXT;
360     PFN_vkDebugMarkerSetObjectNameEXT vkDebugMarkerSetObjectNameEXT;
361     PFN_vkDebugMarkerSetObjectTagEXT vkDebugMarkerSetObjectTagEXT;
362 #endif /* defined(VK_EXT_debug_marker) */
363 #if defined(VK_EXT_discard_rectangles)
364     PFN_vkCmdSetDiscardRectangleEXT vkCmdSetDiscardRectangleEXT;
365 #endif /* defined(VK_EXT_discard_rectangles) */
366 #if defined(VK_EXT_display_control)
367     PFN_vkDisplayPowerControlEXT vkDisplayPowerControlEXT;
368     PFN_vkGetSwapchainCounterEXT vkGetSwapchainCounterEXT;
369     PFN_vkRegisterDeviceEventEXT vkRegisterDeviceEventEXT;
370     PFN_vkRegisterDisplayEventEXT vkRegisterDisplayEventEXT;
371 #endif /* defined(VK_EXT_display_control) */
372 #if defined(VK_EXT_extended_dynamic_state)
373     PFN_vkCmdBindVertexBuffers2EXT vkCmdBindVertexBuffers2EXT;
374     PFN_vkCmdSetCullModeEXT vkCmdSetCullModeEXT;
375     PFN_vkCmdSetDepthBoundsTestEnableEXT vkCmdSetDepthBoundsTestEnableEXT;
376     PFN_vkCmdSetDepthCompareOpEXT vkCmdSetDepthCompareOpEXT;
377     PFN_vkCmdSetDepthTestEnableEXT vkCmdSetDepthTestEnableEXT;
378     PFN_vkCmdSetDepthWriteEnableEXT vkCmdSetDepthWriteEnableEXT;
379     PFN_vkCmdSetFrontFaceEXT vkCmdSetFrontFaceEXT;
380     PFN_vkCmdSetPrimitiveTopologyEXT vkCmdSetPrimitiveTopologyEXT;
381     PFN_vkCmdSetScissorWithCountEXT vkCmdSetScissorWithCountEXT;
382     PFN_vkCmdSetStencilOpEXT vkCmdSetStencilOpEXT;
383     PFN_vkCmdSetStencilTestEnableEXT vkCmdSetStencilTestEnableEXT;
384     PFN_vkCmdSetViewportWithCountEXT vkCmdSetViewportWithCountEXT;
385 #endif /* defined(VK_EXT_extended_dynamic_state) */
386 #if defined(VK_EXT_extended_dynamic_state2)
387     PFN_vkCmdSetDepthBiasEnableEXT vkCmdSetDepthBiasEnableEXT;
388     PFN_vkCmdSetLogicOpEXT vkCmdSetLogicOpEXT;
389     PFN_vkCmdSetPatchControlPointsEXT vkCmdSetPatchControlPointsEXT;
390     PFN_vkCmdSetPrimitiveRestartEnableEXT vkCmdSetPrimitiveRestartEnableEXT;
391     PFN_vkCmdSetRasterizerDiscardEnableEXT vkCmdSetRasterizerDiscardEnableEXT;
392 #endif /* defined(VK_EXT_extended_dynamic_state2) */
393 #if defined(VK_EXT_external_memory_host)
394     PFN_vkGetMemoryHostPointerPropertiesEXT vkGetMemoryHostPointerPropertiesEXT;
395 #endif /* defined(VK_EXT_external_memory_host) */
396 #if defined(VK_EXT_full_screen_exclusive)
397     PFN_vkAcquireFullScreenExclusiveModeEXT vkAcquireFullScreenExclusiveModeEXT;
398     PFN_vkReleaseFullScreenExclusiveModeEXT vkReleaseFullScreenExclusiveModeEXT;
399 #endif /* defined(VK_EXT_full_screen_exclusive) */
400 #if defined(VK_EXT_hdr_metadata)
401     PFN_vkSetHdrMetadataEXT vkSetHdrMetadataEXT;
402 #endif /* defined(VK_EXT_hdr_metadata) */
403 #if defined(VK_EXT_host_query_reset)
404     PFN_vkResetQueryPoolEXT vkResetQueryPoolEXT;
405 #endif /* defined(VK_EXT_host_query_reset) */
406 #if defined(VK_EXT_image_drm_format_modifier)
407     PFN_vkGetImageDrmFormatModifierPropertiesEXT vkGetImageDrmFormatModifierPropertiesEXT;
408 #endif /* defined(VK_EXT_image_drm_format_modifier) */
409 #if defined(VK_EXT_line_rasterization)
410     PFN_vkCmdSetLineStippleEXT vkCmdSetLineStippleEXT;
411 #endif /* defined(VK_EXT_line_rasterization) */
412 #if defined(VK_EXT_multi_draw)
413     PFN_vkCmdDrawMultiEXT vkCmdDrawMultiEXT;
414     PFN_vkCmdDrawMultiIndexedEXT vkCmdDrawMultiIndexedEXT;
415 #endif /* defined(VK_EXT_multi_draw) */
416 #if defined(VK_EXT_pageable_device_local_memory)
417     PFN_vkSetDeviceMemoryPriorityEXT vkSetDeviceMemoryPriorityEXT;
418 #endif /* defined(VK_EXT_pageable_device_local_memory) */
419 #if defined(VK_EXT_private_data)
420     PFN_vkCreatePrivateDataSlotEXT vkCreatePrivateDataSlotEXT;
421     PFN_vkDestroyPrivateDataSlotEXT vkDestroyPrivateDataSlotEXT;
422     PFN_vkGetPrivateDataEXT vkGetPrivateDataEXT;
423     PFN_vkSetPrivateDataEXT vkSetPrivateDataEXT;
424 #endif /* defined(VK_EXT_private_data) */
425 #if defined(VK_EXT_sample_locations)
426     PFN_vkCmdSetSampleLocationsEXT vkCmdSetSampleLocationsEXT;
427 #endif /* defined(VK_EXT_sample_locations) */
428 #if defined(VK_EXT_transform_feedback)
429     PFN_vkCmdBeginQueryIndexedEXT vkCmdBeginQueryIndexedEXT;
430     PFN_vkCmdBeginTransformFeedbackEXT vkCmdBeginTransformFeedbackEXT;
431     PFN_vkCmdBindTransformFeedbackBuffersEXT vkCmdBindTransformFeedbackBuffersEXT;
432     PFN_vkCmdDrawIndirectByteCountEXT vkCmdDrawIndirectByteCountEXT;
433     PFN_vkCmdEndQueryIndexedEXT vkCmdEndQueryIndexedEXT;
434     PFN_vkCmdEndTransformFeedbackEXT vkCmdEndTransformFeedbackEXT;
435 #endif /* defined(VK_EXT_transform_feedback) */
436 #if defined(VK_EXT_validation_cache)
437     PFN_vkCreateValidationCacheEXT vkCreateValidationCacheEXT;
438     PFN_vkDestroyValidationCacheEXT vkDestroyValidationCacheEXT;
439     PFN_vkGetValidationCacheDataEXT vkGetValidationCacheDataEXT;
440     PFN_vkMergeValidationCachesEXT vkMergeValidationCachesEXT;
441 #endif /* defined(VK_EXT_validation_cache) */
442 #if defined(VK_EXT_vertex_input_dynamic_state)
443     PFN_vkCmdSetVertexInputEXT vkCmdSetVertexInputEXT;
444 #endif /* defined(VK_EXT_vertex_input_dynamic_state) */
445 #if defined(VK_FUCHSIA_buffer_collection)
446     PFN_vkCreateBufferCollectionFUCHSIA vkCreateBufferCollectionFUCHSIA;
447     PFN_vkDestroyBufferCollectionFUCHSIA vkDestroyBufferCollectionFUCHSIA;
448     PFN_vkGetBufferCollectionPropertiesFUCHSIA vkGetBufferCollectionPropertiesFUCHSIA;
449     PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA vkSetBufferCollectionBufferConstraintsFUCHSIA;
450     PFN_vkSetBufferCollectionImageConstraintsFUCHSIA vkSetBufferCollectionImageConstraintsFUCHSIA;
451 #endif /* defined(VK_FUCHSIA_buffer_collection) */
452 #if defined(VK_FUCHSIA_external_memory)
453     PFN_vkGetMemoryZirconHandleFUCHSIA vkGetMemoryZirconHandleFUCHSIA;
454     PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA vkGetMemoryZirconHandlePropertiesFUCHSIA;
455 #endif /* defined(VK_FUCHSIA_external_memory) */
456 #if defined(VK_FUCHSIA_external_semaphore)
457     PFN_vkGetSemaphoreZirconHandleFUCHSIA vkGetSemaphoreZirconHandleFUCHSIA;
458     PFN_vkImportSemaphoreZirconHandleFUCHSIA vkImportSemaphoreZirconHandleFUCHSIA;
459 #endif /* defined(VK_FUCHSIA_external_semaphore) */
460 #if defined(VK_GOOGLE_display_timing)
461     PFN_vkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLE;
462     PFN_vkGetRefreshCycleDurationGOOGLE vkGetRefreshCycleDurationGOOGLE;
463 #endif /* defined(VK_GOOGLE_display_timing) */
464 #if defined(VK_HUAWEI_invocation_mask)
465     PFN_vkCmdBindInvocationMaskHUAWEI vkCmdBindInvocationMaskHUAWEI;
466 #endif /* defined(VK_HUAWEI_invocation_mask) */
467 #if defined(VK_HUAWEI_subpass_shading)
468     PFN_vkCmdSubpassShadingHUAWEI vkCmdSubpassShadingHUAWEI;
469     PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI;
470 #endif /* defined(VK_HUAWEI_subpass_shading) */
471 #if defined(VK_INTEL_performance_query)
472     PFN_vkAcquirePerformanceConfigurationINTEL vkAcquirePerformanceConfigurationINTEL;
473     PFN_vkCmdSetPerformanceMarkerINTEL vkCmdSetPerformanceMarkerINTEL;
474     PFN_vkCmdSetPerformanceOverrideINTEL vkCmdSetPerformanceOverrideINTEL;
475     PFN_vkCmdSetPerformanceStreamMarkerINTEL vkCmdSetPerformanceStreamMarkerINTEL;
476     PFN_vkGetPerformanceParameterINTEL vkGetPerformanceParameterINTEL;
477     PFN_vkInitializePerformanceApiINTEL vkInitializePerformanceApiINTEL;
478     PFN_vkQueueSetPerformanceConfigurationINTEL vkQueueSetPerformanceConfigurationINTEL;
479     PFN_vkReleasePerformanceConfigurationINTEL vkReleasePerformanceConfigurationINTEL;
480     PFN_vkUninitializePerformanceApiINTEL vkUninitializePerformanceApiINTEL;
481 #endif /* defined(VK_INTEL_performance_query) */
482 #if defined(VK_KHR_acceleration_structure)
483     PFN_vkBuildAccelerationStructuresKHR vkBuildAccelerationStructuresKHR;
484     PFN_vkCmdBuildAccelerationStructuresIndirectKHR vkCmdBuildAccelerationStructuresIndirectKHR;
485     PFN_vkCmdBuildAccelerationStructuresKHR vkCmdBuildAccelerationStructuresKHR;
486     PFN_vkCmdCopyAccelerationStructureKHR vkCmdCopyAccelerationStructureKHR;
487     PFN_vkCmdCopyAccelerationStructureToMemoryKHR vkCmdCopyAccelerationStructureToMemoryKHR;
488     PFN_vkCmdCopyMemoryToAccelerationStructureKHR vkCmdCopyMemoryToAccelerationStructureKHR;
489     PFN_vkCmdWriteAccelerationStructuresPropertiesKHR vkCmdWriteAccelerationStructuresPropertiesKHR;
490     PFN_vkCopyAccelerationStructureKHR vkCopyAccelerationStructureKHR;
491     PFN_vkCopyAccelerationStructureToMemoryKHR vkCopyAccelerationStructureToMemoryKHR;
492     PFN_vkCopyMemoryToAccelerationStructureKHR vkCopyMemoryToAccelerationStructureKHR;
493     PFN_vkCreateAccelerationStructureKHR vkCreateAccelerationStructureKHR;
494     PFN_vkDestroyAccelerationStructureKHR vkDestroyAccelerationStructureKHR;
495     PFN_vkGetAccelerationStructureBuildSizesKHR vkGetAccelerationStructureBuildSizesKHR;
496     PFN_vkGetAccelerationStructureDeviceAddressKHR vkGetAccelerationStructureDeviceAddressKHR;
497     PFN_vkGetDeviceAccelerationStructureCompatibilityKHR vkGetDeviceAccelerationStructureCompatibilityKHR;
498     PFN_vkWriteAccelerationStructuresPropertiesKHR vkWriteAccelerationStructuresPropertiesKHR;
499 #endif /* defined(VK_KHR_acceleration_structure) */
500 #if defined(VK_KHR_bind_memory2)
501     PFN_vkBindBufferMemory2KHR vkBindBufferMemory2KHR;
502     PFN_vkBindImageMemory2KHR vkBindImageMemory2KHR;
503 #endif /* defined(VK_KHR_bind_memory2) */
504 #if defined(VK_KHR_buffer_device_address)
505     PFN_vkGetBufferDeviceAddressKHR vkGetBufferDeviceAddressKHR;
506     PFN_vkGetBufferOpaqueCaptureAddressKHR vkGetBufferOpaqueCaptureAddressKHR;
507     PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR vkGetDeviceMemoryOpaqueCaptureAddressKHR;
508 #endif /* defined(VK_KHR_buffer_device_address) */
509 #if defined(VK_KHR_copy_commands2)
510     PFN_vkCmdBlitImage2KHR vkCmdBlitImage2KHR;
511     PFN_vkCmdCopyBuffer2KHR vkCmdCopyBuffer2KHR;
512     PFN_vkCmdCopyBufferToImage2KHR vkCmdCopyBufferToImage2KHR;
513     PFN_vkCmdCopyImage2KHR vkCmdCopyImage2KHR;
514     PFN_vkCmdCopyImageToBuffer2KHR vkCmdCopyImageToBuffer2KHR;
515     PFN_vkCmdResolveImage2KHR vkCmdResolveImage2KHR;
516 #endif /* defined(VK_KHR_copy_commands2) */
517 #if defined(VK_KHR_create_renderpass2)
518     PFN_vkCmdBeginRenderPass2KHR vkCmdBeginRenderPass2KHR;
519     PFN_vkCmdEndRenderPass2KHR vkCmdEndRenderPass2KHR;
520     PFN_vkCmdNextSubpass2KHR vkCmdNextSubpass2KHR;
521     PFN_vkCreateRenderPass2KHR vkCreateRenderPass2KHR;
522 #endif /* defined(VK_KHR_create_renderpass2) */
523 #if defined(VK_KHR_deferred_host_operations)
524     PFN_vkCreateDeferredOperationKHR vkCreateDeferredOperationKHR;
525     PFN_vkDeferredOperationJoinKHR vkDeferredOperationJoinKHR;
526     PFN_vkDestroyDeferredOperationKHR vkDestroyDeferredOperationKHR;
527     PFN_vkGetDeferredOperationMaxConcurrencyKHR vkGetDeferredOperationMaxConcurrencyKHR;
528     PFN_vkGetDeferredOperationResultKHR vkGetDeferredOperationResultKHR;
529 #endif /* defined(VK_KHR_deferred_host_operations) */
530 #if defined(VK_KHR_descriptor_update_template)
531     PFN_vkCreateDescriptorUpdateTemplateKHR vkCreateDescriptorUpdateTemplateKHR;
532     PFN_vkDestroyDescriptorUpdateTemplateKHR vkDestroyDescriptorUpdateTemplateKHR;
533     PFN_vkUpdateDescriptorSetWithTemplateKHR vkUpdateDescriptorSetWithTemplateKHR;
534 #endif /* defined(VK_KHR_descriptor_update_template) */
535 #if defined(VK_KHR_device_group)
536     PFN_vkCmdDispatchBaseKHR vkCmdDispatchBaseKHR;
537     PFN_vkCmdSetDeviceMaskKHR vkCmdSetDeviceMaskKHR;
538     PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR vkGetDeviceGroupPeerMemoryFeaturesKHR;
539 #endif /* defined(VK_KHR_device_group) */
540 #if defined(VK_KHR_display_swapchain)
541     PFN_vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR;
542 #endif /* defined(VK_KHR_display_swapchain) */
543 #if defined(VK_KHR_draw_indirect_count)
544     PFN_vkCmdDrawIndexedIndirectCountKHR vkCmdDrawIndexedIndirectCountKHR;
545     PFN_vkCmdDrawIndirectCountKHR vkCmdDrawIndirectCountKHR;
546 #endif /* defined(VK_KHR_draw_indirect_count) */
547 #if defined(VK_KHR_dynamic_rendering)
548     PFN_vkCmdBeginRenderingKHR vkCmdBeginRenderingKHR;
549     PFN_vkCmdEndRenderingKHR vkCmdEndRenderingKHR;
550 #endif /* defined(VK_KHR_dynamic_rendering) */
551 #if defined(VK_KHR_external_fence_fd)
552     PFN_vkGetFenceFdKHR vkGetFenceFdKHR;
553     PFN_vkImportFenceFdKHR vkImportFenceFdKHR;
554 #endif /* defined(VK_KHR_external_fence_fd) */
555 #if defined(VK_KHR_external_fence_win32)
556     PFN_vkGetFenceWin32HandleKHR vkGetFenceWin32HandleKHR;
557     PFN_vkImportFenceWin32HandleKHR vkImportFenceWin32HandleKHR;
558 #endif /* defined(VK_KHR_external_fence_win32) */
559 #if defined(VK_KHR_external_memory_fd)
560     PFN_vkGetMemoryFdKHR vkGetMemoryFdKHR;
561     PFN_vkGetMemoryFdPropertiesKHR vkGetMemoryFdPropertiesKHR;
562 #endif /* defined(VK_KHR_external_memory_fd) */
563 #if defined(VK_KHR_external_memory_win32)
564     PFN_vkGetMemoryWin32HandleKHR vkGetMemoryWin32HandleKHR;
565     PFN_vkGetMemoryWin32HandlePropertiesKHR vkGetMemoryWin32HandlePropertiesKHR;
566 #endif /* defined(VK_KHR_external_memory_win32) */
567 #if defined(VK_KHR_external_semaphore_fd)
568     PFN_vkGetSemaphoreFdKHR vkGetSemaphoreFdKHR;
569     PFN_vkImportSemaphoreFdKHR vkImportSemaphoreFdKHR;
570 #endif /* defined(VK_KHR_external_semaphore_fd) */
571 #if defined(VK_KHR_external_semaphore_win32)
572     PFN_vkGetSemaphoreWin32HandleKHR vkGetSemaphoreWin32HandleKHR;
573     PFN_vkImportSemaphoreWin32HandleKHR vkImportSemaphoreWin32HandleKHR;
574 #endif /* defined(VK_KHR_external_semaphore_win32) */
575 #if defined(VK_KHR_fragment_shading_rate)
576     PFN_vkCmdSetFragmentShadingRateKHR vkCmdSetFragmentShadingRateKHR;
577 #endif /* defined(VK_KHR_fragment_shading_rate) */
578 #if defined(VK_KHR_get_memory_requirements2)
579     PFN_vkGetBufferMemoryRequirements2KHR vkGetBufferMemoryRequirements2KHR;
580     PFN_vkGetImageMemoryRequirements2KHR vkGetImageMemoryRequirements2KHR;
581     PFN_vkGetImageSparseMemoryRequirements2KHR vkGetImageSparseMemoryRequirements2KHR;
582 #endif /* defined(VK_KHR_get_memory_requirements2) */
583 #if defined(VK_KHR_maintenance1)
584     PFN_vkTrimCommandPoolKHR vkTrimCommandPoolKHR;
585 #endif /* defined(VK_KHR_maintenance1) */
586 #if defined(VK_KHR_maintenance3)
587     PFN_vkGetDescriptorSetLayoutSupportKHR vkGetDescriptorSetLayoutSupportKHR;
588 #endif /* defined(VK_KHR_maintenance3) */
589 #if defined(VK_KHR_maintenance4)
590     PFN_vkGetDeviceBufferMemoryRequirementsKHR vkGetDeviceBufferMemoryRequirementsKHR;
591     PFN_vkGetDeviceImageMemoryRequirementsKHR vkGetDeviceImageMemoryRequirementsKHR;
592     PFN_vkGetDeviceImageSparseMemoryRequirementsKHR vkGetDeviceImageSparseMemoryRequirementsKHR;
593 #endif /* defined(VK_KHR_maintenance4) */
594 #if defined(VK_KHR_performance_query)
595     PFN_vkAcquireProfilingLockKHR vkAcquireProfilingLockKHR;
596     PFN_vkReleaseProfilingLockKHR vkReleaseProfilingLockKHR;
597 #endif /* defined(VK_KHR_performance_query) */
598 #if defined(VK_KHR_pipeline_executable_properties)
599     PFN_vkGetPipelineExecutableInternalRepresentationsKHR vkGetPipelineExecutableInternalRepresentationsKHR;
600     PFN_vkGetPipelineExecutablePropertiesKHR vkGetPipelineExecutablePropertiesKHR;
601     PFN_vkGetPipelineExecutableStatisticsKHR vkGetPipelineExecutableStatisticsKHR;
602 #endif /* defined(VK_KHR_pipeline_executable_properties) */
603 #if defined(VK_KHR_present_wait)
604     PFN_vkWaitForPresentKHR vkWaitForPresentKHR;
605 #endif /* defined(VK_KHR_present_wait) */
606 #if defined(VK_KHR_push_descriptor)
607     PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR;
608 #endif /* defined(VK_KHR_push_descriptor) */
609 #if defined(VK_KHR_ray_tracing_pipeline)
610     PFN_vkCmdSetRayTracingPipelineStackSizeKHR vkCmdSetRayTracingPipelineStackSizeKHR;
611     PFN_vkCmdTraceRaysIndirectKHR vkCmdTraceRaysIndirectKHR;
612     PFN_vkCmdTraceRaysKHR vkCmdTraceRaysKHR;
613     PFN_vkCreateRayTracingPipelinesKHR vkCreateRayTracingPipelinesKHR;
614     PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR vkGetRayTracingCaptureReplayShaderGroupHandlesKHR;
615     PFN_vkGetRayTracingShaderGroupHandlesKHR vkGetRayTracingShaderGroupHandlesKHR;
616     PFN_vkGetRayTracingShaderGroupStackSizeKHR vkGetRayTracingShaderGroupStackSizeKHR;
617 #endif /* defined(VK_KHR_ray_tracing_pipeline) */
618 #if defined(VK_KHR_sampler_ycbcr_conversion)
619     PFN_vkCreateSamplerYcbcrConversionKHR vkCreateSamplerYcbcrConversionKHR;
620     PFN_vkDestroySamplerYcbcrConversionKHR vkDestroySamplerYcbcrConversionKHR;
621 #endif /* defined(VK_KHR_sampler_ycbcr_conversion) */
622 #if defined(VK_KHR_shared_presentable_image)
623     PFN_vkGetSwapchainStatusKHR vkGetSwapchainStatusKHR;
624 #endif /* defined(VK_KHR_shared_presentable_image) */
625 #if defined(VK_KHR_swapchain)
626     PFN_vkAcquireNextImageKHR vkAcquireNextImageKHR;
627     PFN_vkCreateSwapchainKHR vkCreateSwapchainKHR;
628     PFN_vkDestroySwapchainKHR vkDestroySwapchainKHR;
629     PFN_vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR;
630     PFN_vkQueuePresentKHR vkQueuePresentKHR;
631 #endif /* defined(VK_KHR_swapchain) */
632 #if defined(VK_KHR_synchronization2)
633     PFN_vkCmdPipelineBarrier2KHR vkCmdPipelineBarrier2KHR;
634     PFN_vkCmdResetEvent2KHR vkCmdResetEvent2KHR;
635     PFN_vkCmdSetEvent2KHR vkCmdSetEvent2KHR;
636     PFN_vkCmdWaitEvents2KHR vkCmdWaitEvents2KHR;
637     PFN_vkCmdWriteTimestamp2KHR vkCmdWriteTimestamp2KHR;
638     PFN_vkQueueSubmit2KHR vkQueueSubmit2KHR;
639 #endif /* defined(VK_KHR_synchronization2) */
640 #if defined(VK_KHR_synchronization2) && defined(VK_AMD_buffer_marker)
641     PFN_vkCmdWriteBufferMarker2AMD vkCmdWriteBufferMarker2AMD;
642 #endif /* defined(VK_KHR_synchronization2) && defined(VK_AMD_buffer_marker) */
643 #if defined(VK_KHR_synchronization2) && defined(VK_NV_device_diagnostic_checkpoints)
644     PFN_vkGetQueueCheckpointData2NV vkGetQueueCheckpointData2NV;
645 #endif /* defined(VK_KHR_synchronization2) && defined(VK_NV_device_diagnostic_checkpoints) */
646 #if defined(VK_KHR_timeline_semaphore)
647     PFN_vkGetSemaphoreCounterValueKHR vkGetSemaphoreCounterValueKHR;
648     PFN_vkSignalSemaphoreKHR vkSignalSemaphoreKHR;
649     PFN_vkWaitSemaphoresKHR vkWaitSemaphoresKHR;
650 #endif /* defined(VK_KHR_timeline_semaphore) */
651 #if defined(VK_KHR_video_decode_queue)
652     PFN_vkCmdDecodeVideoKHR vkCmdDecodeVideoKHR;
653 #endif /* defined(VK_KHR_video_decode_queue) */
654 #if defined(VK_KHR_video_encode_queue)
655     PFN_vkCmdEncodeVideoKHR vkCmdEncodeVideoKHR;
656 #endif /* defined(VK_KHR_video_encode_queue) */
657 #if defined(VK_KHR_video_queue)
658     PFN_vkBindVideoSessionMemoryKHR vkBindVideoSessionMemoryKHR;
659     PFN_vkCmdBeginVideoCodingKHR vkCmdBeginVideoCodingKHR;
660     PFN_vkCmdControlVideoCodingKHR vkCmdControlVideoCodingKHR;
661     PFN_vkCmdEndVideoCodingKHR vkCmdEndVideoCodingKHR;
662     PFN_vkCreateVideoSessionKHR vkCreateVideoSessionKHR;
663     PFN_vkCreateVideoSessionParametersKHR vkCreateVideoSessionParametersKHR;
664     PFN_vkDestroyVideoSessionKHR vkDestroyVideoSessionKHR;
665     PFN_vkDestroyVideoSessionParametersKHR vkDestroyVideoSessionParametersKHR;
666     PFN_vkGetVideoSessionMemoryRequirementsKHR vkGetVideoSessionMemoryRequirementsKHR;
667     PFN_vkUpdateVideoSessionParametersKHR vkUpdateVideoSessionParametersKHR;
668 #endif /* defined(VK_KHR_video_queue) */
669 #if defined(VK_NVX_binary_import)
670     PFN_vkCmdCuLaunchKernelNVX vkCmdCuLaunchKernelNVX;
671     PFN_vkCreateCuFunctionNVX vkCreateCuFunctionNVX;
672     PFN_vkCreateCuModuleNVX vkCreateCuModuleNVX;
673     PFN_vkDestroyCuFunctionNVX vkDestroyCuFunctionNVX;
674     PFN_vkDestroyCuModuleNVX vkDestroyCuModuleNVX;
675 #endif /* defined(VK_NVX_binary_import) */
676 #if defined(VK_NVX_image_view_handle)
677     PFN_vkGetImageViewAddressNVX vkGetImageViewAddressNVX;
678     PFN_vkGetImageViewHandleNVX vkGetImageViewHandleNVX;
679 #endif /* defined(VK_NVX_image_view_handle) */
680 #if defined(VK_NV_clip_space_w_scaling)
681     PFN_vkCmdSetViewportWScalingNV vkCmdSetViewportWScalingNV;
682 #endif /* defined(VK_NV_clip_space_w_scaling) */
683 #if defined(VK_NV_device_diagnostic_checkpoints)
684     PFN_vkCmdSetCheckpointNV vkCmdSetCheckpointNV;
685     PFN_vkGetQueueCheckpointDataNV vkGetQueueCheckpointDataNV;
686 #endif /* defined(VK_NV_device_diagnostic_checkpoints) */
687 #if defined(VK_NV_device_generated_commands)
688     PFN_vkCmdBindPipelineShaderGroupNV vkCmdBindPipelineShaderGroupNV;
689     PFN_vkCmdExecuteGeneratedCommandsNV vkCmdExecuteGeneratedCommandsNV;
690     PFN_vkCmdPreprocessGeneratedCommandsNV vkCmdPreprocessGeneratedCommandsNV;
691     PFN_vkCreateIndirectCommandsLayoutNV vkCreateIndirectCommandsLayoutNV;
692     PFN_vkDestroyIndirectCommandsLayoutNV vkDestroyIndirectCommandsLayoutNV;
693     PFN_vkGetGeneratedCommandsMemoryRequirementsNV vkGetGeneratedCommandsMemoryRequirementsNV;
694 #endif /* defined(VK_NV_device_generated_commands) */
695 #if defined(VK_NV_external_memory_rdma)
696     PFN_vkGetMemoryRemoteAddressNV vkGetMemoryRemoteAddressNV;
697 #endif /* defined(VK_NV_external_memory_rdma) */
698 #if defined(VK_NV_external_memory_win32)
699     PFN_vkGetMemoryWin32HandleNV vkGetMemoryWin32HandleNV;
700 #endif /* defined(VK_NV_external_memory_win32) */
701 #if defined(VK_NV_fragment_shading_rate_enums)
702     PFN_vkCmdSetFragmentShadingRateEnumNV vkCmdSetFragmentShadingRateEnumNV;
703 #endif /* defined(VK_NV_fragment_shading_rate_enums) */
704 #if defined(VK_NV_mesh_shader)
705     PFN_vkCmdDrawMeshTasksIndirectCountNV vkCmdDrawMeshTasksIndirectCountNV;
706     PFN_vkCmdDrawMeshTasksIndirectNV vkCmdDrawMeshTasksIndirectNV;
707     PFN_vkCmdDrawMeshTasksNV vkCmdDrawMeshTasksNV;
708 #endif /* defined(VK_NV_mesh_shader) */
709 #if defined(VK_NV_ray_tracing)
710     PFN_vkBindAccelerationStructureMemoryNV vkBindAccelerationStructureMemoryNV;
711     PFN_vkCmdBuildAccelerationStructureNV vkCmdBuildAccelerationStructureNV;
712     PFN_vkCmdCopyAccelerationStructureNV vkCmdCopyAccelerationStructureNV;
713     PFN_vkCmdTraceRaysNV vkCmdTraceRaysNV;
714     PFN_vkCmdWriteAccelerationStructuresPropertiesNV vkCmdWriteAccelerationStructuresPropertiesNV;
715     PFN_vkCompileDeferredNV vkCompileDeferredNV;
716     PFN_vkCreateAccelerationStructureNV vkCreateAccelerationStructureNV;
717     PFN_vkCreateRayTracingPipelinesNV vkCreateRayTracingPipelinesNV;
718     PFN_vkDestroyAccelerationStructureNV vkDestroyAccelerationStructureNV;
719     PFN_vkGetAccelerationStructureHandleNV vkGetAccelerationStructureHandleNV;
720     PFN_vkGetAccelerationStructureMemoryRequirementsNV vkGetAccelerationStructureMemoryRequirementsNV;
721     PFN_vkGetRayTracingShaderGroupHandlesNV vkGetRayTracingShaderGroupHandlesNV;
722 #endif /* defined(VK_NV_ray_tracing) */
723 #if defined(VK_NV_scissor_exclusive)
724     PFN_vkCmdSetExclusiveScissorNV vkCmdSetExclusiveScissorNV;
725 #endif /* defined(VK_NV_scissor_exclusive) */
726 #if defined(VK_NV_shading_rate_image)
727     PFN_vkCmdBindShadingRateImageNV vkCmdBindShadingRateImageNV;
728     PFN_vkCmdSetCoarseSampleOrderNV vkCmdSetCoarseSampleOrderNV;
729     PFN_vkCmdSetViewportShadingRatePaletteNV vkCmdSetViewportShadingRatePaletteNV;
730 #endif /* defined(VK_NV_shading_rate_image) */
731 #if (defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group)) || (defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1))
732     PFN_vkGetDeviceGroupSurfacePresentModes2EXT vkGetDeviceGroupSurfacePresentModes2EXT;
733 #endif /* (defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group)) || (defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1)) */
734 #if (defined(VK_KHR_descriptor_update_template) && defined(VK_KHR_push_descriptor)) || (defined(VK_KHR_push_descriptor) && defined(VK_VERSION_1_1)) || (defined(VK_KHR_push_descriptor) && defined(VK_KHR_descriptor_update_template))
735     PFN_vkCmdPushDescriptorSetWithTemplateKHR vkCmdPushDescriptorSetWithTemplateKHR;
736 #endif /* (defined(VK_KHR_descriptor_update_template) && defined(VK_KHR_push_descriptor)) || (defined(VK_KHR_push_descriptor) && defined(VK_VERSION_1_1)) || (defined(VK_KHR_push_descriptor) && defined(VK_KHR_descriptor_update_template)) */
737 #if (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1))
738     PFN_vkGetDeviceGroupPresentCapabilitiesKHR vkGetDeviceGroupPresentCapabilitiesKHR;
739     PFN_vkGetDeviceGroupSurfacePresentModesKHR vkGetDeviceGroupSurfacePresentModesKHR;
740 #endif /* (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) */
741 #if (defined(VK_KHR_device_group) && defined(VK_KHR_swapchain)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1))
742     PFN_vkAcquireNextImage2KHR vkAcquireNextImage2KHR;
743 #endif /* (defined(VK_KHR_device_group) && defined(VK_KHR_swapchain)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) */
744     /* VOLK_GENERATE_DEVICE_TABLE */
745 };
746 
747 /* VOLK_GENERATE_PROTOTYPES_H */
748 #if defined(VK_VERSION_1_0)
749 extern PFN_vkAllocateCommandBuffers vkAllocateCommandBuffers;
750 extern PFN_vkAllocateDescriptorSets vkAllocateDescriptorSets;
751 extern PFN_vkAllocateMemory vkAllocateMemory;
752 extern PFN_vkBeginCommandBuffer vkBeginCommandBuffer;
753 extern PFN_vkBindBufferMemory vkBindBufferMemory;
754 extern PFN_vkBindImageMemory vkBindImageMemory;
755 extern PFN_vkCmdBeginQuery vkCmdBeginQuery;
756 extern PFN_vkCmdBeginRenderPass vkCmdBeginRenderPass;
757 extern PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets;
758 extern PFN_vkCmdBindIndexBuffer vkCmdBindIndexBuffer;
759 extern PFN_vkCmdBindPipeline vkCmdBindPipeline;
760 extern PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers;
761 extern PFN_vkCmdBlitImage vkCmdBlitImage;
762 extern PFN_vkCmdClearAttachments vkCmdClearAttachments;
763 extern PFN_vkCmdClearColorImage vkCmdClearColorImage;
764 extern PFN_vkCmdClearDepthStencilImage vkCmdClearDepthStencilImage;
765 extern PFN_vkCmdCopyBuffer vkCmdCopyBuffer;
766 extern PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage;
767 extern PFN_vkCmdCopyImage vkCmdCopyImage;
768 extern PFN_vkCmdCopyImageToBuffer vkCmdCopyImageToBuffer;
769 extern PFN_vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults;
770 extern PFN_vkCmdDispatch vkCmdDispatch;
771 extern PFN_vkCmdDispatchIndirect vkCmdDispatchIndirect;
772 extern PFN_vkCmdDraw vkCmdDraw;
773 extern PFN_vkCmdDrawIndexed vkCmdDrawIndexed;
774 extern PFN_vkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirect;
775 extern PFN_vkCmdDrawIndirect vkCmdDrawIndirect;
776 extern PFN_vkCmdEndQuery vkCmdEndQuery;
777 extern PFN_vkCmdEndRenderPass vkCmdEndRenderPass;
778 extern PFN_vkCmdExecuteCommands vkCmdExecuteCommands;
779 extern PFN_vkCmdFillBuffer vkCmdFillBuffer;
780 extern PFN_vkCmdNextSubpass vkCmdNextSubpass;
781 extern PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier;
782 extern PFN_vkCmdPushConstants vkCmdPushConstants;
783 extern PFN_vkCmdResetEvent vkCmdResetEvent;
784 extern PFN_vkCmdResetQueryPool vkCmdResetQueryPool;
785 extern PFN_vkCmdResolveImage vkCmdResolveImage;
786 extern PFN_vkCmdSetBlendConstants vkCmdSetBlendConstants;
787 extern PFN_vkCmdSetDepthBias vkCmdSetDepthBias;
788 extern PFN_vkCmdSetDepthBounds vkCmdSetDepthBounds;
789 extern PFN_vkCmdSetEvent vkCmdSetEvent;
790 extern PFN_vkCmdSetLineWidth vkCmdSetLineWidth;
791 extern PFN_vkCmdSetScissor vkCmdSetScissor;
792 extern PFN_vkCmdSetStencilCompareMask vkCmdSetStencilCompareMask;
793 extern PFN_vkCmdSetStencilReference vkCmdSetStencilReference;
794 extern PFN_vkCmdSetStencilWriteMask vkCmdSetStencilWriteMask;
795 extern PFN_vkCmdSetViewport vkCmdSetViewport;
796 extern PFN_vkCmdUpdateBuffer vkCmdUpdateBuffer;
797 extern PFN_vkCmdWaitEvents vkCmdWaitEvents;
798 extern PFN_vkCmdWriteTimestamp vkCmdWriteTimestamp;
799 extern PFN_vkCreateBuffer vkCreateBuffer;
800 extern PFN_vkCreateBufferView vkCreateBufferView;
801 extern PFN_vkCreateCommandPool vkCreateCommandPool;
802 extern PFN_vkCreateComputePipelines vkCreateComputePipelines;
803 extern PFN_vkCreateDescriptorPool vkCreateDescriptorPool;
804 extern PFN_vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout;
805 extern PFN_vkCreateDevice vkCreateDevice;
806 extern PFN_vkCreateEvent vkCreateEvent;
807 extern PFN_vkCreateFence vkCreateFence;
808 extern PFN_vkCreateFramebuffer vkCreateFramebuffer;
809 extern PFN_vkCreateGraphicsPipelines vkCreateGraphicsPipelines;
810 extern PFN_vkCreateImage vkCreateImage;
811 extern PFN_vkCreateImageView vkCreateImageView;
812 extern PFN_vkCreateInstance vkCreateInstance;
813 extern PFN_vkCreatePipelineCache vkCreatePipelineCache;
814 extern PFN_vkCreatePipelineLayout vkCreatePipelineLayout;
815 extern PFN_vkCreateQueryPool vkCreateQueryPool;
816 extern PFN_vkCreateRenderPass vkCreateRenderPass;
817 extern PFN_vkCreateSampler vkCreateSampler;
818 extern PFN_vkCreateSemaphore vkCreateSemaphore;
819 extern PFN_vkCreateShaderModule vkCreateShaderModule;
820 extern PFN_vkDestroyBuffer vkDestroyBuffer;
821 extern PFN_vkDestroyBufferView vkDestroyBufferView;
822 extern PFN_vkDestroyCommandPool vkDestroyCommandPool;
823 extern PFN_vkDestroyDescriptorPool vkDestroyDescriptorPool;
824 extern PFN_vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout;
825 extern PFN_vkDestroyDevice vkDestroyDevice;
826 extern PFN_vkDestroyEvent vkDestroyEvent;
827 extern PFN_vkDestroyFence vkDestroyFence;
828 extern PFN_vkDestroyFramebuffer vkDestroyFramebuffer;
829 extern PFN_vkDestroyImage vkDestroyImage;
830 extern PFN_vkDestroyImageView vkDestroyImageView;
831 extern PFN_vkDestroyInstance vkDestroyInstance;
832 extern PFN_vkDestroyPipeline vkDestroyPipeline;
833 extern PFN_vkDestroyPipelineCache vkDestroyPipelineCache;
834 extern PFN_vkDestroyPipelineLayout vkDestroyPipelineLayout;
835 extern PFN_vkDestroyQueryPool vkDestroyQueryPool;
836 extern PFN_vkDestroyRenderPass vkDestroyRenderPass;
837 extern PFN_vkDestroySampler vkDestroySampler;
838 extern PFN_vkDestroySemaphore vkDestroySemaphore;
839 extern PFN_vkDestroyShaderModule vkDestroyShaderModule;
840 extern PFN_vkDeviceWaitIdle vkDeviceWaitIdle;
841 extern PFN_vkEndCommandBuffer vkEndCommandBuffer;
842 extern PFN_vkEnumerateDeviceExtensionProperties vkEnumerateDeviceExtensionProperties;
843 extern PFN_vkEnumerateDeviceLayerProperties vkEnumerateDeviceLayerProperties;
844 extern PFN_vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionProperties;
845 extern PFN_vkEnumerateInstanceLayerProperties vkEnumerateInstanceLayerProperties;
846 extern PFN_vkEnumeratePhysicalDevices vkEnumeratePhysicalDevices;
847 extern PFN_vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges;
848 extern PFN_vkFreeCommandBuffers vkFreeCommandBuffers;
849 extern PFN_vkFreeDescriptorSets vkFreeDescriptorSets;
850 extern PFN_vkFreeMemory vkFreeMemory;
851 extern PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements;
852 extern PFN_vkGetDeviceMemoryCommitment vkGetDeviceMemoryCommitment;
853 extern PFN_vkGetDeviceProcAddr vkGetDeviceProcAddr;
854 extern PFN_vkGetDeviceQueue vkGetDeviceQueue;
855 extern PFN_vkGetEventStatus vkGetEventStatus;
856 extern PFN_vkGetFenceStatus vkGetFenceStatus;
857 extern PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements;
858 extern PFN_vkGetImageSparseMemoryRequirements vkGetImageSparseMemoryRequirements;
859 extern PFN_vkGetImageSubresourceLayout vkGetImageSubresourceLayout;
860 extern PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr;
861 extern PFN_vkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeatures;
862 extern PFN_vkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatProperties;
863 extern PFN_vkGetPhysicalDeviceImageFormatProperties vkGetPhysicalDeviceImageFormatProperties;
864 extern PFN_vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties;
865 extern PFN_vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties;
866 extern PFN_vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties;
867 extern PFN_vkGetPhysicalDeviceSparseImageFormatProperties vkGetPhysicalDeviceSparseImageFormatProperties;
868 extern PFN_vkGetPipelineCacheData vkGetPipelineCacheData;
869 extern PFN_vkGetQueryPoolResults vkGetQueryPoolResults;
870 extern PFN_vkGetRenderAreaGranularity vkGetRenderAreaGranularity;
871 extern PFN_vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges;
872 extern PFN_vkMapMemory vkMapMemory;
873 extern PFN_vkMergePipelineCaches vkMergePipelineCaches;
874 extern PFN_vkQueueBindSparse vkQueueBindSparse;
875 extern PFN_vkQueueSubmit vkQueueSubmit;
876 extern PFN_vkQueueWaitIdle vkQueueWaitIdle;
877 extern PFN_vkResetCommandBuffer vkResetCommandBuffer;
878 extern PFN_vkResetCommandPool vkResetCommandPool;
879 extern PFN_vkResetDescriptorPool vkResetDescriptorPool;
880 extern PFN_vkResetEvent vkResetEvent;
881 extern PFN_vkResetFences vkResetFences;
882 extern PFN_vkSetEvent vkSetEvent;
883 extern PFN_vkUnmapMemory vkUnmapMemory;
884 extern PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets;
885 extern PFN_vkWaitForFences vkWaitForFences;
886 #endif /* defined(VK_VERSION_1_0) */
887 #if defined(VK_VERSION_1_1)
888 extern PFN_vkBindBufferMemory2 vkBindBufferMemory2;
889 extern PFN_vkBindImageMemory2 vkBindImageMemory2;
890 extern PFN_vkCmdDispatchBase vkCmdDispatchBase;
891 extern PFN_vkCmdSetDeviceMask vkCmdSetDeviceMask;
892 extern PFN_vkCreateDescriptorUpdateTemplate vkCreateDescriptorUpdateTemplate;
893 extern PFN_vkCreateSamplerYcbcrConversion vkCreateSamplerYcbcrConversion;
894 extern PFN_vkDestroyDescriptorUpdateTemplate vkDestroyDescriptorUpdateTemplate;
895 extern PFN_vkDestroySamplerYcbcrConversion vkDestroySamplerYcbcrConversion;
896 extern PFN_vkEnumerateInstanceVersion vkEnumerateInstanceVersion;
897 extern PFN_vkEnumeratePhysicalDeviceGroups vkEnumeratePhysicalDeviceGroups;
898 extern PFN_vkGetBufferMemoryRequirements2 vkGetBufferMemoryRequirements2;
899 extern PFN_vkGetDescriptorSetLayoutSupport vkGetDescriptorSetLayoutSupport;
900 extern PFN_vkGetDeviceGroupPeerMemoryFeatures vkGetDeviceGroupPeerMemoryFeatures;
901 extern PFN_vkGetDeviceQueue2 vkGetDeviceQueue2;
902 extern PFN_vkGetImageMemoryRequirements2 vkGetImageMemoryRequirements2;
903 extern PFN_vkGetImageSparseMemoryRequirements2 vkGetImageSparseMemoryRequirements2;
904 extern PFN_vkGetPhysicalDeviceExternalBufferProperties vkGetPhysicalDeviceExternalBufferProperties;
905 extern PFN_vkGetPhysicalDeviceExternalFenceProperties vkGetPhysicalDeviceExternalFenceProperties;
906 extern PFN_vkGetPhysicalDeviceExternalSemaphoreProperties vkGetPhysicalDeviceExternalSemaphoreProperties;
907 extern PFN_vkGetPhysicalDeviceFeatures2 vkGetPhysicalDeviceFeatures2;
908 extern PFN_vkGetPhysicalDeviceFormatProperties2 vkGetPhysicalDeviceFormatProperties2;
909 extern PFN_vkGetPhysicalDeviceImageFormatProperties2 vkGetPhysicalDeviceImageFormatProperties2;
910 extern PFN_vkGetPhysicalDeviceMemoryProperties2 vkGetPhysicalDeviceMemoryProperties2;
911 extern PFN_vkGetPhysicalDeviceProperties2 vkGetPhysicalDeviceProperties2;
912 extern PFN_vkGetPhysicalDeviceQueueFamilyProperties2 vkGetPhysicalDeviceQueueFamilyProperties2;
913 extern PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 vkGetPhysicalDeviceSparseImageFormatProperties2;
914 extern PFN_vkTrimCommandPool vkTrimCommandPool;
915 extern PFN_vkUpdateDescriptorSetWithTemplate vkUpdateDescriptorSetWithTemplate;
916 #endif /* defined(VK_VERSION_1_1) */
917 #if defined(VK_VERSION_1_2)
918 extern PFN_vkCmdBeginRenderPass2 vkCmdBeginRenderPass2;
919 extern PFN_vkCmdDrawIndexedIndirectCount vkCmdDrawIndexedIndirectCount;
920 extern PFN_vkCmdDrawIndirectCount vkCmdDrawIndirectCount;
921 extern PFN_vkCmdEndRenderPass2 vkCmdEndRenderPass2;
922 extern PFN_vkCmdNextSubpass2 vkCmdNextSubpass2;
923 extern PFN_vkCreateRenderPass2 vkCreateRenderPass2;
924 extern PFN_vkGetBufferDeviceAddress vkGetBufferDeviceAddress;
925 extern PFN_vkGetBufferOpaqueCaptureAddress vkGetBufferOpaqueCaptureAddress;
926 extern PFN_vkGetDeviceMemoryOpaqueCaptureAddress vkGetDeviceMemoryOpaqueCaptureAddress;
927 extern PFN_vkGetSemaphoreCounterValue vkGetSemaphoreCounterValue;
928 extern PFN_vkResetQueryPool vkResetQueryPool;
929 extern PFN_vkSignalSemaphore vkSignalSemaphore;
930 extern PFN_vkWaitSemaphores vkWaitSemaphores;
931 #endif /* defined(VK_VERSION_1_2) */
932 #if defined(VK_VERSION_1_3)
933 extern PFN_vkCmdBeginRendering vkCmdBeginRendering;
934 extern PFN_vkCmdBindVertexBuffers2 vkCmdBindVertexBuffers2;
935 extern PFN_vkCmdBlitImage2 vkCmdBlitImage2;
936 extern PFN_vkCmdCopyBuffer2 vkCmdCopyBuffer2;
937 extern PFN_vkCmdCopyBufferToImage2 vkCmdCopyBufferToImage2;
938 extern PFN_vkCmdCopyImage2 vkCmdCopyImage2;
939 extern PFN_vkCmdCopyImageToBuffer2 vkCmdCopyImageToBuffer2;
940 extern PFN_vkCmdEndRendering vkCmdEndRendering;
941 extern PFN_vkCmdPipelineBarrier2 vkCmdPipelineBarrier2;
942 extern PFN_vkCmdResetEvent2 vkCmdResetEvent2;
943 extern PFN_vkCmdResolveImage2 vkCmdResolveImage2;
944 extern PFN_vkCmdSetCullMode vkCmdSetCullMode;
945 extern PFN_vkCmdSetDepthBiasEnable vkCmdSetDepthBiasEnable;
946 extern PFN_vkCmdSetDepthBoundsTestEnable vkCmdSetDepthBoundsTestEnable;
947 extern PFN_vkCmdSetDepthCompareOp vkCmdSetDepthCompareOp;
948 extern PFN_vkCmdSetDepthTestEnable vkCmdSetDepthTestEnable;
949 extern PFN_vkCmdSetDepthWriteEnable vkCmdSetDepthWriteEnable;
950 extern PFN_vkCmdSetEvent2 vkCmdSetEvent2;
951 extern PFN_vkCmdSetFrontFace vkCmdSetFrontFace;
952 extern PFN_vkCmdSetPrimitiveRestartEnable vkCmdSetPrimitiveRestartEnable;
953 extern PFN_vkCmdSetPrimitiveTopology vkCmdSetPrimitiveTopology;
954 extern PFN_vkCmdSetRasterizerDiscardEnable vkCmdSetRasterizerDiscardEnable;
955 extern PFN_vkCmdSetScissorWithCount vkCmdSetScissorWithCount;
956 extern PFN_vkCmdSetStencilOp vkCmdSetStencilOp;
957 extern PFN_vkCmdSetStencilTestEnable vkCmdSetStencilTestEnable;
958 extern PFN_vkCmdSetViewportWithCount vkCmdSetViewportWithCount;
959 extern PFN_vkCmdWaitEvents2 vkCmdWaitEvents2;
960 extern PFN_vkCmdWriteTimestamp2 vkCmdWriteTimestamp2;
961 extern PFN_vkCreatePrivateDataSlot vkCreatePrivateDataSlot;
962 extern PFN_vkDestroyPrivateDataSlot vkDestroyPrivateDataSlot;
963 extern PFN_vkGetDeviceBufferMemoryRequirements vkGetDeviceBufferMemoryRequirements;
964 extern PFN_vkGetDeviceImageMemoryRequirements vkGetDeviceImageMemoryRequirements;
965 extern PFN_vkGetDeviceImageSparseMemoryRequirements vkGetDeviceImageSparseMemoryRequirements;
966 extern PFN_vkGetPhysicalDeviceToolProperties vkGetPhysicalDeviceToolProperties;
967 extern PFN_vkGetPrivateData vkGetPrivateData;
968 extern PFN_vkQueueSubmit2 vkQueueSubmit2;
969 extern PFN_vkSetPrivateData vkSetPrivateData;
970 #endif /* defined(VK_VERSION_1_3) */
971 #if defined(VK_AMD_buffer_marker)
972 extern PFN_vkCmdWriteBufferMarkerAMD vkCmdWriteBufferMarkerAMD;
973 #endif /* defined(VK_AMD_buffer_marker) */
974 #if defined(VK_AMD_display_native_hdr)
975 extern PFN_vkSetLocalDimmingAMD vkSetLocalDimmingAMD;
976 #endif /* defined(VK_AMD_display_native_hdr) */
977 #if defined(VK_AMD_draw_indirect_count)
978 extern PFN_vkCmdDrawIndexedIndirectCountAMD vkCmdDrawIndexedIndirectCountAMD;
979 extern PFN_vkCmdDrawIndirectCountAMD vkCmdDrawIndirectCountAMD;
980 #endif /* defined(VK_AMD_draw_indirect_count) */
981 #if defined(VK_AMD_shader_info)
982 extern PFN_vkGetShaderInfoAMD vkGetShaderInfoAMD;
983 #endif /* defined(VK_AMD_shader_info) */
984 #if defined(VK_ANDROID_external_memory_android_hardware_buffer)
985 extern PFN_vkGetAndroidHardwareBufferPropertiesANDROID vkGetAndroidHardwareBufferPropertiesANDROID;
986 extern PFN_vkGetMemoryAndroidHardwareBufferANDROID vkGetMemoryAndroidHardwareBufferANDROID;
987 #endif /* defined(VK_ANDROID_external_memory_android_hardware_buffer) */
988 #if defined(VK_EXT_acquire_drm_display)
989 extern PFN_vkAcquireDrmDisplayEXT vkAcquireDrmDisplayEXT;
990 extern PFN_vkGetDrmDisplayEXT vkGetDrmDisplayEXT;
991 #endif /* defined(VK_EXT_acquire_drm_display) */
992 #if defined(VK_EXT_acquire_xlib_display)
993 extern PFN_vkAcquireXlibDisplayEXT vkAcquireXlibDisplayEXT;
994 extern PFN_vkGetRandROutputDisplayEXT vkGetRandROutputDisplayEXT;
995 #endif /* defined(VK_EXT_acquire_xlib_display) */
996 #if defined(VK_EXT_buffer_device_address)
997 extern PFN_vkGetBufferDeviceAddressEXT vkGetBufferDeviceAddressEXT;
998 #endif /* defined(VK_EXT_buffer_device_address) */
999 #if defined(VK_EXT_calibrated_timestamps)
1000 extern PFN_vkGetCalibratedTimestampsEXT vkGetCalibratedTimestampsEXT;
1001 extern PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT vkGetPhysicalDeviceCalibrateableTimeDomainsEXT;
1002 #endif /* defined(VK_EXT_calibrated_timestamps) */
1003 #if defined(VK_EXT_color_write_enable)
1004 extern PFN_vkCmdSetColorWriteEnableEXT vkCmdSetColorWriteEnableEXT;
1005 #endif /* defined(VK_EXT_color_write_enable) */
1006 #if defined(VK_EXT_conditional_rendering)
1007 extern PFN_vkCmdBeginConditionalRenderingEXT vkCmdBeginConditionalRenderingEXT;
1008 extern PFN_vkCmdEndConditionalRenderingEXT vkCmdEndConditionalRenderingEXT;
1009 #endif /* defined(VK_EXT_conditional_rendering) */
1010 #if defined(VK_EXT_debug_marker)
1011 extern PFN_vkCmdDebugMarkerBeginEXT vkCmdDebugMarkerBeginEXT;
1012 extern PFN_vkCmdDebugMarkerEndEXT vkCmdDebugMarkerEndEXT;
1013 extern PFN_vkCmdDebugMarkerInsertEXT vkCmdDebugMarkerInsertEXT;
1014 extern PFN_vkDebugMarkerSetObjectNameEXT vkDebugMarkerSetObjectNameEXT;
1015 extern PFN_vkDebugMarkerSetObjectTagEXT vkDebugMarkerSetObjectTagEXT;
1016 #endif /* defined(VK_EXT_debug_marker) */
1017 #if defined(VK_EXT_debug_report)
1018 extern PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT;
1019 extern PFN_vkDebugReportMessageEXT vkDebugReportMessageEXT;
1020 extern PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT;
1021 #endif /* defined(VK_EXT_debug_report) */
1022 #if defined(VK_EXT_debug_utils)
1023 extern PFN_vkCmdBeginDebugUtilsLabelEXT vkCmdBeginDebugUtilsLabelEXT;
1024 extern PFN_vkCmdEndDebugUtilsLabelEXT vkCmdEndDebugUtilsLabelEXT;
1025 extern PFN_vkCmdInsertDebugUtilsLabelEXT vkCmdInsertDebugUtilsLabelEXT;
1026 extern PFN_vkCreateDebugUtilsMessengerEXT vkCreateDebugUtilsMessengerEXT;
1027 extern PFN_vkDestroyDebugUtilsMessengerEXT vkDestroyDebugUtilsMessengerEXT;
1028 extern PFN_vkQueueBeginDebugUtilsLabelEXT vkQueueBeginDebugUtilsLabelEXT;
1029 extern PFN_vkQueueEndDebugUtilsLabelEXT vkQueueEndDebugUtilsLabelEXT;
1030 extern PFN_vkQueueInsertDebugUtilsLabelEXT vkQueueInsertDebugUtilsLabelEXT;
1031 extern PFN_vkSetDebugUtilsObjectNameEXT vkSetDebugUtilsObjectNameEXT;
1032 extern PFN_vkSetDebugUtilsObjectTagEXT vkSetDebugUtilsObjectTagEXT;
1033 extern PFN_vkSubmitDebugUtilsMessageEXT vkSubmitDebugUtilsMessageEXT;
1034 #endif /* defined(VK_EXT_debug_utils) */
1035 #if defined(VK_EXT_direct_mode_display)
1036 extern PFN_vkReleaseDisplayEXT vkReleaseDisplayEXT;
1037 #endif /* defined(VK_EXT_direct_mode_display) */
1038 #if defined(VK_EXT_directfb_surface)
1039 extern PFN_vkCreateDirectFBSurfaceEXT vkCreateDirectFBSurfaceEXT;
1040 extern PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT vkGetPhysicalDeviceDirectFBPresentationSupportEXT;
1041 #endif /* defined(VK_EXT_directfb_surface) */
1042 #if defined(VK_EXT_discard_rectangles)
1043 extern PFN_vkCmdSetDiscardRectangleEXT vkCmdSetDiscardRectangleEXT;
1044 #endif /* defined(VK_EXT_discard_rectangles) */
1045 #if defined(VK_EXT_display_control)
1046 extern PFN_vkDisplayPowerControlEXT vkDisplayPowerControlEXT;
1047 extern PFN_vkGetSwapchainCounterEXT vkGetSwapchainCounterEXT;
1048 extern PFN_vkRegisterDeviceEventEXT vkRegisterDeviceEventEXT;
1049 extern PFN_vkRegisterDisplayEventEXT vkRegisterDisplayEventEXT;
1050 #endif /* defined(VK_EXT_display_control) */
1051 #if defined(VK_EXT_display_surface_counter)
1052 extern PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT vkGetPhysicalDeviceSurfaceCapabilities2EXT;
1053 #endif /* defined(VK_EXT_display_surface_counter) */
1054 #if defined(VK_EXT_extended_dynamic_state)
1055 extern PFN_vkCmdBindVertexBuffers2EXT vkCmdBindVertexBuffers2EXT;
1056 extern PFN_vkCmdSetCullModeEXT vkCmdSetCullModeEXT;
1057 extern PFN_vkCmdSetDepthBoundsTestEnableEXT vkCmdSetDepthBoundsTestEnableEXT;
1058 extern PFN_vkCmdSetDepthCompareOpEXT vkCmdSetDepthCompareOpEXT;
1059 extern PFN_vkCmdSetDepthTestEnableEXT vkCmdSetDepthTestEnableEXT;
1060 extern PFN_vkCmdSetDepthWriteEnableEXT vkCmdSetDepthWriteEnableEXT;
1061 extern PFN_vkCmdSetFrontFaceEXT vkCmdSetFrontFaceEXT;
1062 extern PFN_vkCmdSetPrimitiveTopologyEXT vkCmdSetPrimitiveTopologyEXT;
1063 extern PFN_vkCmdSetScissorWithCountEXT vkCmdSetScissorWithCountEXT;
1064 extern PFN_vkCmdSetStencilOpEXT vkCmdSetStencilOpEXT;
1065 extern PFN_vkCmdSetStencilTestEnableEXT vkCmdSetStencilTestEnableEXT;
1066 extern PFN_vkCmdSetViewportWithCountEXT vkCmdSetViewportWithCountEXT;
1067 #endif /* defined(VK_EXT_extended_dynamic_state) */
1068 #if defined(VK_EXT_extended_dynamic_state2)
1069 extern PFN_vkCmdSetDepthBiasEnableEXT vkCmdSetDepthBiasEnableEXT;
1070 extern PFN_vkCmdSetLogicOpEXT vkCmdSetLogicOpEXT;
1071 extern PFN_vkCmdSetPatchControlPointsEXT vkCmdSetPatchControlPointsEXT;
1072 extern PFN_vkCmdSetPrimitiveRestartEnableEXT vkCmdSetPrimitiveRestartEnableEXT;
1073 extern PFN_vkCmdSetRasterizerDiscardEnableEXT vkCmdSetRasterizerDiscardEnableEXT;
1074 #endif /* defined(VK_EXT_extended_dynamic_state2) */
1075 #if defined(VK_EXT_external_memory_host)
1076 extern PFN_vkGetMemoryHostPointerPropertiesEXT vkGetMemoryHostPointerPropertiesEXT;
1077 #endif /* defined(VK_EXT_external_memory_host) */
1078 #if defined(VK_EXT_full_screen_exclusive)
1079 extern PFN_vkAcquireFullScreenExclusiveModeEXT vkAcquireFullScreenExclusiveModeEXT;
1080 extern PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT vkGetPhysicalDeviceSurfacePresentModes2EXT;
1081 extern PFN_vkReleaseFullScreenExclusiveModeEXT vkReleaseFullScreenExclusiveModeEXT;
1082 #endif /* defined(VK_EXT_full_screen_exclusive) */
1083 #if defined(VK_EXT_hdr_metadata)
1084 extern PFN_vkSetHdrMetadataEXT vkSetHdrMetadataEXT;
1085 #endif /* defined(VK_EXT_hdr_metadata) */
1086 #if defined(VK_EXT_headless_surface)
1087 extern PFN_vkCreateHeadlessSurfaceEXT vkCreateHeadlessSurfaceEXT;
1088 #endif /* defined(VK_EXT_headless_surface) */
1089 #if defined(VK_EXT_host_query_reset)
1090 extern PFN_vkResetQueryPoolEXT vkResetQueryPoolEXT;
1091 #endif /* defined(VK_EXT_host_query_reset) */
1092 #if defined(VK_EXT_image_drm_format_modifier)
1093 extern PFN_vkGetImageDrmFormatModifierPropertiesEXT vkGetImageDrmFormatModifierPropertiesEXT;
1094 #endif /* defined(VK_EXT_image_drm_format_modifier) */
1095 #if defined(VK_EXT_line_rasterization)
1096 extern PFN_vkCmdSetLineStippleEXT vkCmdSetLineStippleEXT;
1097 #endif /* defined(VK_EXT_line_rasterization) */
1098 #if defined(VK_EXT_metal_surface)
1099 extern PFN_vkCreateMetalSurfaceEXT vkCreateMetalSurfaceEXT;
1100 #endif /* defined(VK_EXT_metal_surface) */
1101 #if defined(VK_EXT_multi_draw)
1102 extern PFN_vkCmdDrawMultiEXT vkCmdDrawMultiEXT;
1103 extern PFN_vkCmdDrawMultiIndexedEXT vkCmdDrawMultiIndexedEXT;
1104 #endif /* defined(VK_EXT_multi_draw) */
1105 #if defined(VK_EXT_pageable_device_local_memory)
1106 extern PFN_vkSetDeviceMemoryPriorityEXT vkSetDeviceMemoryPriorityEXT;
1107 #endif /* defined(VK_EXT_pageable_device_local_memory) */
1108 #if defined(VK_EXT_private_data)
1109 extern PFN_vkCreatePrivateDataSlotEXT vkCreatePrivateDataSlotEXT;
1110 extern PFN_vkDestroyPrivateDataSlotEXT vkDestroyPrivateDataSlotEXT;
1111 extern PFN_vkGetPrivateDataEXT vkGetPrivateDataEXT;
1112 extern PFN_vkSetPrivateDataEXT vkSetPrivateDataEXT;
1113 #endif /* defined(VK_EXT_private_data) */
1114 #if defined(VK_EXT_sample_locations)
1115 extern PFN_vkCmdSetSampleLocationsEXT vkCmdSetSampleLocationsEXT;
1116 extern PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT vkGetPhysicalDeviceMultisamplePropertiesEXT;
1117 #endif /* defined(VK_EXT_sample_locations) */
1118 #if defined(VK_EXT_tooling_info)
1119 extern PFN_vkGetPhysicalDeviceToolPropertiesEXT vkGetPhysicalDeviceToolPropertiesEXT;
1120 #endif /* defined(VK_EXT_tooling_info) */
1121 #if defined(VK_EXT_transform_feedback)
1122 extern PFN_vkCmdBeginQueryIndexedEXT vkCmdBeginQueryIndexedEXT;
1123 extern PFN_vkCmdBeginTransformFeedbackEXT vkCmdBeginTransformFeedbackEXT;
1124 extern PFN_vkCmdBindTransformFeedbackBuffersEXT vkCmdBindTransformFeedbackBuffersEXT;
1125 extern PFN_vkCmdDrawIndirectByteCountEXT vkCmdDrawIndirectByteCountEXT;
1126 extern PFN_vkCmdEndQueryIndexedEXT vkCmdEndQueryIndexedEXT;
1127 extern PFN_vkCmdEndTransformFeedbackEXT vkCmdEndTransformFeedbackEXT;
1128 #endif /* defined(VK_EXT_transform_feedback) */
1129 #if defined(VK_EXT_validation_cache)
1130 extern PFN_vkCreateValidationCacheEXT vkCreateValidationCacheEXT;
1131 extern PFN_vkDestroyValidationCacheEXT vkDestroyValidationCacheEXT;
1132 extern PFN_vkGetValidationCacheDataEXT vkGetValidationCacheDataEXT;
1133 extern PFN_vkMergeValidationCachesEXT vkMergeValidationCachesEXT;
1134 #endif /* defined(VK_EXT_validation_cache) */
1135 #if defined(VK_EXT_vertex_input_dynamic_state)
1136 extern PFN_vkCmdSetVertexInputEXT vkCmdSetVertexInputEXT;
1137 #endif /* defined(VK_EXT_vertex_input_dynamic_state) */
1138 #if defined(VK_FUCHSIA_buffer_collection)
1139 extern PFN_vkCreateBufferCollectionFUCHSIA vkCreateBufferCollectionFUCHSIA;
1140 extern PFN_vkDestroyBufferCollectionFUCHSIA vkDestroyBufferCollectionFUCHSIA;
1141 extern PFN_vkGetBufferCollectionPropertiesFUCHSIA vkGetBufferCollectionPropertiesFUCHSIA;
1142 extern PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA vkSetBufferCollectionBufferConstraintsFUCHSIA;
1143 extern PFN_vkSetBufferCollectionImageConstraintsFUCHSIA vkSetBufferCollectionImageConstraintsFUCHSIA;
1144 #endif /* defined(VK_FUCHSIA_buffer_collection) */
1145 #if defined(VK_FUCHSIA_external_memory)
1146 extern PFN_vkGetMemoryZirconHandleFUCHSIA vkGetMemoryZirconHandleFUCHSIA;
1147 extern PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA vkGetMemoryZirconHandlePropertiesFUCHSIA;
1148 #endif /* defined(VK_FUCHSIA_external_memory) */
1149 #if defined(VK_FUCHSIA_external_semaphore)
1150 extern PFN_vkGetSemaphoreZirconHandleFUCHSIA vkGetSemaphoreZirconHandleFUCHSIA;
1151 extern PFN_vkImportSemaphoreZirconHandleFUCHSIA vkImportSemaphoreZirconHandleFUCHSIA;
1152 #endif /* defined(VK_FUCHSIA_external_semaphore) */
1153 #if defined(VK_FUCHSIA_imagepipe_surface)
1154 extern PFN_vkCreateImagePipeSurfaceFUCHSIA vkCreateImagePipeSurfaceFUCHSIA;
1155 #endif /* defined(VK_FUCHSIA_imagepipe_surface) */
1156 #if defined(VK_GGP_stream_descriptor_surface)
1157 extern PFN_vkCreateStreamDescriptorSurfaceGGP vkCreateStreamDescriptorSurfaceGGP;
1158 #endif /* defined(VK_GGP_stream_descriptor_surface) */
1159 #if defined(VK_GOOGLE_display_timing)
1160 extern PFN_vkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLE;
1161 extern PFN_vkGetRefreshCycleDurationGOOGLE vkGetRefreshCycleDurationGOOGLE;
1162 #endif /* defined(VK_GOOGLE_display_timing) */
1163 #if defined(VK_HUAWEI_invocation_mask)
1164 extern PFN_vkCmdBindInvocationMaskHUAWEI vkCmdBindInvocationMaskHUAWEI;
1165 #endif /* defined(VK_HUAWEI_invocation_mask) */
1166 #if defined(VK_HUAWEI_subpass_shading)
1167 extern PFN_vkCmdSubpassShadingHUAWEI vkCmdSubpassShadingHUAWEI;
1168 extern PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI;
1169 #endif /* defined(VK_HUAWEI_subpass_shading) */
1170 #if defined(VK_INTEL_performance_query)
1171 extern PFN_vkAcquirePerformanceConfigurationINTEL vkAcquirePerformanceConfigurationINTEL;
1172 extern PFN_vkCmdSetPerformanceMarkerINTEL vkCmdSetPerformanceMarkerINTEL;
1173 extern PFN_vkCmdSetPerformanceOverrideINTEL vkCmdSetPerformanceOverrideINTEL;
1174 extern PFN_vkCmdSetPerformanceStreamMarkerINTEL vkCmdSetPerformanceStreamMarkerINTEL;
1175 extern PFN_vkGetPerformanceParameterINTEL vkGetPerformanceParameterINTEL;
1176 extern PFN_vkInitializePerformanceApiINTEL vkInitializePerformanceApiINTEL;
1177 extern PFN_vkQueueSetPerformanceConfigurationINTEL vkQueueSetPerformanceConfigurationINTEL;
1178 extern PFN_vkReleasePerformanceConfigurationINTEL vkReleasePerformanceConfigurationINTEL;
1179 extern PFN_vkUninitializePerformanceApiINTEL vkUninitializePerformanceApiINTEL;
1180 #endif /* defined(VK_INTEL_performance_query) */
1181 #if defined(VK_KHR_acceleration_structure)
1182 extern PFN_vkBuildAccelerationStructuresKHR vkBuildAccelerationStructuresKHR;
1183 extern PFN_vkCmdBuildAccelerationStructuresIndirectKHR vkCmdBuildAccelerationStructuresIndirectKHR;
1184 extern PFN_vkCmdBuildAccelerationStructuresKHR vkCmdBuildAccelerationStructuresKHR;
1185 extern PFN_vkCmdCopyAccelerationStructureKHR vkCmdCopyAccelerationStructureKHR;
1186 extern PFN_vkCmdCopyAccelerationStructureToMemoryKHR vkCmdCopyAccelerationStructureToMemoryKHR;
1187 extern PFN_vkCmdCopyMemoryToAccelerationStructureKHR vkCmdCopyMemoryToAccelerationStructureKHR;
1188 extern PFN_vkCmdWriteAccelerationStructuresPropertiesKHR vkCmdWriteAccelerationStructuresPropertiesKHR;
1189 extern PFN_vkCopyAccelerationStructureKHR vkCopyAccelerationStructureKHR;
1190 extern PFN_vkCopyAccelerationStructureToMemoryKHR vkCopyAccelerationStructureToMemoryKHR;
1191 extern PFN_vkCopyMemoryToAccelerationStructureKHR vkCopyMemoryToAccelerationStructureKHR;
1192 extern PFN_vkCreateAccelerationStructureKHR vkCreateAccelerationStructureKHR;
1193 extern PFN_vkDestroyAccelerationStructureKHR vkDestroyAccelerationStructureKHR;
1194 extern PFN_vkGetAccelerationStructureBuildSizesKHR vkGetAccelerationStructureBuildSizesKHR;
1195 extern PFN_vkGetAccelerationStructureDeviceAddressKHR vkGetAccelerationStructureDeviceAddressKHR;
1196 extern PFN_vkGetDeviceAccelerationStructureCompatibilityKHR vkGetDeviceAccelerationStructureCompatibilityKHR;
1197 extern PFN_vkWriteAccelerationStructuresPropertiesKHR vkWriteAccelerationStructuresPropertiesKHR;
1198 #endif /* defined(VK_KHR_acceleration_structure) */
1199 #if defined(VK_KHR_android_surface)
1200 extern PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR;
1201 #endif /* defined(VK_KHR_android_surface) */
1202 #if defined(VK_KHR_bind_memory2)
1203 extern PFN_vkBindBufferMemory2KHR vkBindBufferMemory2KHR;
1204 extern PFN_vkBindImageMemory2KHR vkBindImageMemory2KHR;
1205 #endif /* defined(VK_KHR_bind_memory2) */
1206 #if defined(VK_KHR_buffer_device_address)
1207 extern PFN_vkGetBufferDeviceAddressKHR vkGetBufferDeviceAddressKHR;
1208 extern PFN_vkGetBufferOpaqueCaptureAddressKHR vkGetBufferOpaqueCaptureAddressKHR;
1209 extern PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR vkGetDeviceMemoryOpaqueCaptureAddressKHR;
1210 #endif /* defined(VK_KHR_buffer_device_address) */
1211 #if defined(VK_KHR_copy_commands2)
1212 extern PFN_vkCmdBlitImage2KHR vkCmdBlitImage2KHR;
1213 extern PFN_vkCmdCopyBuffer2KHR vkCmdCopyBuffer2KHR;
1214 extern PFN_vkCmdCopyBufferToImage2KHR vkCmdCopyBufferToImage2KHR;
1215 extern PFN_vkCmdCopyImage2KHR vkCmdCopyImage2KHR;
1216 extern PFN_vkCmdCopyImageToBuffer2KHR vkCmdCopyImageToBuffer2KHR;
1217 extern PFN_vkCmdResolveImage2KHR vkCmdResolveImage2KHR;
1218 #endif /* defined(VK_KHR_copy_commands2) */
1219 #if defined(VK_KHR_create_renderpass2)
1220 extern PFN_vkCmdBeginRenderPass2KHR vkCmdBeginRenderPass2KHR;
1221 extern PFN_vkCmdEndRenderPass2KHR vkCmdEndRenderPass2KHR;
1222 extern PFN_vkCmdNextSubpass2KHR vkCmdNextSubpass2KHR;
1223 extern PFN_vkCreateRenderPass2KHR vkCreateRenderPass2KHR;
1224 #endif /* defined(VK_KHR_create_renderpass2) */
1225 #if defined(VK_KHR_deferred_host_operations)
1226 extern PFN_vkCreateDeferredOperationKHR vkCreateDeferredOperationKHR;
1227 extern PFN_vkDeferredOperationJoinKHR vkDeferredOperationJoinKHR;
1228 extern PFN_vkDestroyDeferredOperationKHR vkDestroyDeferredOperationKHR;
1229 extern PFN_vkGetDeferredOperationMaxConcurrencyKHR vkGetDeferredOperationMaxConcurrencyKHR;
1230 extern PFN_vkGetDeferredOperationResultKHR vkGetDeferredOperationResultKHR;
1231 #endif /* defined(VK_KHR_deferred_host_operations) */
1232 #if defined(VK_KHR_descriptor_update_template)
1233 extern PFN_vkCreateDescriptorUpdateTemplateKHR vkCreateDescriptorUpdateTemplateKHR;
1234 extern PFN_vkDestroyDescriptorUpdateTemplateKHR vkDestroyDescriptorUpdateTemplateKHR;
1235 extern PFN_vkUpdateDescriptorSetWithTemplateKHR vkUpdateDescriptorSetWithTemplateKHR;
1236 #endif /* defined(VK_KHR_descriptor_update_template) */
1237 #if defined(VK_KHR_device_group)
1238 extern PFN_vkCmdDispatchBaseKHR vkCmdDispatchBaseKHR;
1239 extern PFN_vkCmdSetDeviceMaskKHR vkCmdSetDeviceMaskKHR;
1240 extern PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR vkGetDeviceGroupPeerMemoryFeaturesKHR;
1241 #endif /* defined(VK_KHR_device_group) */
1242 #if defined(VK_KHR_device_group_creation)
1243 extern PFN_vkEnumeratePhysicalDeviceGroupsKHR vkEnumeratePhysicalDeviceGroupsKHR;
1244 #endif /* defined(VK_KHR_device_group_creation) */
1245 #if defined(VK_KHR_display)
1246 extern PFN_vkCreateDisplayModeKHR vkCreateDisplayModeKHR;
1247 extern PFN_vkCreateDisplayPlaneSurfaceKHR vkCreateDisplayPlaneSurfaceKHR;
1248 extern PFN_vkGetDisplayModePropertiesKHR vkGetDisplayModePropertiesKHR;
1249 extern PFN_vkGetDisplayPlaneCapabilitiesKHR vkGetDisplayPlaneCapabilitiesKHR;
1250 extern PFN_vkGetDisplayPlaneSupportedDisplaysKHR vkGetDisplayPlaneSupportedDisplaysKHR;
1251 extern PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHR;
1252 extern PFN_vkGetPhysicalDeviceDisplayPropertiesKHR vkGetPhysicalDeviceDisplayPropertiesKHR;
1253 #endif /* defined(VK_KHR_display) */
1254 #if defined(VK_KHR_display_swapchain)
1255 extern PFN_vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR;
1256 #endif /* defined(VK_KHR_display_swapchain) */
1257 #if defined(VK_KHR_draw_indirect_count)
1258 extern PFN_vkCmdDrawIndexedIndirectCountKHR vkCmdDrawIndexedIndirectCountKHR;
1259 extern PFN_vkCmdDrawIndirectCountKHR vkCmdDrawIndirectCountKHR;
1260 #endif /* defined(VK_KHR_draw_indirect_count) */
1261 #if defined(VK_KHR_dynamic_rendering)
1262 extern PFN_vkCmdBeginRenderingKHR vkCmdBeginRenderingKHR;
1263 extern PFN_vkCmdEndRenderingKHR vkCmdEndRenderingKHR;
1264 #endif /* defined(VK_KHR_dynamic_rendering) */
1265 #if defined(VK_KHR_external_fence_capabilities)
1266 extern PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR vkGetPhysicalDeviceExternalFencePropertiesKHR;
1267 #endif /* defined(VK_KHR_external_fence_capabilities) */
1268 #if defined(VK_KHR_external_fence_fd)
1269 extern PFN_vkGetFenceFdKHR vkGetFenceFdKHR;
1270 extern PFN_vkImportFenceFdKHR vkImportFenceFdKHR;
1271 #endif /* defined(VK_KHR_external_fence_fd) */
1272 #if defined(VK_KHR_external_fence_win32)
1273 extern PFN_vkGetFenceWin32HandleKHR vkGetFenceWin32HandleKHR;
1274 extern PFN_vkImportFenceWin32HandleKHR vkImportFenceWin32HandleKHR;
1275 #endif /* defined(VK_KHR_external_fence_win32) */
1276 #if defined(VK_KHR_external_memory_capabilities)
1277 extern PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR vkGetPhysicalDeviceExternalBufferPropertiesKHR;
1278 #endif /* defined(VK_KHR_external_memory_capabilities) */
1279 #if defined(VK_KHR_external_memory_fd)
1280 extern PFN_vkGetMemoryFdKHR vkGetMemoryFdKHR;
1281 extern PFN_vkGetMemoryFdPropertiesKHR vkGetMemoryFdPropertiesKHR;
1282 #endif /* defined(VK_KHR_external_memory_fd) */
1283 #if defined(VK_KHR_external_memory_win32)
1284 extern PFN_vkGetMemoryWin32HandleKHR vkGetMemoryWin32HandleKHR;
1285 extern PFN_vkGetMemoryWin32HandlePropertiesKHR vkGetMemoryWin32HandlePropertiesKHR;
1286 #endif /* defined(VK_KHR_external_memory_win32) */
1287 #if defined(VK_KHR_external_semaphore_capabilities)
1288 extern PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR vkGetPhysicalDeviceExternalSemaphorePropertiesKHR;
1289 #endif /* defined(VK_KHR_external_semaphore_capabilities) */
1290 #if defined(VK_KHR_external_semaphore_fd)
1291 extern PFN_vkGetSemaphoreFdKHR vkGetSemaphoreFdKHR;
1292 extern PFN_vkImportSemaphoreFdKHR vkImportSemaphoreFdKHR;
1293 #endif /* defined(VK_KHR_external_semaphore_fd) */
1294 #if defined(VK_KHR_external_semaphore_win32)
1295 extern PFN_vkGetSemaphoreWin32HandleKHR vkGetSemaphoreWin32HandleKHR;
1296 extern PFN_vkImportSemaphoreWin32HandleKHR vkImportSemaphoreWin32HandleKHR;
1297 #endif /* defined(VK_KHR_external_semaphore_win32) */
1298 #if defined(VK_KHR_fragment_shading_rate)
1299 extern PFN_vkCmdSetFragmentShadingRateKHR vkCmdSetFragmentShadingRateKHR;
1300 extern PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR vkGetPhysicalDeviceFragmentShadingRatesKHR;
1301 #endif /* defined(VK_KHR_fragment_shading_rate) */
1302 #if defined(VK_KHR_get_display_properties2)
1303 extern PFN_vkGetDisplayModeProperties2KHR vkGetDisplayModeProperties2KHR;
1304 extern PFN_vkGetDisplayPlaneCapabilities2KHR vkGetDisplayPlaneCapabilities2KHR;
1305 extern PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR vkGetPhysicalDeviceDisplayPlaneProperties2KHR;
1306 extern PFN_vkGetPhysicalDeviceDisplayProperties2KHR vkGetPhysicalDeviceDisplayProperties2KHR;
1307 #endif /* defined(VK_KHR_get_display_properties2) */
1308 #if defined(VK_KHR_get_memory_requirements2)
1309 extern PFN_vkGetBufferMemoryRequirements2KHR vkGetBufferMemoryRequirements2KHR;
1310 extern PFN_vkGetImageMemoryRequirements2KHR vkGetImageMemoryRequirements2KHR;
1311 extern PFN_vkGetImageSparseMemoryRequirements2KHR vkGetImageSparseMemoryRequirements2KHR;
1312 #endif /* defined(VK_KHR_get_memory_requirements2) */
1313 #if defined(VK_KHR_get_physical_device_properties2)
1314 extern PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR;
1315 extern PFN_vkGetPhysicalDeviceFormatProperties2KHR vkGetPhysicalDeviceFormatProperties2KHR;
1316 extern PFN_vkGetPhysicalDeviceImageFormatProperties2KHR vkGetPhysicalDeviceImageFormatProperties2KHR;
1317 extern PFN_vkGetPhysicalDeviceMemoryProperties2KHR vkGetPhysicalDeviceMemoryProperties2KHR;
1318 extern PFN_vkGetPhysicalDeviceProperties2KHR vkGetPhysicalDeviceProperties2KHR;
1319 extern PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR vkGetPhysicalDeviceQueueFamilyProperties2KHR;
1320 extern PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR vkGetPhysicalDeviceSparseImageFormatProperties2KHR;
1321 #endif /* defined(VK_KHR_get_physical_device_properties2) */
1322 #if defined(VK_KHR_get_surface_capabilities2)
1323 extern PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR vkGetPhysicalDeviceSurfaceCapabilities2KHR;
1324 extern PFN_vkGetPhysicalDeviceSurfaceFormats2KHR vkGetPhysicalDeviceSurfaceFormats2KHR;
1325 #endif /* defined(VK_KHR_get_surface_capabilities2) */
1326 #if defined(VK_KHR_maintenance1)
1327 extern PFN_vkTrimCommandPoolKHR vkTrimCommandPoolKHR;
1328 #endif /* defined(VK_KHR_maintenance1) */
1329 #if defined(VK_KHR_maintenance3)
1330 extern PFN_vkGetDescriptorSetLayoutSupportKHR vkGetDescriptorSetLayoutSupportKHR;
1331 #endif /* defined(VK_KHR_maintenance3) */
1332 #if defined(VK_KHR_maintenance4)
1333 extern PFN_vkGetDeviceBufferMemoryRequirementsKHR vkGetDeviceBufferMemoryRequirementsKHR;
1334 extern PFN_vkGetDeviceImageMemoryRequirementsKHR vkGetDeviceImageMemoryRequirementsKHR;
1335 extern PFN_vkGetDeviceImageSparseMemoryRequirementsKHR vkGetDeviceImageSparseMemoryRequirementsKHR;
1336 #endif /* defined(VK_KHR_maintenance4) */
1337 #if defined(VK_KHR_performance_query)
1338 extern PFN_vkAcquireProfilingLockKHR vkAcquireProfilingLockKHR;
1339 extern PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR;
1340 extern PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR;
1341 extern PFN_vkReleaseProfilingLockKHR vkReleaseProfilingLockKHR;
1342 #endif /* defined(VK_KHR_performance_query) */
1343 #if defined(VK_KHR_pipeline_executable_properties)
1344 extern PFN_vkGetPipelineExecutableInternalRepresentationsKHR vkGetPipelineExecutableInternalRepresentationsKHR;
1345 extern PFN_vkGetPipelineExecutablePropertiesKHR vkGetPipelineExecutablePropertiesKHR;
1346 extern PFN_vkGetPipelineExecutableStatisticsKHR vkGetPipelineExecutableStatisticsKHR;
1347 #endif /* defined(VK_KHR_pipeline_executable_properties) */
1348 #if defined(VK_KHR_present_wait)
1349 extern PFN_vkWaitForPresentKHR vkWaitForPresentKHR;
1350 #endif /* defined(VK_KHR_present_wait) */
1351 #if defined(VK_KHR_push_descriptor)
1352 extern PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR;
1353 #endif /* defined(VK_KHR_push_descriptor) */
1354 #if defined(VK_KHR_ray_tracing_pipeline)
1355 extern PFN_vkCmdSetRayTracingPipelineStackSizeKHR vkCmdSetRayTracingPipelineStackSizeKHR;
1356 extern PFN_vkCmdTraceRaysIndirectKHR vkCmdTraceRaysIndirectKHR;
1357 extern PFN_vkCmdTraceRaysKHR vkCmdTraceRaysKHR;
1358 extern PFN_vkCreateRayTracingPipelinesKHR vkCreateRayTracingPipelinesKHR;
1359 extern PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR vkGetRayTracingCaptureReplayShaderGroupHandlesKHR;
1360 extern PFN_vkGetRayTracingShaderGroupHandlesKHR vkGetRayTracingShaderGroupHandlesKHR;
1361 extern PFN_vkGetRayTracingShaderGroupStackSizeKHR vkGetRayTracingShaderGroupStackSizeKHR;
1362 #endif /* defined(VK_KHR_ray_tracing_pipeline) */
1363 #if defined(VK_KHR_sampler_ycbcr_conversion)
1364 extern PFN_vkCreateSamplerYcbcrConversionKHR vkCreateSamplerYcbcrConversionKHR;
1365 extern PFN_vkDestroySamplerYcbcrConversionKHR vkDestroySamplerYcbcrConversionKHR;
1366 #endif /* defined(VK_KHR_sampler_ycbcr_conversion) */
1367 #if defined(VK_KHR_shared_presentable_image)
1368 extern PFN_vkGetSwapchainStatusKHR vkGetSwapchainStatusKHR;
1369 #endif /* defined(VK_KHR_shared_presentable_image) */
1370 #if defined(VK_KHR_surface)
1371 extern PFN_vkDestroySurfaceKHR vkDestroySurfaceKHR;
1372 extern PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR;
1373 extern PFN_vkGetPhysicalDeviceSurfaceFormatsKHR vkGetPhysicalDeviceSurfaceFormatsKHR;
1374 extern PFN_vkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModesKHR;
1375 extern PFN_vkGetPhysicalDeviceSurfaceSupportKHR vkGetPhysicalDeviceSurfaceSupportKHR;
1376 #endif /* defined(VK_KHR_surface) */
1377 #if defined(VK_KHR_swapchain)
1378 extern PFN_vkAcquireNextImageKHR vkAcquireNextImageKHR;
1379 extern PFN_vkCreateSwapchainKHR vkCreateSwapchainKHR;
1380 extern PFN_vkDestroySwapchainKHR vkDestroySwapchainKHR;
1381 extern PFN_vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR;
1382 extern PFN_vkQueuePresentKHR vkQueuePresentKHR;
1383 #endif /* defined(VK_KHR_swapchain) */
1384 #if defined(VK_KHR_synchronization2)
1385 extern PFN_vkCmdPipelineBarrier2KHR vkCmdPipelineBarrier2KHR;
1386 extern PFN_vkCmdResetEvent2KHR vkCmdResetEvent2KHR;
1387 extern PFN_vkCmdSetEvent2KHR vkCmdSetEvent2KHR;
1388 extern PFN_vkCmdWaitEvents2KHR vkCmdWaitEvents2KHR;
1389 extern PFN_vkCmdWriteTimestamp2KHR vkCmdWriteTimestamp2KHR;
1390 extern PFN_vkQueueSubmit2KHR vkQueueSubmit2KHR;
1391 #endif /* defined(VK_KHR_synchronization2) */
1392 #if defined(VK_KHR_synchronization2) && defined(VK_AMD_buffer_marker)
1393 extern PFN_vkCmdWriteBufferMarker2AMD vkCmdWriteBufferMarker2AMD;
1394 #endif /* defined(VK_KHR_synchronization2) && defined(VK_AMD_buffer_marker) */
1395 #if defined(VK_KHR_synchronization2) && defined(VK_NV_device_diagnostic_checkpoints)
1396 extern PFN_vkGetQueueCheckpointData2NV vkGetQueueCheckpointData2NV;
1397 #endif /* defined(VK_KHR_synchronization2) && defined(VK_NV_device_diagnostic_checkpoints) */
1398 #if defined(VK_KHR_timeline_semaphore)
1399 extern PFN_vkGetSemaphoreCounterValueKHR vkGetSemaphoreCounterValueKHR;
1400 extern PFN_vkSignalSemaphoreKHR vkSignalSemaphoreKHR;
1401 extern PFN_vkWaitSemaphoresKHR vkWaitSemaphoresKHR;
1402 #endif /* defined(VK_KHR_timeline_semaphore) */
1403 #if defined(VK_KHR_video_decode_queue)
1404 extern PFN_vkCmdDecodeVideoKHR vkCmdDecodeVideoKHR;
1405 #endif /* defined(VK_KHR_video_decode_queue) */
1406 #if defined(VK_KHR_video_encode_queue)
1407 extern PFN_vkCmdEncodeVideoKHR vkCmdEncodeVideoKHR;
1408 #endif /* defined(VK_KHR_video_encode_queue) */
1409 #if defined(VK_KHR_video_queue)
1410 extern PFN_vkBindVideoSessionMemoryKHR vkBindVideoSessionMemoryKHR;
1411 extern PFN_vkCmdBeginVideoCodingKHR vkCmdBeginVideoCodingKHR;
1412 extern PFN_vkCmdControlVideoCodingKHR vkCmdControlVideoCodingKHR;
1413 extern PFN_vkCmdEndVideoCodingKHR vkCmdEndVideoCodingKHR;
1414 extern PFN_vkCreateVideoSessionKHR vkCreateVideoSessionKHR;
1415 extern PFN_vkCreateVideoSessionParametersKHR vkCreateVideoSessionParametersKHR;
1416 extern PFN_vkDestroyVideoSessionKHR vkDestroyVideoSessionKHR;
1417 extern PFN_vkDestroyVideoSessionParametersKHR vkDestroyVideoSessionParametersKHR;
1418 extern PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR vkGetPhysicalDeviceVideoCapabilitiesKHR;
1419 extern PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR vkGetPhysicalDeviceVideoFormatPropertiesKHR;
1420 extern PFN_vkGetVideoSessionMemoryRequirementsKHR vkGetVideoSessionMemoryRequirementsKHR;
1421 extern PFN_vkUpdateVideoSessionParametersKHR vkUpdateVideoSessionParametersKHR;
1422 #endif /* defined(VK_KHR_video_queue) */
1423 #if defined(VK_KHR_wayland_surface)
1424 extern PFN_vkCreateWaylandSurfaceKHR vkCreateWaylandSurfaceKHR;
1425 extern PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR vkGetPhysicalDeviceWaylandPresentationSupportKHR;
1426 #endif /* defined(VK_KHR_wayland_surface) */
1427 #if defined(VK_KHR_win32_surface)
1428 extern PFN_vkCreateWin32SurfaceKHR vkCreateWin32SurfaceKHR;
1429 extern PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR vkGetPhysicalDeviceWin32PresentationSupportKHR;
1430 #endif /* defined(VK_KHR_win32_surface) */
1431 #if defined(VK_KHR_xcb_surface)
1432 extern PFN_vkCreateXcbSurfaceKHR vkCreateXcbSurfaceKHR;
1433 extern PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR vkGetPhysicalDeviceXcbPresentationSupportKHR;
1434 #endif /* defined(VK_KHR_xcb_surface) */
1435 #if defined(VK_KHR_xlib_surface)
1436 extern PFN_vkCreateXlibSurfaceKHR vkCreateXlibSurfaceKHR;
1437 extern PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR vkGetPhysicalDeviceXlibPresentationSupportKHR;
1438 #endif /* defined(VK_KHR_xlib_surface) */
1439 #if defined(VK_MVK_ios_surface)
1440 extern PFN_vkCreateIOSSurfaceMVK vkCreateIOSSurfaceMVK;
1441 #endif /* defined(VK_MVK_ios_surface) */
1442 #if defined(VK_MVK_macos_surface)
1443 extern PFN_vkCreateMacOSSurfaceMVK vkCreateMacOSSurfaceMVK;
1444 #endif /* defined(VK_MVK_macos_surface) */
1445 #if defined(VK_NN_vi_surface)
1446 extern PFN_vkCreateViSurfaceNN vkCreateViSurfaceNN;
1447 #endif /* defined(VK_NN_vi_surface) */
1448 #if defined(VK_NVX_binary_import)
1449 extern PFN_vkCmdCuLaunchKernelNVX vkCmdCuLaunchKernelNVX;
1450 extern PFN_vkCreateCuFunctionNVX vkCreateCuFunctionNVX;
1451 extern PFN_vkCreateCuModuleNVX vkCreateCuModuleNVX;
1452 extern PFN_vkDestroyCuFunctionNVX vkDestroyCuFunctionNVX;
1453 extern PFN_vkDestroyCuModuleNVX vkDestroyCuModuleNVX;
1454 #endif /* defined(VK_NVX_binary_import) */
1455 #if defined(VK_NVX_image_view_handle)
1456 extern PFN_vkGetImageViewAddressNVX vkGetImageViewAddressNVX;
1457 extern PFN_vkGetImageViewHandleNVX vkGetImageViewHandleNVX;
1458 #endif /* defined(VK_NVX_image_view_handle) */
1459 #if defined(VK_NV_acquire_winrt_display)
1460 extern PFN_vkAcquireWinrtDisplayNV vkAcquireWinrtDisplayNV;
1461 extern PFN_vkGetWinrtDisplayNV vkGetWinrtDisplayNV;
1462 #endif /* defined(VK_NV_acquire_winrt_display) */
1463 #if defined(VK_NV_clip_space_w_scaling)
1464 extern PFN_vkCmdSetViewportWScalingNV vkCmdSetViewportWScalingNV;
1465 #endif /* defined(VK_NV_clip_space_w_scaling) */
1466 #if defined(VK_NV_cooperative_matrix)
1467 extern PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV vkGetPhysicalDeviceCooperativeMatrixPropertiesNV;
1468 #endif /* defined(VK_NV_cooperative_matrix) */
1469 #if defined(VK_NV_coverage_reduction_mode)
1470 extern PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV;
1471 #endif /* defined(VK_NV_coverage_reduction_mode) */
1472 #if defined(VK_NV_device_diagnostic_checkpoints)
1473 extern PFN_vkCmdSetCheckpointNV vkCmdSetCheckpointNV;
1474 extern PFN_vkGetQueueCheckpointDataNV vkGetQueueCheckpointDataNV;
1475 #endif /* defined(VK_NV_device_diagnostic_checkpoints) */
1476 #if defined(VK_NV_device_generated_commands)
1477 extern PFN_vkCmdBindPipelineShaderGroupNV vkCmdBindPipelineShaderGroupNV;
1478 extern PFN_vkCmdExecuteGeneratedCommandsNV vkCmdExecuteGeneratedCommandsNV;
1479 extern PFN_vkCmdPreprocessGeneratedCommandsNV vkCmdPreprocessGeneratedCommandsNV;
1480 extern PFN_vkCreateIndirectCommandsLayoutNV vkCreateIndirectCommandsLayoutNV;
1481 extern PFN_vkDestroyIndirectCommandsLayoutNV vkDestroyIndirectCommandsLayoutNV;
1482 extern PFN_vkGetGeneratedCommandsMemoryRequirementsNV vkGetGeneratedCommandsMemoryRequirementsNV;
1483 #endif /* defined(VK_NV_device_generated_commands) */
1484 #if defined(VK_NV_external_memory_capabilities)
1485 extern PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV vkGetPhysicalDeviceExternalImageFormatPropertiesNV;
1486 #endif /* defined(VK_NV_external_memory_capabilities) */
1487 #if defined(VK_NV_external_memory_rdma)
1488 extern PFN_vkGetMemoryRemoteAddressNV vkGetMemoryRemoteAddressNV;
1489 #endif /* defined(VK_NV_external_memory_rdma) */
1490 #if defined(VK_NV_external_memory_win32)
1491 extern PFN_vkGetMemoryWin32HandleNV vkGetMemoryWin32HandleNV;
1492 #endif /* defined(VK_NV_external_memory_win32) */
1493 #if defined(VK_NV_fragment_shading_rate_enums)
1494 extern PFN_vkCmdSetFragmentShadingRateEnumNV vkCmdSetFragmentShadingRateEnumNV;
1495 #endif /* defined(VK_NV_fragment_shading_rate_enums) */
1496 #if defined(VK_NV_mesh_shader)
1497 extern PFN_vkCmdDrawMeshTasksIndirectCountNV vkCmdDrawMeshTasksIndirectCountNV;
1498 extern PFN_vkCmdDrawMeshTasksIndirectNV vkCmdDrawMeshTasksIndirectNV;
1499 extern PFN_vkCmdDrawMeshTasksNV vkCmdDrawMeshTasksNV;
1500 #endif /* defined(VK_NV_mesh_shader) */
1501 #if defined(VK_NV_ray_tracing)
1502 extern PFN_vkBindAccelerationStructureMemoryNV vkBindAccelerationStructureMemoryNV;
1503 extern PFN_vkCmdBuildAccelerationStructureNV vkCmdBuildAccelerationStructureNV;
1504 extern PFN_vkCmdCopyAccelerationStructureNV vkCmdCopyAccelerationStructureNV;
1505 extern PFN_vkCmdTraceRaysNV vkCmdTraceRaysNV;
1506 extern PFN_vkCmdWriteAccelerationStructuresPropertiesNV vkCmdWriteAccelerationStructuresPropertiesNV;
1507 extern PFN_vkCompileDeferredNV vkCompileDeferredNV;
1508 extern PFN_vkCreateAccelerationStructureNV vkCreateAccelerationStructureNV;
1509 extern PFN_vkCreateRayTracingPipelinesNV vkCreateRayTracingPipelinesNV;
1510 extern PFN_vkDestroyAccelerationStructureNV vkDestroyAccelerationStructureNV;
1511 extern PFN_vkGetAccelerationStructureHandleNV vkGetAccelerationStructureHandleNV;
1512 extern PFN_vkGetAccelerationStructureMemoryRequirementsNV vkGetAccelerationStructureMemoryRequirementsNV;
1513 extern PFN_vkGetRayTracingShaderGroupHandlesNV vkGetRayTracingShaderGroupHandlesNV;
1514 #endif /* defined(VK_NV_ray_tracing) */
1515 #if defined(VK_NV_scissor_exclusive)
1516 extern PFN_vkCmdSetExclusiveScissorNV vkCmdSetExclusiveScissorNV;
1517 #endif /* defined(VK_NV_scissor_exclusive) */
1518 #if defined(VK_NV_shading_rate_image)
1519 extern PFN_vkCmdBindShadingRateImageNV vkCmdBindShadingRateImageNV;
1520 extern PFN_vkCmdSetCoarseSampleOrderNV vkCmdSetCoarseSampleOrderNV;
1521 extern PFN_vkCmdSetViewportShadingRatePaletteNV vkCmdSetViewportShadingRatePaletteNV;
1522 #endif /* defined(VK_NV_shading_rate_image) */
1523 #if defined(VK_QNX_screen_surface)
1524 extern PFN_vkCreateScreenSurfaceQNX vkCreateScreenSurfaceQNX;
1525 extern PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX vkGetPhysicalDeviceScreenPresentationSupportQNX;
1526 #endif /* defined(VK_QNX_screen_surface) */
1527 #if (defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group)) || (defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1))
1528 extern PFN_vkGetDeviceGroupSurfacePresentModes2EXT vkGetDeviceGroupSurfacePresentModes2EXT;
1529 #endif /* (defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group)) || (defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1)) */
1530 #if (defined(VK_KHR_descriptor_update_template) && defined(VK_KHR_push_descriptor)) || (defined(VK_KHR_push_descriptor) && defined(VK_VERSION_1_1)) || (defined(VK_KHR_push_descriptor) && defined(VK_KHR_descriptor_update_template))
1531 extern PFN_vkCmdPushDescriptorSetWithTemplateKHR vkCmdPushDescriptorSetWithTemplateKHR;
1532 #endif /* (defined(VK_KHR_descriptor_update_template) && defined(VK_KHR_push_descriptor)) || (defined(VK_KHR_push_descriptor) && defined(VK_VERSION_1_1)) || (defined(VK_KHR_push_descriptor) && defined(VK_KHR_descriptor_update_template)) */
1533 #if (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1))
1534 extern PFN_vkGetDeviceGroupPresentCapabilitiesKHR vkGetDeviceGroupPresentCapabilitiesKHR;
1535 extern PFN_vkGetDeviceGroupSurfacePresentModesKHR vkGetDeviceGroupSurfacePresentModesKHR;
1536 extern PFN_vkGetPhysicalDevicePresentRectanglesKHR vkGetPhysicalDevicePresentRectanglesKHR;
1537 #endif /* (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) */
1538 #if (defined(VK_KHR_device_group) && defined(VK_KHR_swapchain)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1))
1539 extern PFN_vkAcquireNextImage2KHR vkAcquireNextImage2KHR;
1540 #endif /* (defined(VK_KHR_device_group) && defined(VK_KHR_swapchain)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) */
1541 /* VOLK_GENERATE_PROTOTYPES_H */
1542 
1543 #ifdef __cplusplus
1544 }
1545 #endif
1546 
1547 #endif
1548 
1549 #ifdef VOLK_IMPLEMENTATION
1550 #undef VOLK_IMPLEMENTATION
1551 // Prevent tools like dependency checkers that don't evaluate
1552 // macros from detecting a cyclic dependency.
1553 #define VOLK_SOURCE "volk.c"
1554 #include VOLK_SOURCE
1555 #endif
1556 
1557 /**
1558  * Copyright (c) 2018-2019 Arseny Kapoulkine
1559  *
1560  * Permission is hereby granted, free of charge, to any person obtaining a copy
1561  * of this software and associated documentation files (the "Software"), to deal
1562  * in the Software without restriction, including without limitation the rights
1563  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
1564  * copies of the Software, and to permit persons to whom the Software is
1565  * furnished to do so, subject to the following conditions:
1566  *
1567  * The above copyright notice and this permission notice shall be included in all
1568  * copies or substantial portions of the Software.
1569  *
1570  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1571  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1572  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1573  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1574  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
1575  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
1576  * SOFTWARE.
1577 */
1578 /* clang-format on */
1579