tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

volk.h (90213B)


      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 */