The OpenD Programming Language

1 /**
2  * Dlang vulkan function pointer prototypes, declarations and loader from vkGetInstanceProcAddr
3  *
4  * Copyright: Copyright 2015-2016 The Khronos Group Inc.; Copyright 2016 Alex Parrill, Peter Particle.
5  * License:   $(https://opensource.org/licenses/MIT, MIT License).
6  * Authors: Copyright 2016 Alex Parrill, Peter Particle
7  */
8 module erupted.functions;
9 
10 public import erupted.types;
11 
12 nothrow @nogc:
13 
14 
15 /// function type aliases
16 extern( System ) {
17 
18     // VK_VERSION_1_0
19     alias PFN_vkCreateInstance                                                  = VkResult  function( const( VkInstanceCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkInstance* pInstance );
20     alias PFN_vkDestroyInstance                                                 = void      function( VkInstance instance, const( VkAllocationCallbacks )* pAllocator );
21     alias PFN_vkEnumeratePhysicalDevices                                        = VkResult  function( VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices );
22     alias PFN_vkGetPhysicalDeviceFeatures                                       = void      function( VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures );
23     alias PFN_vkGetPhysicalDeviceFormatProperties                               = void      function( VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties );
24     alias PFN_vkGetPhysicalDeviceImageFormatProperties                          = VkResult  function( VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties );
25     alias PFN_vkGetPhysicalDeviceProperties                                     = void      function( VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties );
26     alias PFN_vkGetPhysicalDeviceQueueFamilyProperties                          = void      function( VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties );
27     alias PFN_vkGetPhysicalDeviceMemoryProperties                               = void      function( VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties );
28     alias PFN_vkGetInstanceProcAddr                                             = PFN_vkVoidFunction  function( VkInstance instance, const( char )* pName );
29     alias PFN_vkGetDeviceProcAddr                                               = PFN_vkVoidFunction  function( VkDevice device, const( char )* pName );
30     alias PFN_vkCreateDevice                                                    = VkResult  function( VkPhysicalDevice physicalDevice, const( VkDeviceCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkDevice* pDevice );
31     alias PFN_vkDestroyDevice                                                   = void      function( VkDevice device, const( VkAllocationCallbacks )* pAllocator );
32     alias PFN_vkEnumerateInstanceExtensionProperties                            = VkResult  function( const( char )* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties );
33     alias PFN_vkEnumerateDeviceExtensionProperties                              = VkResult  function( VkPhysicalDevice physicalDevice, const( char )* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties );
34     alias PFN_vkEnumerateInstanceLayerProperties                                = VkResult  function( uint32_t* pPropertyCount, VkLayerProperties* pProperties );
35     alias PFN_vkEnumerateDeviceLayerProperties                                  = VkResult  function( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties );
36     alias PFN_vkGetDeviceQueue                                                  = void      function( VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue );
37     alias PFN_vkQueueSubmit                                                     = VkResult  function( VkQueue queue, uint32_t submitCount, const( VkSubmitInfo )* pSubmits, VkFence fence );
38     alias PFN_vkQueueWaitIdle                                                   = VkResult  function( VkQueue queue );
39     alias PFN_vkDeviceWaitIdle                                                  = VkResult  function( VkDevice device );
40     alias PFN_vkAllocateMemory                                                  = VkResult  function( VkDevice device, const( VkMemoryAllocateInfo )* pAllocateInfo, const( VkAllocationCallbacks )* pAllocator, VkDeviceMemory* pMemory );
41     alias PFN_vkFreeMemory                                                      = void      function( VkDevice device, VkDeviceMemory memory, const( VkAllocationCallbacks )* pAllocator );
42     alias PFN_vkMapMemory                                                       = VkResult  function( VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData );
43     alias PFN_vkUnmapMemory                                                     = void      function( VkDevice device, VkDeviceMemory memory );
44     alias PFN_vkFlushMappedMemoryRanges                                         = VkResult  function( VkDevice device, uint32_t memoryRangeCount, const( VkMappedMemoryRange )* pMemoryRanges );
45     alias PFN_vkInvalidateMappedMemoryRanges                                    = VkResult  function( VkDevice device, uint32_t memoryRangeCount, const( VkMappedMemoryRange )* pMemoryRanges );
46     alias PFN_vkGetDeviceMemoryCommitment                                       = void      function( VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes );
47     alias PFN_vkBindBufferMemory                                                = VkResult  function( VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset );
48     alias PFN_vkBindImageMemory                                                 = VkResult  function( VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset );
49     alias PFN_vkGetBufferMemoryRequirements                                     = void      function( VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements );
50     alias PFN_vkGetImageMemoryRequirements                                      = void      function( VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements );
51     alias PFN_vkGetImageSparseMemoryRequirements                                = void      function( VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements );
52     alias PFN_vkGetPhysicalDeviceSparseImageFormatProperties                    = void      function( VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties );
53     alias PFN_vkQueueBindSparse                                                 = VkResult  function( VkQueue queue, uint32_t bindInfoCount, const( VkBindSparseInfo )* pBindInfo, VkFence fence );
54     alias PFN_vkCreateFence                                                     = VkResult  function( VkDevice device, const( VkFenceCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkFence* pFence );
55     alias PFN_vkDestroyFence                                                    = void      function( VkDevice device, VkFence fence, const( VkAllocationCallbacks )* pAllocator );
56     alias PFN_vkResetFences                                                     = VkResult  function( VkDevice device, uint32_t fenceCount, const( VkFence )* pFences );
57     alias PFN_vkGetFenceStatus                                                  = VkResult  function( VkDevice device, VkFence fence );
58     alias PFN_vkWaitForFences                                                   = VkResult  function( VkDevice device, uint32_t fenceCount, const( VkFence )* pFences, VkBool32 waitAll, uint64_t timeout );
59     alias PFN_vkCreateSemaphore                                                 = VkResult  function( VkDevice device, const( VkSemaphoreCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkSemaphore* pSemaphore );
60     alias PFN_vkDestroySemaphore                                                = void      function( VkDevice device, VkSemaphore semaphore, const( VkAllocationCallbacks )* pAllocator );
61     alias PFN_vkCreateEvent                                                     = VkResult  function( VkDevice device, const( VkEventCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkEvent* pEvent );
62     alias PFN_vkDestroyEvent                                                    = void      function( VkDevice device, VkEvent event, const( VkAllocationCallbacks )* pAllocator );
63     alias PFN_vkGetEventStatus                                                  = VkResult  function( VkDevice device, VkEvent event );
64     alias PFN_vkSetEvent                                                        = VkResult  function( VkDevice device, VkEvent event );
65     alias PFN_vkResetEvent                                                      = VkResult  function( VkDevice device, VkEvent event );
66     alias PFN_vkCreateQueryPool                                                 = VkResult  function( VkDevice device, const( VkQueryPoolCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkQueryPool* pQueryPool );
67     alias PFN_vkDestroyQueryPool                                                = void      function( VkDevice device, VkQueryPool queryPool, const( VkAllocationCallbacks )* pAllocator );
68     alias PFN_vkGetQueryPoolResults                                             = VkResult  function( VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags );
69     alias PFN_vkCreateBuffer                                                    = VkResult  function( VkDevice device, const( VkBufferCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkBuffer* pBuffer );
70     alias PFN_vkDestroyBuffer                                                   = void      function( VkDevice device, VkBuffer buffer, const( VkAllocationCallbacks )* pAllocator );
71     alias PFN_vkCreateBufferView                                                = VkResult  function( VkDevice device, const( VkBufferViewCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkBufferView* pView );
72     alias PFN_vkDestroyBufferView                                               = void      function( VkDevice device, VkBufferView bufferView, const( VkAllocationCallbacks )* pAllocator );
73     alias PFN_vkCreateImage                                                     = VkResult  function( VkDevice device, const( VkImageCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkImage* pImage );
74     alias PFN_vkDestroyImage                                                    = void      function( VkDevice device, VkImage image, const( VkAllocationCallbacks )* pAllocator );
75     alias PFN_vkGetImageSubresourceLayout                                       = void      function( VkDevice device, VkImage image, const( VkImageSubresource )* pSubresource, VkSubresourceLayout* pLayout );
76     alias PFN_vkCreateImageView                                                 = VkResult  function( VkDevice device, const( VkImageViewCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkImageView* pView );
77     alias PFN_vkDestroyImageView                                                = void      function( VkDevice device, VkImageView imageView, const( VkAllocationCallbacks )* pAllocator );
78     alias PFN_vkCreateShaderModule                                              = VkResult  function( VkDevice device, const( VkShaderModuleCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkShaderModule* pShaderModule );
79     alias PFN_vkDestroyShaderModule                                             = void      function( VkDevice device, VkShaderModule shaderModule, const( VkAllocationCallbacks )* pAllocator );
80     alias PFN_vkCreatePipelineCache                                             = VkResult  function( VkDevice device, const( VkPipelineCacheCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkPipelineCache* pPipelineCache );
81     alias PFN_vkDestroyPipelineCache                                            = void      function( VkDevice device, VkPipelineCache pipelineCache, const( VkAllocationCallbacks )* pAllocator );
82     alias PFN_vkGetPipelineCacheData                                            = VkResult  function( VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData );
83     alias PFN_vkMergePipelineCaches                                             = VkResult  function( VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const( VkPipelineCache )* pSrcCaches );
84     alias PFN_vkCreateGraphicsPipelines                                         = VkResult  function( VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const( VkGraphicsPipelineCreateInfo )* pCreateInfos, const( VkAllocationCallbacks )* pAllocator, VkPipeline* pPipelines );
85     alias PFN_vkCreateComputePipelines                                          = VkResult  function( VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const( VkComputePipelineCreateInfo )* pCreateInfos, const( VkAllocationCallbacks )* pAllocator, VkPipeline* pPipelines );
86     alias PFN_vkDestroyPipeline                                                 = void      function( VkDevice device, VkPipeline pipeline, const( VkAllocationCallbacks )* pAllocator );
87     alias PFN_vkCreatePipelineLayout                                            = VkResult  function( VkDevice device, const( VkPipelineLayoutCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkPipelineLayout* pPipelineLayout );
88     alias PFN_vkDestroyPipelineLayout                                           = void      function( VkDevice device, VkPipelineLayout pipelineLayout, const( VkAllocationCallbacks )* pAllocator );
89     alias PFN_vkCreateSampler                                                   = VkResult  function( VkDevice device, const( VkSamplerCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkSampler* pSampler );
90     alias PFN_vkDestroySampler                                                  = void      function( VkDevice device, VkSampler sampler, const( VkAllocationCallbacks )* pAllocator );
91     alias PFN_vkCreateDescriptorSetLayout                                       = VkResult  function( VkDevice device, const( VkDescriptorSetLayoutCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkDescriptorSetLayout* pSetLayout );
92     alias PFN_vkDestroyDescriptorSetLayout                                      = void      function( VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const( VkAllocationCallbacks )* pAllocator );
93     alias PFN_vkCreateDescriptorPool                                            = VkResult  function( VkDevice device, const( VkDescriptorPoolCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkDescriptorPool* pDescriptorPool );
94     alias PFN_vkDestroyDescriptorPool                                           = void      function( VkDevice device, VkDescriptorPool descriptorPool, const( VkAllocationCallbacks )* pAllocator );
95     alias PFN_vkResetDescriptorPool                                             = VkResult  function( VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags );
96     alias PFN_vkAllocateDescriptorSets                                          = VkResult  function( VkDevice device, const( VkDescriptorSetAllocateInfo )* pAllocateInfo, VkDescriptorSet* pDescriptorSets );
97     alias PFN_vkFreeDescriptorSets                                              = VkResult  function( VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const( VkDescriptorSet )* pDescriptorSets );
98     alias PFN_vkUpdateDescriptorSets                                            = void      function( VkDevice device, uint32_t descriptorWriteCount, const( VkWriteDescriptorSet )* pDescriptorWrites, uint32_t descriptorCopyCount, const( VkCopyDescriptorSet )* pDescriptorCopies );
99     alias PFN_vkCreateFramebuffer                                               = VkResult  function( VkDevice device, const( VkFramebufferCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkFramebuffer* pFramebuffer );
100     alias PFN_vkDestroyFramebuffer                                              = void      function( VkDevice device, VkFramebuffer framebuffer, const( VkAllocationCallbacks )* pAllocator );
101     alias PFN_vkCreateRenderPass                                                = VkResult  function( VkDevice device, const( VkRenderPassCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkRenderPass* pRenderPass );
102     alias PFN_vkDestroyRenderPass                                               = void      function( VkDevice device, VkRenderPass renderPass, const( VkAllocationCallbacks )* pAllocator );
103     alias PFN_vkGetRenderAreaGranularity                                        = void      function( VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity );
104     alias PFN_vkCreateCommandPool                                               = VkResult  function( VkDevice device, const( VkCommandPoolCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkCommandPool* pCommandPool );
105     alias PFN_vkDestroyCommandPool                                              = void      function( VkDevice device, VkCommandPool commandPool, const( VkAllocationCallbacks )* pAllocator );
106     alias PFN_vkResetCommandPool                                                = VkResult  function( VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags );
107     alias PFN_vkAllocateCommandBuffers                                          = VkResult  function( VkDevice device, const( VkCommandBufferAllocateInfo )* pAllocateInfo, VkCommandBuffer* pCommandBuffers );
108     alias PFN_vkFreeCommandBuffers                                              = void      function( VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const( VkCommandBuffer )* pCommandBuffers );
109     alias PFN_vkBeginCommandBuffer                                              = VkResult  function( VkCommandBuffer commandBuffer, const( VkCommandBufferBeginInfo )* pBeginInfo );
110     alias PFN_vkEndCommandBuffer                                                = VkResult  function( VkCommandBuffer commandBuffer );
111     alias PFN_vkResetCommandBuffer                                              = VkResult  function( VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags );
112     alias PFN_vkCmdBindPipeline                                                 = void      function( VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline );
113     alias PFN_vkCmdSetViewport                                                  = void      function( VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const( VkViewport )* pViewports );
114     alias PFN_vkCmdSetScissor                                                   = void      function( VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const( VkRect2D )* pScissors );
115     alias PFN_vkCmdSetLineWidth                                                 = void      function( VkCommandBuffer commandBuffer, float lineWidth );
116     alias PFN_vkCmdSetDepthBias                                                 = void      function( VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor );
117     alias PFN_vkCmdSetBlendConstants                                            = void      function( VkCommandBuffer commandBuffer, const float[4] blendConstants );
118     alias PFN_vkCmdSetDepthBounds                                               = void      function( VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds );
119     alias PFN_vkCmdSetStencilCompareMask                                        = void      function( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask );
120     alias PFN_vkCmdSetStencilWriteMask                                          = void      function( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask );
121     alias PFN_vkCmdSetStencilReference                                          = void      function( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference );
122     alias PFN_vkCmdBindDescriptorSets                                           = void      function( VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const( VkDescriptorSet )* pDescriptorSets, uint32_t dynamicOffsetCount, const( uint32_t )* pDynamicOffsets );
123     alias PFN_vkCmdBindIndexBuffer                                              = void      function( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType );
124     alias PFN_vkCmdBindVertexBuffers                                            = void      function( VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const( VkBuffer )* pBuffers, const( VkDeviceSize )* pOffsets );
125     alias PFN_vkCmdDraw                                                         = void      function( VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance );
126     alias PFN_vkCmdDrawIndexed                                                  = void      function( VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance );
127     alias PFN_vkCmdDrawIndirect                                                 = void      function( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride );
128     alias PFN_vkCmdDrawIndexedIndirect                                          = void      function( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride );
129     alias PFN_vkCmdDispatch                                                     = void      function( VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ );
130     alias PFN_vkCmdDispatchIndirect                                             = void      function( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset );
131     alias PFN_vkCmdCopyBuffer                                                   = void      function( VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const( VkBufferCopy )* pRegions );
132     alias PFN_vkCmdCopyImage                                                    = void      function( VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const( VkImageCopy )* pRegions );
133     alias PFN_vkCmdBlitImage                                                    = void      function( VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const( VkImageBlit )* pRegions, VkFilter filter );
134     alias PFN_vkCmdCopyBufferToImage                                            = void      function( VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const( VkBufferImageCopy )* pRegions );
135     alias PFN_vkCmdCopyImageToBuffer                                            = void      function( VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const( VkBufferImageCopy )* pRegions );
136     alias PFN_vkCmdUpdateBuffer                                                 = void      function( VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const( void )* pData );
137     alias PFN_vkCmdFillBuffer                                                   = void      function( VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data );
138     alias PFN_vkCmdClearColorImage                                              = void      function( VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const( VkClearColorValue )* pColor, uint32_t rangeCount, const( VkImageSubresourceRange )* pRanges );
139     alias PFN_vkCmdClearDepthStencilImage                                       = void      function( VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const( VkClearDepthStencilValue )* pDepthStencil, uint32_t rangeCount, const( VkImageSubresourceRange )* pRanges );
140     alias PFN_vkCmdClearAttachments                                             = void      function( VkCommandBuffer commandBuffer, uint32_t attachmentCount, const( VkClearAttachment )* pAttachments, uint32_t rectCount, const( VkClearRect )* pRects );
141     alias PFN_vkCmdResolveImage                                                 = void      function( VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const( VkImageResolve )* pRegions );
142     alias PFN_vkCmdSetEvent                                                     = void      function( VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask );
143     alias PFN_vkCmdResetEvent                                                   = void      function( VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask );
144     alias PFN_vkCmdWaitEvents                                                   = void      function( VkCommandBuffer commandBuffer, uint32_t eventCount, const( VkEvent )* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const( VkMemoryBarrier )* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const( VkBufferMemoryBarrier )* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const( VkImageMemoryBarrier )* pImageMemoryBarriers );
145     alias PFN_vkCmdPipelineBarrier                                              = void      function( VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const( VkMemoryBarrier )* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const( VkBufferMemoryBarrier )* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const( VkImageMemoryBarrier )* pImageMemoryBarriers );
146     alias PFN_vkCmdBeginQuery                                                   = void      function( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags );
147     alias PFN_vkCmdEndQuery                                                     = void      function( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query );
148     alias PFN_vkCmdResetQueryPool                                               = void      function( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount );
149     alias PFN_vkCmdWriteTimestamp                                               = void      function( VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query );
150     alias PFN_vkCmdCopyQueryPoolResults                                         = void      function( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags );
151     alias PFN_vkCmdPushConstants                                                = void      function( VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const( void )* pValues );
152     alias PFN_vkCmdBeginRenderPass                                              = void      function( VkCommandBuffer commandBuffer, const( VkRenderPassBeginInfo )* pRenderPassBegin, VkSubpassContents contents );
153     alias PFN_vkCmdNextSubpass                                                  = void      function( VkCommandBuffer commandBuffer, VkSubpassContents contents );
154     alias PFN_vkCmdEndRenderPass                                                = void      function( VkCommandBuffer commandBuffer );
155     alias PFN_vkCmdExecuteCommands                                              = void      function( VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const( VkCommandBuffer )* pCommandBuffers );
156 
157     // VK_VERSION_1_1
158     alias PFN_vkEnumerateInstanceVersion                                        = VkResult  function( uint32_t* pApiVersion );
159     alias PFN_vkBindBufferMemory2                                               = VkResult  function( VkDevice device, uint32_t bindInfoCount, const( VkBindBufferMemoryInfo )* pBindInfos );
160     alias PFN_vkBindImageMemory2                                                = VkResult  function( VkDevice device, uint32_t bindInfoCount, const( VkBindImageMemoryInfo )* pBindInfos );
161     alias PFN_vkGetDeviceGroupPeerMemoryFeatures                                = void      function( VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures );
162     alias PFN_vkCmdSetDeviceMask                                                = void      function( VkCommandBuffer commandBuffer, uint32_t deviceMask );
163     alias PFN_vkCmdDispatchBase                                                 = void      function( VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ );
164     alias PFN_vkEnumeratePhysicalDeviceGroups                                   = VkResult  function( VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties );
165     alias PFN_vkGetImageMemoryRequirements2                                     = void      function( VkDevice device, const( VkImageMemoryRequirementsInfo2 )* pInfo, VkMemoryRequirements2* pMemoryRequirements );
166     alias PFN_vkGetBufferMemoryRequirements2                                    = void      function( VkDevice device, const( VkBufferMemoryRequirementsInfo2 )* pInfo, VkMemoryRequirements2* pMemoryRequirements );
167     alias PFN_vkGetImageSparseMemoryRequirements2                               = void      function( VkDevice device, const( VkImageSparseMemoryRequirementsInfo2 )* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements );
168     alias PFN_vkGetPhysicalDeviceFeatures2                                      = void      function( VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures );
169     alias PFN_vkGetPhysicalDeviceProperties2                                    = void      function( VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties );
170     alias PFN_vkGetPhysicalDeviceFormatProperties2                              = void      function( VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties );
171     alias PFN_vkGetPhysicalDeviceImageFormatProperties2                         = VkResult  function( VkPhysicalDevice physicalDevice, const( VkPhysicalDeviceImageFormatInfo2 )* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties );
172     alias PFN_vkGetPhysicalDeviceQueueFamilyProperties2                         = void      function( VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties );
173     alias PFN_vkGetPhysicalDeviceMemoryProperties2                              = void      function( VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties );
174     alias PFN_vkGetPhysicalDeviceSparseImageFormatProperties2                   = void      function( VkPhysicalDevice physicalDevice, const( VkPhysicalDeviceSparseImageFormatInfo2 )* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties );
175     alias PFN_vkTrimCommandPool                                                 = void      function( VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags );
176     alias PFN_vkGetDeviceQueue2                                                 = void      function( VkDevice device, const( VkDeviceQueueInfo2 )* pQueueInfo, VkQueue* pQueue );
177     alias PFN_vkCreateSamplerYcbcrConversion                                    = VkResult  function( VkDevice device, const( VkSamplerYcbcrConversionCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion );
178     alias PFN_vkDestroySamplerYcbcrConversion                                   = void      function( VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const( VkAllocationCallbacks )* pAllocator );
179     alias PFN_vkCreateDescriptorUpdateTemplate                                  = VkResult  function( VkDevice device, const( VkDescriptorUpdateTemplateCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate );
180     alias PFN_vkDestroyDescriptorUpdateTemplate                                 = void      function( VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const( VkAllocationCallbacks )* pAllocator );
181     alias PFN_vkUpdateDescriptorSetWithTemplate                                 = void      function( VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const( void )* pData );
182     alias PFN_vkGetPhysicalDeviceExternalBufferProperties                       = void      function( VkPhysicalDevice physicalDevice, const( VkPhysicalDeviceExternalBufferInfo )* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties );
183     alias PFN_vkGetPhysicalDeviceExternalFenceProperties                        = void      function( VkPhysicalDevice physicalDevice, const( VkPhysicalDeviceExternalFenceInfo )* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties );
184     alias PFN_vkGetPhysicalDeviceExternalSemaphoreProperties                    = void      function( VkPhysicalDevice physicalDevice, const( VkPhysicalDeviceExternalSemaphoreInfo )* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties );
185     alias PFN_vkGetDescriptorSetLayoutSupport                                   = void      function( VkDevice device, const( VkDescriptorSetLayoutCreateInfo )* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport );
186 
187     // VK_VERSION_1_2
188     alias PFN_vkCmdDrawIndirectCount                                            = void      function( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride );
189     alias PFN_vkCmdDrawIndexedIndirectCount                                     = void      function( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride );
190     alias PFN_vkCreateRenderPass2                                               = VkResult  function( VkDevice device, const( VkRenderPassCreateInfo2 )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkRenderPass* pRenderPass );
191     alias PFN_vkCmdBeginRenderPass2                                             = void      function( VkCommandBuffer commandBuffer, const( VkRenderPassBeginInfo )* pRenderPassBegin, const( VkSubpassBeginInfo )* pSubpassBeginInfo );
192     alias PFN_vkCmdNextSubpass2                                                 = void      function( VkCommandBuffer commandBuffer, const( VkSubpassBeginInfo )* pSubpassBeginInfo, const( VkSubpassEndInfo )* pSubpassEndInfo );
193     alias PFN_vkCmdEndRenderPass2                                               = void      function( VkCommandBuffer commandBuffer, const( VkSubpassEndInfo )* pSubpassEndInfo );
194     alias PFN_vkResetQueryPool                                                  = void      function( VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount );
195     alias PFN_vkGetSemaphoreCounterValue                                        = VkResult  function( VkDevice device, VkSemaphore semaphore, uint64_t* pValue );
196     alias PFN_vkWaitSemaphores                                                  = VkResult  function( VkDevice device, const( VkSemaphoreWaitInfo )* pWaitInfo, uint64_t timeout );
197     alias PFN_vkSignalSemaphore                                                 = VkResult  function( VkDevice device, const( VkSemaphoreSignalInfo )* pSignalInfo );
198     alias PFN_vkGetBufferDeviceAddress                                          = VkDeviceAddress  function( VkDevice device, const( VkBufferDeviceAddressInfo )* pInfo );
199     alias PFN_vkGetBufferOpaqueCaptureAddress                                   = uint64_t  function( VkDevice device, const( VkBufferDeviceAddressInfo )* pInfo );
200     alias PFN_vkGetDeviceMemoryOpaqueCaptureAddress                             = uint64_t  function( VkDevice device, const( VkDeviceMemoryOpaqueCaptureAddressInfo )* pInfo );
201 
202     // VK_VERSION_1_3
203     alias PFN_vkGetPhysicalDeviceToolProperties                                 = VkResult  function( VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties );
204     alias PFN_vkCreatePrivateDataSlot                                           = VkResult  function( VkDevice device, const( VkPrivateDataSlotCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkPrivateDataSlot* pPrivateDataSlot );
205     alias PFN_vkDestroyPrivateDataSlot                                          = void      function( VkDevice device, VkPrivateDataSlot privateDataSlot, const( VkAllocationCallbacks )* pAllocator );
206     alias PFN_vkSetPrivateData                                                  = VkResult  function( VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data );
207     alias PFN_vkGetPrivateData                                                  = void      function( VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t* pData );
208     alias PFN_vkCmdSetEvent2                                                    = void      function( VkCommandBuffer commandBuffer, VkEvent event, const( VkDependencyInfo )* pDependencyInfo );
209     alias PFN_vkCmdResetEvent2                                                  = void      function( VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags2 stageMask );
210     alias PFN_vkCmdWaitEvents2                                                  = void      function( VkCommandBuffer commandBuffer, uint32_t eventCount, const( VkEvent )* pEvents, const( VkDependencyInfo )* pDependencyInfos );
211     alias PFN_vkCmdPipelineBarrier2                                             = void      function( VkCommandBuffer commandBuffer, const( VkDependencyInfo )* pDependencyInfo );
212     alias PFN_vkCmdWriteTimestamp2                                              = void      function( VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkQueryPool queryPool, uint32_t query );
213     alias PFN_vkQueueSubmit2                                                    = VkResult  function( VkQueue queue, uint32_t submitCount, const( VkSubmitInfo2 )* pSubmits, VkFence fence );
214     alias PFN_vkCmdCopyBuffer2                                                  = void      function( VkCommandBuffer commandBuffer, const( VkCopyBufferInfo2 )* pCopyBufferInfo );
215     alias PFN_vkCmdCopyImage2                                                   = void      function( VkCommandBuffer commandBuffer, const( VkCopyImageInfo2 )* pCopyImageInfo );
216     alias PFN_vkCmdCopyBufferToImage2                                           = void      function( VkCommandBuffer commandBuffer, const( VkCopyBufferToImageInfo2 )* pCopyBufferToImageInfo );
217     alias PFN_vkCmdCopyImageToBuffer2                                           = void      function( VkCommandBuffer commandBuffer, const( VkCopyImageToBufferInfo2 )* pCopyImageToBufferInfo );
218     alias PFN_vkCmdBlitImage2                                                   = void      function( VkCommandBuffer commandBuffer, const( VkBlitImageInfo2 )* pBlitImageInfo );
219     alias PFN_vkCmdResolveImage2                                                = void      function( VkCommandBuffer commandBuffer, const( VkResolveImageInfo2 )* pResolveImageInfo );
220     alias PFN_vkCmdBeginRendering                                               = void      function( VkCommandBuffer commandBuffer, const( VkRenderingInfo )* pRenderingInfo );
221     alias PFN_vkCmdEndRendering                                                 = void      function( VkCommandBuffer commandBuffer );
222     alias PFN_vkCmdSetCullMode                                                  = void      function( VkCommandBuffer commandBuffer, VkCullModeFlags cullMode );
223     alias PFN_vkCmdSetFrontFace                                                 = void      function( VkCommandBuffer commandBuffer, VkFrontFace frontFace );
224     alias PFN_vkCmdSetPrimitiveTopology                                         = void      function( VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology );
225     alias PFN_vkCmdSetViewportWithCount                                         = void      function( VkCommandBuffer commandBuffer, uint32_t viewportCount, const( VkViewport )* pViewports );
226     alias PFN_vkCmdSetScissorWithCount                                          = void      function( VkCommandBuffer commandBuffer, uint32_t scissorCount, const( VkRect2D )* pScissors );
227     alias PFN_vkCmdBindVertexBuffers2                                           = void      function( VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const( VkBuffer )* pBuffers, const( VkDeviceSize )* pOffsets, const( VkDeviceSize )* pSizes, const( VkDeviceSize )* pStrides );
228     alias PFN_vkCmdSetDepthTestEnable                                           = void      function( VkCommandBuffer commandBuffer, VkBool32 depthTestEnable );
229     alias PFN_vkCmdSetDepthWriteEnable                                          = void      function( VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable );
230     alias PFN_vkCmdSetDepthCompareOp                                            = void      function( VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp );
231     alias PFN_vkCmdSetDepthBoundsTestEnable                                     = void      function( VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable );
232     alias PFN_vkCmdSetStencilTestEnable                                         = void      function( VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable );
233     alias PFN_vkCmdSetStencilOp                                                 = void      function( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp );
234     alias PFN_vkCmdSetRasterizerDiscardEnable                                   = void      function( VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable );
235     alias PFN_vkCmdSetDepthBiasEnable                                           = void      function( VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable );
236     alias PFN_vkCmdSetPrimitiveRestartEnable                                    = void      function( VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable );
237     alias PFN_vkGetDeviceBufferMemoryRequirements                               = void      function( VkDevice device, const( VkDeviceBufferMemoryRequirements )* pInfo, VkMemoryRequirements2* pMemoryRequirements );
238     alias PFN_vkGetDeviceImageMemoryRequirements                                = void      function( VkDevice device, const( VkDeviceImageMemoryRequirements )* pInfo, VkMemoryRequirements2* pMemoryRequirements );
239     alias PFN_vkGetDeviceImageSparseMemoryRequirements                          = void      function( VkDevice device, const( VkDeviceImageMemoryRequirements )* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements );
240 
241     // VK_KHR_surface
242     alias PFN_vkDestroySurfaceKHR                                               = void      function( VkInstance instance, VkSurfaceKHR surface, const( VkAllocationCallbacks )* pAllocator );
243     alias PFN_vkGetPhysicalDeviceSurfaceSupportKHR                              = VkResult  function( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported );
244     alias PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR                         = VkResult  function( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities );
245     alias PFN_vkGetPhysicalDeviceSurfaceFormatsKHR                              = VkResult  function( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats );
246     alias PFN_vkGetPhysicalDeviceSurfacePresentModesKHR                         = VkResult  function( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes );
247 
248     // VK_KHR_swapchain
249     alias PFN_vkCreateSwapchainKHR                                              = VkResult  function( VkDevice device, const( VkSwapchainCreateInfoKHR )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkSwapchainKHR* pSwapchain );
250     alias PFN_vkDestroySwapchainKHR                                             = void      function( VkDevice device, VkSwapchainKHR swapchain, const( VkAllocationCallbacks )* pAllocator );
251     alias PFN_vkGetSwapchainImagesKHR                                           = VkResult  function( VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages );
252     alias PFN_vkAcquireNextImageKHR                                             = VkResult  function( VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex );
253     alias PFN_vkQueuePresentKHR                                                 = VkResult  function( VkQueue queue, const( VkPresentInfoKHR )* pPresentInfo );
254     alias PFN_vkGetDeviceGroupPresentCapabilitiesKHR                            = VkResult  function( VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities );
255     alias PFN_vkGetDeviceGroupSurfacePresentModesKHR                            = VkResult  function( VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes );
256     alias PFN_vkGetPhysicalDevicePresentRectanglesKHR                           = VkResult  function( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects );
257     alias PFN_vkAcquireNextImage2KHR                                            = VkResult  function( VkDevice device, const( VkAcquireNextImageInfoKHR )* pAcquireInfo, uint32_t* pImageIndex );
258 
259     // VK_KHR_display
260     alias PFN_vkGetPhysicalDeviceDisplayPropertiesKHR                           = VkResult  function( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties );
261     alias PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR                      = VkResult  function( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties );
262     alias PFN_vkGetDisplayPlaneSupportedDisplaysKHR                             = VkResult  function( VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays );
263     alias PFN_vkGetDisplayModePropertiesKHR                                     = VkResult  function( VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties );
264     alias PFN_vkCreateDisplayModeKHR                                            = VkResult  function( VkPhysicalDevice physicalDevice, VkDisplayKHR display, const( VkDisplayModeCreateInfoKHR )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkDisplayModeKHR* pMode );
265     alias PFN_vkGetDisplayPlaneCapabilitiesKHR                                  = VkResult  function( VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities );
266     alias PFN_vkCreateDisplayPlaneSurfaceKHR                                    = VkResult  function( VkInstance instance, const( VkDisplaySurfaceCreateInfoKHR )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkSurfaceKHR* pSurface );
267 
268     // VK_KHR_display_swapchain
269     alias PFN_vkCreateSharedSwapchainsKHR                                       = VkResult  function( VkDevice device, uint32_t swapchainCount, const( VkSwapchainCreateInfoKHR )* pCreateInfos, const( VkAllocationCallbacks )* pAllocator, VkSwapchainKHR* pSwapchains );
270 
271     // VK_KHR_video_queue
272     alias PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR                           = VkResult  function( VkPhysicalDevice physicalDevice, const( VkVideoProfileInfoKHR )* pVideoProfile, VkVideoCapabilitiesKHR* pCapabilities );
273     alias PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR                       = VkResult  function( VkPhysicalDevice physicalDevice, const( VkPhysicalDeviceVideoFormatInfoKHR )* pVideoFormatInfo, uint32_t* pVideoFormatPropertyCount, VkVideoFormatPropertiesKHR* pVideoFormatProperties );
274     alias PFN_vkCreateVideoSessionKHR                                           = VkResult  function( VkDevice device, const( VkVideoSessionCreateInfoKHR )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkVideoSessionKHR* pVideoSession );
275     alias PFN_vkDestroyVideoSessionKHR                                          = void      function( VkDevice device, VkVideoSessionKHR videoSession, const( VkAllocationCallbacks )* pAllocator );
276     alias PFN_vkGetVideoSessionMemoryRequirementsKHR                            = VkResult  function( VkDevice device, VkVideoSessionKHR videoSession, uint32_t* pMemoryRequirementsCount, VkVideoSessionMemoryRequirementsKHR* pMemoryRequirements );
277     alias PFN_vkBindVideoSessionMemoryKHR                                       = VkResult  function( VkDevice device, VkVideoSessionKHR videoSession, uint32_t bindSessionMemoryInfoCount, const( VkBindVideoSessionMemoryInfoKHR )* pBindSessionMemoryInfos );
278     alias PFN_vkCreateVideoSessionParametersKHR                                 = VkResult  function( VkDevice device, const( VkVideoSessionParametersCreateInfoKHR )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkVideoSessionParametersKHR* pVideoSessionParameters );
279     alias PFN_vkUpdateVideoSessionParametersKHR                                 = VkResult  function( VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const( VkVideoSessionParametersUpdateInfoKHR )* pUpdateInfo );
280     alias PFN_vkDestroyVideoSessionParametersKHR                                = void      function( VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const( VkAllocationCallbacks )* pAllocator );
281     alias PFN_vkCmdBeginVideoCodingKHR                                          = void      function( VkCommandBuffer commandBuffer, const( VkVideoBeginCodingInfoKHR )* pBeginInfo );
282     alias PFN_vkCmdEndVideoCodingKHR                                            = void      function( VkCommandBuffer commandBuffer, const( VkVideoEndCodingInfoKHR )* pEndCodingInfo );
283     alias PFN_vkCmdControlVideoCodingKHR                                        = void      function( VkCommandBuffer commandBuffer, const( VkVideoCodingControlInfoKHR )* pCodingControlInfo );
284 
285     // VK_KHR_video_decode_queue
286     alias PFN_vkCmdDecodeVideoKHR                                               = void      function( VkCommandBuffer commandBuffer, const( VkVideoDecodeInfoKHR )* pDecodeInfo );
287 
288     // VK_KHR_external_memory_fd
289     alias PFN_vkGetMemoryFdKHR                                                  = VkResult  function( VkDevice device, const( VkMemoryGetFdInfoKHR )* pGetFdInfo, int* pFd );
290     alias PFN_vkGetMemoryFdPropertiesKHR                                        = VkResult  function( VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties );
291 
292     // VK_KHR_external_semaphore_fd
293     alias PFN_vkImportSemaphoreFdKHR                                            = VkResult  function( VkDevice device, const( VkImportSemaphoreFdInfoKHR )* pImportSemaphoreFdInfo );
294     alias PFN_vkGetSemaphoreFdKHR                                               = VkResult  function( VkDevice device, const( VkSemaphoreGetFdInfoKHR )* pGetFdInfo, int* pFd );
295 
296     // VK_KHR_push_descriptor
297     alias PFN_vkCmdPushDescriptorSetKHR                                         = void      function( VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const( VkWriteDescriptorSet )* pDescriptorWrites );
298     alias PFN_vkCmdPushDescriptorSetWithTemplateKHR                             = void      function( VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const( void )* pData );
299 
300     // VK_KHR_shared_presentable_image
301     alias PFN_vkGetSwapchainStatusKHR                                           = VkResult  function( VkDevice device, VkSwapchainKHR swapchain );
302 
303     // VK_KHR_external_fence_fd
304     alias PFN_vkImportFenceFdKHR                                                = VkResult  function( VkDevice device, const( VkImportFenceFdInfoKHR )* pImportFenceFdInfo );
305     alias PFN_vkGetFenceFdKHR                                                   = VkResult  function( VkDevice device, const( VkFenceGetFdInfoKHR )* pGetFdInfo, int* pFd );
306 
307     // VK_KHR_performance_query
308     alias PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR   = VkResult  function( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, uint32_t* pCounterCount, VkPerformanceCounterKHR* pCounters, VkPerformanceCounterDescriptionKHR* pCounterDescriptions );
309     alias PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR           = void      function( VkPhysicalDevice physicalDevice, const( VkQueryPoolPerformanceCreateInfoKHR )* pPerformanceQueryCreateInfo, uint32_t* pNumPasses );
310     alias PFN_vkAcquireProfilingLockKHR                                         = VkResult  function( VkDevice device, const( VkAcquireProfilingLockInfoKHR )* pInfo );
311     alias PFN_vkReleaseProfilingLockKHR                                         = void      function( VkDevice device );
312 
313     // VK_KHR_get_surface_capabilities2
314     alias PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR                        = VkResult  function( VkPhysicalDevice physicalDevice, const( VkPhysicalDeviceSurfaceInfo2KHR )* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities );
315     alias PFN_vkGetPhysicalDeviceSurfaceFormats2KHR                             = VkResult  function( VkPhysicalDevice physicalDevice, const( VkPhysicalDeviceSurfaceInfo2KHR )* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats );
316 
317     // VK_KHR_get_display_properties2
318     alias PFN_vkGetPhysicalDeviceDisplayProperties2KHR                          = VkResult  function( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayProperties2KHR* pProperties );
319     alias PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR                     = VkResult  function( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties );
320     alias PFN_vkGetDisplayModeProperties2KHR                                    = VkResult  function( VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModeProperties2KHR* pProperties );
321     alias PFN_vkGetDisplayPlaneCapabilities2KHR                                 = VkResult  function( VkPhysicalDevice physicalDevice, const( VkDisplayPlaneInfo2KHR )* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities );
322 
323     // VK_KHR_fragment_shading_rate
324     alias PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR                        = VkResult  function( VkPhysicalDevice physicalDevice, uint32_t* pFragmentShadingRateCount, VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates );
325     alias PFN_vkCmdSetFragmentShadingRateKHR                                    = void      function( VkCommandBuffer commandBuffer, const( VkExtent2D )* pFragmentSize, const VkFragmentShadingRateCombinerOpKHR[2] combinerOps );
326 
327     // VK_KHR_present_wait
328     alias PFN_vkWaitForPresentKHR                                               = VkResult  function( VkDevice device, VkSwapchainKHR swapchain, uint64_t presentId, uint64_t timeout );
329 
330     // VK_KHR_deferred_host_operations
331     alias PFN_vkCreateDeferredOperationKHR                                      = VkResult  function( VkDevice device, const( VkAllocationCallbacks )* pAllocator, VkDeferredOperationKHR* pDeferredOperation );
332     alias PFN_vkDestroyDeferredOperationKHR                                     = void      function( VkDevice device, VkDeferredOperationKHR operation, const( VkAllocationCallbacks )* pAllocator );
333     alias PFN_vkGetDeferredOperationMaxConcurrencyKHR                           = uint32_t  function( VkDevice device, VkDeferredOperationKHR operation );
334     alias PFN_vkGetDeferredOperationResultKHR                                   = VkResult  function( VkDevice device, VkDeferredOperationKHR operation );
335     alias PFN_vkDeferredOperationJoinKHR                                        = VkResult  function( VkDevice device, VkDeferredOperationKHR operation );
336 
337     // VK_KHR_pipeline_executable_properties
338     alias PFN_vkGetPipelineExecutablePropertiesKHR                              = VkResult  function( VkDevice device, const( VkPipelineInfoKHR )* pPipelineInfo, uint32_t* pExecutableCount, VkPipelineExecutablePropertiesKHR* pProperties );
339     alias PFN_vkGetPipelineExecutableStatisticsKHR                              = VkResult  function( VkDevice device, const( VkPipelineExecutableInfoKHR )* pExecutableInfo, uint32_t* pStatisticCount, VkPipelineExecutableStatisticKHR* pStatistics );
340     alias PFN_vkGetPipelineExecutableInternalRepresentationsKHR                 = VkResult  function( VkDevice device, const( VkPipelineExecutableInfoKHR )* pExecutableInfo, uint32_t* pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations );
341 
342     // VK_KHR_map_memory2
343     alias PFN_vkMapMemory2KHR                                                   = VkResult  function( VkDevice device, const( VkMemoryMapInfoKHR )* pMemoryMapInfo, void** ppData );
344     alias PFN_vkUnmapMemory2KHR                                                 = VkResult  function( VkDevice device, const( VkMemoryUnmapInfoKHR )* pMemoryUnmapInfo );
345 
346     // VK_KHR_synchronization2
347     alias PFN_vkCmdWriteBufferMarker2AMD                                        = void      function( VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker );
348     alias PFN_vkGetQueueCheckpointData2NV                                       = void      function( VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointData2NV* pCheckpointData );
349 
350     // VK_KHR_ray_tracing_maintenance1
351     alias PFN_vkCmdTraceRaysIndirect2KHR                                        = void      function( VkCommandBuffer commandBuffer, VkDeviceAddress indirectDeviceAddress );
352 
353     // VK_EXT_debug_report
354     alias PFN_vkCreateDebugReportCallbackEXT                                    = VkResult  function( VkInstance instance, const( VkDebugReportCallbackCreateInfoEXT )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkDebugReportCallbackEXT* pCallback );
355     alias PFN_vkDestroyDebugReportCallbackEXT                                   = void      function( VkInstance instance, VkDebugReportCallbackEXT callback, const( VkAllocationCallbacks )* pAllocator );
356     alias PFN_vkDebugReportMessageEXT                                           = void      function( VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const( char )* pLayerPrefix, const( char )* pMessage );
357 
358     // VK_EXT_debug_marker
359     alias PFN_vkDebugMarkerSetObjectTagEXT                                      = VkResult  function( VkDevice device, const( VkDebugMarkerObjectTagInfoEXT )* pTagInfo );
360     alias PFN_vkDebugMarkerSetObjectNameEXT                                     = VkResult  function( VkDevice device, const( VkDebugMarkerObjectNameInfoEXT )* pNameInfo );
361     alias PFN_vkCmdDebugMarkerBeginEXT                                          = void      function( VkCommandBuffer commandBuffer, const( VkDebugMarkerMarkerInfoEXT )* pMarkerInfo );
362     alias PFN_vkCmdDebugMarkerEndEXT                                            = void      function( VkCommandBuffer commandBuffer );
363     alias PFN_vkCmdDebugMarkerInsertEXT                                         = void      function( VkCommandBuffer commandBuffer, const( VkDebugMarkerMarkerInfoEXT )* pMarkerInfo );
364 
365     // VK_EXT_transform_feedback
366     alias PFN_vkCmdBindTransformFeedbackBuffersEXT                              = void      function( VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const( VkBuffer )* pBuffers, const( VkDeviceSize )* pOffsets, const( VkDeviceSize )* pSizes );
367     alias PFN_vkCmdBeginTransformFeedbackEXT                                    = void      function( VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const( VkBuffer )* pCounterBuffers, const( VkDeviceSize )* pCounterBufferOffsets );
368     alias PFN_vkCmdEndTransformFeedbackEXT                                      = void      function( VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const( VkBuffer )* pCounterBuffers, const( VkDeviceSize )* pCounterBufferOffsets );
369     alias PFN_vkCmdBeginQueryIndexedEXT                                         = void      function( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index );
370     alias PFN_vkCmdEndQueryIndexedEXT                                           = void      function( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index );
371     alias PFN_vkCmdDrawIndirectByteCountEXT                                     = void      function( VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride );
372 
373     // VK_NVX_binary_import
374     alias PFN_vkCreateCuModuleNVX                                               = VkResult  function( VkDevice device, const( VkCuModuleCreateInfoNVX )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkCuModuleNVX* pModule );
375     alias PFN_vkCreateCuFunctionNVX                                             = VkResult  function( VkDevice device, const( VkCuFunctionCreateInfoNVX )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkCuFunctionNVX* pFunction );
376     alias PFN_vkDestroyCuModuleNVX                                              = void      function( VkDevice device, VkCuModuleNVX Module, const( VkAllocationCallbacks )* pAllocator );
377     alias PFN_vkDestroyCuFunctionNVX                                            = void      function( VkDevice device, VkCuFunctionNVX Function, const( VkAllocationCallbacks )* pAllocator );
378     alias PFN_vkCmdCuLaunchKernelNVX                                            = void      function( VkCommandBuffer commandBuffer, const( VkCuLaunchInfoNVX )* pLaunchInfo );
379 
380     // VK_NVX_image_view_handle
381     alias PFN_vkGetImageViewHandleNVX                                           = uint32_t  function( VkDevice device, const( VkImageViewHandleInfoNVX )* pInfo );
382     alias PFN_vkGetImageViewAddressNVX                                          = VkResult  function( VkDevice device, VkImageView imageView, VkImageViewAddressPropertiesNVX* pProperties );
383 
384     // VK_AMD_shader_info
385     alias PFN_vkGetShaderInfoAMD                                                = VkResult  function( VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo );
386 
387     // VK_NV_external_memory_capabilities
388     alias PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV                = VkResult  function( VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties );
389 
390     // VK_EXT_conditional_rendering
391     alias PFN_vkCmdBeginConditionalRenderingEXT                                 = void      function( VkCommandBuffer commandBuffer, const( VkConditionalRenderingBeginInfoEXT )* pConditionalRenderingBegin );
392     alias PFN_vkCmdEndConditionalRenderingEXT                                   = void      function( VkCommandBuffer commandBuffer );
393 
394     // VK_NV_clip_space_w_scaling
395     alias PFN_vkCmdSetViewportWScalingNV                                        = void      function( VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const( VkViewportWScalingNV )* pViewportWScalings );
396 
397     // VK_EXT_direct_mode_display
398     alias PFN_vkReleaseDisplayEXT                                               = VkResult  function( VkPhysicalDevice physicalDevice, VkDisplayKHR display );
399 
400     // VK_EXT_display_surface_counter
401     alias PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT                        = VkResult  function( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities );
402 
403     // VK_EXT_display_control
404     alias PFN_vkDisplayPowerControlEXT                                          = VkResult  function( VkDevice device, VkDisplayKHR display, const( VkDisplayPowerInfoEXT )* pDisplayPowerInfo );
405     alias PFN_vkRegisterDeviceEventEXT                                          = VkResult  function( VkDevice device, const( VkDeviceEventInfoEXT )* pDeviceEventInfo, const( VkAllocationCallbacks )* pAllocator, VkFence* pFence );
406     alias PFN_vkRegisterDisplayEventEXT                                         = VkResult  function( VkDevice device, VkDisplayKHR display, const( VkDisplayEventInfoEXT )* pDisplayEventInfo, const( VkAllocationCallbacks )* pAllocator, VkFence* pFence );
407     alias PFN_vkGetSwapchainCounterEXT                                          = VkResult  function( VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue );
408 
409     // VK_GOOGLE_display_timing
410     alias PFN_vkGetRefreshCycleDurationGOOGLE                                   = VkResult  function( VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties );
411     alias PFN_vkGetPastPresentationTimingGOOGLE                                 = VkResult  function( VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings );
412 
413     // VK_EXT_discard_rectangles
414     alias PFN_vkCmdSetDiscardRectangleEXT                                       = void      function( VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const( VkRect2D )* pDiscardRectangles );
415     alias PFN_vkCmdSetDiscardRectangleEnableEXT                                 = void      function( VkCommandBuffer commandBuffer, VkBool32 discardRectangleEnable );
416     alias PFN_vkCmdSetDiscardRectangleModeEXT                                   = void      function( VkCommandBuffer commandBuffer, VkDiscardRectangleModeEXT discardRectangleMode );
417 
418     // VK_EXT_hdr_metadata
419     alias PFN_vkSetHdrMetadataEXT                                               = void      function( VkDevice device, uint32_t swapchainCount, const( VkSwapchainKHR )* pSwapchains, const( VkHdrMetadataEXT )* pMetadata );
420 
421     // VK_EXT_debug_utils
422     alias PFN_vkSetDebugUtilsObjectNameEXT                                      = VkResult  function( VkDevice device, const( VkDebugUtilsObjectNameInfoEXT )* pNameInfo );
423     alias PFN_vkSetDebugUtilsObjectTagEXT                                       = VkResult  function( VkDevice device, const( VkDebugUtilsObjectTagInfoEXT )* pTagInfo );
424     alias PFN_vkQueueBeginDebugUtilsLabelEXT                                    = void      function( VkQueue queue, const( VkDebugUtilsLabelEXT )* pLabelInfo );
425     alias PFN_vkQueueEndDebugUtilsLabelEXT                                      = void      function( VkQueue queue );
426     alias PFN_vkQueueInsertDebugUtilsLabelEXT                                   = void      function( VkQueue queue, const( VkDebugUtilsLabelEXT )* pLabelInfo );
427     alias PFN_vkCmdBeginDebugUtilsLabelEXT                                      = void      function( VkCommandBuffer commandBuffer, const( VkDebugUtilsLabelEXT )* pLabelInfo );
428     alias PFN_vkCmdEndDebugUtilsLabelEXT                                        = void      function( VkCommandBuffer commandBuffer );
429     alias PFN_vkCmdInsertDebugUtilsLabelEXT                                     = void      function( VkCommandBuffer commandBuffer, const( VkDebugUtilsLabelEXT )* pLabelInfo );
430     alias PFN_vkCreateDebugUtilsMessengerEXT                                    = VkResult  function( VkInstance instance, const( VkDebugUtilsMessengerCreateInfoEXT )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkDebugUtilsMessengerEXT* pMessenger );
431     alias PFN_vkDestroyDebugUtilsMessengerEXT                                   = void      function( VkInstance instance, VkDebugUtilsMessengerEXT messenger, const( VkAllocationCallbacks )* pAllocator );
432     alias PFN_vkSubmitDebugUtilsMessageEXT                                      = void      function( VkInstance instance, VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageTypes, const( VkDebugUtilsMessengerCallbackDataEXT )* pCallbackData );
433 
434     // VK_EXT_sample_locations
435     alias PFN_vkCmdSetSampleLocationsEXT                                        = void      function( VkCommandBuffer commandBuffer, const( VkSampleLocationsInfoEXT )* pSampleLocationsInfo );
436     alias PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT                       = void      function( VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties );
437 
438     // VK_EXT_image_drm_format_modifier
439     alias PFN_vkGetImageDrmFormatModifierPropertiesEXT                          = VkResult  function( VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties );
440 
441     // VK_EXT_validation_cache
442     alias PFN_vkCreateValidationCacheEXT                                        = VkResult  function( VkDevice device, const( VkValidationCacheCreateInfoEXT )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkValidationCacheEXT* pValidationCache );
443     alias PFN_vkDestroyValidationCacheEXT                                       = void      function( VkDevice device, VkValidationCacheEXT validationCache, const( VkAllocationCallbacks )* pAllocator );
444     alias PFN_vkMergeValidationCachesEXT                                        = VkResult  function( VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const( VkValidationCacheEXT )* pSrcCaches );
445     alias PFN_vkGetValidationCacheDataEXT                                       = VkResult  function( VkDevice device, VkValidationCacheEXT validationCache, size_t* pDataSize, void* pData );
446 
447     // VK_NV_shading_rate_image
448     alias PFN_vkCmdBindShadingRateImageNV                                       = void      function( VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout );
449     alias PFN_vkCmdSetViewportShadingRatePaletteNV                              = void      function( VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const( VkShadingRatePaletteNV )* pShadingRatePalettes );
450     alias PFN_vkCmdSetCoarseSampleOrderNV                                       = void      function( VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const( VkCoarseSampleOrderCustomNV )* pCustomSampleOrders );
451 
452     // VK_NV_ray_tracing
453     alias PFN_vkCreateAccelerationStructureNV                                   = VkResult  function( VkDevice device, const( VkAccelerationStructureCreateInfoNV )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkAccelerationStructureNV* pAccelerationStructure );
454     alias PFN_vkDestroyAccelerationStructureNV                                  = void      function( VkDevice device, VkAccelerationStructureNV accelerationStructure, const( VkAllocationCallbacks )* pAllocator );
455     alias PFN_vkGetAccelerationStructureMemoryRequirementsNV                    = void      function( VkDevice device, const( VkAccelerationStructureMemoryRequirementsInfoNV )* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements );
456     alias PFN_vkBindAccelerationStructureMemoryNV                               = VkResult  function( VkDevice device, uint32_t bindInfoCount, const( VkBindAccelerationStructureMemoryInfoNV )* pBindInfos );
457     alias PFN_vkCmdBuildAccelerationStructureNV                                 = void      function( VkCommandBuffer commandBuffer, const( VkAccelerationStructureInfoNV )* pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkBuffer scratch, VkDeviceSize scratchOffset );
458     alias PFN_vkCmdCopyAccelerationStructureNV                                  = void      function( VkCommandBuffer commandBuffer, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkCopyAccelerationStructureModeKHR mode );
459     alias PFN_vkCmdTraceRaysNV                                                  = void      function( VkCommandBuffer commandBuffer, VkBuffer raygenShaderBindingTableBuffer, VkDeviceSize raygenShaderBindingOffset, VkBuffer missShaderBindingTableBuffer, VkDeviceSize missShaderBindingOffset, VkDeviceSize missShaderBindingStride, VkBuffer hitShaderBindingTableBuffer, VkDeviceSize hitShaderBindingOffset, VkDeviceSize hitShaderBindingStride, VkBuffer callableShaderBindingTableBuffer, VkDeviceSize callableShaderBindingOffset, VkDeviceSize callableShaderBindingStride, uint32_t width, uint32_t height, uint32_t depth );
460     alias PFN_vkCreateRayTracingPipelinesNV                                     = VkResult  function( VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const( VkRayTracingPipelineCreateInfoNV )* pCreateInfos, const( VkAllocationCallbacks )* pAllocator, VkPipeline* pPipelines );
461     alias PFN_vkGetRayTracingShaderGroupHandlesKHR                              = VkResult  function( VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData );
462     alias PFN_vkGetAccelerationStructureHandleNV                                = VkResult  function( VkDevice device, VkAccelerationStructureNV accelerationStructure, size_t dataSize, void* pData );
463     alias PFN_vkCmdWriteAccelerationStructuresPropertiesNV                      = void      function( VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const( VkAccelerationStructureNV )* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery );
464     alias PFN_vkCompileDeferredNV                                               = VkResult  function( VkDevice device, VkPipeline pipeline, uint32_t shader );
465 
466     // VK_EXT_external_memory_host
467     alias PFN_vkGetMemoryHostPointerPropertiesEXT                               = VkResult  function( VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const( void )* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties );
468 
469     // VK_AMD_buffer_marker
470     alias PFN_vkCmdWriteBufferMarkerAMD                                         = void      function( VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker );
471 
472     // VK_EXT_calibrated_timestamps
473     alias PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT                    = VkResult  function( VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainEXT* pTimeDomains );
474     alias PFN_vkGetCalibratedTimestampsEXT                                      = VkResult  function( VkDevice device, uint32_t timestampCount, const( VkCalibratedTimestampInfoEXT )* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation );
475 
476     // VK_NV_mesh_shader
477     alias PFN_vkCmdDrawMeshTasksNV                                              = void      function( VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask );
478     alias PFN_vkCmdDrawMeshTasksIndirectNV                                      = void      function( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride );
479     alias PFN_vkCmdDrawMeshTasksIndirectCountNV                                 = void      function( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride );
480 
481     // VK_NV_scissor_exclusive
482     alias PFN_vkCmdSetExclusiveScissorEnableNV                                  = void      function( VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const( VkBool32 )* pExclusiveScissorEnables );
483     alias PFN_vkCmdSetExclusiveScissorNV                                        = void      function( VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const( VkRect2D )* pExclusiveScissors );
484 
485     // VK_NV_device_diagnostic_checkpoints
486     alias PFN_vkCmdSetCheckpointNV                                              = void      function( VkCommandBuffer commandBuffer, const( void )* pCheckpointMarker );
487     alias PFN_vkGetQueueCheckpointDataNV                                        = void      function( VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData );
488 
489     // VK_INTEL_performance_query
490     alias PFN_vkInitializePerformanceApiINTEL                                   = VkResult  function( VkDevice device, const( VkInitializePerformanceApiInfoINTEL )* pInitializeInfo );
491     alias PFN_vkUninitializePerformanceApiINTEL                                 = void      function( VkDevice device );
492     alias PFN_vkCmdSetPerformanceMarkerINTEL                                    = VkResult  function( VkCommandBuffer commandBuffer, const( VkPerformanceMarkerInfoINTEL )* pMarkerInfo );
493     alias PFN_vkCmdSetPerformanceStreamMarkerINTEL                              = VkResult  function( VkCommandBuffer commandBuffer, const( VkPerformanceStreamMarkerInfoINTEL )* pMarkerInfo );
494     alias PFN_vkCmdSetPerformanceOverrideINTEL                                  = VkResult  function( VkCommandBuffer commandBuffer, const( VkPerformanceOverrideInfoINTEL )* pOverrideInfo );
495     alias PFN_vkAcquirePerformanceConfigurationINTEL                            = VkResult  function( VkDevice device, const( VkPerformanceConfigurationAcquireInfoINTEL )* pAcquireInfo, VkPerformanceConfigurationINTEL* pConfiguration );
496     alias PFN_vkReleasePerformanceConfigurationINTEL                            = VkResult  function( VkDevice device, VkPerformanceConfigurationINTEL configuration );
497     alias PFN_vkQueueSetPerformanceConfigurationINTEL                           = VkResult  function( VkQueue queue, VkPerformanceConfigurationINTEL configuration );
498     alias PFN_vkGetPerformanceParameterINTEL                                    = VkResult  function( VkDevice device, VkPerformanceParameterTypeINTEL parameter, VkPerformanceValueINTEL* pValue );
499 
500     // VK_AMD_display_native_hdr
501     alias PFN_vkSetLocalDimmingAMD                                              = void      function( VkDevice device, VkSwapchainKHR swapChain, VkBool32 localDimmingEnable );
502 
503     // VK_NV_cooperative_matrix
504     alias PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV                  = VkResult  function( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesNV* pProperties );
505 
506     // VK_NV_coverage_reduction_mode
507     alias PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = VkResult  function( VkPhysicalDevice physicalDevice, uint32_t* pCombinationCount, VkFramebufferMixedSamplesCombinationNV* pCombinations );
508 
509     // VK_EXT_headless_surface
510     alias PFN_vkCreateHeadlessSurfaceEXT                                        = VkResult  function( VkInstance instance, const( VkHeadlessSurfaceCreateInfoEXT )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkSurfaceKHR* pSurface );
511 
512     // VK_EXT_line_rasterization
513     alias PFN_vkCmdSetLineStippleEXT                                            = void      function( VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern );
514 
515     // VK_EXT_swapchain_maintenance1
516     alias PFN_vkReleaseSwapchainImagesEXT                                       = VkResult  function( VkDevice device, const( VkReleaseSwapchainImagesInfoEXT )* pReleaseInfo );
517 
518     // VK_NV_device_generated_commands
519     alias PFN_vkGetGeneratedCommandsMemoryRequirementsNV                        = void      function( VkDevice device, const( VkGeneratedCommandsMemoryRequirementsInfoNV )* pInfo, VkMemoryRequirements2* pMemoryRequirements );
520     alias PFN_vkCmdPreprocessGeneratedCommandsNV                                = void      function( VkCommandBuffer commandBuffer, const( VkGeneratedCommandsInfoNV )* pGeneratedCommandsInfo );
521     alias PFN_vkCmdExecuteGeneratedCommandsNV                                   = void      function( VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const( VkGeneratedCommandsInfoNV )* pGeneratedCommandsInfo );
522     alias PFN_vkCmdBindPipelineShaderGroupNV                                    = void      function( VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline, uint32_t groupIndex );
523     alias PFN_vkCreateIndirectCommandsLayoutNV                                  = VkResult  function( VkDevice device, const( VkIndirectCommandsLayoutCreateInfoNV )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkIndirectCommandsLayoutNV* pIndirectCommandsLayout );
524     alias PFN_vkDestroyIndirectCommandsLayoutNV                                 = void      function( VkDevice device, VkIndirectCommandsLayoutNV indirectCommandsLayout, const( VkAllocationCallbacks )* pAllocator );
525 
526     // VK_EXT_acquire_drm_display
527     alias PFN_vkAcquireDrmDisplayEXT                                            = VkResult  function( VkPhysicalDevice physicalDevice, int32_t drmFd, VkDisplayKHR display );
528     alias PFN_vkGetDrmDisplayEXT                                                = VkResult  function( VkPhysicalDevice physicalDevice, int32_t drmFd, uint32_t connectorId, VkDisplayKHR* display );
529 
530     // VK_EXT_descriptor_buffer
531     alias PFN_vkGetDescriptorSetLayoutSizeEXT                                   = void      function( VkDevice device, VkDescriptorSetLayout layout, VkDeviceSize* pLayoutSizeInBytes );
532     alias PFN_vkGetDescriptorSetLayoutBindingOffsetEXT                          = void      function( VkDevice device, VkDescriptorSetLayout layout, uint32_t binding, VkDeviceSize* pOffset );
533     alias PFN_vkGetDescriptorEXT                                                = void      function( VkDevice device, const( VkDescriptorGetInfoEXT )* pDescriptorInfo, size_t dataSize, void* pDescriptor );
534     alias PFN_vkCmdBindDescriptorBuffersEXT                                     = void      function( VkCommandBuffer commandBuffer, uint32_t bufferCount, const( VkDescriptorBufferBindingInfoEXT )* pBindingInfos );
535     alias PFN_vkCmdSetDescriptorBufferOffsetsEXT                                = void      function( VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t setCount, const( uint32_t )* pBufferIndices, const( VkDeviceSize )* pOffsets );
536     alias PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT                      = void      function( VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set );
537     alias PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT                         = VkResult  function( VkDevice device, const( VkBufferCaptureDescriptorDataInfoEXT )* pInfo, void* pData );
538     alias PFN_vkGetImageOpaqueCaptureDescriptorDataEXT                          = VkResult  function( VkDevice device, const( VkImageCaptureDescriptorDataInfoEXT )* pInfo, void* pData );
539     alias PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT                      = VkResult  function( VkDevice device, const( VkImageViewCaptureDescriptorDataInfoEXT )* pInfo, void* pData );
540     alias PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT                        = VkResult  function( VkDevice device, const( VkSamplerCaptureDescriptorDataInfoEXT )* pInfo, void* pData );
541     alias PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT          = VkResult  function( VkDevice device, const( VkAccelerationStructureCaptureDescriptorDataInfoEXT )* pInfo, void* pData );
542 
543     // VK_NV_fragment_shading_rate_enums
544     alias PFN_vkCmdSetFragmentShadingRateEnumNV                                 = void      function( VkCommandBuffer commandBuffer, VkFragmentShadingRateNV shadingRate, const VkFragmentShadingRateCombinerOpKHR[2] combinerOps );
545 
546     // VK_EXT_image_compression_control
547     alias PFN_vkGetImageSubresourceLayout2EXT                                   = void      function( VkDevice device, VkImage image, const( VkImageSubresource2EXT )* pSubresource, VkSubresourceLayout2EXT* pLayout );
548 
549     // VK_EXT_device_fault
550     alias PFN_vkGetDeviceFaultInfoEXT                                           = VkResult  function( VkDevice device, VkDeviceFaultCountsEXT* pFaultCounts, VkDeviceFaultInfoEXT* pFaultInfo );
551 
552     // VK_EXT_vertex_input_dynamic_state
553     alias PFN_vkCmdSetVertexInputEXT                                            = void      function( VkCommandBuffer commandBuffer, uint32_t vertexBindingDescriptionCount, const( VkVertexInputBindingDescription2EXT )* pVertexBindingDescriptions, uint32_t vertexAttributeDescriptionCount, const( VkVertexInputAttributeDescription2EXT )* pVertexAttributeDescriptions );
554 
555     // VK_HUAWEI_subpass_shading
556     alias PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI                   = VkResult  function( VkDevice device, VkRenderPass renderpass, VkExtent2D* pMaxWorkgroupSize );
557     alias PFN_vkCmdSubpassShadingHUAWEI                                         = void      function( VkCommandBuffer commandBuffer );
558 
559     // VK_HUAWEI_invocation_mask
560     alias PFN_vkCmdBindInvocationMaskHUAWEI                                     = void      function( VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout );
561 
562     // VK_NV_external_memory_rdma
563     alias PFN_vkGetMemoryRemoteAddressNV                                        = VkResult  function( VkDevice device, const( VkMemoryGetRemoteAddressInfoNV )* pMemoryGetRemoteAddressInfo, VkRemoteAddressNV* pAddress );
564 
565     // VK_EXT_pipeline_properties
566     alias PFN_vkGetPipelinePropertiesEXT                                        = VkResult  function( VkDevice device, const( VkPipelineInfoEXT )* pPipelineInfo, VkBaseOutStructure* pPipelineProperties );
567 
568     // VK_EXT_extended_dynamic_state2
569     alias PFN_vkCmdSetPatchControlPointsEXT                                     = void      function( VkCommandBuffer commandBuffer, uint32_t patchControlPoints );
570     alias PFN_vkCmdSetLogicOpEXT                                                = void      function( VkCommandBuffer commandBuffer, VkLogicOp logicOp );
571 
572     // VK_EXT_color_write_enable
573     alias PFN_vkCmdSetColorWriteEnableEXT                                       = void      function( VkCommandBuffer commandBuffer, uint32_t attachmentCount, const( VkBool32 )* pColorWriteEnables );
574 
575     // VK_EXT_multi_draw
576     alias PFN_vkCmdDrawMultiEXT                                                 = void      function( VkCommandBuffer commandBuffer, uint32_t drawCount, const( VkMultiDrawInfoEXT )* pVertexInfo, uint32_t instanceCount, uint32_t firstInstance, uint32_t stride );
577     alias PFN_vkCmdDrawMultiIndexedEXT                                          = void      function( VkCommandBuffer commandBuffer, uint32_t drawCount, const( VkMultiDrawIndexedInfoEXT )* pIndexInfo, uint32_t instanceCount, uint32_t firstInstance, uint32_t stride, const( int32_t )* pVertexOffset );
578 
579     // VK_EXT_opacity_micromap
580     alias PFN_vkCreateMicromapEXT                                               = VkResult  function( VkDevice device, const( VkMicromapCreateInfoEXT )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkMicromapEXT* pMicromap );
581     alias PFN_vkDestroyMicromapEXT                                              = void      function( VkDevice device, VkMicromapEXT micromap, const( VkAllocationCallbacks )* pAllocator );
582     alias PFN_vkCmdBuildMicromapsEXT                                            = void      function( VkCommandBuffer commandBuffer, uint32_t infoCount, const( VkMicromapBuildInfoEXT )* pInfos );
583     alias PFN_vkBuildMicromapsEXT                                               = VkResult  function( VkDevice device, VkDeferredOperationKHR deferredOperation, uint32_t infoCount, const( VkMicromapBuildInfoEXT )* pInfos );
584     alias PFN_vkCopyMicromapEXT                                                 = VkResult  function( VkDevice device, VkDeferredOperationKHR deferredOperation, const( VkCopyMicromapInfoEXT )* pInfo );
585     alias PFN_vkCopyMicromapToMemoryEXT                                         = VkResult  function( VkDevice device, VkDeferredOperationKHR deferredOperation, const( VkCopyMicromapToMemoryInfoEXT )* pInfo );
586     alias PFN_vkCopyMemoryToMicromapEXT                                         = VkResult  function( VkDevice device, VkDeferredOperationKHR deferredOperation, const( VkCopyMemoryToMicromapInfoEXT )* pInfo );
587     alias PFN_vkWriteMicromapsPropertiesEXT                                     = VkResult  function( VkDevice device, uint32_t micromapCount, const( VkMicromapEXT )* pMicromaps, VkQueryType queryType, size_t dataSize, void* pData, size_t stride );
588     alias PFN_vkCmdCopyMicromapEXT                                              = void      function( VkCommandBuffer commandBuffer, const( VkCopyMicromapInfoEXT )* pInfo );
589     alias PFN_vkCmdCopyMicromapToMemoryEXT                                      = void      function( VkCommandBuffer commandBuffer, const( VkCopyMicromapToMemoryInfoEXT )* pInfo );
590     alias PFN_vkCmdCopyMemoryToMicromapEXT                                      = void      function( VkCommandBuffer commandBuffer, const( VkCopyMemoryToMicromapInfoEXT )* pInfo );
591     alias PFN_vkCmdWriteMicromapsPropertiesEXT                                  = void      function( VkCommandBuffer commandBuffer, uint32_t micromapCount, const( VkMicromapEXT )* pMicromaps, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery );
592     alias PFN_vkGetDeviceMicromapCompatibilityEXT                               = void      function( VkDevice device, const( VkMicromapVersionInfoEXT )* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility );
593     alias PFN_vkGetMicromapBuildSizesEXT                                        = void      function( VkDevice device, VkAccelerationStructureBuildTypeKHR buildType, const( VkMicromapBuildInfoEXT )* pBuildInfo, VkMicromapBuildSizesInfoEXT* pSizeInfo );
594 
595     // VK_HUAWEI_cluster_culling_shader
596     alias PFN_vkCmdDrawClusterHUAWEI                                            = void      function( VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ );
597     alias PFN_vkCmdDrawClusterIndirectHUAWEI                                    = void      function( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset );
598 
599     // VK_EXT_pageable_device_local_memory
600     alias PFN_vkSetDeviceMemoryPriorityEXT                                      = void      function( VkDevice device, VkDeviceMemory memory, float priority );
601 
602     // VK_VALVE_descriptor_set_host_mapping
603     alias PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE                      = void      function( VkDevice device, const( VkDescriptorSetBindingReferenceVALVE )* pBindingReference, VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping );
604     alias PFN_vkGetDescriptorSetHostMappingVALVE                                = void      function( VkDevice device, VkDescriptorSet descriptorSet, void** ppData );
605 
606     // VK_NV_copy_memory_indirect
607     alias PFN_vkCmdCopyMemoryIndirectNV                                         = void      function( VkCommandBuffer commandBuffer, VkDeviceAddress copyBufferAddress, uint32_t copyCount, uint32_t stride );
608     alias PFN_vkCmdCopyMemoryToImageIndirectNV                                  = void      function( VkCommandBuffer commandBuffer, VkDeviceAddress copyBufferAddress, uint32_t copyCount, uint32_t stride, VkImage dstImage, VkImageLayout dstImageLayout, const( VkImageSubresourceLayers )* pImageSubresources );
609 
610     // VK_NV_memory_decompression
611     alias PFN_vkCmdDecompressMemoryNV                                           = void      function( VkCommandBuffer commandBuffer, uint32_t decompressRegionCount, const( VkDecompressMemoryRegionNV )* pDecompressMemoryRegions );
612     alias PFN_vkCmdDecompressMemoryIndirectCountNV                              = void      function( VkCommandBuffer commandBuffer, VkDeviceAddress indirectCommandsAddress, VkDeviceAddress indirectCommandsCountAddress, uint32_t stride );
613 
614     // VK_EXT_extended_dynamic_state3
615     alias PFN_vkCmdSetTessellationDomainOriginEXT                               = void      function( VkCommandBuffer commandBuffer, VkTessellationDomainOrigin domainOrigin );
616     alias PFN_vkCmdSetDepthClampEnableEXT                                       = void      function( VkCommandBuffer commandBuffer, VkBool32 depthClampEnable );
617     alias PFN_vkCmdSetPolygonModeEXT                                            = void      function( VkCommandBuffer commandBuffer, VkPolygonMode polygonMode );
618     alias PFN_vkCmdSetRasterizationSamplesEXT                                   = void      function( VkCommandBuffer commandBuffer, VkSampleCountFlagBits rasterizationSamples );
619     alias PFN_vkCmdSetSampleMaskEXT                                             = void      function( VkCommandBuffer commandBuffer, VkSampleCountFlagBits samples, const( VkSampleMask )* pSampleMask );
620     alias PFN_vkCmdSetAlphaToCoverageEnableEXT                                  = void      function( VkCommandBuffer commandBuffer, VkBool32 alphaToCoverageEnable );
621     alias PFN_vkCmdSetAlphaToOneEnableEXT                                       = void      function( VkCommandBuffer commandBuffer, VkBool32 alphaToOneEnable );
622     alias PFN_vkCmdSetLogicOpEnableEXT                                          = void      function( VkCommandBuffer commandBuffer, VkBool32 logicOpEnable );
623     alias PFN_vkCmdSetColorBlendEnableEXT                                       = void      function( VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const( VkBool32 )* pColorBlendEnables );
624     alias PFN_vkCmdSetColorBlendEquationEXT                                     = void      function( VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const( VkColorBlendEquationEXT )* pColorBlendEquations );
625     alias PFN_vkCmdSetColorWriteMaskEXT                                         = void      function( VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const( VkColorComponentFlags )* pColorWriteMasks );
626     alias PFN_vkCmdSetRasterizationStreamEXT                                    = void      function( VkCommandBuffer commandBuffer, uint32_t rasterizationStream );
627     alias PFN_vkCmdSetConservativeRasterizationModeEXT                          = void      function( VkCommandBuffer commandBuffer, VkConservativeRasterizationModeEXT conservativeRasterizationMode );
628     alias PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT                       = void      function( VkCommandBuffer commandBuffer, float extraPrimitiveOverestimationSize );
629     alias PFN_vkCmdSetDepthClipEnableEXT                                        = void      function( VkCommandBuffer commandBuffer, VkBool32 depthClipEnable );
630     alias PFN_vkCmdSetSampleLocationsEnableEXT                                  = void      function( VkCommandBuffer commandBuffer, VkBool32 sampleLocationsEnable );
631     alias PFN_vkCmdSetColorBlendAdvancedEXT                                     = void      function( VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const( VkColorBlendAdvancedEXT )* pColorBlendAdvanced );
632     alias PFN_vkCmdSetProvokingVertexModeEXT                                    = void      function( VkCommandBuffer commandBuffer, VkProvokingVertexModeEXT provokingVertexMode );
633     alias PFN_vkCmdSetLineRasterizationModeEXT                                  = void      function( VkCommandBuffer commandBuffer, VkLineRasterizationModeEXT lineRasterizationMode );
634     alias PFN_vkCmdSetLineStippleEnableEXT                                      = void      function( VkCommandBuffer commandBuffer, VkBool32 stippledLineEnable );
635     alias PFN_vkCmdSetDepthClipNegativeOneToOneEXT                              = void      function( VkCommandBuffer commandBuffer, VkBool32 negativeOneToOne );
636     alias PFN_vkCmdSetViewportWScalingEnableNV                                  = void      function( VkCommandBuffer commandBuffer, VkBool32 viewportWScalingEnable );
637     alias PFN_vkCmdSetViewportSwizzleNV                                         = void      function( VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const( VkViewportSwizzleNV )* pViewportSwizzles );
638     alias PFN_vkCmdSetCoverageToColorEnableNV                                   = void      function( VkCommandBuffer commandBuffer, VkBool32 coverageToColorEnable );
639     alias PFN_vkCmdSetCoverageToColorLocationNV                                 = void      function( VkCommandBuffer commandBuffer, uint32_t coverageToColorLocation );
640     alias PFN_vkCmdSetCoverageModulationModeNV                                  = void      function( VkCommandBuffer commandBuffer, VkCoverageModulationModeNV coverageModulationMode );
641     alias PFN_vkCmdSetCoverageModulationTableEnableNV                           = void      function( VkCommandBuffer commandBuffer, VkBool32 coverageModulationTableEnable );
642     alias PFN_vkCmdSetCoverageModulationTableNV                                 = void      function( VkCommandBuffer commandBuffer, uint32_t coverageModulationTableCount, const( float )* pCoverageModulationTable );
643     alias PFN_vkCmdSetShadingRateImageEnableNV                                  = void      function( VkCommandBuffer commandBuffer, VkBool32 shadingRateImageEnable );
644     alias PFN_vkCmdSetRepresentativeFragmentTestEnableNV                        = void      function( VkCommandBuffer commandBuffer, VkBool32 representativeFragmentTestEnable );
645     alias PFN_vkCmdSetCoverageReductionModeNV                                   = void      function( VkCommandBuffer commandBuffer, VkCoverageReductionModeNV coverageReductionMode );
646 
647     // VK_EXT_shader_module_identifier
648     alias PFN_vkGetShaderModuleIdentifierEXT                                    = void      function( VkDevice device, VkShaderModule shaderModule, VkShaderModuleIdentifierEXT* pIdentifier );
649     alias PFN_vkGetShaderModuleCreateInfoIdentifierEXT                          = void      function( VkDevice device, const( VkShaderModuleCreateInfo )* pCreateInfo, VkShaderModuleIdentifierEXT* pIdentifier );
650 
651     // VK_NV_optical_flow
652     alias PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV                      = VkResult  function( VkPhysicalDevice physicalDevice, const( VkOpticalFlowImageFormatInfoNV )* pOpticalFlowImageFormatInfo, uint32_t* pFormatCount, VkOpticalFlowImageFormatPropertiesNV* pImageFormatProperties );
653     alias PFN_vkCreateOpticalFlowSessionNV                                      = VkResult  function( VkDevice device, const( VkOpticalFlowSessionCreateInfoNV )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkOpticalFlowSessionNV* pSession );
654     alias PFN_vkDestroyOpticalFlowSessionNV                                     = void      function( VkDevice device, VkOpticalFlowSessionNV session, const( VkAllocationCallbacks )* pAllocator );
655     alias PFN_vkBindOpticalFlowSessionImageNV                                   = VkResult  function( VkDevice device, VkOpticalFlowSessionNV session, VkOpticalFlowSessionBindingPointNV bindingPoint, VkImageView view, VkImageLayout layout );
656     alias PFN_vkCmdOpticalFlowExecuteNV                                         = void      function( VkCommandBuffer commandBuffer, VkOpticalFlowSessionNV session, const( VkOpticalFlowExecuteInfoNV )* pExecuteInfo );
657 
658     // VK_EXT_shader_object
659     alias PFN_vkCreateShadersEXT                                                = VkResult  function( VkDevice device, uint32_t createInfoCount, const( VkShaderCreateInfoEXT )* pCreateInfos, const( VkAllocationCallbacks )* pAllocator, VkShaderEXT* pShaders );
660     alias PFN_vkDestroyShaderEXT                                                = void      function( VkDevice device, VkShaderEXT shader, const( VkAllocationCallbacks )* pAllocator );
661     alias PFN_vkGetShaderBinaryDataEXT                                          = VkResult  function( VkDevice device, VkShaderEXT shader, size_t* pDataSize, void* pData );
662     alias PFN_vkCmdBindShadersEXT                                               = void      function( VkCommandBuffer commandBuffer, uint32_t stageCount, const( VkShaderStageFlagBits )* pStages, const( VkShaderEXT )* pShaders );
663 
664     // VK_QCOM_tile_properties
665     alias PFN_vkGetFramebufferTilePropertiesQCOM                                = VkResult  function( VkDevice device, VkFramebuffer framebuffer, uint32_t* pPropertiesCount, VkTilePropertiesQCOM* pProperties );
666     alias PFN_vkGetDynamicRenderingTilePropertiesQCOM                           = VkResult  function( VkDevice device, const( VkRenderingInfo )* pRenderingInfo, VkTilePropertiesQCOM* pProperties );
667 
668     // VK_KHR_acceleration_structure
669     alias PFN_vkCreateAccelerationStructureKHR                                  = VkResult  function( VkDevice device, const( VkAccelerationStructureCreateInfoKHR )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkAccelerationStructureKHR* pAccelerationStructure );
670     alias PFN_vkDestroyAccelerationStructureKHR                                 = void      function( VkDevice device, VkAccelerationStructureKHR accelerationStructure, const( VkAllocationCallbacks )* pAllocator );
671     alias PFN_vkCmdBuildAccelerationStructuresKHR                               = void      function( VkCommandBuffer commandBuffer, uint32_t infoCount, const( VkAccelerationStructureBuildGeometryInfoKHR )* pInfos, const( VkAccelerationStructureBuildRangeInfoKHR* )* ppBuildRangeInfos );
672     alias PFN_vkCmdBuildAccelerationStructuresIndirectKHR                       = void      function( VkCommandBuffer commandBuffer, uint32_t infoCount, const( VkAccelerationStructureBuildGeometryInfoKHR )* pInfos, const( VkDeviceAddress )* pIndirectDeviceAddresses, const( uint32_t )* pIndirectStrides, const( uint32_t* )* ppMaxPrimitiveCounts );
673     alias PFN_vkBuildAccelerationStructuresKHR                                  = VkResult  function( VkDevice device, VkDeferredOperationKHR deferredOperation, uint32_t infoCount, const( VkAccelerationStructureBuildGeometryInfoKHR )* pInfos, const( VkAccelerationStructureBuildRangeInfoKHR* )* ppBuildRangeInfos );
674     alias PFN_vkCopyAccelerationStructureKHR                                    = VkResult  function( VkDevice device, VkDeferredOperationKHR deferredOperation, const( VkCopyAccelerationStructureInfoKHR )* pInfo );
675     alias PFN_vkCopyAccelerationStructureToMemoryKHR                            = VkResult  function( VkDevice device, VkDeferredOperationKHR deferredOperation, const( VkCopyAccelerationStructureToMemoryInfoKHR )* pInfo );
676     alias PFN_vkCopyMemoryToAccelerationStructureKHR                            = VkResult  function( VkDevice device, VkDeferredOperationKHR deferredOperation, const( VkCopyMemoryToAccelerationStructureInfoKHR )* pInfo );
677     alias PFN_vkWriteAccelerationStructuresPropertiesKHR                        = VkResult  function( VkDevice device, uint32_t accelerationStructureCount, const( VkAccelerationStructureKHR )* pAccelerationStructures, VkQueryType queryType, size_t dataSize, void* pData, size_t stride );
678     alias PFN_vkCmdCopyAccelerationStructureKHR                                 = void      function( VkCommandBuffer commandBuffer, const( VkCopyAccelerationStructureInfoKHR )* pInfo );
679     alias PFN_vkCmdCopyAccelerationStructureToMemoryKHR                         = void      function( VkCommandBuffer commandBuffer, const( VkCopyAccelerationStructureToMemoryInfoKHR )* pInfo );
680     alias PFN_vkCmdCopyMemoryToAccelerationStructureKHR                         = void      function( VkCommandBuffer commandBuffer, const( VkCopyMemoryToAccelerationStructureInfoKHR )* pInfo );
681     alias PFN_vkGetAccelerationStructureDeviceAddressKHR                        = VkDeviceAddress  function( VkDevice device, const( VkAccelerationStructureDeviceAddressInfoKHR )* pInfo );
682     alias PFN_vkCmdWriteAccelerationStructuresPropertiesKHR                     = void      function( VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const( VkAccelerationStructureKHR )* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery );
683     alias PFN_vkGetDeviceAccelerationStructureCompatibilityKHR                  = void      function( VkDevice device, const( VkAccelerationStructureVersionInfoKHR )* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility );
684     alias PFN_vkGetAccelerationStructureBuildSizesKHR                           = void      function( VkDevice device, VkAccelerationStructureBuildTypeKHR buildType, const( VkAccelerationStructureBuildGeometryInfoKHR )* pBuildInfo, const( uint32_t )* pMaxPrimitiveCounts, VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo );
685 
686     // VK_KHR_ray_tracing_pipeline
687     alias PFN_vkCmdTraceRaysKHR                                                 = void      function( VkCommandBuffer commandBuffer, const( VkStridedDeviceAddressRegionKHR )* pRaygenShaderBindingTable, const( VkStridedDeviceAddressRegionKHR )* pMissShaderBindingTable, const( VkStridedDeviceAddressRegionKHR )* pHitShaderBindingTable, const( VkStridedDeviceAddressRegionKHR )* pCallableShaderBindingTable, uint32_t width, uint32_t height, uint32_t depth );
688     alias PFN_vkCreateRayTracingPipelinesKHR                                    = VkResult  function( VkDevice device, VkDeferredOperationKHR deferredOperation, VkPipelineCache pipelineCache, uint32_t createInfoCount, const( VkRayTracingPipelineCreateInfoKHR )* pCreateInfos, const( VkAllocationCallbacks )* pAllocator, VkPipeline* pPipelines );
689     alias PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR                 = VkResult  function( VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData );
690     alias PFN_vkCmdTraceRaysIndirectKHR                                         = void      function( VkCommandBuffer commandBuffer, const( VkStridedDeviceAddressRegionKHR )* pRaygenShaderBindingTable, const( VkStridedDeviceAddressRegionKHR )* pMissShaderBindingTable, const( VkStridedDeviceAddressRegionKHR )* pHitShaderBindingTable, const( VkStridedDeviceAddressRegionKHR )* pCallableShaderBindingTable, VkDeviceAddress indirectDeviceAddress );
691     alias PFN_vkGetRayTracingShaderGroupStackSizeKHR                            = VkDeviceSize  function( VkDevice device, VkPipeline pipeline, uint32_t group, VkShaderGroupShaderKHR groupShader );
692     alias PFN_vkCmdSetRayTracingPipelineStackSizeKHR                            = void      function( VkCommandBuffer commandBuffer, uint32_t pipelineStackSize );
693 
694     // VK_EXT_mesh_shader
695     alias PFN_vkCmdDrawMeshTasksEXT                                             = void      function( VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ );
696     alias PFN_vkCmdDrawMeshTasksIndirectEXT                                     = void      function( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride );
697     alias PFN_vkCmdDrawMeshTasksIndirectCountEXT                                = void      function( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride );
698 }
699 
700 
701 /// function declarations
702 __gshared {
703 
704     // VK_VERSION_1_0
705     PFN_vkCreateInstance                                                  vkCreateInstance;
706     PFN_vkDestroyInstance                                                 vkDestroyInstance;
707     PFN_vkEnumeratePhysicalDevices                                        vkEnumeratePhysicalDevices;
708     PFN_vkGetPhysicalDeviceFeatures                                       vkGetPhysicalDeviceFeatures;
709     PFN_vkGetPhysicalDeviceFormatProperties                               vkGetPhysicalDeviceFormatProperties;
710     PFN_vkGetPhysicalDeviceImageFormatProperties                          vkGetPhysicalDeviceImageFormatProperties;
711     PFN_vkGetPhysicalDeviceProperties                                     vkGetPhysicalDeviceProperties;
712     PFN_vkGetPhysicalDeviceQueueFamilyProperties                          vkGetPhysicalDeviceQueueFamilyProperties;
713     PFN_vkGetPhysicalDeviceMemoryProperties                               vkGetPhysicalDeviceMemoryProperties;
714     PFN_vkGetInstanceProcAddr                                             vkGetInstanceProcAddr;
715     PFN_vkGetDeviceProcAddr                                               vkGetDeviceProcAddr;
716     PFN_vkCreateDevice                                                    vkCreateDevice;
717     PFN_vkDestroyDevice                                                   vkDestroyDevice;
718     PFN_vkEnumerateInstanceExtensionProperties                            vkEnumerateInstanceExtensionProperties;
719     PFN_vkEnumerateDeviceExtensionProperties                              vkEnumerateDeviceExtensionProperties;
720     PFN_vkEnumerateInstanceLayerProperties                                vkEnumerateInstanceLayerProperties;
721     PFN_vkEnumerateDeviceLayerProperties                                  vkEnumerateDeviceLayerProperties;
722     PFN_vkGetDeviceQueue                                                  vkGetDeviceQueue;
723     PFN_vkQueueSubmit                                                     vkQueueSubmit;
724     PFN_vkQueueWaitIdle                                                   vkQueueWaitIdle;
725     PFN_vkDeviceWaitIdle                                                  vkDeviceWaitIdle;
726     PFN_vkAllocateMemory                                                  vkAllocateMemory;
727     PFN_vkFreeMemory                                                      vkFreeMemory;
728     PFN_vkMapMemory                                                       vkMapMemory;
729     PFN_vkUnmapMemory                                                     vkUnmapMemory;
730     PFN_vkFlushMappedMemoryRanges                                         vkFlushMappedMemoryRanges;
731     PFN_vkInvalidateMappedMemoryRanges                                    vkInvalidateMappedMemoryRanges;
732     PFN_vkGetDeviceMemoryCommitment                                       vkGetDeviceMemoryCommitment;
733     PFN_vkBindBufferMemory                                                vkBindBufferMemory;
734     PFN_vkBindImageMemory                                                 vkBindImageMemory;
735     PFN_vkGetBufferMemoryRequirements                                     vkGetBufferMemoryRequirements;
736     PFN_vkGetImageMemoryRequirements                                      vkGetImageMemoryRequirements;
737     PFN_vkGetImageSparseMemoryRequirements                                vkGetImageSparseMemoryRequirements;
738     PFN_vkGetPhysicalDeviceSparseImageFormatProperties                    vkGetPhysicalDeviceSparseImageFormatProperties;
739     PFN_vkQueueBindSparse                                                 vkQueueBindSparse;
740     PFN_vkCreateFence                                                     vkCreateFence;
741     PFN_vkDestroyFence                                                    vkDestroyFence;
742     PFN_vkResetFences                                                     vkResetFences;
743     PFN_vkGetFenceStatus                                                  vkGetFenceStatus;
744     PFN_vkWaitForFences                                                   vkWaitForFences;
745     PFN_vkCreateSemaphore                                                 vkCreateSemaphore;
746     PFN_vkDestroySemaphore                                                vkDestroySemaphore;
747     PFN_vkCreateEvent                                                     vkCreateEvent;
748     PFN_vkDestroyEvent                                                    vkDestroyEvent;
749     PFN_vkGetEventStatus                                                  vkGetEventStatus;
750     PFN_vkSetEvent                                                        vkSetEvent;
751     PFN_vkResetEvent                                                      vkResetEvent;
752     PFN_vkCreateQueryPool                                                 vkCreateQueryPool;
753     PFN_vkDestroyQueryPool                                                vkDestroyQueryPool;
754     PFN_vkGetQueryPoolResults                                             vkGetQueryPoolResults;
755     PFN_vkCreateBuffer                                                    vkCreateBuffer;
756     PFN_vkDestroyBuffer                                                   vkDestroyBuffer;
757     PFN_vkCreateBufferView                                                vkCreateBufferView;
758     PFN_vkDestroyBufferView                                               vkDestroyBufferView;
759     PFN_vkCreateImage                                                     vkCreateImage;
760     PFN_vkDestroyImage                                                    vkDestroyImage;
761     PFN_vkGetImageSubresourceLayout                                       vkGetImageSubresourceLayout;
762     PFN_vkCreateImageView                                                 vkCreateImageView;
763     PFN_vkDestroyImageView                                                vkDestroyImageView;
764     PFN_vkCreateShaderModule                                              vkCreateShaderModule;
765     PFN_vkDestroyShaderModule                                             vkDestroyShaderModule;
766     PFN_vkCreatePipelineCache                                             vkCreatePipelineCache;
767     PFN_vkDestroyPipelineCache                                            vkDestroyPipelineCache;
768     PFN_vkGetPipelineCacheData                                            vkGetPipelineCacheData;
769     PFN_vkMergePipelineCaches                                             vkMergePipelineCaches;
770     PFN_vkCreateGraphicsPipelines                                         vkCreateGraphicsPipelines;
771     PFN_vkCreateComputePipelines                                          vkCreateComputePipelines;
772     PFN_vkDestroyPipeline                                                 vkDestroyPipeline;
773     PFN_vkCreatePipelineLayout                                            vkCreatePipelineLayout;
774     PFN_vkDestroyPipelineLayout                                           vkDestroyPipelineLayout;
775     PFN_vkCreateSampler                                                   vkCreateSampler;
776     PFN_vkDestroySampler                                                  vkDestroySampler;
777     PFN_vkCreateDescriptorSetLayout                                       vkCreateDescriptorSetLayout;
778     PFN_vkDestroyDescriptorSetLayout                                      vkDestroyDescriptorSetLayout;
779     PFN_vkCreateDescriptorPool                                            vkCreateDescriptorPool;
780     PFN_vkDestroyDescriptorPool                                           vkDestroyDescriptorPool;
781     PFN_vkResetDescriptorPool                                             vkResetDescriptorPool;
782     PFN_vkAllocateDescriptorSets                                          vkAllocateDescriptorSets;
783     PFN_vkFreeDescriptorSets                                              vkFreeDescriptorSets;
784     PFN_vkUpdateDescriptorSets                                            vkUpdateDescriptorSets;
785     PFN_vkCreateFramebuffer                                               vkCreateFramebuffer;
786     PFN_vkDestroyFramebuffer                                              vkDestroyFramebuffer;
787     PFN_vkCreateRenderPass                                                vkCreateRenderPass;
788     PFN_vkDestroyRenderPass                                               vkDestroyRenderPass;
789     PFN_vkGetRenderAreaGranularity                                        vkGetRenderAreaGranularity;
790     PFN_vkCreateCommandPool                                               vkCreateCommandPool;
791     PFN_vkDestroyCommandPool                                              vkDestroyCommandPool;
792     PFN_vkResetCommandPool                                                vkResetCommandPool;
793     PFN_vkAllocateCommandBuffers                                          vkAllocateCommandBuffers;
794     PFN_vkFreeCommandBuffers                                              vkFreeCommandBuffers;
795     PFN_vkBeginCommandBuffer                                              vkBeginCommandBuffer;
796     PFN_vkEndCommandBuffer                                                vkEndCommandBuffer;
797     PFN_vkResetCommandBuffer                                              vkResetCommandBuffer;
798     PFN_vkCmdBindPipeline                                                 vkCmdBindPipeline;
799     PFN_vkCmdSetViewport                                                  vkCmdSetViewport;
800     PFN_vkCmdSetScissor                                                   vkCmdSetScissor;
801     PFN_vkCmdSetLineWidth                                                 vkCmdSetLineWidth;
802     PFN_vkCmdSetDepthBias                                                 vkCmdSetDepthBias;
803     PFN_vkCmdSetBlendConstants                                            vkCmdSetBlendConstants;
804     PFN_vkCmdSetDepthBounds                                               vkCmdSetDepthBounds;
805     PFN_vkCmdSetStencilCompareMask                                        vkCmdSetStencilCompareMask;
806     PFN_vkCmdSetStencilWriteMask                                          vkCmdSetStencilWriteMask;
807     PFN_vkCmdSetStencilReference                                          vkCmdSetStencilReference;
808     PFN_vkCmdBindDescriptorSets                                           vkCmdBindDescriptorSets;
809     PFN_vkCmdBindIndexBuffer                                              vkCmdBindIndexBuffer;
810     PFN_vkCmdBindVertexBuffers                                            vkCmdBindVertexBuffers;
811     PFN_vkCmdDraw                                                         vkCmdDraw;
812     PFN_vkCmdDrawIndexed                                                  vkCmdDrawIndexed;
813     PFN_vkCmdDrawIndirect                                                 vkCmdDrawIndirect;
814     PFN_vkCmdDrawIndexedIndirect                                          vkCmdDrawIndexedIndirect;
815     PFN_vkCmdDispatch                                                     vkCmdDispatch;
816     PFN_vkCmdDispatchIndirect                                             vkCmdDispatchIndirect;
817     PFN_vkCmdCopyBuffer                                                   vkCmdCopyBuffer;
818     PFN_vkCmdCopyImage                                                    vkCmdCopyImage;
819     PFN_vkCmdBlitImage                                                    vkCmdBlitImage;
820     PFN_vkCmdCopyBufferToImage                                            vkCmdCopyBufferToImage;
821     PFN_vkCmdCopyImageToBuffer                                            vkCmdCopyImageToBuffer;
822     PFN_vkCmdUpdateBuffer                                                 vkCmdUpdateBuffer;
823     PFN_vkCmdFillBuffer                                                   vkCmdFillBuffer;
824     PFN_vkCmdClearColorImage                                              vkCmdClearColorImage;
825     PFN_vkCmdClearDepthStencilImage                                       vkCmdClearDepthStencilImage;
826     PFN_vkCmdClearAttachments                                             vkCmdClearAttachments;
827     PFN_vkCmdResolveImage                                                 vkCmdResolveImage;
828     PFN_vkCmdSetEvent                                                     vkCmdSetEvent;
829     PFN_vkCmdResetEvent                                                   vkCmdResetEvent;
830     PFN_vkCmdWaitEvents                                                   vkCmdWaitEvents;
831     PFN_vkCmdPipelineBarrier                                              vkCmdPipelineBarrier;
832     PFN_vkCmdBeginQuery                                                   vkCmdBeginQuery;
833     PFN_vkCmdEndQuery                                                     vkCmdEndQuery;
834     PFN_vkCmdResetQueryPool                                               vkCmdResetQueryPool;
835     PFN_vkCmdWriteTimestamp                                               vkCmdWriteTimestamp;
836     PFN_vkCmdCopyQueryPoolResults                                         vkCmdCopyQueryPoolResults;
837     PFN_vkCmdPushConstants                                                vkCmdPushConstants;
838     PFN_vkCmdBeginRenderPass                                              vkCmdBeginRenderPass;
839     PFN_vkCmdNextSubpass                                                  vkCmdNextSubpass;
840     PFN_vkCmdEndRenderPass                                                vkCmdEndRenderPass;
841     PFN_vkCmdExecuteCommands                                              vkCmdExecuteCommands;
842 
843     // VK_VERSION_1_1
844     PFN_vkEnumerateInstanceVersion                                        vkEnumerateInstanceVersion;
845     PFN_vkBindBufferMemory2                                               vkBindBufferMemory2;
846     PFN_vkBindImageMemory2                                                vkBindImageMemory2;
847     PFN_vkGetDeviceGroupPeerMemoryFeatures                                vkGetDeviceGroupPeerMemoryFeatures;
848     PFN_vkCmdSetDeviceMask                                                vkCmdSetDeviceMask;
849     PFN_vkCmdDispatchBase                                                 vkCmdDispatchBase;
850     PFN_vkEnumeratePhysicalDeviceGroups                                   vkEnumeratePhysicalDeviceGroups;
851     PFN_vkGetImageMemoryRequirements2                                     vkGetImageMemoryRequirements2;
852     PFN_vkGetBufferMemoryRequirements2                                    vkGetBufferMemoryRequirements2;
853     PFN_vkGetImageSparseMemoryRequirements2                               vkGetImageSparseMemoryRequirements2;
854     PFN_vkGetPhysicalDeviceFeatures2                                      vkGetPhysicalDeviceFeatures2;
855     PFN_vkGetPhysicalDeviceProperties2                                    vkGetPhysicalDeviceProperties2;
856     PFN_vkGetPhysicalDeviceFormatProperties2                              vkGetPhysicalDeviceFormatProperties2;
857     PFN_vkGetPhysicalDeviceImageFormatProperties2                         vkGetPhysicalDeviceImageFormatProperties2;
858     PFN_vkGetPhysicalDeviceQueueFamilyProperties2                         vkGetPhysicalDeviceQueueFamilyProperties2;
859     PFN_vkGetPhysicalDeviceMemoryProperties2                              vkGetPhysicalDeviceMemoryProperties2;
860     PFN_vkGetPhysicalDeviceSparseImageFormatProperties2                   vkGetPhysicalDeviceSparseImageFormatProperties2;
861     PFN_vkTrimCommandPool                                                 vkTrimCommandPool;
862     PFN_vkGetDeviceQueue2                                                 vkGetDeviceQueue2;
863     PFN_vkCreateSamplerYcbcrConversion                                    vkCreateSamplerYcbcrConversion;
864     PFN_vkDestroySamplerYcbcrConversion                                   vkDestroySamplerYcbcrConversion;
865     PFN_vkCreateDescriptorUpdateTemplate                                  vkCreateDescriptorUpdateTemplate;
866     PFN_vkDestroyDescriptorUpdateTemplate                                 vkDestroyDescriptorUpdateTemplate;
867     PFN_vkUpdateDescriptorSetWithTemplate                                 vkUpdateDescriptorSetWithTemplate;
868     PFN_vkGetPhysicalDeviceExternalBufferProperties                       vkGetPhysicalDeviceExternalBufferProperties;
869     PFN_vkGetPhysicalDeviceExternalFenceProperties                        vkGetPhysicalDeviceExternalFenceProperties;
870     PFN_vkGetPhysicalDeviceExternalSemaphoreProperties                    vkGetPhysicalDeviceExternalSemaphoreProperties;
871     PFN_vkGetDescriptorSetLayoutSupport                                   vkGetDescriptorSetLayoutSupport;
872 
873     // VK_VERSION_1_2
874     PFN_vkCmdDrawIndirectCount                                            vkCmdDrawIndirectCount;
875     PFN_vkCmdDrawIndexedIndirectCount                                     vkCmdDrawIndexedIndirectCount;
876     PFN_vkCreateRenderPass2                                               vkCreateRenderPass2;
877     PFN_vkCmdBeginRenderPass2                                             vkCmdBeginRenderPass2;
878     PFN_vkCmdNextSubpass2                                                 vkCmdNextSubpass2;
879     PFN_vkCmdEndRenderPass2                                               vkCmdEndRenderPass2;
880     PFN_vkResetQueryPool                                                  vkResetQueryPool;
881     PFN_vkGetSemaphoreCounterValue                                        vkGetSemaphoreCounterValue;
882     PFN_vkWaitSemaphores                                                  vkWaitSemaphores;
883     PFN_vkSignalSemaphore                                                 vkSignalSemaphore;
884     PFN_vkGetBufferDeviceAddress                                          vkGetBufferDeviceAddress;
885     PFN_vkGetBufferOpaqueCaptureAddress                                   vkGetBufferOpaqueCaptureAddress;
886     PFN_vkGetDeviceMemoryOpaqueCaptureAddress                             vkGetDeviceMemoryOpaqueCaptureAddress;
887 
888     // VK_VERSION_1_3
889     PFN_vkGetPhysicalDeviceToolProperties                                 vkGetPhysicalDeviceToolProperties;
890     PFN_vkCreatePrivateDataSlot                                           vkCreatePrivateDataSlot;
891     PFN_vkDestroyPrivateDataSlot                                          vkDestroyPrivateDataSlot;
892     PFN_vkSetPrivateData                                                  vkSetPrivateData;
893     PFN_vkGetPrivateData                                                  vkGetPrivateData;
894     PFN_vkCmdSetEvent2                                                    vkCmdSetEvent2;
895     PFN_vkCmdResetEvent2                                                  vkCmdResetEvent2;
896     PFN_vkCmdWaitEvents2                                                  vkCmdWaitEvents2;
897     PFN_vkCmdPipelineBarrier2                                             vkCmdPipelineBarrier2;
898     PFN_vkCmdWriteTimestamp2                                              vkCmdWriteTimestamp2;
899     PFN_vkQueueSubmit2                                                    vkQueueSubmit2;
900     PFN_vkCmdCopyBuffer2                                                  vkCmdCopyBuffer2;
901     PFN_vkCmdCopyImage2                                                   vkCmdCopyImage2;
902     PFN_vkCmdCopyBufferToImage2                                           vkCmdCopyBufferToImage2;
903     PFN_vkCmdCopyImageToBuffer2                                           vkCmdCopyImageToBuffer2;
904     PFN_vkCmdBlitImage2                                                   vkCmdBlitImage2;
905     PFN_vkCmdResolveImage2                                                vkCmdResolveImage2;
906     PFN_vkCmdBeginRendering                                               vkCmdBeginRendering;
907     PFN_vkCmdEndRendering                                                 vkCmdEndRendering;
908     PFN_vkCmdSetCullMode                                                  vkCmdSetCullMode;
909     PFN_vkCmdSetFrontFace                                                 vkCmdSetFrontFace;
910     PFN_vkCmdSetPrimitiveTopology                                         vkCmdSetPrimitiveTopology;
911     PFN_vkCmdSetViewportWithCount                                         vkCmdSetViewportWithCount;
912     PFN_vkCmdSetScissorWithCount                                          vkCmdSetScissorWithCount;
913     PFN_vkCmdBindVertexBuffers2                                           vkCmdBindVertexBuffers2;
914     PFN_vkCmdSetDepthTestEnable                                           vkCmdSetDepthTestEnable;
915     PFN_vkCmdSetDepthWriteEnable                                          vkCmdSetDepthWriteEnable;
916     PFN_vkCmdSetDepthCompareOp                                            vkCmdSetDepthCompareOp;
917     PFN_vkCmdSetDepthBoundsTestEnable                                     vkCmdSetDepthBoundsTestEnable;
918     PFN_vkCmdSetStencilTestEnable                                         vkCmdSetStencilTestEnable;
919     PFN_vkCmdSetStencilOp                                                 vkCmdSetStencilOp;
920     PFN_vkCmdSetRasterizerDiscardEnable                                   vkCmdSetRasterizerDiscardEnable;
921     PFN_vkCmdSetDepthBiasEnable                                           vkCmdSetDepthBiasEnable;
922     PFN_vkCmdSetPrimitiveRestartEnable                                    vkCmdSetPrimitiveRestartEnable;
923     PFN_vkGetDeviceBufferMemoryRequirements                               vkGetDeviceBufferMemoryRequirements;
924     PFN_vkGetDeviceImageMemoryRequirements                                vkGetDeviceImageMemoryRequirements;
925     PFN_vkGetDeviceImageSparseMemoryRequirements                          vkGetDeviceImageSparseMemoryRequirements;
926 
927     // VK_KHR_surface
928     PFN_vkDestroySurfaceKHR                                               vkDestroySurfaceKHR;
929     PFN_vkGetPhysicalDeviceSurfaceSupportKHR                              vkGetPhysicalDeviceSurfaceSupportKHR;
930     PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR                         vkGetPhysicalDeviceSurfaceCapabilitiesKHR;
931     PFN_vkGetPhysicalDeviceSurfaceFormatsKHR                              vkGetPhysicalDeviceSurfaceFormatsKHR;
932     PFN_vkGetPhysicalDeviceSurfacePresentModesKHR                         vkGetPhysicalDeviceSurfacePresentModesKHR;
933 
934     // VK_KHR_swapchain
935     PFN_vkCreateSwapchainKHR                                              vkCreateSwapchainKHR;
936     PFN_vkDestroySwapchainKHR                                             vkDestroySwapchainKHR;
937     PFN_vkGetSwapchainImagesKHR                                           vkGetSwapchainImagesKHR;
938     PFN_vkAcquireNextImageKHR                                             vkAcquireNextImageKHR;
939     PFN_vkQueuePresentKHR                                                 vkQueuePresentKHR;
940     PFN_vkGetDeviceGroupPresentCapabilitiesKHR                            vkGetDeviceGroupPresentCapabilitiesKHR;
941     PFN_vkGetDeviceGroupSurfacePresentModesKHR                            vkGetDeviceGroupSurfacePresentModesKHR;
942     PFN_vkGetPhysicalDevicePresentRectanglesKHR                           vkGetPhysicalDevicePresentRectanglesKHR;
943     PFN_vkAcquireNextImage2KHR                                            vkAcquireNextImage2KHR;
944 
945     // VK_KHR_display
946     PFN_vkGetPhysicalDeviceDisplayPropertiesKHR                           vkGetPhysicalDeviceDisplayPropertiesKHR;
947     PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR                      vkGetPhysicalDeviceDisplayPlanePropertiesKHR;
948     PFN_vkGetDisplayPlaneSupportedDisplaysKHR                             vkGetDisplayPlaneSupportedDisplaysKHR;
949     PFN_vkGetDisplayModePropertiesKHR                                     vkGetDisplayModePropertiesKHR;
950     PFN_vkCreateDisplayModeKHR                                            vkCreateDisplayModeKHR;
951     PFN_vkGetDisplayPlaneCapabilitiesKHR                                  vkGetDisplayPlaneCapabilitiesKHR;
952     PFN_vkCreateDisplayPlaneSurfaceKHR                                    vkCreateDisplayPlaneSurfaceKHR;
953 
954     // VK_KHR_display_swapchain
955     PFN_vkCreateSharedSwapchainsKHR                                       vkCreateSharedSwapchainsKHR;
956 
957     // VK_KHR_video_queue
958     PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR                           vkGetPhysicalDeviceVideoCapabilitiesKHR;
959     PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR                       vkGetPhysicalDeviceVideoFormatPropertiesKHR;
960     PFN_vkCreateVideoSessionKHR                                           vkCreateVideoSessionKHR;
961     PFN_vkDestroyVideoSessionKHR                                          vkDestroyVideoSessionKHR;
962     PFN_vkGetVideoSessionMemoryRequirementsKHR                            vkGetVideoSessionMemoryRequirementsKHR;
963     PFN_vkBindVideoSessionMemoryKHR                                       vkBindVideoSessionMemoryKHR;
964     PFN_vkCreateVideoSessionParametersKHR                                 vkCreateVideoSessionParametersKHR;
965     PFN_vkUpdateVideoSessionParametersKHR                                 vkUpdateVideoSessionParametersKHR;
966     PFN_vkDestroyVideoSessionParametersKHR                                vkDestroyVideoSessionParametersKHR;
967     PFN_vkCmdBeginVideoCodingKHR                                          vkCmdBeginVideoCodingKHR;
968     PFN_vkCmdEndVideoCodingKHR                                            vkCmdEndVideoCodingKHR;
969     PFN_vkCmdControlVideoCodingKHR                                        vkCmdControlVideoCodingKHR;
970 
971     // VK_KHR_video_decode_queue
972     PFN_vkCmdDecodeVideoKHR                                               vkCmdDecodeVideoKHR;
973 
974     // VK_KHR_external_memory_fd
975     PFN_vkGetMemoryFdKHR                                                  vkGetMemoryFdKHR;
976     PFN_vkGetMemoryFdPropertiesKHR                                        vkGetMemoryFdPropertiesKHR;
977 
978     // VK_KHR_external_semaphore_fd
979     PFN_vkImportSemaphoreFdKHR                                            vkImportSemaphoreFdKHR;
980     PFN_vkGetSemaphoreFdKHR                                               vkGetSemaphoreFdKHR;
981 
982     // VK_KHR_push_descriptor
983     PFN_vkCmdPushDescriptorSetKHR                                         vkCmdPushDescriptorSetKHR;
984     PFN_vkCmdPushDescriptorSetWithTemplateKHR                             vkCmdPushDescriptorSetWithTemplateKHR;
985 
986     // VK_KHR_shared_presentable_image
987     PFN_vkGetSwapchainStatusKHR                                           vkGetSwapchainStatusKHR;
988 
989     // VK_KHR_external_fence_fd
990     PFN_vkImportFenceFdKHR                                                vkImportFenceFdKHR;
991     PFN_vkGetFenceFdKHR                                                   vkGetFenceFdKHR;
992 
993     // VK_KHR_performance_query
994     PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR   vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR;
995     PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR           vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR;
996     PFN_vkAcquireProfilingLockKHR                                         vkAcquireProfilingLockKHR;
997     PFN_vkReleaseProfilingLockKHR                                         vkReleaseProfilingLockKHR;
998 
999     // VK_KHR_get_surface_capabilities2
1000     PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR                        vkGetPhysicalDeviceSurfaceCapabilities2KHR;
1001     PFN_vkGetPhysicalDeviceSurfaceFormats2KHR                             vkGetPhysicalDeviceSurfaceFormats2KHR;
1002 
1003     // VK_KHR_get_display_properties2
1004     PFN_vkGetPhysicalDeviceDisplayProperties2KHR                          vkGetPhysicalDeviceDisplayProperties2KHR;
1005     PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR                     vkGetPhysicalDeviceDisplayPlaneProperties2KHR;
1006     PFN_vkGetDisplayModeProperties2KHR                                    vkGetDisplayModeProperties2KHR;
1007     PFN_vkGetDisplayPlaneCapabilities2KHR                                 vkGetDisplayPlaneCapabilities2KHR;
1008 
1009     // VK_KHR_fragment_shading_rate
1010     PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR                        vkGetPhysicalDeviceFragmentShadingRatesKHR;
1011     PFN_vkCmdSetFragmentShadingRateKHR                                    vkCmdSetFragmentShadingRateKHR;
1012 
1013     // VK_KHR_present_wait
1014     PFN_vkWaitForPresentKHR                                               vkWaitForPresentKHR;
1015 
1016     // VK_KHR_deferred_host_operations
1017     PFN_vkCreateDeferredOperationKHR                                      vkCreateDeferredOperationKHR;
1018     PFN_vkDestroyDeferredOperationKHR                                     vkDestroyDeferredOperationKHR;
1019     PFN_vkGetDeferredOperationMaxConcurrencyKHR                           vkGetDeferredOperationMaxConcurrencyKHR;
1020     PFN_vkGetDeferredOperationResultKHR                                   vkGetDeferredOperationResultKHR;
1021     PFN_vkDeferredOperationJoinKHR                                        vkDeferredOperationJoinKHR;
1022 
1023     // VK_KHR_pipeline_executable_properties
1024     PFN_vkGetPipelineExecutablePropertiesKHR                              vkGetPipelineExecutablePropertiesKHR;
1025     PFN_vkGetPipelineExecutableStatisticsKHR                              vkGetPipelineExecutableStatisticsKHR;
1026     PFN_vkGetPipelineExecutableInternalRepresentationsKHR                 vkGetPipelineExecutableInternalRepresentationsKHR;
1027 
1028     // VK_KHR_map_memory2
1029     PFN_vkMapMemory2KHR                                                   vkMapMemory2KHR;
1030     PFN_vkUnmapMemory2KHR                                                 vkUnmapMemory2KHR;
1031 
1032     // VK_KHR_synchronization2
1033     PFN_vkCmdWriteBufferMarker2AMD                                        vkCmdWriteBufferMarker2AMD;
1034     PFN_vkGetQueueCheckpointData2NV                                       vkGetQueueCheckpointData2NV;
1035 
1036     // VK_KHR_ray_tracing_maintenance1
1037     PFN_vkCmdTraceRaysIndirect2KHR                                        vkCmdTraceRaysIndirect2KHR;
1038 
1039     // VK_EXT_debug_report
1040     PFN_vkCreateDebugReportCallbackEXT                                    vkCreateDebugReportCallbackEXT;
1041     PFN_vkDestroyDebugReportCallbackEXT                                   vkDestroyDebugReportCallbackEXT;
1042     PFN_vkDebugReportMessageEXT                                           vkDebugReportMessageEXT;
1043 
1044     // VK_EXT_debug_marker
1045     PFN_vkDebugMarkerSetObjectTagEXT                                      vkDebugMarkerSetObjectTagEXT;
1046     PFN_vkDebugMarkerSetObjectNameEXT                                     vkDebugMarkerSetObjectNameEXT;
1047     PFN_vkCmdDebugMarkerBeginEXT                                          vkCmdDebugMarkerBeginEXT;
1048     PFN_vkCmdDebugMarkerEndEXT                                            vkCmdDebugMarkerEndEXT;
1049     PFN_vkCmdDebugMarkerInsertEXT                                         vkCmdDebugMarkerInsertEXT;
1050 
1051     // VK_EXT_transform_feedback
1052     PFN_vkCmdBindTransformFeedbackBuffersEXT                              vkCmdBindTransformFeedbackBuffersEXT;
1053     PFN_vkCmdBeginTransformFeedbackEXT                                    vkCmdBeginTransformFeedbackEXT;
1054     PFN_vkCmdEndTransformFeedbackEXT                                      vkCmdEndTransformFeedbackEXT;
1055     PFN_vkCmdBeginQueryIndexedEXT                                         vkCmdBeginQueryIndexedEXT;
1056     PFN_vkCmdEndQueryIndexedEXT                                           vkCmdEndQueryIndexedEXT;
1057     PFN_vkCmdDrawIndirectByteCountEXT                                     vkCmdDrawIndirectByteCountEXT;
1058 
1059     // VK_NVX_binary_import
1060     PFN_vkCreateCuModuleNVX                                               vkCreateCuModuleNVX;
1061     PFN_vkCreateCuFunctionNVX                                             vkCreateCuFunctionNVX;
1062     PFN_vkDestroyCuModuleNVX                                              vkDestroyCuModuleNVX;
1063     PFN_vkDestroyCuFunctionNVX                                            vkDestroyCuFunctionNVX;
1064     PFN_vkCmdCuLaunchKernelNVX                                            vkCmdCuLaunchKernelNVX;
1065 
1066     // VK_NVX_image_view_handle
1067     PFN_vkGetImageViewHandleNVX                                           vkGetImageViewHandleNVX;
1068     PFN_vkGetImageViewAddressNVX                                          vkGetImageViewAddressNVX;
1069 
1070     // VK_AMD_shader_info
1071     PFN_vkGetShaderInfoAMD                                                vkGetShaderInfoAMD;
1072 
1073     // VK_NV_external_memory_capabilities
1074     PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV                vkGetPhysicalDeviceExternalImageFormatPropertiesNV;
1075 
1076     // VK_EXT_conditional_rendering
1077     PFN_vkCmdBeginConditionalRenderingEXT                                 vkCmdBeginConditionalRenderingEXT;
1078     PFN_vkCmdEndConditionalRenderingEXT                                   vkCmdEndConditionalRenderingEXT;
1079 
1080     // VK_NV_clip_space_w_scaling
1081     PFN_vkCmdSetViewportWScalingNV                                        vkCmdSetViewportWScalingNV;
1082 
1083     // VK_EXT_direct_mode_display
1084     PFN_vkReleaseDisplayEXT                                               vkReleaseDisplayEXT;
1085 
1086     // VK_EXT_display_surface_counter
1087     PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT                        vkGetPhysicalDeviceSurfaceCapabilities2EXT;
1088 
1089     // VK_EXT_display_control
1090     PFN_vkDisplayPowerControlEXT                                          vkDisplayPowerControlEXT;
1091     PFN_vkRegisterDeviceEventEXT                                          vkRegisterDeviceEventEXT;
1092     PFN_vkRegisterDisplayEventEXT                                         vkRegisterDisplayEventEXT;
1093     PFN_vkGetSwapchainCounterEXT                                          vkGetSwapchainCounterEXT;
1094 
1095     // VK_GOOGLE_display_timing
1096     PFN_vkGetRefreshCycleDurationGOOGLE                                   vkGetRefreshCycleDurationGOOGLE;
1097     PFN_vkGetPastPresentationTimingGOOGLE                                 vkGetPastPresentationTimingGOOGLE;
1098 
1099     // VK_EXT_discard_rectangles
1100     PFN_vkCmdSetDiscardRectangleEXT                                       vkCmdSetDiscardRectangleEXT;
1101     PFN_vkCmdSetDiscardRectangleEnableEXT                                 vkCmdSetDiscardRectangleEnableEXT;
1102     PFN_vkCmdSetDiscardRectangleModeEXT                                   vkCmdSetDiscardRectangleModeEXT;
1103 
1104     // VK_EXT_hdr_metadata
1105     PFN_vkSetHdrMetadataEXT                                               vkSetHdrMetadataEXT;
1106 
1107     // VK_EXT_debug_utils
1108     PFN_vkSetDebugUtilsObjectNameEXT                                      vkSetDebugUtilsObjectNameEXT;
1109     PFN_vkSetDebugUtilsObjectTagEXT                                       vkSetDebugUtilsObjectTagEXT;
1110     PFN_vkQueueBeginDebugUtilsLabelEXT                                    vkQueueBeginDebugUtilsLabelEXT;
1111     PFN_vkQueueEndDebugUtilsLabelEXT                                      vkQueueEndDebugUtilsLabelEXT;
1112     PFN_vkQueueInsertDebugUtilsLabelEXT                                   vkQueueInsertDebugUtilsLabelEXT;
1113     PFN_vkCmdBeginDebugUtilsLabelEXT                                      vkCmdBeginDebugUtilsLabelEXT;
1114     PFN_vkCmdEndDebugUtilsLabelEXT                                        vkCmdEndDebugUtilsLabelEXT;
1115     PFN_vkCmdInsertDebugUtilsLabelEXT                                     vkCmdInsertDebugUtilsLabelEXT;
1116     PFN_vkCreateDebugUtilsMessengerEXT                                    vkCreateDebugUtilsMessengerEXT;
1117     PFN_vkDestroyDebugUtilsMessengerEXT                                   vkDestroyDebugUtilsMessengerEXT;
1118     PFN_vkSubmitDebugUtilsMessageEXT                                      vkSubmitDebugUtilsMessageEXT;
1119 
1120     // VK_EXT_sample_locations
1121     PFN_vkCmdSetSampleLocationsEXT                                        vkCmdSetSampleLocationsEXT;
1122     PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT                       vkGetPhysicalDeviceMultisamplePropertiesEXT;
1123 
1124     // VK_EXT_image_drm_format_modifier
1125     PFN_vkGetImageDrmFormatModifierPropertiesEXT                          vkGetImageDrmFormatModifierPropertiesEXT;
1126 
1127     // VK_EXT_validation_cache
1128     PFN_vkCreateValidationCacheEXT                                        vkCreateValidationCacheEXT;
1129     PFN_vkDestroyValidationCacheEXT                                       vkDestroyValidationCacheEXT;
1130     PFN_vkMergeValidationCachesEXT                                        vkMergeValidationCachesEXT;
1131     PFN_vkGetValidationCacheDataEXT                                       vkGetValidationCacheDataEXT;
1132 
1133     // VK_NV_shading_rate_image
1134     PFN_vkCmdBindShadingRateImageNV                                       vkCmdBindShadingRateImageNV;
1135     PFN_vkCmdSetViewportShadingRatePaletteNV                              vkCmdSetViewportShadingRatePaletteNV;
1136     PFN_vkCmdSetCoarseSampleOrderNV                                       vkCmdSetCoarseSampleOrderNV;
1137 
1138     // VK_NV_ray_tracing
1139     PFN_vkCreateAccelerationStructureNV                                   vkCreateAccelerationStructureNV;
1140     PFN_vkDestroyAccelerationStructureNV                                  vkDestroyAccelerationStructureNV;
1141     PFN_vkGetAccelerationStructureMemoryRequirementsNV                    vkGetAccelerationStructureMemoryRequirementsNV;
1142     PFN_vkBindAccelerationStructureMemoryNV                               vkBindAccelerationStructureMemoryNV;
1143     PFN_vkCmdBuildAccelerationStructureNV                                 vkCmdBuildAccelerationStructureNV;
1144     PFN_vkCmdCopyAccelerationStructureNV                                  vkCmdCopyAccelerationStructureNV;
1145     PFN_vkCmdTraceRaysNV                                                  vkCmdTraceRaysNV;
1146     PFN_vkCreateRayTracingPipelinesNV                                     vkCreateRayTracingPipelinesNV;
1147     PFN_vkGetRayTracingShaderGroupHandlesKHR                              vkGetRayTracingShaderGroupHandlesKHR;
1148     PFN_vkGetAccelerationStructureHandleNV                                vkGetAccelerationStructureHandleNV;
1149     PFN_vkCmdWriteAccelerationStructuresPropertiesNV                      vkCmdWriteAccelerationStructuresPropertiesNV;
1150     PFN_vkCompileDeferredNV                                               vkCompileDeferredNV;
1151 
1152     // VK_EXT_external_memory_host
1153     PFN_vkGetMemoryHostPointerPropertiesEXT                               vkGetMemoryHostPointerPropertiesEXT;
1154 
1155     // VK_AMD_buffer_marker
1156     PFN_vkCmdWriteBufferMarkerAMD                                         vkCmdWriteBufferMarkerAMD;
1157 
1158     // VK_EXT_calibrated_timestamps
1159     PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT                    vkGetPhysicalDeviceCalibrateableTimeDomainsEXT;
1160     PFN_vkGetCalibratedTimestampsEXT                                      vkGetCalibratedTimestampsEXT;
1161 
1162     // VK_NV_mesh_shader
1163     PFN_vkCmdDrawMeshTasksNV                                              vkCmdDrawMeshTasksNV;
1164     PFN_vkCmdDrawMeshTasksIndirectNV                                      vkCmdDrawMeshTasksIndirectNV;
1165     PFN_vkCmdDrawMeshTasksIndirectCountNV                                 vkCmdDrawMeshTasksIndirectCountNV;
1166 
1167     // VK_NV_scissor_exclusive
1168     PFN_vkCmdSetExclusiveScissorEnableNV                                  vkCmdSetExclusiveScissorEnableNV;
1169     PFN_vkCmdSetExclusiveScissorNV                                        vkCmdSetExclusiveScissorNV;
1170 
1171     // VK_NV_device_diagnostic_checkpoints
1172     PFN_vkCmdSetCheckpointNV                                              vkCmdSetCheckpointNV;
1173     PFN_vkGetQueueCheckpointDataNV                                        vkGetQueueCheckpointDataNV;
1174 
1175     // VK_INTEL_performance_query
1176     PFN_vkInitializePerformanceApiINTEL                                   vkInitializePerformanceApiINTEL;
1177     PFN_vkUninitializePerformanceApiINTEL                                 vkUninitializePerformanceApiINTEL;
1178     PFN_vkCmdSetPerformanceMarkerINTEL                                    vkCmdSetPerformanceMarkerINTEL;
1179     PFN_vkCmdSetPerformanceStreamMarkerINTEL                              vkCmdSetPerformanceStreamMarkerINTEL;
1180     PFN_vkCmdSetPerformanceOverrideINTEL                                  vkCmdSetPerformanceOverrideINTEL;
1181     PFN_vkAcquirePerformanceConfigurationINTEL                            vkAcquirePerformanceConfigurationINTEL;
1182     PFN_vkReleasePerformanceConfigurationINTEL                            vkReleasePerformanceConfigurationINTEL;
1183     PFN_vkQueueSetPerformanceConfigurationINTEL                           vkQueueSetPerformanceConfigurationINTEL;
1184     PFN_vkGetPerformanceParameterINTEL                                    vkGetPerformanceParameterINTEL;
1185 
1186     // VK_AMD_display_native_hdr
1187     PFN_vkSetLocalDimmingAMD                                              vkSetLocalDimmingAMD;
1188 
1189     // VK_NV_cooperative_matrix
1190     PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV                  vkGetPhysicalDeviceCooperativeMatrixPropertiesNV;
1191 
1192     // VK_NV_coverage_reduction_mode
1193     PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV;
1194 
1195     // VK_EXT_headless_surface
1196     PFN_vkCreateHeadlessSurfaceEXT                                        vkCreateHeadlessSurfaceEXT;
1197 
1198     // VK_EXT_line_rasterization
1199     PFN_vkCmdSetLineStippleEXT                                            vkCmdSetLineStippleEXT;
1200 
1201     // VK_EXT_swapchain_maintenance1
1202     PFN_vkReleaseSwapchainImagesEXT                                       vkReleaseSwapchainImagesEXT;
1203 
1204     // VK_NV_device_generated_commands
1205     PFN_vkGetGeneratedCommandsMemoryRequirementsNV                        vkGetGeneratedCommandsMemoryRequirementsNV;
1206     PFN_vkCmdPreprocessGeneratedCommandsNV                                vkCmdPreprocessGeneratedCommandsNV;
1207     PFN_vkCmdExecuteGeneratedCommandsNV                                   vkCmdExecuteGeneratedCommandsNV;
1208     PFN_vkCmdBindPipelineShaderGroupNV                                    vkCmdBindPipelineShaderGroupNV;
1209     PFN_vkCreateIndirectCommandsLayoutNV                                  vkCreateIndirectCommandsLayoutNV;
1210     PFN_vkDestroyIndirectCommandsLayoutNV                                 vkDestroyIndirectCommandsLayoutNV;
1211 
1212     // VK_EXT_acquire_drm_display
1213     PFN_vkAcquireDrmDisplayEXT                                            vkAcquireDrmDisplayEXT;
1214     PFN_vkGetDrmDisplayEXT                                                vkGetDrmDisplayEXT;
1215 
1216     // VK_EXT_descriptor_buffer
1217     PFN_vkGetDescriptorSetLayoutSizeEXT                                   vkGetDescriptorSetLayoutSizeEXT;
1218     PFN_vkGetDescriptorSetLayoutBindingOffsetEXT                          vkGetDescriptorSetLayoutBindingOffsetEXT;
1219     PFN_vkGetDescriptorEXT                                                vkGetDescriptorEXT;
1220     PFN_vkCmdBindDescriptorBuffersEXT                                     vkCmdBindDescriptorBuffersEXT;
1221     PFN_vkCmdSetDescriptorBufferOffsetsEXT                                vkCmdSetDescriptorBufferOffsetsEXT;
1222     PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT                      vkCmdBindDescriptorBufferEmbeddedSamplersEXT;
1223     PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT                         vkGetBufferOpaqueCaptureDescriptorDataEXT;
1224     PFN_vkGetImageOpaqueCaptureDescriptorDataEXT                          vkGetImageOpaqueCaptureDescriptorDataEXT;
1225     PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT                      vkGetImageViewOpaqueCaptureDescriptorDataEXT;
1226     PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT                        vkGetSamplerOpaqueCaptureDescriptorDataEXT;
1227     PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT          vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT;
1228 
1229     // VK_NV_fragment_shading_rate_enums
1230     PFN_vkCmdSetFragmentShadingRateEnumNV                                 vkCmdSetFragmentShadingRateEnumNV;
1231 
1232     // VK_EXT_image_compression_control
1233     PFN_vkGetImageSubresourceLayout2EXT                                   vkGetImageSubresourceLayout2EXT;
1234 
1235     // VK_EXT_device_fault
1236     PFN_vkGetDeviceFaultInfoEXT                                           vkGetDeviceFaultInfoEXT;
1237 
1238     // VK_EXT_vertex_input_dynamic_state
1239     PFN_vkCmdSetVertexInputEXT                                            vkCmdSetVertexInputEXT;
1240 
1241     // VK_HUAWEI_subpass_shading
1242     PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI                   vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI;
1243     PFN_vkCmdSubpassShadingHUAWEI                                         vkCmdSubpassShadingHUAWEI;
1244 
1245     // VK_HUAWEI_invocation_mask
1246     PFN_vkCmdBindInvocationMaskHUAWEI                                     vkCmdBindInvocationMaskHUAWEI;
1247 
1248     // VK_NV_external_memory_rdma
1249     PFN_vkGetMemoryRemoteAddressNV                                        vkGetMemoryRemoteAddressNV;
1250 
1251     // VK_EXT_pipeline_properties
1252     PFN_vkGetPipelinePropertiesEXT                                        vkGetPipelinePropertiesEXT;
1253 
1254     // VK_EXT_extended_dynamic_state2
1255     PFN_vkCmdSetPatchControlPointsEXT                                     vkCmdSetPatchControlPointsEXT;
1256     PFN_vkCmdSetLogicOpEXT                                                vkCmdSetLogicOpEXT;
1257 
1258     // VK_EXT_color_write_enable
1259     PFN_vkCmdSetColorWriteEnableEXT                                       vkCmdSetColorWriteEnableEXT;
1260 
1261     // VK_EXT_multi_draw
1262     PFN_vkCmdDrawMultiEXT                                                 vkCmdDrawMultiEXT;
1263     PFN_vkCmdDrawMultiIndexedEXT                                          vkCmdDrawMultiIndexedEXT;
1264 
1265     // VK_EXT_opacity_micromap
1266     PFN_vkCreateMicromapEXT                                               vkCreateMicromapEXT;
1267     PFN_vkDestroyMicromapEXT                                              vkDestroyMicromapEXT;
1268     PFN_vkCmdBuildMicromapsEXT                                            vkCmdBuildMicromapsEXT;
1269     PFN_vkBuildMicromapsEXT                                               vkBuildMicromapsEXT;
1270     PFN_vkCopyMicromapEXT                                                 vkCopyMicromapEXT;
1271     PFN_vkCopyMicromapToMemoryEXT                                         vkCopyMicromapToMemoryEXT;
1272     PFN_vkCopyMemoryToMicromapEXT                                         vkCopyMemoryToMicromapEXT;
1273     PFN_vkWriteMicromapsPropertiesEXT                                     vkWriteMicromapsPropertiesEXT;
1274     PFN_vkCmdCopyMicromapEXT                                              vkCmdCopyMicromapEXT;
1275     PFN_vkCmdCopyMicromapToMemoryEXT                                      vkCmdCopyMicromapToMemoryEXT;
1276     PFN_vkCmdCopyMemoryToMicromapEXT                                      vkCmdCopyMemoryToMicromapEXT;
1277     PFN_vkCmdWriteMicromapsPropertiesEXT                                  vkCmdWriteMicromapsPropertiesEXT;
1278     PFN_vkGetDeviceMicromapCompatibilityEXT                               vkGetDeviceMicromapCompatibilityEXT;
1279     PFN_vkGetMicromapBuildSizesEXT                                        vkGetMicromapBuildSizesEXT;
1280 
1281     // VK_HUAWEI_cluster_culling_shader
1282     PFN_vkCmdDrawClusterHUAWEI                                            vkCmdDrawClusterHUAWEI;
1283     PFN_vkCmdDrawClusterIndirectHUAWEI                                    vkCmdDrawClusterIndirectHUAWEI;
1284 
1285     // VK_EXT_pageable_device_local_memory
1286     PFN_vkSetDeviceMemoryPriorityEXT                                      vkSetDeviceMemoryPriorityEXT;
1287 
1288     // VK_VALVE_descriptor_set_host_mapping
1289     PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE                      vkGetDescriptorSetLayoutHostMappingInfoVALVE;
1290     PFN_vkGetDescriptorSetHostMappingVALVE                                vkGetDescriptorSetHostMappingVALVE;
1291 
1292     // VK_NV_copy_memory_indirect
1293     PFN_vkCmdCopyMemoryIndirectNV                                         vkCmdCopyMemoryIndirectNV;
1294     PFN_vkCmdCopyMemoryToImageIndirectNV                                  vkCmdCopyMemoryToImageIndirectNV;
1295 
1296     // VK_NV_memory_decompression
1297     PFN_vkCmdDecompressMemoryNV                                           vkCmdDecompressMemoryNV;
1298     PFN_vkCmdDecompressMemoryIndirectCountNV                              vkCmdDecompressMemoryIndirectCountNV;
1299 
1300     // VK_EXT_extended_dynamic_state3
1301     PFN_vkCmdSetTessellationDomainOriginEXT                               vkCmdSetTessellationDomainOriginEXT;
1302     PFN_vkCmdSetDepthClampEnableEXT                                       vkCmdSetDepthClampEnableEXT;
1303     PFN_vkCmdSetPolygonModeEXT                                            vkCmdSetPolygonModeEXT;
1304     PFN_vkCmdSetRasterizationSamplesEXT                                   vkCmdSetRasterizationSamplesEXT;
1305     PFN_vkCmdSetSampleMaskEXT                                             vkCmdSetSampleMaskEXT;
1306     PFN_vkCmdSetAlphaToCoverageEnableEXT                                  vkCmdSetAlphaToCoverageEnableEXT;
1307     PFN_vkCmdSetAlphaToOneEnableEXT                                       vkCmdSetAlphaToOneEnableEXT;
1308     PFN_vkCmdSetLogicOpEnableEXT                                          vkCmdSetLogicOpEnableEXT;
1309     PFN_vkCmdSetColorBlendEnableEXT                                       vkCmdSetColorBlendEnableEXT;
1310     PFN_vkCmdSetColorBlendEquationEXT                                     vkCmdSetColorBlendEquationEXT;
1311     PFN_vkCmdSetColorWriteMaskEXT                                         vkCmdSetColorWriteMaskEXT;
1312     PFN_vkCmdSetRasterizationStreamEXT                                    vkCmdSetRasterizationStreamEXT;
1313     PFN_vkCmdSetConservativeRasterizationModeEXT                          vkCmdSetConservativeRasterizationModeEXT;
1314     PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT                       vkCmdSetExtraPrimitiveOverestimationSizeEXT;
1315     PFN_vkCmdSetDepthClipEnableEXT                                        vkCmdSetDepthClipEnableEXT;
1316     PFN_vkCmdSetSampleLocationsEnableEXT                                  vkCmdSetSampleLocationsEnableEXT;
1317     PFN_vkCmdSetColorBlendAdvancedEXT                                     vkCmdSetColorBlendAdvancedEXT;
1318     PFN_vkCmdSetProvokingVertexModeEXT                                    vkCmdSetProvokingVertexModeEXT;
1319     PFN_vkCmdSetLineRasterizationModeEXT                                  vkCmdSetLineRasterizationModeEXT;
1320     PFN_vkCmdSetLineStippleEnableEXT                                      vkCmdSetLineStippleEnableEXT;
1321     PFN_vkCmdSetDepthClipNegativeOneToOneEXT                              vkCmdSetDepthClipNegativeOneToOneEXT;
1322     PFN_vkCmdSetViewportWScalingEnableNV                                  vkCmdSetViewportWScalingEnableNV;
1323     PFN_vkCmdSetViewportSwizzleNV                                         vkCmdSetViewportSwizzleNV;
1324     PFN_vkCmdSetCoverageToColorEnableNV                                   vkCmdSetCoverageToColorEnableNV;
1325     PFN_vkCmdSetCoverageToColorLocationNV                                 vkCmdSetCoverageToColorLocationNV;
1326     PFN_vkCmdSetCoverageModulationModeNV                                  vkCmdSetCoverageModulationModeNV;
1327     PFN_vkCmdSetCoverageModulationTableEnableNV                           vkCmdSetCoverageModulationTableEnableNV;
1328     PFN_vkCmdSetCoverageModulationTableNV                                 vkCmdSetCoverageModulationTableNV;
1329     PFN_vkCmdSetShadingRateImageEnableNV                                  vkCmdSetShadingRateImageEnableNV;
1330     PFN_vkCmdSetRepresentativeFragmentTestEnableNV                        vkCmdSetRepresentativeFragmentTestEnableNV;
1331     PFN_vkCmdSetCoverageReductionModeNV                                   vkCmdSetCoverageReductionModeNV;
1332 
1333     // VK_EXT_shader_module_identifier
1334     PFN_vkGetShaderModuleIdentifierEXT                                    vkGetShaderModuleIdentifierEXT;
1335     PFN_vkGetShaderModuleCreateInfoIdentifierEXT                          vkGetShaderModuleCreateInfoIdentifierEXT;
1336 
1337     // VK_NV_optical_flow
1338     PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV                      vkGetPhysicalDeviceOpticalFlowImageFormatsNV;
1339     PFN_vkCreateOpticalFlowSessionNV                                      vkCreateOpticalFlowSessionNV;
1340     PFN_vkDestroyOpticalFlowSessionNV                                     vkDestroyOpticalFlowSessionNV;
1341     PFN_vkBindOpticalFlowSessionImageNV                                   vkBindOpticalFlowSessionImageNV;
1342     PFN_vkCmdOpticalFlowExecuteNV                                         vkCmdOpticalFlowExecuteNV;
1343 
1344     // VK_EXT_shader_object
1345     PFN_vkCreateShadersEXT                                                vkCreateShadersEXT;
1346     PFN_vkDestroyShaderEXT                                                vkDestroyShaderEXT;
1347     PFN_vkGetShaderBinaryDataEXT                                          vkGetShaderBinaryDataEXT;
1348     PFN_vkCmdBindShadersEXT                                               vkCmdBindShadersEXT;
1349 
1350     // VK_QCOM_tile_properties
1351     PFN_vkGetFramebufferTilePropertiesQCOM                                vkGetFramebufferTilePropertiesQCOM;
1352     PFN_vkGetDynamicRenderingTilePropertiesQCOM                           vkGetDynamicRenderingTilePropertiesQCOM;
1353 
1354     // VK_KHR_acceleration_structure
1355     PFN_vkCreateAccelerationStructureKHR                                  vkCreateAccelerationStructureKHR;
1356     PFN_vkDestroyAccelerationStructureKHR                                 vkDestroyAccelerationStructureKHR;
1357     PFN_vkCmdBuildAccelerationStructuresKHR                               vkCmdBuildAccelerationStructuresKHR;
1358     PFN_vkCmdBuildAccelerationStructuresIndirectKHR                       vkCmdBuildAccelerationStructuresIndirectKHR;
1359     PFN_vkBuildAccelerationStructuresKHR                                  vkBuildAccelerationStructuresKHR;
1360     PFN_vkCopyAccelerationStructureKHR                                    vkCopyAccelerationStructureKHR;
1361     PFN_vkCopyAccelerationStructureToMemoryKHR                            vkCopyAccelerationStructureToMemoryKHR;
1362     PFN_vkCopyMemoryToAccelerationStructureKHR                            vkCopyMemoryToAccelerationStructureKHR;
1363     PFN_vkWriteAccelerationStructuresPropertiesKHR                        vkWriteAccelerationStructuresPropertiesKHR;
1364     PFN_vkCmdCopyAccelerationStructureKHR                                 vkCmdCopyAccelerationStructureKHR;
1365     PFN_vkCmdCopyAccelerationStructureToMemoryKHR                         vkCmdCopyAccelerationStructureToMemoryKHR;
1366     PFN_vkCmdCopyMemoryToAccelerationStructureKHR                         vkCmdCopyMemoryToAccelerationStructureKHR;
1367     PFN_vkGetAccelerationStructureDeviceAddressKHR                        vkGetAccelerationStructureDeviceAddressKHR;
1368     PFN_vkCmdWriteAccelerationStructuresPropertiesKHR                     vkCmdWriteAccelerationStructuresPropertiesKHR;
1369     PFN_vkGetDeviceAccelerationStructureCompatibilityKHR                  vkGetDeviceAccelerationStructureCompatibilityKHR;
1370     PFN_vkGetAccelerationStructureBuildSizesKHR                           vkGetAccelerationStructureBuildSizesKHR;
1371 
1372     // VK_KHR_ray_tracing_pipeline
1373     PFN_vkCmdTraceRaysKHR                                                 vkCmdTraceRaysKHR;
1374     PFN_vkCreateRayTracingPipelinesKHR                                    vkCreateRayTracingPipelinesKHR;
1375     PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR                 vkGetRayTracingCaptureReplayShaderGroupHandlesKHR;
1376     PFN_vkCmdTraceRaysIndirectKHR                                         vkCmdTraceRaysIndirectKHR;
1377     PFN_vkGetRayTracingShaderGroupStackSizeKHR                            vkGetRayTracingShaderGroupStackSizeKHR;
1378     PFN_vkCmdSetRayTracingPipelineStackSizeKHR                            vkCmdSetRayTracingPipelineStackSizeKHR;
1379 
1380     // VK_EXT_mesh_shader
1381     PFN_vkCmdDrawMeshTasksEXT                                             vkCmdDrawMeshTasksEXT;
1382     PFN_vkCmdDrawMeshTasksIndirectEXT                                     vkCmdDrawMeshTasksIndirectEXT;
1383     PFN_vkCmdDrawMeshTasksIndirectCountEXT                                vkCmdDrawMeshTasksIndirectCountEXT;
1384 
1385     // VK_KHR_dynamic_rendering
1386     alias vkCmdBeginRenderingKHR                                                  = vkCmdBeginRendering;
1387     alias vkCmdEndRenderingKHR                                                    = vkCmdEndRendering;
1388 
1389     // VK_KHR_get_physical_device_properties2
1390     alias vkGetPhysicalDeviceFeatures2KHR                                         = vkGetPhysicalDeviceFeatures2;
1391     alias vkGetPhysicalDeviceProperties2KHR                                       = vkGetPhysicalDeviceProperties2;
1392     alias vkGetPhysicalDeviceFormatProperties2KHR                                 = vkGetPhysicalDeviceFormatProperties2;
1393     alias vkGetPhysicalDeviceImageFormatProperties2KHR                            = vkGetPhysicalDeviceImageFormatProperties2;
1394     alias vkGetPhysicalDeviceQueueFamilyProperties2KHR                            = vkGetPhysicalDeviceQueueFamilyProperties2;
1395     alias vkGetPhysicalDeviceMemoryProperties2KHR                                 = vkGetPhysicalDeviceMemoryProperties2;
1396     alias vkGetPhysicalDeviceSparseImageFormatProperties2KHR                      = vkGetPhysicalDeviceSparseImageFormatProperties2;
1397 
1398     // VK_KHR_device_group
1399     alias vkGetDeviceGroupPeerMemoryFeaturesKHR                                   = vkGetDeviceGroupPeerMemoryFeatures;
1400     alias vkCmdSetDeviceMaskKHR                                                   = vkCmdSetDeviceMask;
1401     alias vkCmdDispatchBaseKHR                                                    = vkCmdDispatchBase;
1402 
1403     // VK_KHR_maintenance1
1404     alias vkTrimCommandPoolKHR                                                    = vkTrimCommandPool;
1405 
1406     // VK_KHR_device_group_creation
1407     alias vkEnumeratePhysicalDeviceGroupsKHR                                      = vkEnumeratePhysicalDeviceGroups;
1408 
1409     // VK_KHR_external_memory_capabilities
1410     alias vkGetPhysicalDeviceExternalBufferPropertiesKHR                          = vkGetPhysicalDeviceExternalBufferProperties;
1411 
1412     // VK_KHR_external_semaphore_capabilities
1413     alias vkGetPhysicalDeviceExternalSemaphorePropertiesKHR                       = vkGetPhysicalDeviceExternalSemaphoreProperties;
1414 
1415     // VK_KHR_descriptor_update_template
1416     alias vkCreateDescriptorUpdateTemplateKHR                                     = vkCreateDescriptorUpdateTemplate;
1417     alias vkDestroyDescriptorUpdateTemplateKHR                                    = vkDestroyDescriptorUpdateTemplate;
1418     alias vkUpdateDescriptorSetWithTemplateKHR                                    = vkUpdateDescriptorSetWithTemplate;
1419 
1420     // VK_KHR_create_renderpass2
1421     alias vkCreateRenderPass2KHR                                                  = vkCreateRenderPass2;
1422     alias vkCmdBeginRenderPass2KHR                                                = vkCmdBeginRenderPass2;
1423     alias vkCmdNextSubpass2KHR                                                    = vkCmdNextSubpass2;
1424     alias vkCmdEndRenderPass2KHR                                                  = vkCmdEndRenderPass2;
1425 
1426     // VK_KHR_external_fence_capabilities
1427     alias vkGetPhysicalDeviceExternalFencePropertiesKHR                           = vkGetPhysicalDeviceExternalFenceProperties;
1428 
1429     // VK_KHR_get_memory_requirements2
1430     alias vkGetImageMemoryRequirements2KHR                                        = vkGetImageMemoryRequirements2;
1431     alias vkGetBufferMemoryRequirements2KHR                                       = vkGetBufferMemoryRequirements2;
1432     alias vkGetImageSparseMemoryRequirements2KHR                                  = vkGetImageSparseMemoryRequirements2;
1433 
1434     // VK_KHR_sampler_ycbcr_conversion
1435     alias vkCreateSamplerYcbcrConversionKHR                                       = vkCreateSamplerYcbcrConversion;
1436     alias vkDestroySamplerYcbcrConversionKHR                                      = vkDestroySamplerYcbcrConversion;
1437 
1438     // VK_KHR_bind_memory2
1439     alias vkBindBufferMemory2KHR                                                  = vkBindBufferMemory2;
1440     alias vkBindImageMemory2KHR                                                   = vkBindImageMemory2;
1441 
1442     // VK_KHR_maintenance3
1443     alias vkGetDescriptorSetLayoutSupportKHR                                      = vkGetDescriptorSetLayoutSupport;
1444 
1445     // VK_KHR_draw_indirect_count
1446     alias vkCmdDrawIndirectCountKHR                                               = vkCmdDrawIndirectCount;
1447     alias vkCmdDrawIndexedIndirectCountKHR                                        = vkCmdDrawIndexedIndirectCount;
1448 
1449     // VK_KHR_timeline_semaphore
1450     alias vkGetSemaphoreCounterValueKHR                                           = vkGetSemaphoreCounterValue;
1451     alias vkWaitSemaphoresKHR                                                     = vkWaitSemaphores;
1452     alias vkSignalSemaphoreKHR                                                    = vkSignalSemaphore;
1453 
1454     // VK_KHR_buffer_device_address
1455     alias vkGetBufferDeviceAddressKHR                                             = vkGetBufferDeviceAddress;
1456     alias vkGetBufferOpaqueCaptureAddressKHR                                      = vkGetBufferOpaqueCaptureAddress;
1457     alias vkGetDeviceMemoryOpaqueCaptureAddressKHR                                = vkGetDeviceMemoryOpaqueCaptureAddress;
1458 
1459     // VK_KHR_synchronization2
1460     alias vkCmdSetEvent2KHR                                                       = vkCmdSetEvent2;
1461     alias vkCmdResetEvent2KHR                                                     = vkCmdResetEvent2;
1462     alias vkCmdWaitEvents2KHR                                                     = vkCmdWaitEvents2;
1463     alias vkCmdPipelineBarrier2KHR                                                = vkCmdPipelineBarrier2;
1464     alias vkCmdWriteTimestamp2KHR                                                 = vkCmdWriteTimestamp2;
1465     alias vkQueueSubmit2KHR                                                       = vkQueueSubmit2;
1466 
1467     // VK_KHR_copy_commands2
1468     alias vkCmdCopyBuffer2KHR                                                     = vkCmdCopyBuffer2;
1469     alias vkCmdCopyImage2KHR                                                      = vkCmdCopyImage2;
1470     alias vkCmdCopyBufferToImage2KHR                                              = vkCmdCopyBufferToImage2;
1471     alias vkCmdCopyImageToBuffer2KHR                                              = vkCmdCopyImageToBuffer2;
1472     alias vkCmdBlitImage2KHR                                                      = vkCmdBlitImage2;
1473     alias vkCmdResolveImage2KHR                                                   = vkCmdResolveImage2;
1474 
1475     // VK_KHR_maintenance4
1476     alias vkGetDeviceBufferMemoryRequirementsKHR                                  = vkGetDeviceBufferMemoryRequirements;
1477     alias vkGetDeviceImageMemoryRequirementsKHR                                   = vkGetDeviceImageMemoryRequirements;
1478     alias vkGetDeviceImageSparseMemoryRequirementsKHR                             = vkGetDeviceImageSparseMemoryRequirements;
1479 
1480     // VK_AMD_draw_indirect_count
1481     alias vkCmdDrawIndirectCountAMD                                               = vkCmdDrawIndirectCount;
1482     alias vkCmdDrawIndexedIndirectCountAMD                                        = vkCmdDrawIndexedIndirectCount;
1483 
1484     // VK_NV_ray_tracing
1485     alias vkGetRayTracingShaderGroupHandlesNV                                     = vkGetRayTracingShaderGroupHandlesKHR;
1486 
1487     // VK_EXT_buffer_device_address
1488     alias vkGetBufferDeviceAddressEXT                                             = vkGetBufferDeviceAddress;
1489 
1490     // VK_EXT_tooling_info
1491     alias vkGetPhysicalDeviceToolPropertiesEXT                                    = vkGetPhysicalDeviceToolProperties;
1492 
1493     // VK_EXT_host_query_reset
1494     alias vkResetQueryPoolEXT                                                     = vkResetQueryPool;
1495 
1496     // VK_EXT_extended_dynamic_state
1497     alias vkCmdSetCullModeEXT                                                     = vkCmdSetCullMode;
1498     alias vkCmdSetFrontFaceEXT                                                    = vkCmdSetFrontFace;
1499     alias vkCmdSetPrimitiveTopologyEXT                                            = vkCmdSetPrimitiveTopology;
1500     alias vkCmdSetViewportWithCountEXT                                            = vkCmdSetViewportWithCount;
1501     alias vkCmdSetScissorWithCountEXT                                             = vkCmdSetScissorWithCount;
1502     alias vkCmdBindVertexBuffers2EXT                                              = vkCmdBindVertexBuffers2;
1503     alias vkCmdSetDepthTestEnableEXT                                              = vkCmdSetDepthTestEnable;
1504     alias vkCmdSetDepthWriteEnableEXT                                             = vkCmdSetDepthWriteEnable;
1505     alias vkCmdSetDepthCompareOpEXT                                               = vkCmdSetDepthCompareOp;
1506     alias vkCmdSetDepthBoundsTestEnableEXT                                        = vkCmdSetDepthBoundsTestEnable;
1507     alias vkCmdSetStencilTestEnableEXT                                            = vkCmdSetStencilTestEnable;
1508     alias vkCmdSetStencilOpEXT                                                    = vkCmdSetStencilOp;
1509 
1510     // VK_EXT_private_data
1511     alias vkCreatePrivateDataSlotEXT                                              = vkCreatePrivateDataSlot;
1512     alias vkDestroyPrivateDataSlotEXT                                             = vkDestroyPrivateDataSlot;
1513     alias vkSetPrivateDataEXT                                                     = vkSetPrivateData;
1514     alias vkGetPrivateDataEXT                                                     = vkGetPrivateData;
1515 
1516     // VK_EXT_extended_dynamic_state2
1517     alias vkCmdSetRasterizerDiscardEnableEXT                                      = vkCmdSetRasterizerDiscardEnable;
1518     alias vkCmdSetDepthBiasEnableEXT                                              = vkCmdSetDepthBiasEnable;
1519     alias vkCmdSetPrimitiveRestartEnableEXT                                       = vkCmdSetPrimitiveRestartEnable;
1520 }
1521 
1522 
1523 /// sets vkCreateInstance function pointer and acquires basic functions to retrieve information about the implementation
1524 /// and create an instance: vkEnumerateInstanceExtensionProperties, vkEnumerateInstanceLayerProperties, vkCreateInstance
1525 void loadGlobalLevelFunctions( PFN_vkGetInstanceProcAddr getInstanceProcAddr ) {
1526     vkGetInstanceProcAddr = getInstanceProcAddr;
1527 
1528     // VK_VERSION_1_0
1529     vkCreateInstance                       = cast( PFN_vkCreateInstance                       ) vkGetInstanceProcAddr( null, "vkCreateInstance" );
1530     vkEnumerateInstanceExtensionProperties = cast( PFN_vkEnumerateInstanceExtensionProperties ) vkGetInstanceProcAddr( null, "vkEnumerateInstanceExtensionProperties" );
1531     vkEnumerateInstanceLayerProperties     = cast( PFN_vkEnumerateInstanceLayerProperties     ) vkGetInstanceProcAddr( null, "vkEnumerateInstanceLayerProperties" );
1532 
1533     // VK_VERSION_1_1
1534     vkEnumerateInstanceVersion             = cast( PFN_vkEnumerateInstanceVersion             ) vkGetInstanceProcAddr( null, "vkEnumerateInstanceVersion" );
1535 }
1536 
1537 
1538 /// with a valid VkInstance call this function to retrieve additional VkInstance, VkPhysicalDevice, ... related functions
1539 void loadInstanceLevelFunctions( VkInstance instance ) {
1540     assert( vkGetInstanceProcAddr !is null, "Function pointer vkGetInstanceProcAddr is null!\nCall loadGlobalLevelFunctions -> loadInstanceLevelFunctions" );
1541 
1542     // VK_VERSION_1_0
1543     vkDestroyInstance                                                 = cast( PFN_vkDestroyInstance                                                 ) vkGetInstanceProcAddr( instance, "vkDestroyInstance" );
1544     vkEnumeratePhysicalDevices                                        = cast( PFN_vkEnumeratePhysicalDevices                                        ) vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDevices" );
1545     vkGetPhysicalDeviceFeatures                                       = cast( PFN_vkGetPhysicalDeviceFeatures                                       ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures" );
1546     vkGetPhysicalDeviceFormatProperties                               = cast( PFN_vkGetPhysicalDeviceFormatProperties                               ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties" );
1547     vkGetPhysicalDeviceImageFormatProperties                          = cast( PFN_vkGetPhysicalDeviceImageFormatProperties                          ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties" );
1548     vkGetPhysicalDeviceProperties                                     = cast( PFN_vkGetPhysicalDeviceProperties                                     ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties" );
1549     vkGetPhysicalDeviceQueueFamilyProperties                          = cast( PFN_vkGetPhysicalDeviceQueueFamilyProperties                          ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties" );
1550     vkGetPhysicalDeviceMemoryProperties                               = cast( PFN_vkGetPhysicalDeviceMemoryProperties                               ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties" );
1551     vkGetDeviceProcAddr                                               = cast( PFN_vkGetDeviceProcAddr                                               ) vkGetInstanceProcAddr( instance, "vkGetDeviceProcAddr" );
1552     vkCreateDevice                                                    = cast( PFN_vkCreateDevice                                                    ) vkGetInstanceProcAddr( instance, "vkCreateDevice" );
1553     vkEnumerateDeviceExtensionProperties                              = cast( PFN_vkEnumerateDeviceExtensionProperties                              ) vkGetInstanceProcAddr( instance, "vkEnumerateDeviceExtensionProperties" );
1554     vkEnumerateDeviceLayerProperties                                  = cast( PFN_vkEnumerateDeviceLayerProperties                                  ) vkGetInstanceProcAddr( instance, "vkEnumerateDeviceLayerProperties" );
1555     vkGetPhysicalDeviceSparseImageFormatProperties                    = cast( PFN_vkGetPhysicalDeviceSparseImageFormatProperties                    ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties" );
1556 
1557     // VK_VERSION_1_1
1558     vkEnumeratePhysicalDeviceGroups                                   = cast( PFN_vkEnumeratePhysicalDeviceGroups                                   ) vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceGroups" );
1559     vkGetPhysicalDeviceFeatures2                                      = cast( PFN_vkGetPhysicalDeviceFeatures2                                      ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures2" );
1560     vkGetPhysicalDeviceProperties2                                    = cast( PFN_vkGetPhysicalDeviceProperties2                                    ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties2" );
1561     vkGetPhysicalDeviceFormatProperties2                              = cast( PFN_vkGetPhysicalDeviceFormatProperties2                              ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties2" );
1562     vkGetPhysicalDeviceImageFormatProperties2                         = cast( PFN_vkGetPhysicalDeviceImageFormatProperties2                         ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties2" );
1563     vkGetPhysicalDeviceQueueFamilyProperties2                         = cast( PFN_vkGetPhysicalDeviceQueueFamilyProperties2                         ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties2" );
1564     vkGetPhysicalDeviceMemoryProperties2                              = cast( PFN_vkGetPhysicalDeviceMemoryProperties2                              ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties2" );
1565     vkGetPhysicalDeviceSparseImageFormatProperties2                   = cast( PFN_vkGetPhysicalDeviceSparseImageFormatProperties2                   ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties2" );
1566     vkGetPhysicalDeviceExternalBufferProperties                       = cast( PFN_vkGetPhysicalDeviceExternalBufferProperties                       ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalBufferProperties" );
1567     vkGetPhysicalDeviceExternalFenceProperties                        = cast( PFN_vkGetPhysicalDeviceExternalFenceProperties                        ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalFenceProperties" );
1568     vkGetPhysicalDeviceExternalSemaphoreProperties                    = cast( PFN_vkGetPhysicalDeviceExternalSemaphoreProperties                    ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalSemaphoreProperties" );
1569 
1570     // VK_VERSION_1_3
1571     vkGetPhysicalDeviceToolProperties                                 = cast( PFN_vkGetPhysicalDeviceToolProperties                                 ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceToolProperties" );
1572 
1573     // VK_KHR_surface
1574     vkDestroySurfaceKHR                                               = cast( PFN_vkDestroySurfaceKHR                                               ) vkGetInstanceProcAddr( instance, "vkDestroySurfaceKHR" );
1575     vkGetPhysicalDeviceSurfaceSupportKHR                              = cast( PFN_vkGetPhysicalDeviceSurfaceSupportKHR                              ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceSupportKHR" );
1576     vkGetPhysicalDeviceSurfaceCapabilitiesKHR                         = cast( PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR                         ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR" );
1577     vkGetPhysicalDeviceSurfaceFormatsKHR                              = cast( PFN_vkGetPhysicalDeviceSurfaceFormatsKHR                              ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceFormatsKHR" );
1578     vkGetPhysicalDeviceSurfacePresentModesKHR                         = cast( PFN_vkGetPhysicalDeviceSurfacePresentModesKHR                         ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfacePresentModesKHR" );
1579 
1580     // VK_KHR_swapchain
1581     vkGetPhysicalDevicePresentRectanglesKHR                           = cast( PFN_vkGetPhysicalDevicePresentRectanglesKHR                           ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDevicePresentRectanglesKHR" );
1582 
1583     // VK_KHR_display
1584     vkGetPhysicalDeviceDisplayPropertiesKHR                           = cast( PFN_vkGetPhysicalDeviceDisplayPropertiesKHR                           ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPropertiesKHR" );
1585     vkGetPhysicalDeviceDisplayPlanePropertiesKHR                      = cast( PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR                      ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR" );
1586     vkGetDisplayPlaneSupportedDisplaysKHR                             = cast( PFN_vkGetDisplayPlaneSupportedDisplaysKHR                             ) vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneSupportedDisplaysKHR" );
1587     vkGetDisplayModePropertiesKHR                                     = cast( PFN_vkGetDisplayModePropertiesKHR                                     ) vkGetInstanceProcAddr( instance, "vkGetDisplayModePropertiesKHR" );
1588     vkCreateDisplayModeKHR                                            = cast( PFN_vkCreateDisplayModeKHR                                            ) vkGetInstanceProcAddr( instance, "vkCreateDisplayModeKHR" );
1589     vkGetDisplayPlaneCapabilitiesKHR                                  = cast( PFN_vkGetDisplayPlaneCapabilitiesKHR                                  ) vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilitiesKHR" );
1590     vkCreateDisplayPlaneSurfaceKHR                                    = cast( PFN_vkCreateDisplayPlaneSurfaceKHR                                    ) vkGetInstanceProcAddr( instance, "vkCreateDisplayPlaneSurfaceKHR" );
1591 
1592     // VK_KHR_video_queue
1593     vkGetPhysicalDeviceVideoCapabilitiesKHR                           = cast( PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR                           ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceVideoCapabilitiesKHR" );
1594     vkGetPhysicalDeviceVideoFormatPropertiesKHR                       = cast( PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR                       ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceVideoFormatPropertiesKHR" );
1595 
1596     // VK_KHR_performance_query
1597     vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR   = cast( PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR   ) vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR" );
1598     vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR           = cast( PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR           ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR" );
1599 
1600     // VK_KHR_get_surface_capabilities2
1601     vkGetPhysicalDeviceSurfaceCapabilities2KHR                        = cast( PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR                        ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2KHR" );
1602     vkGetPhysicalDeviceSurfaceFormats2KHR                             = cast( PFN_vkGetPhysicalDeviceSurfaceFormats2KHR                             ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceFormats2KHR" );
1603 
1604     // VK_KHR_get_display_properties2
1605     vkGetPhysicalDeviceDisplayProperties2KHR                          = cast( PFN_vkGetPhysicalDeviceDisplayProperties2KHR                          ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayProperties2KHR" );
1606     vkGetPhysicalDeviceDisplayPlaneProperties2KHR                     = cast( PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR                     ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR" );
1607     vkGetDisplayModeProperties2KHR                                    = cast( PFN_vkGetDisplayModeProperties2KHR                                    ) vkGetInstanceProcAddr( instance, "vkGetDisplayModeProperties2KHR" );
1608     vkGetDisplayPlaneCapabilities2KHR                                 = cast( PFN_vkGetDisplayPlaneCapabilities2KHR                                 ) vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilities2KHR" );
1609 
1610     // VK_KHR_fragment_shading_rate
1611     vkGetPhysicalDeviceFragmentShadingRatesKHR                        = cast( PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR                        ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFragmentShadingRatesKHR" );
1612 
1613     // VK_EXT_debug_report
1614     vkCreateDebugReportCallbackEXT                                    = cast( PFN_vkCreateDebugReportCallbackEXT                                    ) vkGetInstanceProcAddr( instance, "vkCreateDebugReportCallbackEXT" );
1615     vkDestroyDebugReportCallbackEXT                                   = cast( PFN_vkDestroyDebugReportCallbackEXT                                   ) vkGetInstanceProcAddr( instance, "vkDestroyDebugReportCallbackEXT" );
1616     vkDebugReportMessageEXT                                           = cast( PFN_vkDebugReportMessageEXT                                           ) vkGetInstanceProcAddr( instance, "vkDebugReportMessageEXT" );
1617 
1618     // VK_NV_external_memory_capabilities
1619     vkGetPhysicalDeviceExternalImageFormatPropertiesNV                = cast( PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV                ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV" );
1620 
1621     // VK_EXT_direct_mode_display
1622     vkReleaseDisplayEXT                                               = cast( PFN_vkReleaseDisplayEXT                                               ) vkGetInstanceProcAddr( instance, "vkReleaseDisplayEXT" );
1623 
1624     // VK_EXT_display_surface_counter
1625     vkGetPhysicalDeviceSurfaceCapabilities2EXT                        = cast( PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT                        ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2EXT" );
1626 
1627     // VK_EXT_debug_utils
1628     vkCreateDebugUtilsMessengerEXT                                    = cast( PFN_vkCreateDebugUtilsMessengerEXT                                    ) vkGetInstanceProcAddr( instance, "vkCreateDebugUtilsMessengerEXT" );
1629     vkDestroyDebugUtilsMessengerEXT                                   = cast( PFN_vkDestroyDebugUtilsMessengerEXT                                   ) vkGetInstanceProcAddr( instance, "vkDestroyDebugUtilsMessengerEXT" );
1630     vkSubmitDebugUtilsMessageEXT                                      = cast( PFN_vkSubmitDebugUtilsMessageEXT                                      ) vkGetInstanceProcAddr( instance, "vkSubmitDebugUtilsMessageEXT" );
1631 
1632     // VK_EXT_sample_locations
1633     vkGetPhysicalDeviceMultisamplePropertiesEXT                       = cast( PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT                       ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMultisamplePropertiesEXT" );
1634 
1635     // VK_EXT_calibrated_timestamps
1636     vkGetPhysicalDeviceCalibrateableTimeDomainsEXT                    = cast( PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT                    ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT" );
1637 
1638     // VK_NV_cooperative_matrix
1639     vkGetPhysicalDeviceCooperativeMatrixPropertiesNV                  = cast( PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV                  ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV" );
1640 
1641     // VK_NV_coverage_reduction_mode
1642     vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = cast( PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" );
1643 
1644     // VK_EXT_headless_surface
1645     vkCreateHeadlessSurfaceEXT                                        = cast( PFN_vkCreateHeadlessSurfaceEXT                                        ) vkGetInstanceProcAddr( instance, "vkCreateHeadlessSurfaceEXT" );
1646 
1647     // VK_EXT_acquire_drm_display
1648     vkAcquireDrmDisplayEXT                                            = cast( PFN_vkAcquireDrmDisplayEXT                                            ) vkGetInstanceProcAddr( instance, "vkAcquireDrmDisplayEXT" );
1649     vkGetDrmDisplayEXT                                                = cast( PFN_vkGetDrmDisplayEXT                                                ) vkGetInstanceProcAddr( instance, "vkGetDrmDisplayEXT" );
1650 
1651     // VK_NV_optical_flow
1652     vkGetPhysicalDeviceOpticalFlowImageFormatsNV                      = cast( PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV                      ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceOpticalFlowImageFormatsNV" );
1653 }
1654 
1655 
1656 /// with a valid VkInstance call this function to retrieve VkDevice, VkQueue and VkCommandBuffer related functions
1657 /// the functions call indirectly through the VkInstance and will be internally dispatched by the implementation
1658 /// use loadDeviceLevelFunctions( VkDevice device ) bellow to avoid this indirection and get the pointers directly form a VkDevice
1659 void loadDeviceLevelFunctions( VkInstance instance ) {
1660     assert( vkGetInstanceProcAddr !is null, "Function pointer vkGetInstanceProcAddr is null!\nCall loadGlobalLevelFunctions -> loadDeviceLevelFunctions( instance )" );
1661 
1662     // VK_VERSION_1_0
1663     vkDestroyDevice                                          = cast( PFN_vkDestroyDevice                                          ) vkGetInstanceProcAddr( instance, "vkDestroyDevice" );
1664     vkGetDeviceQueue                                         = cast( PFN_vkGetDeviceQueue                                         ) vkGetInstanceProcAddr( instance, "vkGetDeviceQueue" );
1665     vkQueueSubmit                                            = cast( PFN_vkQueueSubmit                                            ) vkGetInstanceProcAddr( instance, "vkQueueSubmit" );
1666     vkQueueWaitIdle                                          = cast( PFN_vkQueueWaitIdle                                          ) vkGetInstanceProcAddr( instance, "vkQueueWaitIdle" );
1667     vkDeviceWaitIdle                                         = cast( PFN_vkDeviceWaitIdle                                         ) vkGetInstanceProcAddr( instance, "vkDeviceWaitIdle" );
1668     vkAllocateMemory                                         = cast( PFN_vkAllocateMemory                                         ) vkGetInstanceProcAddr( instance, "vkAllocateMemory" );
1669     vkFreeMemory                                             = cast( PFN_vkFreeMemory                                             ) vkGetInstanceProcAddr( instance, "vkFreeMemory" );
1670     vkMapMemory                                              = cast( PFN_vkMapMemory                                              ) vkGetInstanceProcAddr( instance, "vkMapMemory" );
1671     vkUnmapMemory                                            = cast( PFN_vkUnmapMemory                                            ) vkGetInstanceProcAddr( instance, "vkUnmapMemory" );
1672     vkFlushMappedMemoryRanges                                = cast( PFN_vkFlushMappedMemoryRanges                                ) vkGetInstanceProcAddr( instance, "vkFlushMappedMemoryRanges" );
1673     vkInvalidateMappedMemoryRanges                           = cast( PFN_vkInvalidateMappedMemoryRanges                           ) vkGetInstanceProcAddr( instance, "vkInvalidateMappedMemoryRanges" );
1674     vkGetDeviceMemoryCommitment                              = cast( PFN_vkGetDeviceMemoryCommitment                              ) vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryCommitment" );
1675     vkBindBufferMemory                                       = cast( PFN_vkBindBufferMemory                                       ) vkGetInstanceProcAddr( instance, "vkBindBufferMemory" );
1676     vkBindImageMemory                                        = cast( PFN_vkBindImageMemory                                        ) vkGetInstanceProcAddr( instance, "vkBindImageMemory" );
1677     vkGetBufferMemoryRequirements                            = cast( PFN_vkGetBufferMemoryRequirements                            ) vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements" );
1678     vkGetImageMemoryRequirements                             = cast( PFN_vkGetImageMemoryRequirements                             ) vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements" );
1679     vkGetImageSparseMemoryRequirements                       = cast( PFN_vkGetImageSparseMemoryRequirements                       ) vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements" );
1680     vkQueueBindSparse                                        = cast( PFN_vkQueueBindSparse                                        ) vkGetInstanceProcAddr( instance, "vkQueueBindSparse" );
1681     vkCreateFence                                            = cast( PFN_vkCreateFence                                            ) vkGetInstanceProcAddr( instance, "vkCreateFence" );
1682     vkDestroyFence                                           = cast( PFN_vkDestroyFence                                           ) vkGetInstanceProcAddr( instance, "vkDestroyFence" );
1683     vkResetFences                                            = cast( PFN_vkResetFences                                            ) vkGetInstanceProcAddr( instance, "vkResetFences" );
1684     vkGetFenceStatus                                         = cast( PFN_vkGetFenceStatus                                         ) vkGetInstanceProcAddr( instance, "vkGetFenceStatus" );
1685     vkWaitForFences                                          = cast( PFN_vkWaitForFences                                          ) vkGetInstanceProcAddr( instance, "vkWaitForFences" );
1686     vkCreateSemaphore                                        = cast( PFN_vkCreateSemaphore                                        ) vkGetInstanceProcAddr( instance, "vkCreateSemaphore" );
1687     vkDestroySemaphore                                       = cast( PFN_vkDestroySemaphore                                       ) vkGetInstanceProcAddr( instance, "vkDestroySemaphore" );
1688     vkCreateEvent                                            = cast( PFN_vkCreateEvent                                            ) vkGetInstanceProcAddr( instance, "vkCreateEvent" );
1689     vkDestroyEvent                                           = cast( PFN_vkDestroyEvent                                           ) vkGetInstanceProcAddr( instance, "vkDestroyEvent" );
1690     vkGetEventStatus                                         = cast( PFN_vkGetEventStatus                                         ) vkGetInstanceProcAddr( instance, "vkGetEventStatus" );
1691     vkSetEvent                                               = cast( PFN_vkSetEvent                                               ) vkGetInstanceProcAddr( instance, "vkSetEvent" );
1692     vkResetEvent                                             = cast( PFN_vkResetEvent                                             ) vkGetInstanceProcAddr( instance, "vkResetEvent" );
1693     vkCreateQueryPool                                        = cast( PFN_vkCreateQueryPool                                        ) vkGetInstanceProcAddr( instance, "vkCreateQueryPool" );
1694     vkDestroyQueryPool                                       = cast( PFN_vkDestroyQueryPool                                       ) vkGetInstanceProcAddr( instance, "vkDestroyQueryPool" );
1695     vkGetQueryPoolResults                                    = cast( PFN_vkGetQueryPoolResults                                    ) vkGetInstanceProcAddr( instance, "vkGetQueryPoolResults" );
1696     vkCreateBuffer                                           = cast( PFN_vkCreateBuffer                                           ) vkGetInstanceProcAddr( instance, "vkCreateBuffer" );
1697     vkDestroyBuffer                                          = cast( PFN_vkDestroyBuffer                                          ) vkGetInstanceProcAddr( instance, "vkDestroyBuffer" );
1698     vkCreateBufferView                                       = cast( PFN_vkCreateBufferView                                       ) vkGetInstanceProcAddr( instance, "vkCreateBufferView" );
1699     vkDestroyBufferView                                      = cast( PFN_vkDestroyBufferView                                      ) vkGetInstanceProcAddr( instance, "vkDestroyBufferView" );
1700     vkCreateImage                                            = cast( PFN_vkCreateImage                                            ) vkGetInstanceProcAddr( instance, "vkCreateImage" );
1701     vkDestroyImage                                           = cast( PFN_vkDestroyImage                                           ) vkGetInstanceProcAddr( instance, "vkDestroyImage" );
1702     vkGetImageSubresourceLayout                              = cast( PFN_vkGetImageSubresourceLayout                              ) vkGetInstanceProcAddr( instance, "vkGetImageSubresourceLayout" );
1703     vkCreateImageView                                        = cast( PFN_vkCreateImageView                                        ) vkGetInstanceProcAddr( instance, "vkCreateImageView" );
1704     vkDestroyImageView                                       = cast( PFN_vkDestroyImageView                                       ) vkGetInstanceProcAddr( instance, "vkDestroyImageView" );
1705     vkCreateShaderModule                                     = cast( PFN_vkCreateShaderModule                                     ) vkGetInstanceProcAddr( instance, "vkCreateShaderModule" );
1706     vkDestroyShaderModule                                    = cast( PFN_vkDestroyShaderModule                                    ) vkGetInstanceProcAddr( instance, "vkDestroyShaderModule" );
1707     vkCreatePipelineCache                                    = cast( PFN_vkCreatePipelineCache                                    ) vkGetInstanceProcAddr( instance, "vkCreatePipelineCache" );
1708     vkDestroyPipelineCache                                   = cast( PFN_vkDestroyPipelineCache                                   ) vkGetInstanceProcAddr( instance, "vkDestroyPipelineCache" );
1709     vkGetPipelineCacheData                                   = cast( PFN_vkGetPipelineCacheData                                   ) vkGetInstanceProcAddr( instance, "vkGetPipelineCacheData" );
1710     vkMergePipelineCaches                                    = cast( PFN_vkMergePipelineCaches                                    ) vkGetInstanceProcAddr( instance, "vkMergePipelineCaches" );
1711     vkCreateGraphicsPipelines                                = cast( PFN_vkCreateGraphicsPipelines                                ) vkGetInstanceProcAddr( instance, "vkCreateGraphicsPipelines" );
1712     vkCreateComputePipelines                                 = cast( PFN_vkCreateComputePipelines                                 ) vkGetInstanceProcAddr( instance, "vkCreateComputePipelines" );
1713     vkDestroyPipeline                                        = cast( PFN_vkDestroyPipeline                                        ) vkGetInstanceProcAddr( instance, "vkDestroyPipeline" );
1714     vkCreatePipelineLayout                                   = cast( PFN_vkCreatePipelineLayout                                   ) vkGetInstanceProcAddr( instance, "vkCreatePipelineLayout" );
1715     vkDestroyPipelineLayout                                  = cast( PFN_vkDestroyPipelineLayout                                  ) vkGetInstanceProcAddr( instance, "vkDestroyPipelineLayout" );
1716     vkCreateSampler                                          = cast( PFN_vkCreateSampler                                          ) vkGetInstanceProcAddr( instance, "vkCreateSampler" );
1717     vkDestroySampler                                         = cast( PFN_vkDestroySampler                                         ) vkGetInstanceProcAddr( instance, "vkDestroySampler" );
1718     vkCreateDescriptorSetLayout                              = cast( PFN_vkCreateDescriptorSetLayout                              ) vkGetInstanceProcAddr( instance, "vkCreateDescriptorSetLayout" );
1719     vkDestroyDescriptorSetLayout                             = cast( PFN_vkDestroyDescriptorSetLayout                             ) vkGetInstanceProcAddr( instance, "vkDestroyDescriptorSetLayout" );
1720     vkCreateDescriptorPool                                   = cast( PFN_vkCreateDescriptorPool                                   ) vkGetInstanceProcAddr( instance, "vkCreateDescriptorPool" );
1721     vkDestroyDescriptorPool                                  = cast( PFN_vkDestroyDescriptorPool                                  ) vkGetInstanceProcAddr( instance, "vkDestroyDescriptorPool" );
1722     vkResetDescriptorPool                                    = cast( PFN_vkResetDescriptorPool                                    ) vkGetInstanceProcAddr( instance, "vkResetDescriptorPool" );
1723     vkAllocateDescriptorSets                                 = cast( PFN_vkAllocateDescriptorSets                                 ) vkGetInstanceProcAddr( instance, "vkAllocateDescriptorSets" );
1724     vkFreeDescriptorSets                                     = cast( PFN_vkFreeDescriptorSets                                     ) vkGetInstanceProcAddr( instance, "vkFreeDescriptorSets" );
1725     vkUpdateDescriptorSets                                   = cast( PFN_vkUpdateDescriptorSets                                   ) vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSets" );
1726     vkCreateFramebuffer                                      = cast( PFN_vkCreateFramebuffer                                      ) vkGetInstanceProcAddr( instance, "vkCreateFramebuffer" );
1727     vkDestroyFramebuffer                                     = cast( PFN_vkDestroyFramebuffer                                     ) vkGetInstanceProcAddr( instance, "vkDestroyFramebuffer" );
1728     vkCreateRenderPass                                       = cast( PFN_vkCreateRenderPass                                       ) vkGetInstanceProcAddr( instance, "vkCreateRenderPass" );
1729     vkDestroyRenderPass                                      = cast( PFN_vkDestroyRenderPass                                      ) vkGetInstanceProcAddr( instance, "vkDestroyRenderPass" );
1730     vkGetRenderAreaGranularity                               = cast( PFN_vkGetRenderAreaGranularity                               ) vkGetInstanceProcAddr( instance, "vkGetRenderAreaGranularity" );
1731     vkCreateCommandPool                                      = cast( PFN_vkCreateCommandPool                                      ) vkGetInstanceProcAddr( instance, "vkCreateCommandPool" );
1732     vkDestroyCommandPool                                     = cast( PFN_vkDestroyCommandPool                                     ) vkGetInstanceProcAddr( instance, "vkDestroyCommandPool" );
1733     vkResetCommandPool                                       = cast( PFN_vkResetCommandPool                                       ) vkGetInstanceProcAddr( instance, "vkResetCommandPool" );
1734     vkAllocateCommandBuffers                                 = cast( PFN_vkAllocateCommandBuffers                                 ) vkGetInstanceProcAddr( instance, "vkAllocateCommandBuffers" );
1735     vkFreeCommandBuffers                                     = cast( PFN_vkFreeCommandBuffers                                     ) vkGetInstanceProcAddr( instance, "vkFreeCommandBuffers" );
1736     vkBeginCommandBuffer                                     = cast( PFN_vkBeginCommandBuffer                                     ) vkGetInstanceProcAddr( instance, "vkBeginCommandBuffer" );
1737     vkEndCommandBuffer                                       = cast( PFN_vkEndCommandBuffer                                       ) vkGetInstanceProcAddr( instance, "vkEndCommandBuffer" );
1738     vkResetCommandBuffer                                     = cast( PFN_vkResetCommandBuffer                                     ) vkGetInstanceProcAddr( instance, "vkResetCommandBuffer" );
1739     vkCmdBindPipeline                                        = cast( PFN_vkCmdBindPipeline                                        ) vkGetInstanceProcAddr( instance, "vkCmdBindPipeline" );
1740     vkCmdSetViewport                                         = cast( PFN_vkCmdSetViewport                                         ) vkGetInstanceProcAddr( instance, "vkCmdSetViewport" );
1741     vkCmdSetScissor                                          = cast( PFN_vkCmdSetScissor                                          ) vkGetInstanceProcAddr( instance, "vkCmdSetScissor" );
1742     vkCmdSetLineWidth                                        = cast( PFN_vkCmdSetLineWidth                                        ) vkGetInstanceProcAddr( instance, "vkCmdSetLineWidth" );
1743     vkCmdSetDepthBias                                        = cast( PFN_vkCmdSetDepthBias                                        ) vkGetInstanceProcAddr( instance, "vkCmdSetDepthBias" );
1744     vkCmdSetBlendConstants                                   = cast( PFN_vkCmdSetBlendConstants                                   ) vkGetInstanceProcAddr( instance, "vkCmdSetBlendConstants" );
1745     vkCmdSetDepthBounds                                      = cast( PFN_vkCmdSetDepthBounds                                      ) vkGetInstanceProcAddr( instance, "vkCmdSetDepthBounds" );
1746     vkCmdSetStencilCompareMask                               = cast( PFN_vkCmdSetStencilCompareMask                               ) vkGetInstanceProcAddr( instance, "vkCmdSetStencilCompareMask" );
1747     vkCmdSetStencilWriteMask                                 = cast( PFN_vkCmdSetStencilWriteMask                                 ) vkGetInstanceProcAddr( instance, "vkCmdSetStencilWriteMask" );
1748     vkCmdSetStencilReference                                 = cast( PFN_vkCmdSetStencilReference                                 ) vkGetInstanceProcAddr( instance, "vkCmdSetStencilReference" );
1749     vkCmdBindDescriptorSets                                  = cast( PFN_vkCmdBindDescriptorSets                                  ) vkGetInstanceProcAddr( instance, "vkCmdBindDescriptorSets" );
1750     vkCmdBindIndexBuffer                                     = cast( PFN_vkCmdBindIndexBuffer                                     ) vkGetInstanceProcAddr( instance, "vkCmdBindIndexBuffer" );
1751     vkCmdBindVertexBuffers                                   = cast( PFN_vkCmdBindVertexBuffers                                   ) vkGetInstanceProcAddr( instance, "vkCmdBindVertexBuffers" );
1752     vkCmdDraw                                                = cast( PFN_vkCmdDraw                                                ) vkGetInstanceProcAddr( instance, "vkCmdDraw" );
1753     vkCmdDrawIndexed                                         = cast( PFN_vkCmdDrawIndexed                                         ) vkGetInstanceProcAddr( instance, "vkCmdDrawIndexed" );
1754     vkCmdDrawIndirect                                        = cast( PFN_vkCmdDrawIndirect                                        ) vkGetInstanceProcAddr( instance, "vkCmdDrawIndirect" );
1755     vkCmdDrawIndexedIndirect                                 = cast( PFN_vkCmdDrawIndexedIndirect                                 ) vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirect" );
1756     vkCmdDispatch                                            = cast( PFN_vkCmdDispatch                                            ) vkGetInstanceProcAddr( instance, "vkCmdDispatch" );
1757     vkCmdDispatchIndirect                                    = cast( PFN_vkCmdDispatchIndirect                                    ) vkGetInstanceProcAddr( instance, "vkCmdDispatchIndirect" );
1758     vkCmdCopyBuffer                                          = cast( PFN_vkCmdCopyBuffer                                          ) vkGetInstanceProcAddr( instance, "vkCmdCopyBuffer" );
1759     vkCmdCopyImage                                           = cast( PFN_vkCmdCopyImage                                           ) vkGetInstanceProcAddr( instance, "vkCmdCopyImage" );
1760     vkCmdBlitImage                                           = cast( PFN_vkCmdBlitImage                                           ) vkGetInstanceProcAddr( instance, "vkCmdBlitImage" );
1761     vkCmdCopyBufferToImage                                   = cast( PFN_vkCmdCopyBufferToImage                                   ) vkGetInstanceProcAddr( instance, "vkCmdCopyBufferToImage" );
1762     vkCmdCopyImageToBuffer                                   = cast( PFN_vkCmdCopyImageToBuffer                                   ) vkGetInstanceProcAddr( instance, "vkCmdCopyImageToBuffer" );
1763     vkCmdUpdateBuffer                                        = cast( PFN_vkCmdUpdateBuffer                                        ) vkGetInstanceProcAddr( instance, "vkCmdUpdateBuffer" );
1764     vkCmdFillBuffer                                          = cast( PFN_vkCmdFillBuffer                                          ) vkGetInstanceProcAddr( instance, "vkCmdFillBuffer" );
1765     vkCmdClearColorImage                                     = cast( PFN_vkCmdClearColorImage                                     ) vkGetInstanceProcAddr( instance, "vkCmdClearColorImage" );
1766     vkCmdClearDepthStencilImage                              = cast( PFN_vkCmdClearDepthStencilImage                              ) vkGetInstanceProcAddr( instance, "vkCmdClearDepthStencilImage" );
1767     vkCmdClearAttachments                                    = cast( PFN_vkCmdClearAttachments                                    ) vkGetInstanceProcAddr( instance, "vkCmdClearAttachments" );
1768     vkCmdResolveImage                                        = cast( PFN_vkCmdResolveImage                                        ) vkGetInstanceProcAddr( instance, "vkCmdResolveImage" );
1769     vkCmdSetEvent                                            = cast( PFN_vkCmdSetEvent                                            ) vkGetInstanceProcAddr( instance, "vkCmdSetEvent" );
1770     vkCmdResetEvent                                          = cast( PFN_vkCmdResetEvent                                          ) vkGetInstanceProcAddr( instance, "vkCmdResetEvent" );
1771     vkCmdWaitEvents                                          = cast( PFN_vkCmdWaitEvents                                          ) vkGetInstanceProcAddr( instance, "vkCmdWaitEvents" );
1772     vkCmdPipelineBarrier                                     = cast( PFN_vkCmdPipelineBarrier                                     ) vkGetInstanceProcAddr( instance, "vkCmdPipelineBarrier" );
1773     vkCmdBeginQuery                                          = cast( PFN_vkCmdBeginQuery                                          ) vkGetInstanceProcAddr( instance, "vkCmdBeginQuery" );
1774     vkCmdEndQuery                                            = cast( PFN_vkCmdEndQuery                                            ) vkGetInstanceProcAddr( instance, "vkCmdEndQuery" );
1775     vkCmdResetQueryPool                                      = cast( PFN_vkCmdResetQueryPool                                      ) vkGetInstanceProcAddr( instance, "vkCmdResetQueryPool" );
1776     vkCmdWriteTimestamp                                      = cast( PFN_vkCmdWriteTimestamp                                      ) vkGetInstanceProcAddr( instance, "vkCmdWriteTimestamp" );
1777     vkCmdCopyQueryPoolResults                                = cast( PFN_vkCmdCopyQueryPoolResults                                ) vkGetInstanceProcAddr( instance, "vkCmdCopyQueryPoolResults" );
1778     vkCmdPushConstants                                       = cast( PFN_vkCmdPushConstants                                       ) vkGetInstanceProcAddr( instance, "vkCmdPushConstants" );
1779     vkCmdBeginRenderPass                                     = cast( PFN_vkCmdBeginRenderPass                                     ) vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass" );
1780     vkCmdNextSubpass                                         = cast( PFN_vkCmdNextSubpass                                         ) vkGetInstanceProcAddr( instance, "vkCmdNextSubpass" );
1781     vkCmdEndRenderPass                                       = cast( PFN_vkCmdEndRenderPass                                       ) vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass" );
1782     vkCmdExecuteCommands                                     = cast( PFN_vkCmdExecuteCommands                                     ) vkGetInstanceProcAddr( instance, "vkCmdExecuteCommands" );
1783 
1784     // VK_VERSION_1_1
1785     vkBindBufferMemory2                                      = cast( PFN_vkBindBufferMemory2                                      ) vkGetInstanceProcAddr( instance, "vkBindBufferMemory2" );
1786     vkBindImageMemory2                                       = cast( PFN_vkBindImageMemory2                                       ) vkGetInstanceProcAddr( instance, "vkBindImageMemory2" );
1787     vkGetDeviceGroupPeerMemoryFeatures                       = cast( PFN_vkGetDeviceGroupPeerMemoryFeatures                       ) vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPeerMemoryFeatures" );
1788     vkCmdSetDeviceMask                                       = cast( PFN_vkCmdSetDeviceMask                                       ) vkGetInstanceProcAddr( instance, "vkCmdSetDeviceMask" );
1789     vkCmdDispatchBase                                        = cast( PFN_vkCmdDispatchBase                                        ) vkGetInstanceProcAddr( instance, "vkCmdDispatchBase" );
1790     vkGetImageMemoryRequirements2                            = cast( PFN_vkGetImageMemoryRequirements2                            ) vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements2" );
1791     vkGetBufferMemoryRequirements2                           = cast( PFN_vkGetBufferMemoryRequirements2                           ) vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements2" );
1792     vkGetImageSparseMemoryRequirements2                      = cast( PFN_vkGetImageSparseMemoryRequirements2                      ) vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements2" );
1793     vkTrimCommandPool                                        = cast( PFN_vkTrimCommandPool                                        ) vkGetInstanceProcAddr( instance, "vkTrimCommandPool" );
1794     vkGetDeviceQueue2                                        = cast( PFN_vkGetDeviceQueue2                                        ) vkGetInstanceProcAddr( instance, "vkGetDeviceQueue2" );
1795     vkCreateSamplerYcbcrConversion                           = cast( PFN_vkCreateSamplerYcbcrConversion                           ) vkGetInstanceProcAddr( instance, "vkCreateSamplerYcbcrConversion" );
1796     vkDestroySamplerYcbcrConversion                          = cast( PFN_vkDestroySamplerYcbcrConversion                          ) vkGetInstanceProcAddr( instance, "vkDestroySamplerYcbcrConversion" );
1797     vkCreateDescriptorUpdateTemplate                         = cast( PFN_vkCreateDescriptorUpdateTemplate                         ) vkGetInstanceProcAddr( instance, "vkCreateDescriptorUpdateTemplate" );
1798     vkDestroyDescriptorUpdateTemplate                        = cast( PFN_vkDestroyDescriptorUpdateTemplate                        ) vkGetInstanceProcAddr( instance, "vkDestroyDescriptorUpdateTemplate" );
1799     vkUpdateDescriptorSetWithTemplate                        = cast( PFN_vkUpdateDescriptorSetWithTemplate                        ) vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSetWithTemplate" );
1800     vkGetDescriptorSetLayoutSupport                          = cast( PFN_vkGetDescriptorSetLayoutSupport                          ) vkGetInstanceProcAddr( instance, "vkGetDescriptorSetLayoutSupport" );
1801 
1802     // VK_VERSION_1_2
1803     vkCmdDrawIndirectCount                                   = cast( PFN_vkCmdDrawIndirectCount                                   ) vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCount" );
1804     vkCmdDrawIndexedIndirectCount                            = cast( PFN_vkCmdDrawIndexedIndirectCount                            ) vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCount" );
1805     vkCreateRenderPass2                                      = cast( PFN_vkCreateRenderPass2                                      ) vkGetInstanceProcAddr( instance, "vkCreateRenderPass2" );
1806     vkCmdBeginRenderPass2                                    = cast( PFN_vkCmdBeginRenderPass2                                    ) vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass2" );
1807     vkCmdNextSubpass2                                        = cast( PFN_vkCmdNextSubpass2                                        ) vkGetInstanceProcAddr( instance, "vkCmdNextSubpass2" );
1808     vkCmdEndRenderPass2                                      = cast( PFN_vkCmdEndRenderPass2                                      ) vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass2" );
1809     vkResetQueryPool                                         = cast( PFN_vkResetQueryPool                                         ) vkGetInstanceProcAddr( instance, "vkResetQueryPool" );
1810     vkGetSemaphoreCounterValue                               = cast( PFN_vkGetSemaphoreCounterValue                               ) vkGetInstanceProcAddr( instance, "vkGetSemaphoreCounterValue" );
1811     vkWaitSemaphores                                         = cast( PFN_vkWaitSemaphores                                         ) vkGetInstanceProcAddr( instance, "vkWaitSemaphores" );
1812     vkSignalSemaphore                                        = cast( PFN_vkSignalSemaphore                                        ) vkGetInstanceProcAddr( instance, "vkSignalSemaphore" );
1813     vkGetBufferDeviceAddress                                 = cast( PFN_vkGetBufferDeviceAddress                                 ) vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddress" );
1814     vkGetBufferOpaqueCaptureAddress                          = cast( PFN_vkGetBufferOpaqueCaptureAddress                          ) vkGetInstanceProcAddr( instance, "vkGetBufferOpaqueCaptureAddress" );
1815     vkGetDeviceMemoryOpaqueCaptureAddress                    = cast( PFN_vkGetDeviceMemoryOpaqueCaptureAddress                    ) vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryOpaqueCaptureAddress" );
1816 
1817     // VK_VERSION_1_3
1818     vkCreatePrivateDataSlot                                  = cast( PFN_vkCreatePrivateDataSlot                                  ) vkGetInstanceProcAddr( instance, "vkCreatePrivateDataSlot" );
1819     vkDestroyPrivateDataSlot                                 = cast( PFN_vkDestroyPrivateDataSlot                                 ) vkGetInstanceProcAddr( instance, "vkDestroyPrivateDataSlot" );
1820     vkSetPrivateData                                         = cast( PFN_vkSetPrivateData                                         ) vkGetInstanceProcAddr( instance, "vkSetPrivateData" );
1821     vkGetPrivateData                                         = cast( PFN_vkGetPrivateData                                         ) vkGetInstanceProcAddr( instance, "vkGetPrivateData" );
1822     vkCmdSetEvent2                                           = cast( PFN_vkCmdSetEvent2                                           ) vkGetInstanceProcAddr( instance, "vkCmdSetEvent2" );
1823     vkCmdResetEvent2                                         = cast( PFN_vkCmdResetEvent2                                         ) vkGetInstanceProcAddr( instance, "vkCmdResetEvent2" );
1824     vkCmdWaitEvents2                                         = cast( PFN_vkCmdWaitEvents2                                         ) vkGetInstanceProcAddr( instance, "vkCmdWaitEvents2" );
1825     vkCmdPipelineBarrier2                                    = cast( PFN_vkCmdPipelineBarrier2                                    ) vkGetInstanceProcAddr( instance, "vkCmdPipelineBarrier2" );
1826     vkCmdWriteTimestamp2                                     = cast( PFN_vkCmdWriteTimestamp2                                     ) vkGetInstanceProcAddr( instance, "vkCmdWriteTimestamp2" );
1827     vkQueueSubmit2                                           = cast( PFN_vkQueueSubmit2                                           ) vkGetInstanceProcAddr( instance, "vkQueueSubmit2" );
1828     vkCmdCopyBuffer2                                         = cast( PFN_vkCmdCopyBuffer2                                         ) vkGetInstanceProcAddr( instance, "vkCmdCopyBuffer2" );
1829     vkCmdCopyImage2                                          = cast( PFN_vkCmdCopyImage2                                          ) vkGetInstanceProcAddr( instance, "vkCmdCopyImage2" );
1830     vkCmdCopyBufferToImage2                                  = cast( PFN_vkCmdCopyBufferToImage2                                  ) vkGetInstanceProcAddr( instance, "vkCmdCopyBufferToImage2" );
1831     vkCmdCopyImageToBuffer2                                  = cast( PFN_vkCmdCopyImageToBuffer2                                  ) vkGetInstanceProcAddr( instance, "vkCmdCopyImageToBuffer2" );
1832     vkCmdBlitImage2                                          = cast( PFN_vkCmdBlitImage2                                          ) vkGetInstanceProcAddr( instance, "vkCmdBlitImage2" );
1833     vkCmdResolveImage2                                       = cast( PFN_vkCmdResolveImage2                                       ) vkGetInstanceProcAddr( instance, "vkCmdResolveImage2" );
1834     vkCmdBeginRendering                                      = cast( PFN_vkCmdBeginRendering                                      ) vkGetInstanceProcAddr( instance, "vkCmdBeginRendering" );
1835     vkCmdEndRendering                                        = cast( PFN_vkCmdEndRendering                                        ) vkGetInstanceProcAddr( instance, "vkCmdEndRendering" );
1836     vkCmdSetCullMode                                         = cast( PFN_vkCmdSetCullMode                                         ) vkGetInstanceProcAddr( instance, "vkCmdSetCullMode" );
1837     vkCmdSetFrontFace                                        = cast( PFN_vkCmdSetFrontFace                                        ) vkGetInstanceProcAddr( instance, "vkCmdSetFrontFace" );
1838     vkCmdSetPrimitiveTopology                                = cast( PFN_vkCmdSetPrimitiveTopology                                ) vkGetInstanceProcAddr( instance, "vkCmdSetPrimitiveTopology" );
1839     vkCmdSetViewportWithCount                                = cast( PFN_vkCmdSetViewportWithCount                                ) vkGetInstanceProcAddr( instance, "vkCmdSetViewportWithCount" );
1840     vkCmdSetScissorWithCount                                 = cast( PFN_vkCmdSetScissorWithCount                                 ) vkGetInstanceProcAddr( instance, "vkCmdSetScissorWithCount" );
1841     vkCmdBindVertexBuffers2                                  = cast( PFN_vkCmdBindVertexBuffers2                                  ) vkGetInstanceProcAddr( instance, "vkCmdBindVertexBuffers2" );
1842     vkCmdSetDepthTestEnable                                  = cast( PFN_vkCmdSetDepthTestEnable                                  ) vkGetInstanceProcAddr( instance, "vkCmdSetDepthTestEnable" );
1843     vkCmdSetDepthWriteEnable                                 = cast( PFN_vkCmdSetDepthWriteEnable                                 ) vkGetInstanceProcAddr( instance, "vkCmdSetDepthWriteEnable" );
1844     vkCmdSetDepthCompareOp                                   = cast( PFN_vkCmdSetDepthCompareOp                                   ) vkGetInstanceProcAddr( instance, "vkCmdSetDepthCompareOp" );
1845     vkCmdSetDepthBoundsTestEnable                            = cast( PFN_vkCmdSetDepthBoundsTestEnable                            ) vkGetInstanceProcAddr( instance, "vkCmdSetDepthBoundsTestEnable" );
1846     vkCmdSetStencilTestEnable                                = cast( PFN_vkCmdSetStencilTestEnable                                ) vkGetInstanceProcAddr( instance, "vkCmdSetStencilTestEnable" );
1847     vkCmdSetStencilOp                                        = cast( PFN_vkCmdSetStencilOp                                        ) vkGetInstanceProcAddr( instance, "vkCmdSetStencilOp" );
1848     vkCmdSetRasterizerDiscardEnable                          = cast( PFN_vkCmdSetRasterizerDiscardEnable                          ) vkGetInstanceProcAddr( instance, "vkCmdSetRasterizerDiscardEnable" );
1849     vkCmdSetDepthBiasEnable                                  = cast( PFN_vkCmdSetDepthBiasEnable                                  ) vkGetInstanceProcAddr( instance, "vkCmdSetDepthBiasEnable" );
1850     vkCmdSetPrimitiveRestartEnable                           = cast( PFN_vkCmdSetPrimitiveRestartEnable                           ) vkGetInstanceProcAddr( instance, "vkCmdSetPrimitiveRestartEnable" );
1851     vkGetDeviceBufferMemoryRequirements                      = cast( PFN_vkGetDeviceBufferMemoryRequirements                      ) vkGetInstanceProcAddr( instance, "vkGetDeviceBufferMemoryRequirements" );
1852     vkGetDeviceImageMemoryRequirements                       = cast( PFN_vkGetDeviceImageMemoryRequirements                       ) vkGetInstanceProcAddr( instance, "vkGetDeviceImageMemoryRequirements" );
1853     vkGetDeviceImageSparseMemoryRequirements                 = cast( PFN_vkGetDeviceImageSparseMemoryRequirements                 ) vkGetInstanceProcAddr( instance, "vkGetDeviceImageSparseMemoryRequirements" );
1854 
1855     // VK_KHR_swapchain
1856     vkCreateSwapchainKHR                                     = cast( PFN_vkCreateSwapchainKHR                                     ) vkGetInstanceProcAddr( instance, "vkCreateSwapchainKHR" );
1857     vkDestroySwapchainKHR                                    = cast( PFN_vkDestroySwapchainKHR                                    ) vkGetInstanceProcAddr( instance, "vkDestroySwapchainKHR" );
1858     vkGetSwapchainImagesKHR                                  = cast( PFN_vkGetSwapchainImagesKHR                                  ) vkGetInstanceProcAddr( instance, "vkGetSwapchainImagesKHR" );
1859     vkAcquireNextImageKHR                                    = cast( PFN_vkAcquireNextImageKHR                                    ) vkGetInstanceProcAddr( instance, "vkAcquireNextImageKHR" );
1860     vkQueuePresentKHR                                        = cast( PFN_vkQueuePresentKHR                                        ) vkGetInstanceProcAddr( instance, "vkQueuePresentKHR" );
1861     vkGetDeviceGroupPresentCapabilitiesKHR                   = cast( PFN_vkGetDeviceGroupPresentCapabilitiesKHR                   ) vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPresentCapabilitiesKHR" );
1862     vkGetDeviceGroupSurfacePresentModesKHR                   = cast( PFN_vkGetDeviceGroupSurfacePresentModesKHR                   ) vkGetInstanceProcAddr( instance, "vkGetDeviceGroupSurfacePresentModesKHR" );
1863     vkAcquireNextImage2KHR                                   = cast( PFN_vkAcquireNextImage2KHR                                   ) vkGetInstanceProcAddr( instance, "vkAcquireNextImage2KHR" );
1864 
1865     // VK_KHR_display_swapchain
1866     vkCreateSharedSwapchainsKHR                              = cast( PFN_vkCreateSharedSwapchainsKHR                              ) vkGetInstanceProcAddr( instance, "vkCreateSharedSwapchainsKHR" );
1867 
1868     // VK_KHR_video_queue
1869     vkCreateVideoSessionKHR                                  = cast( PFN_vkCreateVideoSessionKHR                                  ) vkGetInstanceProcAddr( instance, "vkCreateVideoSessionKHR" );
1870     vkDestroyVideoSessionKHR                                 = cast( PFN_vkDestroyVideoSessionKHR                                 ) vkGetInstanceProcAddr( instance, "vkDestroyVideoSessionKHR" );
1871     vkGetVideoSessionMemoryRequirementsKHR                   = cast( PFN_vkGetVideoSessionMemoryRequirementsKHR                   ) vkGetInstanceProcAddr( instance, "vkGetVideoSessionMemoryRequirementsKHR" );
1872     vkBindVideoSessionMemoryKHR                              = cast( PFN_vkBindVideoSessionMemoryKHR                              ) vkGetInstanceProcAddr( instance, "vkBindVideoSessionMemoryKHR" );
1873     vkCreateVideoSessionParametersKHR                        = cast( PFN_vkCreateVideoSessionParametersKHR                        ) vkGetInstanceProcAddr( instance, "vkCreateVideoSessionParametersKHR" );
1874     vkUpdateVideoSessionParametersKHR                        = cast( PFN_vkUpdateVideoSessionParametersKHR                        ) vkGetInstanceProcAddr( instance, "vkUpdateVideoSessionParametersKHR" );
1875     vkDestroyVideoSessionParametersKHR                       = cast( PFN_vkDestroyVideoSessionParametersKHR                       ) vkGetInstanceProcAddr( instance, "vkDestroyVideoSessionParametersKHR" );
1876     vkCmdBeginVideoCodingKHR                                 = cast( PFN_vkCmdBeginVideoCodingKHR                                 ) vkGetInstanceProcAddr( instance, "vkCmdBeginVideoCodingKHR" );
1877     vkCmdEndVideoCodingKHR                                   = cast( PFN_vkCmdEndVideoCodingKHR                                   ) vkGetInstanceProcAddr( instance, "vkCmdEndVideoCodingKHR" );
1878     vkCmdControlVideoCodingKHR                               = cast( PFN_vkCmdControlVideoCodingKHR                               ) vkGetInstanceProcAddr( instance, "vkCmdControlVideoCodingKHR" );
1879 
1880     // VK_KHR_video_decode_queue
1881     vkCmdDecodeVideoKHR                                      = cast( PFN_vkCmdDecodeVideoKHR                                      ) vkGetInstanceProcAddr( instance, "vkCmdDecodeVideoKHR" );
1882 
1883     // VK_KHR_external_memory_fd
1884     vkGetMemoryFdKHR                                         = cast( PFN_vkGetMemoryFdKHR                                         ) vkGetInstanceProcAddr( instance, "vkGetMemoryFdKHR" );
1885     vkGetMemoryFdPropertiesKHR                               = cast( PFN_vkGetMemoryFdPropertiesKHR                               ) vkGetInstanceProcAddr( instance, "vkGetMemoryFdPropertiesKHR" );
1886 
1887     // VK_KHR_external_semaphore_fd
1888     vkImportSemaphoreFdKHR                                   = cast( PFN_vkImportSemaphoreFdKHR                                   ) vkGetInstanceProcAddr( instance, "vkImportSemaphoreFdKHR" );
1889     vkGetSemaphoreFdKHR                                      = cast( PFN_vkGetSemaphoreFdKHR                                      ) vkGetInstanceProcAddr( instance, "vkGetSemaphoreFdKHR" );
1890 
1891     // VK_KHR_push_descriptor
1892     vkCmdPushDescriptorSetKHR                                = cast( PFN_vkCmdPushDescriptorSetKHR                                ) vkGetInstanceProcAddr( instance, "vkCmdPushDescriptorSetKHR" );
1893     vkCmdPushDescriptorSetWithTemplateKHR                    = cast( PFN_vkCmdPushDescriptorSetWithTemplateKHR                    ) vkGetInstanceProcAddr( instance, "vkCmdPushDescriptorSetWithTemplateKHR" );
1894 
1895     // VK_KHR_shared_presentable_image
1896     vkGetSwapchainStatusKHR                                  = cast( PFN_vkGetSwapchainStatusKHR                                  ) vkGetInstanceProcAddr( instance, "vkGetSwapchainStatusKHR" );
1897 
1898     // VK_KHR_external_fence_fd
1899     vkImportFenceFdKHR                                       = cast( PFN_vkImportFenceFdKHR                                       ) vkGetInstanceProcAddr( instance, "vkImportFenceFdKHR" );
1900     vkGetFenceFdKHR                                          = cast( PFN_vkGetFenceFdKHR                                          ) vkGetInstanceProcAddr( instance, "vkGetFenceFdKHR" );
1901 
1902     // VK_KHR_performance_query
1903     vkAcquireProfilingLockKHR                                = cast( PFN_vkAcquireProfilingLockKHR                                ) vkGetInstanceProcAddr( instance, "vkAcquireProfilingLockKHR" );
1904     vkReleaseProfilingLockKHR                                = cast( PFN_vkReleaseProfilingLockKHR                                ) vkGetInstanceProcAddr( instance, "vkReleaseProfilingLockKHR" );
1905 
1906     // VK_KHR_fragment_shading_rate
1907     vkCmdSetFragmentShadingRateKHR                           = cast( PFN_vkCmdSetFragmentShadingRateKHR                           ) vkGetInstanceProcAddr( instance, "vkCmdSetFragmentShadingRateKHR" );
1908 
1909     // VK_KHR_present_wait
1910     vkWaitForPresentKHR                                      = cast( PFN_vkWaitForPresentKHR                                      ) vkGetInstanceProcAddr( instance, "vkWaitForPresentKHR" );
1911 
1912     // VK_KHR_deferred_host_operations
1913     vkCreateDeferredOperationKHR                             = cast( PFN_vkCreateDeferredOperationKHR                             ) vkGetInstanceProcAddr( instance, "vkCreateDeferredOperationKHR" );
1914     vkDestroyDeferredOperationKHR                            = cast( PFN_vkDestroyDeferredOperationKHR                            ) vkGetInstanceProcAddr( instance, "vkDestroyDeferredOperationKHR" );
1915     vkGetDeferredOperationMaxConcurrencyKHR                  = cast( PFN_vkGetDeferredOperationMaxConcurrencyKHR                  ) vkGetInstanceProcAddr( instance, "vkGetDeferredOperationMaxConcurrencyKHR" );
1916     vkGetDeferredOperationResultKHR                          = cast( PFN_vkGetDeferredOperationResultKHR                          ) vkGetInstanceProcAddr( instance, "vkGetDeferredOperationResultKHR" );
1917     vkDeferredOperationJoinKHR                               = cast( PFN_vkDeferredOperationJoinKHR                               ) vkGetInstanceProcAddr( instance, "vkDeferredOperationJoinKHR" );
1918 
1919     // VK_KHR_pipeline_executable_properties
1920     vkGetPipelineExecutablePropertiesKHR                     = cast( PFN_vkGetPipelineExecutablePropertiesKHR                     ) vkGetInstanceProcAddr( instance, "vkGetPipelineExecutablePropertiesKHR" );
1921     vkGetPipelineExecutableStatisticsKHR                     = cast( PFN_vkGetPipelineExecutableStatisticsKHR                     ) vkGetInstanceProcAddr( instance, "vkGetPipelineExecutableStatisticsKHR" );
1922     vkGetPipelineExecutableInternalRepresentationsKHR        = cast( PFN_vkGetPipelineExecutableInternalRepresentationsKHR        ) vkGetInstanceProcAddr( instance, "vkGetPipelineExecutableInternalRepresentationsKHR" );
1923 
1924     // VK_KHR_map_memory2
1925     vkMapMemory2KHR                                          = cast( PFN_vkMapMemory2KHR                                          ) vkGetInstanceProcAddr( instance, "vkMapMemory2KHR" );
1926     vkUnmapMemory2KHR                                        = cast( PFN_vkUnmapMemory2KHR                                        ) vkGetInstanceProcAddr( instance, "vkUnmapMemory2KHR" );
1927 
1928     // VK_KHR_synchronization2
1929     vkCmdWriteBufferMarker2AMD                               = cast( PFN_vkCmdWriteBufferMarker2AMD                               ) vkGetInstanceProcAddr( instance, "vkCmdWriteBufferMarker2AMD" );
1930     vkGetQueueCheckpointData2NV                              = cast( PFN_vkGetQueueCheckpointData2NV                              ) vkGetInstanceProcAddr( instance, "vkGetQueueCheckpointData2NV" );
1931 
1932     // VK_KHR_ray_tracing_maintenance1
1933     vkCmdTraceRaysIndirect2KHR                               = cast( PFN_vkCmdTraceRaysIndirect2KHR                               ) vkGetInstanceProcAddr( instance, "vkCmdTraceRaysIndirect2KHR" );
1934 
1935     // VK_EXT_debug_marker
1936     vkDebugMarkerSetObjectTagEXT                             = cast( PFN_vkDebugMarkerSetObjectTagEXT                             ) vkGetInstanceProcAddr( instance, "vkDebugMarkerSetObjectTagEXT" );
1937     vkDebugMarkerSetObjectNameEXT                            = cast( PFN_vkDebugMarkerSetObjectNameEXT                            ) vkGetInstanceProcAddr( instance, "vkDebugMarkerSetObjectNameEXT" );
1938     vkCmdDebugMarkerBeginEXT                                 = cast( PFN_vkCmdDebugMarkerBeginEXT                                 ) vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerBeginEXT" );
1939     vkCmdDebugMarkerEndEXT                                   = cast( PFN_vkCmdDebugMarkerEndEXT                                   ) vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerEndEXT" );
1940     vkCmdDebugMarkerInsertEXT                                = cast( PFN_vkCmdDebugMarkerInsertEXT                                ) vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerInsertEXT" );
1941 
1942     // VK_EXT_transform_feedback
1943     vkCmdBindTransformFeedbackBuffersEXT                     = cast( PFN_vkCmdBindTransformFeedbackBuffersEXT                     ) vkGetInstanceProcAddr( instance, "vkCmdBindTransformFeedbackBuffersEXT" );
1944     vkCmdBeginTransformFeedbackEXT                           = cast( PFN_vkCmdBeginTransformFeedbackEXT                           ) vkGetInstanceProcAddr( instance, "vkCmdBeginTransformFeedbackEXT" );
1945     vkCmdEndTransformFeedbackEXT                             = cast( PFN_vkCmdEndTransformFeedbackEXT                             ) vkGetInstanceProcAddr( instance, "vkCmdEndTransformFeedbackEXT" );
1946     vkCmdBeginQueryIndexedEXT                                = cast( PFN_vkCmdBeginQueryIndexedEXT                                ) vkGetInstanceProcAddr( instance, "vkCmdBeginQueryIndexedEXT" );
1947     vkCmdEndQueryIndexedEXT                                  = cast( PFN_vkCmdEndQueryIndexedEXT                                  ) vkGetInstanceProcAddr( instance, "vkCmdEndQueryIndexedEXT" );
1948     vkCmdDrawIndirectByteCountEXT                            = cast( PFN_vkCmdDrawIndirectByteCountEXT                            ) vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectByteCountEXT" );
1949 
1950     // VK_NVX_binary_import
1951     vkCreateCuModuleNVX                                      = cast( PFN_vkCreateCuModuleNVX                                      ) vkGetInstanceProcAddr( instance, "vkCreateCuModuleNVX" );
1952     vkCreateCuFunctionNVX                                    = cast( PFN_vkCreateCuFunctionNVX                                    ) vkGetInstanceProcAddr( instance, "vkCreateCuFunctionNVX" );
1953     vkDestroyCuModuleNVX                                     = cast( PFN_vkDestroyCuModuleNVX                                     ) vkGetInstanceProcAddr( instance, "vkDestroyCuModuleNVX" );
1954     vkDestroyCuFunctionNVX                                   = cast( PFN_vkDestroyCuFunctionNVX                                   ) vkGetInstanceProcAddr( instance, "vkDestroyCuFunctionNVX" );
1955     vkCmdCuLaunchKernelNVX                                   = cast( PFN_vkCmdCuLaunchKernelNVX                                   ) vkGetInstanceProcAddr( instance, "vkCmdCuLaunchKernelNVX" );
1956 
1957     // VK_NVX_image_view_handle
1958     vkGetImageViewHandleNVX                                  = cast( PFN_vkGetImageViewHandleNVX                                  ) vkGetInstanceProcAddr( instance, "vkGetImageViewHandleNVX" );
1959     vkGetImageViewAddressNVX                                 = cast( PFN_vkGetImageViewAddressNVX                                 ) vkGetInstanceProcAddr( instance, "vkGetImageViewAddressNVX" );
1960 
1961     // VK_AMD_shader_info
1962     vkGetShaderInfoAMD                                       = cast( PFN_vkGetShaderInfoAMD                                       ) vkGetInstanceProcAddr( instance, "vkGetShaderInfoAMD" );
1963 
1964     // VK_EXT_conditional_rendering
1965     vkCmdBeginConditionalRenderingEXT                        = cast( PFN_vkCmdBeginConditionalRenderingEXT                        ) vkGetInstanceProcAddr( instance, "vkCmdBeginConditionalRenderingEXT" );
1966     vkCmdEndConditionalRenderingEXT                          = cast( PFN_vkCmdEndConditionalRenderingEXT                          ) vkGetInstanceProcAddr( instance, "vkCmdEndConditionalRenderingEXT" );
1967 
1968     // VK_NV_clip_space_w_scaling
1969     vkCmdSetViewportWScalingNV                               = cast( PFN_vkCmdSetViewportWScalingNV                               ) vkGetInstanceProcAddr( instance, "vkCmdSetViewportWScalingNV" );
1970 
1971     // VK_EXT_display_control
1972     vkDisplayPowerControlEXT                                 = cast( PFN_vkDisplayPowerControlEXT                                 ) vkGetInstanceProcAddr( instance, "vkDisplayPowerControlEXT" );
1973     vkRegisterDeviceEventEXT                                 = cast( PFN_vkRegisterDeviceEventEXT                                 ) vkGetInstanceProcAddr( instance, "vkRegisterDeviceEventEXT" );
1974     vkRegisterDisplayEventEXT                                = cast( PFN_vkRegisterDisplayEventEXT                                ) vkGetInstanceProcAddr( instance, "vkRegisterDisplayEventEXT" );
1975     vkGetSwapchainCounterEXT                                 = cast( PFN_vkGetSwapchainCounterEXT                                 ) vkGetInstanceProcAddr( instance, "vkGetSwapchainCounterEXT" );
1976 
1977     // VK_GOOGLE_display_timing
1978     vkGetRefreshCycleDurationGOOGLE                          = cast( PFN_vkGetRefreshCycleDurationGOOGLE                          ) vkGetInstanceProcAddr( instance, "vkGetRefreshCycleDurationGOOGLE" );
1979     vkGetPastPresentationTimingGOOGLE                        = cast( PFN_vkGetPastPresentationTimingGOOGLE                        ) vkGetInstanceProcAddr( instance, "vkGetPastPresentationTimingGOOGLE" );
1980 
1981     // VK_EXT_discard_rectangles
1982     vkCmdSetDiscardRectangleEXT                              = cast( PFN_vkCmdSetDiscardRectangleEXT                              ) vkGetInstanceProcAddr( instance, "vkCmdSetDiscardRectangleEXT" );
1983     vkCmdSetDiscardRectangleEnableEXT                        = cast( PFN_vkCmdSetDiscardRectangleEnableEXT                        ) vkGetInstanceProcAddr( instance, "vkCmdSetDiscardRectangleEnableEXT" );
1984     vkCmdSetDiscardRectangleModeEXT                          = cast( PFN_vkCmdSetDiscardRectangleModeEXT                          ) vkGetInstanceProcAddr( instance, "vkCmdSetDiscardRectangleModeEXT" );
1985 
1986     // VK_EXT_hdr_metadata
1987     vkSetHdrMetadataEXT                                      = cast( PFN_vkSetHdrMetadataEXT                                      ) vkGetInstanceProcAddr( instance, "vkSetHdrMetadataEXT" );
1988 
1989     // VK_EXT_debug_utils
1990     vkSetDebugUtilsObjectNameEXT                             = cast( PFN_vkSetDebugUtilsObjectNameEXT                             ) vkGetInstanceProcAddr( instance, "vkSetDebugUtilsObjectNameEXT" );
1991     vkSetDebugUtilsObjectTagEXT                              = cast( PFN_vkSetDebugUtilsObjectTagEXT                              ) vkGetInstanceProcAddr( instance, "vkSetDebugUtilsObjectTagEXT" );
1992     vkQueueBeginDebugUtilsLabelEXT                           = cast( PFN_vkQueueBeginDebugUtilsLabelEXT                           ) vkGetInstanceProcAddr( instance, "vkQueueBeginDebugUtilsLabelEXT" );
1993     vkQueueEndDebugUtilsLabelEXT                             = cast( PFN_vkQueueEndDebugUtilsLabelEXT                             ) vkGetInstanceProcAddr( instance, "vkQueueEndDebugUtilsLabelEXT" );
1994     vkQueueInsertDebugUtilsLabelEXT                          = cast( PFN_vkQueueInsertDebugUtilsLabelEXT                          ) vkGetInstanceProcAddr( instance, "vkQueueInsertDebugUtilsLabelEXT" );
1995     vkCmdBeginDebugUtilsLabelEXT                             = cast( PFN_vkCmdBeginDebugUtilsLabelEXT                             ) vkGetInstanceProcAddr( instance, "vkCmdBeginDebugUtilsLabelEXT" );
1996     vkCmdEndDebugUtilsLabelEXT                               = cast( PFN_vkCmdEndDebugUtilsLabelEXT                               ) vkGetInstanceProcAddr( instance, "vkCmdEndDebugUtilsLabelEXT" );
1997     vkCmdInsertDebugUtilsLabelEXT                            = cast( PFN_vkCmdInsertDebugUtilsLabelEXT                            ) vkGetInstanceProcAddr( instance, "vkCmdInsertDebugUtilsLabelEXT" );
1998 
1999     // VK_EXT_sample_locations
2000     vkCmdSetSampleLocationsEXT                               = cast( PFN_vkCmdSetSampleLocationsEXT                               ) vkGetInstanceProcAddr( instance, "vkCmdSetSampleLocationsEXT" );
2001 
2002     // VK_EXT_image_drm_format_modifier
2003     vkGetImageDrmFormatModifierPropertiesEXT                 = cast( PFN_vkGetImageDrmFormatModifierPropertiesEXT                 ) vkGetInstanceProcAddr( instance, "vkGetImageDrmFormatModifierPropertiesEXT" );
2004 
2005     // VK_EXT_validation_cache
2006     vkCreateValidationCacheEXT                               = cast( PFN_vkCreateValidationCacheEXT                               ) vkGetInstanceProcAddr( instance, "vkCreateValidationCacheEXT" );
2007     vkDestroyValidationCacheEXT                              = cast( PFN_vkDestroyValidationCacheEXT                              ) vkGetInstanceProcAddr( instance, "vkDestroyValidationCacheEXT" );
2008     vkMergeValidationCachesEXT                               = cast( PFN_vkMergeValidationCachesEXT                               ) vkGetInstanceProcAddr( instance, "vkMergeValidationCachesEXT" );
2009     vkGetValidationCacheDataEXT                              = cast( PFN_vkGetValidationCacheDataEXT                              ) vkGetInstanceProcAddr( instance, "vkGetValidationCacheDataEXT" );
2010 
2011     // VK_NV_shading_rate_image
2012     vkCmdBindShadingRateImageNV                              = cast( PFN_vkCmdBindShadingRateImageNV                              ) vkGetInstanceProcAddr( instance, "vkCmdBindShadingRateImageNV" );
2013     vkCmdSetViewportShadingRatePaletteNV                     = cast( PFN_vkCmdSetViewportShadingRatePaletteNV                     ) vkGetInstanceProcAddr( instance, "vkCmdSetViewportShadingRatePaletteNV" );
2014     vkCmdSetCoarseSampleOrderNV                              = cast( PFN_vkCmdSetCoarseSampleOrderNV                              ) vkGetInstanceProcAddr( instance, "vkCmdSetCoarseSampleOrderNV" );
2015 
2016     // VK_NV_ray_tracing
2017     vkCreateAccelerationStructureNV                          = cast( PFN_vkCreateAccelerationStructureNV                          ) vkGetInstanceProcAddr( instance, "vkCreateAccelerationStructureNV" );
2018     vkDestroyAccelerationStructureNV                         = cast( PFN_vkDestroyAccelerationStructureNV                         ) vkGetInstanceProcAddr( instance, "vkDestroyAccelerationStructureNV" );
2019     vkGetAccelerationStructureMemoryRequirementsNV           = cast( PFN_vkGetAccelerationStructureMemoryRequirementsNV           ) vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureMemoryRequirementsNV" );
2020     vkBindAccelerationStructureMemoryNV                      = cast( PFN_vkBindAccelerationStructureMemoryNV                      ) vkGetInstanceProcAddr( instance, "vkBindAccelerationStructureMemoryNV" );
2021     vkCmdBuildAccelerationStructureNV                        = cast( PFN_vkCmdBuildAccelerationStructureNV                        ) vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructureNV" );
2022     vkCmdCopyAccelerationStructureNV                         = cast( PFN_vkCmdCopyAccelerationStructureNV                         ) vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureNV" );
2023     vkCmdTraceRaysNV                                         = cast( PFN_vkCmdTraceRaysNV                                         ) vkGetInstanceProcAddr( instance, "vkCmdTraceRaysNV" );
2024     vkCreateRayTracingPipelinesNV                            = cast( PFN_vkCreateRayTracingPipelinesNV                            ) vkGetInstanceProcAddr( instance, "vkCreateRayTracingPipelinesNV" );
2025     vkGetRayTracingShaderGroupHandlesKHR                     = cast( PFN_vkGetRayTracingShaderGroupHandlesKHR                     ) vkGetInstanceProcAddr( instance, "vkGetRayTracingShaderGroupHandlesKHR" );
2026     vkGetAccelerationStructureHandleNV                       = cast( PFN_vkGetAccelerationStructureHandleNV                       ) vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureHandleNV" );
2027     vkCmdWriteAccelerationStructuresPropertiesNV             = cast( PFN_vkCmdWriteAccelerationStructuresPropertiesNV             ) vkGetInstanceProcAddr( instance, "vkCmdWriteAccelerationStructuresPropertiesNV" );
2028     vkCompileDeferredNV                                      = cast( PFN_vkCompileDeferredNV                                      ) vkGetInstanceProcAddr( instance, "vkCompileDeferredNV" );
2029 
2030     // VK_EXT_external_memory_host
2031     vkGetMemoryHostPointerPropertiesEXT                      = cast( PFN_vkGetMemoryHostPointerPropertiesEXT                      ) vkGetInstanceProcAddr( instance, "vkGetMemoryHostPointerPropertiesEXT" );
2032 
2033     // VK_AMD_buffer_marker
2034     vkCmdWriteBufferMarkerAMD                                = cast( PFN_vkCmdWriteBufferMarkerAMD                                ) vkGetInstanceProcAddr( instance, "vkCmdWriteBufferMarkerAMD" );
2035 
2036     // VK_EXT_calibrated_timestamps
2037     vkGetCalibratedTimestampsEXT                             = cast( PFN_vkGetCalibratedTimestampsEXT                             ) vkGetInstanceProcAddr( instance, "vkGetCalibratedTimestampsEXT" );
2038 
2039     // VK_NV_mesh_shader
2040     vkCmdDrawMeshTasksNV                                     = cast( PFN_vkCmdDrawMeshTasksNV                                     ) vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksNV" );
2041     vkCmdDrawMeshTasksIndirectNV                             = cast( PFN_vkCmdDrawMeshTasksIndirectNV                             ) vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksIndirectNV" );
2042     vkCmdDrawMeshTasksIndirectCountNV                        = cast( PFN_vkCmdDrawMeshTasksIndirectCountNV                        ) vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksIndirectCountNV" );
2043 
2044     // VK_NV_scissor_exclusive
2045     vkCmdSetExclusiveScissorEnableNV                         = cast( PFN_vkCmdSetExclusiveScissorEnableNV                         ) vkGetInstanceProcAddr( instance, "vkCmdSetExclusiveScissorEnableNV" );
2046     vkCmdSetExclusiveScissorNV                               = cast( PFN_vkCmdSetExclusiveScissorNV                               ) vkGetInstanceProcAddr( instance, "vkCmdSetExclusiveScissorNV" );
2047 
2048     // VK_NV_device_diagnostic_checkpoints
2049     vkCmdSetCheckpointNV                                     = cast( PFN_vkCmdSetCheckpointNV                                     ) vkGetInstanceProcAddr( instance, "vkCmdSetCheckpointNV" );
2050     vkGetQueueCheckpointDataNV                               = cast( PFN_vkGetQueueCheckpointDataNV                               ) vkGetInstanceProcAddr( instance, "vkGetQueueCheckpointDataNV" );
2051 
2052     // VK_INTEL_performance_query
2053     vkInitializePerformanceApiINTEL                          = cast( PFN_vkInitializePerformanceApiINTEL                          ) vkGetInstanceProcAddr( instance, "vkInitializePerformanceApiINTEL" );
2054     vkUninitializePerformanceApiINTEL                        = cast( PFN_vkUninitializePerformanceApiINTEL                        ) vkGetInstanceProcAddr( instance, "vkUninitializePerformanceApiINTEL" );
2055     vkCmdSetPerformanceMarkerINTEL                           = cast( PFN_vkCmdSetPerformanceMarkerINTEL                           ) vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceMarkerINTEL" );
2056     vkCmdSetPerformanceStreamMarkerINTEL                     = cast( PFN_vkCmdSetPerformanceStreamMarkerINTEL                     ) vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceStreamMarkerINTEL" );
2057     vkCmdSetPerformanceOverrideINTEL                         = cast( PFN_vkCmdSetPerformanceOverrideINTEL                         ) vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceOverrideINTEL" );
2058     vkAcquirePerformanceConfigurationINTEL                   = cast( PFN_vkAcquirePerformanceConfigurationINTEL                   ) vkGetInstanceProcAddr( instance, "vkAcquirePerformanceConfigurationINTEL" );
2059     vkReleasePerformanceConfigurationINTEL                   = cast( PFN_vkReleasePerformanceConfigurationINTEL                   ) vkGetInstanceProcAddr( instance, "vkReleasePerformanceConfigurationINTEL" );
2060     vkQueueSetPerformanceConfigurationINTEL                  = cast( PFN_vkQueueSetPerformanceConfigurationINTEL                  ) vkGetInstanceProcAddr( instance, "vkQueueSetPerformanceConfigurationINTEL" );
2061     vkGetPerformanceParameterINTEL                           = cast( PFN_vkGetPerformanceParameterINTEL                           ) vkGetInstanceProcAddr( instance, "vkGetPerformanceParameterINTEL" );
2062 
2063     // VK_AMD_display_native_hdr
2064     vkSetLocalDimmingAMD                                     = cast( PFN_vkSetLocalDimmingAMD                                     ) vkGetInstanceProcAddr( instance, "vkSetLocalDimmingAMD" );
2065 
2066     // VK_EXT_line_rasterization
2067     vkCmdSetLineStippleEXT                                   = cast( PFN_vkCmdSetLineStippleEXT                                   ) vkGetInstanceProcAddr( instance, "vkCmdSetLineStippleEXT" );
2068 
2069     // VK_EXT_swapchain_maintenance1
2070     vkReleaseSwapchainImagesEXT                              = cast( PFN_vkReleaseSwapchainImagesEXT                              ) vkGetInstanceProcAddr( instance, "vkReleaseSwapchainImagesEXT" );
2071 
2072     // VK_NV_device_generated_commands
2073     vkGetGeneratedCommandsMemoryRequirementsNV               = cast( PFN_vkGetGeneratedCommandsMemoryRequirementsNV               ) vkGetInstanceProcAddr( instance, "vkGetGeneratedCommandsMemoryRequirementsNV" );
2074     vkCmdPreprocessGeneratedCommandsNV                       = cast( PFN_vkCmdPreprocessGeneratedCommandsNV                       ) vkGetInstanceProcAddr( instance, "vkCmdPreprocessGeneratedCommandsNV" );
2075     vkCmdExecuteGeneratedCommandsNV                          = cast( PFN_vkCmdExecuteGeneratedCommandsNV                          ) vkGetInstanceProcAddr( instance, "vkCmdExecuteGeneratedCommandsNV" );
2076     vkCmdBindPipelineShaderGroupNV                           = cast( PFN_vkCmdBindPipelineShaderGroupNV                           ) vkGetInstanceProcAddr( instance, "vkCmdBindPipelineShaderGroupNV" );
2077     vkCreateIndirectCommandsLayoutNV                         = cast( PFN_vkCreateIndirectCommandsLayoutNV                         ) vkGetInstanceProcAddr( instance, "vkCreateIndirectCommandsLayoutNV" );
2078     vkDestroyIndirectCommandsLayoutNV                        = cast( PFN_vkDestroyIndirectCommandsLayoutNV                        ) vkGetInstanceProcAddr( instance, "vkDestroyIndirectCommandsLayoutNV" );
2079 
2080     // VK_EXT_descriptor_buffer
2081     vkGetDescriptorSetLayoutSizeEXT                          = cast( PFN_vkGetDescriptorSetLayoutSizeEXT                          ) vkGetInstanceProcAddr( instance, "vkGetDescriptorSetLayoutSizeEXT" );
2082     vkGetDescriptorSetLayoutBindingOffsetEXT                 = cast( PFN_vkGetDescriptorSetLayoutBindingOffsetEXT                 ) vkGetInstanceProcAddr( instance, "vkGetDescriptorSetLayoutBindingOffsetEXT" );
2083     vkGetDescriptorEXT                                       = cast( PFN_vkGetDescriptorEXT                                       ) vkGetInstanceProcAddr( instance, "vkGetDescriptorEXT" );
2084     vkCmdBindDescriptorBuffersEXT                            = cast( PFN_vkCmdBindDescriptorBuffersEXT                            ) vkGetInstanceProcAddr( instance, "vkCmdBindDescriptorBuffersEXT" );
2085     vkCmdSetDescriptorBufferOffsetsEXT                       = cast( PFN_vkCmdSetDescriptorBufferOffsetsEXT                       ) vkGetInstanceProcAddr( instance, "vkCmdSetDescriptorBufferOffsetsEXT" );
2086     vkCmdBindDescriptorBufferEmbeddedSamplersEXT             = cast( PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT             ) vkGetInstanceProcAddr( instance, "vkCmdBindDescriptorBufferEmbeddedSamplersEXT" );
2087     vkGetBufferOpaqueCaptureDescriptorDataEXT                = cast( PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT                ) vkGetInstanceProcAddr( instance, "vkGetBufferOpaqueCaptureDescriptorDataEXT" );
2088     vkGetImageOpaqueCaptureDescriptorDataEXT                 = cast( PFN_vkGetImageOpaqueCaptureDescriptorDataEXT                 ) vkGetInstanceProcAddr( instance, "vkGetImageOpaqueCaptureDescriptorDataEXT" );
2089     vkGetImageViewOpaqueCaptureDescriptorDataEXT             = cast( PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT             ) vkGetInstanceProcAddr( instance, "vkGetImageViewOpaqueCaptureDescriptorDataEXT" );
2090     vkGetSamplerOpaqueCaptureDescriptorDataEXT               = cast( PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT               ) vkGetInstanceProcAddr( instance, "vkGetSamplerOpaqueCaptureDescriptorDataEXT" );
2091     vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT = cast( PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT ) vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT" );
2092 
2093     // VK_NV_fragment_shading_rate_enums
2094     vkCmdSetFragmentShadingRateEnumNV                        = cast( PFN_vkCmdSetFragmentShadingRateEnumNV                        ) vkGetInstanceProcAddr( instance, "vkCmdSetFragmentShadingRateEnumNV" );
2095 
2096     // VK_EXT_image_compression_control
2097     vkGetImageSubresourceLayout2EXT                          = cast( PFN_vkGetImageSubresourceLayout2EXT                          ) vkGetInstanceProcAddr( instance, "vkGetImageSubresourceLayout2EXT" );
2098 
2099     // VK_EXT_device_fault
2100     vkGetDeviceFaultInfoEXT                                  = cast( PFN_vkGetDeviceFaultInfoEXT                                  ) vkGetInstanceProcAddr( instance, "vkGetDeviceFaultInfoEXT" );
2101 
2102     // VK_EXT_vertex_input_dynamic_state
2103     vkCmdSetVertexInputEXT                                   = cast( PFN_vkCmdSetVertexInputEXT                                   ) vkGetInstanceProcAddr( instance, "vkCmdSetVertexInputEXT" );
2104 
2105     // VK_HUAWEI_subpass_shading
2106     vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI          = cast( PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI          ) vkGetInstanceProcAddr( instance, "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI" );
2107     vkCmdSubpassShadingHUAWEI                                = cast( PFN_vkCmdSubpassShadingHUAWEI                                ) vkGetInstanceProcAddr( instance, "vkCmdSubpassShadingHUAWEI" );
2108 
2109     // VK_HUAWEI_invocation_mask
2110     vkCmdBindInvocationMaskHUAWEI                            = cast( PFN_vkCmdBindInvocationMaskHUAWEI                            ) vkGetInstanceProcAddr( instance, "vkCmdBindInvocationMaskHUAWEI" );
2111 
2112     // VK_NV_external_memory_rdma
2113     vkGetMemoryRemoteAddressNV                               = cast( PFN_vkGetMemoryRemoteAddressNV                               ) vkGetInstanceProcAddr( instance, "vkGetMemoryRemoteAddressNV" );
2114 
2115     // VK_EXT_pipeline_properties
2116     vkGetPipelinePropertiesEXT                               = cast( PFN_vkGetPipelinePropertiesEXT                               ) vkGetInstanceProcAddr( instance, "vkGetPipelinePropertiesEXT" );
2117 
2118     // VK_EXT_extended_dynamic_state2
2119     vkCmdSetPatchControlPointsEXT                            = cast( PFN_vkCmdSetPatchControlPointsEXT                            ) vkGetInstanceProcAddr( instance, "vkCmdSetPatchControlPointsEXT" );
2120     vkCmdSetLogicOpEXT                                       = cast( PFN_vkCmdSetLogicOpEXT                                       ) vkGetInstanceProcAddr( instance, "vkCmdSetLogicOpEXT" );
2121 
2122     // VK_EXT_color_write_enable
2123     vkCmdSetColorWriteEnableEXT                              = cast( PFN_vkCmdSetColorWriteEnableEXT                              ) vkGetInstanceProcAddr( instance, "vkCmdSetColorWriteEnableEXT" );
2124 
2125     // VK_EXT_multi_draw
2126     vkCmdDrawMultiEXT                                        = cast( PFN_vkCmdDrawMultiEXT                                        ) vkGetInstanceProcAddr( instance, "vkCmdDrawMultiEXT" );
2127     vkCmdDrawMultiIndexedEXT                                 = cast( PFN_vkCmdDrawMultiIndexedEXT                                 ) vkGetInstanceProcAddr( instance, "vkCmdDrawMultiIndexedEXT" );
2128 
2129     // VK_EXT_opacity_micromap
2130     vkCreateMicromapEXT                                      = cast( PFN_vkCreateMicromapEXT                                      ) vkGetInstanceProcAddr( instance, "vkCreateMicromapEXT" );
2131     vkDestroyMicromapEXT                                     = cast( PFN_vkDestroyMicromapEXT                                     ) vkGetInstanceProcAddr( instance, "vkDestroyMicromapEXT" );
2132     vkCmdBuildMicromapsEXT                                   = cast( PFN_vkCmdBuildMicromapsEXT                                   ) vkGetInstanceProcAddr( instance, "vkCmdBuildMicromapsEXT" );
2133     vkBuildMicromapsEXT                                      = cast( PFN_vkBuildMicromapsEXT                                      ) vkGetInstanceProcAddr( instance, "vkBuildMicromapsEXT" );
2134     vkCopyMicromapEXT                                        = cast( PFN_vkCopyMicromapEXT                                        ) vkGetInstanceProcAddr( instance, "vkCopyMicromapEXT" );
2135     vkCopyMicromapToMemoryEXT                                = cast( PFN_vkCopyMicromapToMemoryEXT                                ) vkGetInstanceProcAddr( instance, "vkCopyMicromapToMemoryEXT" );
2136     vkCopyMemoryToMicromapEXT                                = cast( PFN_vkCopyMemoryToMicromapEXT                                ) vkGetInstanceProcAddr( instance, "vkCopyMemoryToMicromapEXT" );
2137     vkWriteMicromapsPropertiesEXT                            = cast( PFN_vkWriteMicromapsPropertiesEXT                            ) vkGetInstanceProcAddr( instance, "vkWriteMicromapsPropertiesEXT" );
2138     vkCmdCopyMicromapEXT                                     = cast( PFN_vkCmdCopyMicromapEXT                                     ) vkGetInstanceProcAddr( instance, "vkCmdCopyMicromapEXT" );
2139     vkCmdCopyMicromapToMemoryEXT                             = cast( PFN_vkCmdCopyMicromapToMemoryEXT                             ) vkGetInstanceProcAddr( instance, "vkCmdCopyMicromapToMemoryEXT" );
2140     vkCmdCopyMemoryToMicromapEXT                             = cast( PFN_vkCmdCopyMemoryToMicromapEXT                             ) vkGetInstanceProcAddr( instance, "vkCmdCopyMemoryToMicromapEXT" );
2141     vkCmdWriteMicromapsPropertiesEXT                         = cast( PFN_vkCmdWriteMicromapsPropertiesEXT                         ) vkGetInstanceProcAddr( instance, "vkCmdWriteMicromapsPropertiesEXT" );
2142     vkGetDeviceMicromapCompatibilityEXT                      = cast( PFN_vkGetDeviceMicromapCompatibilityEXT                      ) vkGetInstanceProcAddr( instance, "vkGetDeviceMicromapCompatibilityEXT" );
2143     vkGetMicromapBuildSizesEXT                               = cast( PFN_vkGetMicromapBuildSizesEXT                               ) vkGetInstanceProcAddr( instance, "vkGetMicromapBuildSizesEXT" );
2144 
2145     // VK_HUAWEI_cluster_culling_shader
2146     vkCmdDrawClusterHUAWEI                                   = cast( PFN_vkCmdDrawClusterHUAWEI                                   ) vkGetInstanceProcAddr( instance, "vkCmdDrawClusterHUAWEI" );
2147     vkCmdDrawClusterIndirectHUAWEI                           = cast( PFN_vkCmdDrawClusterIndirectHUAWEI                           ) vkGetInstanceProcAddr( instance, "vkCmdDrawClusterIndirectHUAWEI" );
2148 
2149     // VK_EXT_pageable_device_local_memory
2150     vkSetDeviceMemoryPriorityEXT                             = cast( PFN_vkSetDeviceMemoryPriorityEXT                             ) vkGetInstanceProcAddr( instance, "vkSetDeviceMemoryPriorityEXT" );
2151 
2152     // VK_VALVE_descriptor_set_host_mapping
2153     vkGetDescriptorSetLayoutHostMappingInfoVALVE             = cast( PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE             ) vkGetInstanceProcAddr( instance, "vkGetDescriptorSetLayoutHostMappingInfoVALVE" );
2154     vkGetDescriptorSetHostMappingVALVE                       = cast( PFN_vkGetDescriptorSetHostMappingVALVE                       ) vkGetInstanceProcAddr( instance, "vkGetDescriptorSetHostMappingVALVE" );
2155 
2156     // VK_NV_copy_memory_indirect
2157     vkCmdCopyMemoryIndirectNV                                = cast( PFN_vkCmdCopyMemoryIndirectNV                                ) vkGetInstanceProcAddr( instance, "vkCmdCopyMemoryIndirectNV" );
2158     vkCmdCopyMemoryToImageIndirectNV                         = cast( PFN_vkCmdCopyMemoryToImageIndirectNV                         ) vkGetInstanceProcAddr( instance, "vkCmdCopyMemoryToImageIndirectNV" );
2159 
2160     // VK_NV_memory_decompression
2161     vkCmdDecompressMemoryNV                                  = cast( PFN_vkCmdDecompressMemoryNV                                  ) vkGetInstanceProcAddr( instance, "vkCmdDecompressMemoryNV" );
2162     vkCmdDecompressMemoryIndirectCountNV                     = cast( PFN_vkCmdDecompressMemoryIndirectCountNV                     ) vkGetInstanceProcAddr( instance, "vkCmdDecompressMemoryIndirectCountNV" );
2163 
2164     // VK_EXT_extended_dynamic_state3
2165     vkCmdSetTessellationDomainOriginEXT                      = cast( PFN_vkCmdSetTessellationDomainOriginEXT                      ) vkGetInstanceProcAddr( instance, "vkCmdSetTessellationDomainOriginEXT" );
2166     vkCmdSetDepthClampEnableEXT                              = cast( PFN_vkCmdSetDepthClampEnableEXT                              ) vkGetInstanceProcAddr( instance, "vkCmdSetDepthClampEnableEXT" );
2167     vkCmdSetPolygonModeEXT                                   = cast( PFN_vkCmdSetPolygonModeEXT                                   ) vkGetInstanceProcAddr( instance, "vkCmdSetPolygonModeEXT" );
2168     vkCmdSetRasterizationSamplesEXT                          = cast( PFN_vkCmdSetRasterizationSamplesEXT                          ) vkGetInstanceProcAddr( instance, "vkCmdSetRasterizationSamplesEXT" );
2169     vkCmdSetSampleMaskEXT                                    = cast( PFN_vkCmdSetSampleMaskEXT                                    ) vkGetInstanceProcAddr( instance, "vkCmdSetSampleMaskEXT" );
2170     vkCmdSetAlphaToCoverageEnableEXT                         = cast( PFN_vkCmdSetAlphaToCoverageEnableEXT                         ) vkGetInstanceProcAddr( instance, "vkCmdSetAlphaToCoverageEnableEXT" );
2171     vkCmdSetAlphaToOneEnableEXT                              = cast( PFN_vkCmdSetAlphaToOneEnableEXT                              ) vkGetInstanceProcAddr( instance, "vkCmdSetAlphaToOneEnableEXT" );
2172     vkCmdSetLogicOpEnableEXT                                 = cast( PFN_vkCmdSetLogicOpEnableEXT                                 ) vkGetInstanceProcAddr( instance, "vkCmdSetLogicOpEnableEXT" );
2173     vkCmdSetColorBlendEnableEXT                              = cast( PFN_vkCmdSetColorBlendEnableEXT                              ) vkGetInstanceProcAddr( instance, "vkCmdSetColorBlendEnableEXT" );
2174     vkCmdSetColorBlendEquationEXT                            = cast( PFN_vkCmdSetColorBlendEquationEXT                            ) vkGetInstanceProcAddr( instance, "vkCmdSetColorBlendEquationEXT" );
2175     vkCmdSetColorWriteMaskEXT                                = cast( PFN_vkCmdSetColorWriteMaskEXT                                ) vkGetInstanceProcAddr( instance, "vkCmdSetColorWriteMaskEXT" );
2176     vkCmdSetRasterizationStreamEXT                           = cast( PFN_vkCmdSetRasterizationStreamEXT                           ) vkGetInstanceProcAddr( instance, "vkCmdSetRasterizationStreamEXT" );
2177     vkCmdSetConservativeRasterizationModeEXT                 = cast( PFN_vkCmdSetConservativeRasterizationModeEXT                 ) vkGetInstanceProcAddr( instance, "vkCmdSetConservativeRasterizationModeEXT" );
2178     vkCmdSetExtraPrimitiveOverestimationSizeEXT              = cast( PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT              ) vkGetInstanceProcAddr( instance, "vkCmdSetExtraPrimitiveOverestimationSizeEXT" );
2179     vkCmdSetDepthClipEnableEXT                               = cast( PFN_vkCmdSetDepthClipEnableEXT                               ) vkGetInstanceProcAddr( instance, "vkCmdSetDepthClipEnableEXT" );
2180     vkCmdSetSampleLocationsEnableEXT                         = cast( PFN_vkCmdSetSampleLocationsEnableEXT                         ) vkGetInstanceProcAddr( instance, "vkCmdSetSampleLocationsEnableEXT" );
2181     vkCmdSetColorBlendAdvancedEXT                            = cast( PFN_vkCmdSetColorBlendAdvancedEXT                            ) vkGetInstanceProcAddr( instance, "vkCmdSetColorBlendAdvancedEXT" );
2182     vkCmdSetProvokingVertexModeEXT                           = cast( PFN_vkCmdSetProvokingVertexModeEXT                           ) vkGetInstanceProcAddr( instance, "vkCmdSetProvokingVertexModeEXT" );
2183     vkCmdSetLineRasterizationModeEXT                         = cast( PFN_vkCmdSetLineRasterizationModeEXT                         ) vkGetInstanceProcAddr( instance, "vkCmdSetLineRasterizationModeEXT" );
2184     vkCmdSetLineStippleEnableEXT                             = cast( PFN_vkCmdSetLineStippleEnableEXT                             ) vkGetInstanceProcAddr( instance, "vkCmdSetLineStippleEnableEXT" );
2185     vkCmdSetDepthClipNegativeOneToOneEXT                     = cast( PFN_vkCmdSetDepthClipNegativeOneToOneEXT                     ) vkGetInstanceProcAddr( instance, "vkCmdSetDepthClipNegativeOneToOneEXT" );
2186     vkCmdSetViewportWScalingEnableNV                         = cast( PFN_vkCmdSetViewportWScalingEnableNV                         ) vkGetInstanceProcAddr( instance, "vkCmdSetViewportWScalingEnableNV" );
2187     vkCmdSetViewportSwizzleNV                                = cast( PFN_vkCmdSetViewportSwizzleNV                                ) vkGetInstanceProcAddr( instance, "vkCmdSetViewportSwizzleNV" );
2188     vkCmdSetCoverageToColorEnableNV                          = cast( PFN_vkCmdSetCoverageToColorEnableNV                          ) vkGetInstanceProcAddr( instance, "vkCmdSetCoverageToColorEnableNV" );
2189     vkCmdSetCoverageToColorLocationNV                        = cast( PFN_vkCmdSetCoverageToColorLocationNV                        ) vkGetInstanceProcAddr( instance, "vkCmdSetCoverageToColorLocationNV" );
2190     vkCmdSetCoverageModulationModeNV                         = cast( PFN_vkCmdSetCoverageModulationModeNV                         ) vkGetInstanceProcAddr( instance, "vkCmdSetCoverageModulationModeNV" );
2191     vkCmdSetCoverageModulationTableEnableNV                  = cast( PFN_vkCmdSetCoverageModulationTableEnableNV                  ) vkGetInstanceProcAddr( instance, "vkCmdSetCoverageModulationTableEnableNV" );
2192     vkCmdSetCoverageModulationTableNV                        = cast( PFN_vkCmdSetCoverageModulationTableNV                        ) vkGetInstanceProcAddr( instance, "vkCmdSetCoverageModulationTableNV" );
2193     vkCmdSetShadingRateImageEnableNV                         = cast( PFN_vkCmdSetShadingRateImageEnableNV                         ) vkGetInstanceProcAddr( instance, "vkCmdSetShadingRateImageEnableNV" );
2194     vkCmdSetRepresentativeFragmentTestEnableNV               = cast( PFN_vkCmdSetRepresentativeFragmentTestEnableNV               ) vkGetInstanceProcAddr( instance, "vkCmdSetRepresentativeFragmentTestEnableNV" );
2195     vkCmdSetCoverageReductionModeNV                          = cast( PFN_vkCmdSetCoverageReductionModeNV                          ) vkGetInstanceProcAddr( instance, "vkCmdSetCoverageReductionModeNV" );
2196 
2197     // VK_EXT_shader_module_identifier
2198     vkGetShaderModuleIdentifierEXT                           = cast( PFN_vkGetShaderModuleIdentifierEXT                           ) vkGetInstanceProcAddr( instance, "vkGetShaderModuleIdentifierEXT" );
2199     vkGetShaderModuleCreateInfoIdentifierEXT                 = cast( PFN_vkGetShaderModuleCreateInfoIdentifierEXT                 ) vkGetInstanceProcAddr( instance, "vkGetShaderModuleCreateInfoIdentifierEXT" );
2200 
2201     // VK_NV_optical_flow
2202     vkCreateOpticalFlowSessionNV                             = cast( PFN_vkCreateOpticalFlowSessionNV                             ) vkGetInstanceProcAddr( instance, "vkCreateOpticalFlowSessionNV" );
2203     vkDestroyOpticalFlowSessionNV                            = cast( PFN_vkDestroyOpticalFlowSessionNV                            ) vkGetInstanceProcAddr( instance, "vkDestroyOpticalFlowSessionNV" );
2204     vkBindOpticalFlowSessionImageNV                          = cast( PFN_vkBindOpticalFlowSessionImageNV                          ) vkGetInstanceProcAddr( instance, "vkBindOpticalFlowSessionImageNV" );
2205     vkCmdOpticalFlowExecuteNV                                = cast( PFN_vkCmdOpticalFlowExecuteNV                                ) vkGetInstanceProcAddr( instance, "vkCmdOpticalFlowExecuteNV" );
2206 
2207     // VK_EXT_shader_object
2208     vkCreateShadersEXT                                       = cast( PFN_vkCreateShadersEXT                                       ) vkGetInstanceProcAddr( instance, "vkCreateShadersEXT" );
2209     vkDestroyShaderEXT                                       = cast( PFN_vkDestroyShaderEXT                                       ) vkGetInstanceProcAddr( instance, "vkDestroyShaderEXT" );
2210     vkGetShaderBinaryDataEXT                                 = cast( PFN_vkGetShaderBinaryDataEXT                                 ) vkGetInstanceProcAddr( instance, "vkGetShaderBinaryDataEXT" );
2211     vkCmdBindShadersEXT                                      = cast( PFN_vkCmdBindShadersEXT                                      ) vkGetInstanceProcAddr( instance, "vkCmdBindShadersEXT" );
2212 
2213     // VK_QCOM_tile_properties
2214     vkGetFramebufferTilePropertiesQCOM                       = cast( PFN_vkGetFramebufferTilePropertiesQCOM                       ) vkGetInstanceProcAddr( instance, "vkGetFramebufferTilePropertiesQCOM" );
2215     vkGetDynamicRenderingTilePropertiesQCOM                  = cast( PFN_vkGetDynamicRenderingTilePropertiesQCOM                  ) vkGetInstanceProcAddr( instance, "vkGetDynamicRenderingTilePropertiesQCOM" );
2216 
2217     // VK_KHR_acceleration_structure
2218     vkCreateAccelerationStructureKHR                         = cast( PFN_vkCreateAccelerationStructureKHR                         ) vkGetInstanceProcAddr( instance, "vkCreateAccelerationStructureKHR" );
2219     vkDestroyAccelerationStructureKHR                        = cast( PFN_vkDestroyAccelerationStructureKHR                        ) vkGetInstanceProcAddr( instance, "vkDestroyAccelerationStructureKHR" );
2220     vkCmdBuildAccelerationStructuresKHR                      = cast( PFN_vkCmdBuildAccelerationStructuresKHR                      ) vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructuresKHR" );
2221     vkCmdBuildAccelerationStructuresIndirectKHR              = cast( PFN_vkCmdBuildAccelerationStructuresIndirectKHR              ) vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructuresIndirectKHR" );
2222     vkBuildAccelerationStructuresKHR                         = cast( PFN_vkBuildAccelerationStructuresKHR                         ) vkGetInstanceProcAddr( instance, "vkBuildAccelerationStructuresKHR" );
2223     vkCopyAccelerationStructureKHR                           = cast( PFN_vkCopyAccelerationStructureKHR                           ) vkGetInstanceProcAddr( instance, "vkCopyAccelerationStructureKHR" );
2224     vkCopyAccelerationStructureToMemoryKHR                   = cast( PFN_vkCopyAccelerationStructureToMemoryKHR                   ) vkGetInstanceProcAddr( instance, "vkCopyAccelerationStructureToMemoryKHR" );
2225     vkCopyMemoryToAccelerationStructureKHR                   = cast( PFN_vkCopyMemoryToAccelerationStructureKHR                   ) vkGetInstanceProcAddr( instance, "vkCopyMemoryToAccelerationStructureKHR" );
2226     vkWriteAccelerationStructuresPropertiesKHR               = cast( PFN_vkWriteAccelerationStructuresPropertiesKHR               ) vkGetInstanceProcAddr( instance, "vkWriteAccelerationStructuresPropertiesKHR" );
2227     vkCmdCopyAccelerationStructureKHR                        = cast( PFN_vkCmdCopyAccelerationStructureKHR                        ) vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureKHR" );
2228     vkCmdCopyAccelerationStructureToMemoryKHR                = cast( PFN_vkCmdCopyAccelerationStructureToMemoryKHR                ) vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureToMemoryKHR" );
2229     vkCmdCopyMemoryToAccelerationStructureKHR                = cast( PFN_vkCmdCopyMemoryToAccelerationStructureKHR                ) vkGetInstanceProcAddr( instance, "vkCmdCopyMemoryToAccelerationStructureKHR" );
2230     vkGetAccelerationStructureDeviceAddressKHR               = cast( PFN_vkGetAccelerationStructureDeviceAddressKHR               ) vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureDeviceAddressKHR" );
2231     vkCmdWriteAccelerationStructuresPropertiesKHR            = cast( PFN_vkCmdWriteAccelerationStructuresPropertiesKHR            ) vkGetInstanceProcAddr( instance, "vkCmdWriteAccelerationStructuresPropertiesKHR" );
2232     vkGetDeviceAccelerationStructureCompatibilityKHR         = cast( PFN_vkGetDeviceAccelerationStructureCompatibilityKHR         ) vkGetInstanceProcAddr( instance, "vkGetDeviceAccelerationStructureCompatibilityKHR" );
2233     vkGetAccelerationStructureBuildSizesKHR                  = cast( PFN_vkGetAccelerationStructureBuildSizesKHR                  ) vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureBuildSizesKHR" );
2234 
2235     // VK_KHR_ray_tracing_pipeline
2236     vkCmdTraceRaysKHR                                        = cast( PFN_vkCmdTraceRaysKHR                                        ) vkGetInstanceProcAddr( instance, "vkCmdTraceRaysKHR" );
2237     vkCreateRayTracingPipelinesKHR                           = cast( PFN_vkCreateRayTracingPipelinesKHR                           ) vkGetInstanceProcAddr( instance, "vkCreateRayTracingPipelinesKHR" );
2238     vkGetRayTracingCaptureReplayShaderGroupHandlesKHR        = cast( PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR        ) vkGetInstanceProcAddr( instance, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR" );
2239     vkCmdTraceRaysIndirectKHR                                = cast( PFN_vkCmdTraceRaysIndirectKHR                                ) vkGetInstanceProcAddr( instance, "vkCmdTraceRaysIndirectKHR" );
2240     vkGetRayTracingShaderGroupStackSizeKHR                   = cast( PFN_vkGetRayTracingShaderGroupStackSizeKHR                   ) vkGetInstanceProcAddr( instance, "vkGetRayTracingShaderGroupStackSizeKHR" );
2241     vkCmdSetRayTracingPipelineStackSizeKHR                   = cast( PFN_vkCmdSetRayTracingPipelineStackSizeKHR                   ) vkGetInstanceProcAddr( instance, "vkCmdSetRayTracingPipelineStackSizeKHR" );
2242 
2243     // VK_EXT_mesh_shader
2244     vkCmdDrawMeshTasksEXT                                    = cast( PFN_vkCmdDrawMeshTasksEXT                                    ) vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksEXT" );
2245     vkCmdDrawMeshTasksIndirectEXT                            = cast( PFN_vkCmdDrawMeshTasksIndirectEXT                            ) vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksIndirectEXT" );
2246     vkCmdDrawMeshTasksIndirectCountEXT                       = cast( PFN_vkCmdDrawMeshTasksIndirectCountEXT                       ) vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksIndirectCountEXT" );
2247 }
2248 
2249 
2250 /// with a valid VkDevice call this function to retrieve VkDevice, VkQueue and VkCommandBuffer related functions
2251 /// the functions call directly VkDevice and related resources and can be retrieved for one and only one VkDevice
2252 /// calling this function again with another VkDevices will overwrite the __gshared functions retrieved previously
2253 /// see module erupted.dispatch_device if multiple VkDevices will be used
2254 void loadDeviceLevelFunctions( VkDevice device ) {
2255     assert( vkGetDeviceProcAddr !is null, "Function pointer vkGetDeviceProcAddr is null!\nCall loadGlobalLevelFunctions -> loadInstanceLevelFunctions -> loadDeviceLevelFunctions( device )" );
2256 
2257     // VK_VERSION_1_0
2258     vkDestroyDevice                                          = cast( PFN_vkDestroyDevice                                          ) vkGetDeviceProcAddr( device, "vkDestroyDevice" );
2259     vkGetDeviceQueue                                         = cast( PFN_vkGetDeviceQueue                                         ) vkGetDeviceProcAddr( device, "vkGetDeviceQueue" );
2260     vkQueueSubmit                                            = cast( PFN_vkQueueSubmit                                            ) vkGetDeviceProcAddr( device, "vkQueueSubmit" );
2261     vkQueueWaitIdle                                          = cast( PFN_vkQueueWaitIdle                                          ) vkGetDeviceProcAddr( device, "vkQueueWaitIdle" );
2262     vkDeviceWaitIdle                                         = cast( PFN_vkDeviceWaitIdle                                         ) vkGetDeviceProcAddr( device, "vkDeviceWaitIdle" );
2263     vkAllocateMemory                                         = cast( PFN_vkAllocateMemory                                         ) vkGetDeviceProcAddr( device, "vkAllocateMemory" );
2264     vkFreeMemory                                             = cast( PFN_vkFreeMemory                                             ) vkGetDeviceProcAddr( device, "vkFreeMemory" );
2265     vkMapMemory                                              = cast( PFN_vkMapMemory                                              ) vkGetDeviceProcAddr( device, "vkMapMemory" );
2266     vkUnmapMemory                                            = cast( PFN_vkUnmapMemory                                            ) vkGetDeviceProcAddr( device, "vkUnmapMemory" );
2267     vkFlushMappedMemoryRanges                                = cast( PFN_vkFlushMappedMemoryRanges                                ) vkGetDeviceProcAddr( device, "vkFlushMappedMemoryRanges" );
2268     vkInvalidateMappedMemoryRanges                           = cast( PFN_vkInvalidateMappedMemoryRanges                           ) vkGetDeviceProcAddr( device, "vkInvalidateMappedMemoryRanges" );
2269     vkGetDeviceMemoryCommitment                              = cast( PFN_vkGetDeviceMemoryCommitment                              ) vkGetDeviceProcAddr( device, "vkGetDeviceMemoryCommitment" );
2270     vkBindBufferMemory                                       = cast( PFN_vkBindBufferMemory                                       ) vkGetDeviceProcAddr( device, "vkBindBufferMemory" );
2271     vkBindImageMemory                                        = cast( PFN_vkBindImageMemory                                        ) vkGetDeviceProcAddr( device, "vkBindImageMemory" );
2272     vkGetBufferMemoryRequirements                            = cast( PFN_vkGetBufferMemoryRequirements                            ) vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements" );
2273     vkGetImageMemoryRequirements                             = cast( PFN_vkGetImageMemoryRequirements                             ) vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements" );
2274     vkGetImageSparseMemoryRequirements                       = cast( PFN_vkGetImageSparseMemoryRequirements                       ) vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements" );
2275     vkQueueBindSparse                                        = cast( PFN_vkQueueBindSparse                                        ) vkGetDeviceProcAddr( device, "vkQueueBindSparse" );
2276     vkCreateFence                                            = cast( PFN_vkCreateFence                                            ) vkGetDeviceProcAddr( device, "vkCreateFence" );
2277     vkDestroyFence                                           = cast( PFN_vkDestroyFence                                           ) vkGetDeviceProcAddr( device, "vkDestroyFence" );
2278     vkResetFences                                            = cast( PFN_vkResetFences                                            ) vkGetDeviceProcAddr( device, "vkResetFences" );
2279     vkGetFenceStatus                                         = cast( PFN_vkGetFenceStatus                                         ) vkGetDeviceProcAddr( device, "vkGetFenceStatus" );
2280     vkWaitForFences                                          = cast( PFN_vkWaitForFences                                          ) vkGetDeviceProcAddr( device, "vkWaitForFences" );
2281     vkCreateSemaphore                                        = cast( PFN_vkCreateSemaphore                                        ) vkGetDeviceProcAddr( device, "vkCreateSemaphore" );
2282     vkDestroySemaphore                                       = cast( PFN_vkDestroySemaphore                                       ) vkGetDeviceProcAddr( device, "vkDestroySemaphore" );
2283     vkCreateEvent                                            = cast( PFN_vkCreateEvent                                            ) vkGetDeviceProcAddr( device, "vkCreateEvent" );
2284     vkDestroyEvent                                           = cast( PFN_vkDestroyEvent                                           ) vkGetDeviceProcAddr( device, "vkDestroyEvent" );
2285     vkGetEventStatus                                         = cast( PFN_vkGetEventStatus                                         ) vkGetDeviceProcAddr( device, "vkGetEventStatus" );
2286     vkSetEvent                                               = cast( PFN_vkSetEvent                                               ) vkGetDeviceProcAddr( device, "vkSetEvent" );
2287     vkResetEvent                                             = cast( PFN_vkResetEvent                                             ) vkGetDeviceProcAddr( device, "vkResetEvent" );
2288     vkCreateQueryPool                                        = cast( PFN_vkCreateQueryPool                                        ) vkGetDeviceProcAddr( device, "vkCreateQueryPool" );
2289     vkDestroyQueryPool                                       = cast( PFN_vkDestroyQueryPool                                       ) vkGetDeviceProcAddr( device, "vkDestroyQueryPool" );
2290     vkGetQueryPoolResults                                    = cast( PFN_vkGetQueryPoolResults                                    ) vkGetDeviceProcAddr( device, "vkGetQueryPoolResults" );
2291     vkCreateBuffer                                           = cast( PFN_vkCreateBuffer                                           ) vkGetDeviceProcAddr( device, "vkCreateBuffer" );
2292     vkDestroyBuffer                                          = cast( PFN_vkDestroyBuffer                                          ) vkGetDeviceProcAddr( device, "vkDestroyBuffer" );
2293     vkCreateBufferView                                       = cast( PFN_vkCreateBufferView                                       ) vkGetDeviceProcAddr( device, "vkCreateBufferView" );
2294     vkDestroyBufferView                                      = cast( PFN_vkDestroyBufferView                                      ) vkGetDeviceProcAddr( device, "vkDestroyBufferView" );
2295     vkCreateImage                                            = cast( PFN_vkCreateImage                                            ) vkGetDeviceProcAddr( device, "vkCreateImage" );
2296     vkDestroyImage                                           = cast( PFN_vkDestroyImage                                           ) vkGetDeviceProcAddr( device, "vkDestroyImage" );
2297     vkGetImageSubresourceLayout                              = cast( PFN_vkGetImageSubresourceLayout                              ) vkGetDeviceProcAddr( device, "vkGetImageSubresourceLayout" );
2298     vkCreateImageView                                        = cast( PFN_vkCreateImageView                                        ) vkGetDeviceProcAddr( device, "vkCreateImageView" );
2299     vkDestroyImageView                                       = cast( PFN_vkDestroyImageView                                       ) vkGetDeviceProcAddr( device, "vkDestroyImageView" );
2300     vkCreateShaderModule                                     = cast( PFN_vkCreateShaderModule                                     ) vkGetDeviceProcAddr( device, "vkCreateShaderModule" );
2301     vkDestroyShaderModule                                    = cast( PFN_vkDestroyShaderModule                                    ) vkGetDeviceProcAddr( device, "vkDestroyShaderModule" );
2302     vkCreatePipelineCache                                    = cast( PFN_vkCreatePipelineCache                                    ) vkGetDeviceProcAddr( device, "vkCreatePipelineCache" );
2303     vkDestroyPipelineCache                                   = cast( PFN_vkDestroyPipelineCache                                   ) vkGetDeviceProcAddr( device, "vkDestroyPipelineCache" );
2304     vkGetPipelineCacheData                                   = cast( PFN_vkGetPipelineCacheData                                   ) vkGetDeviceProcAddr( device, "vkGetPipelineCacheData" );
2305     vkMergePipelineCaches                                    = cast( PFN_vkMergePipelineCaches                                    ) vkGetDeviceProcAddr( device, "vkMergePipelineCaches" );
2306     vkCreateGraphicsPipelines                                = cast( PFN_vkCreateGraphicsPipelines                                ) vkGetDeviceProcAddr( device, "vkCreateGraphicsPipelines" );
2307     vkCreateComputePipelines                                 = cast( PFN_vkCreateComputePipelines                                 ) vkGetDeviceProcAddr( device, "vkCreateComputePipelines" );
2308     vkDestroyPipeline                                        = cast( PFN_vkDestroyPipeline                                        ) vkGetDeviceProcAddr( device, "vkDestroyPipeline" );
2309     vkCreatePipelineLayout                                   = cast( PFN_vkCreatePipelineLayout                                   ) vkGetDeviceProcAddr( device, "vkCreatePipelineLayout" );
2310     vkDestroyPipelineLayout                                  = cast( PFN_vkDestroyPipelineLayout                                  ) vkGetDeviceProcAddr( device, "vkDestroyPipelineLayout" );
2311     vkCreateSampler                                          = cast( PFN_vkCreateSampler                                          ) vkGetDeviceProcAddr( device, "vkCreateSampler" );
2312     vkDestroySampler                                         = cast( PFN_vkDestroySampler                                         ) vkGetDeviceProcAddr( device, "vkDestroySampler" );
2313     vkCreateDescriptorSetLayout                              = cast( PFN_vkCreateDescriptorSetLayout                              ) vkGetDeviceProcAddr( device, "vkCreateDescriptorSetLayout" );
2314     vkDestroyDescriptorSetLayout                             = cast( PFN_vkDestroyDescriptorSetLayout                             ) vkGetDeviceProcAddr( device, "vkDestroyDescriptorSetLayout" );
2315     vkCreateDescriptorPool                                   = cast( PFN_vkCreateDescriptorPool                                   ) vkGetDeviceProcAddr( device, "vkCreateDescriptorPool" );
2316     vkDestroyDescriptorPool                                  = cast( PFN_vkDestroyDescriptorPool                                  ) vkGetDeviceProcAddr( device, "vkDestroyDescriptorPool" );
2317     vkResetDescriptorPool                                    = cast( PFN_vkResetDescriptorPool                                    ) vkGetDeviceProcAddr( device, "vkResetDescriptorPool" );
2318     vkAllocateDescriptorSets                                 = cast( PFN_vkAllocateDescriptorSets                                 ) vkGetDeviceProcAddr( device, "vkAllocateDescriptorSets" );
2319     vkFreeDescriptorSets                                     = cast( PFN_vkFreeDescriptorSets                                     ) vkGetDeviceProcAddr( device, "vkFreeDescriptorSets" );
2320     vkUpdateDescriptorSets                                   = cast( PFN_vkUpdateDescriptorSets                                   ) vkGetDeviceProcAddr( device, "vkUpdateDescriptorSets" );
2321     vkCreateFramebuffer                                      = cast( PFN_vkCreateFramebuffer                                      ) vkGetDeviceProcAddr( device, "vkCreateFramebuffer" );
2322     vkDestroyFramebuffer                                     = cast( PFN_vkDestroyFramebuffer                                     ) vkGetDeviceProcAddr( device, "vkDestroyFramebuffer" );
2323     vkCreateRenderPass                                       = cast( PFN_vkCreateRenderPass                                       ) vkGetDeviceProcAddr( device, "vkCreateRenderPass" );
2324     vkDestroyRenderPass                                      = cast( PFN_vkDestroyRenderPass                                      ) vkGetDeviceProcAddr( device, "vkDestroyRenderPass" );
2325     vkGetRenderAreaGranularity                               = cast( PFN_vkGetRenderAreaGranularity                               ) vkGetDeviceProcAddr( device, "vkGetRenderAreaGranularity" );
2326     vkCreateCommandPool                                      = cast( PFN_vkCreateCommandPool                                      ) vkGetDeviceProcAddr( device, "vkCreateCommandPool" );
2327     vkDestroyCommandPool                                     = cast( PFN_vkDestroyCommandPool                                     ) vkGetDeviceProcAddr( device, "vkDestroyCommandPool" );
2328     vkResetCommandPool                                       = cast( PFN_vkResetCommandPool                                       ) vkGetDeviceProcAddr( device, "vkResetCommandPool" );
2329     vkAllocateCommandBuffers                                 = cast( PFN_vkAllocateCommandBuffers                                 ) vkGetDeviceProcAddr( device, "vkAllocateCommandBuffers" );
2330     vkFreeCommandBuffers                                     = cast( PFN_vkFreeCommandBuffers                                     ) vkGetDeviceProcAddr( device, "vkFreeCommandBuffers" );
2331     vkBeginCommandBuffer                                     = cast( PFN_vkBeginCommandBuffer                                     ) vkGetDeviceProcAddr( device, "vkBeginCommandBuffer" );
2332     vkEndCommandBuffer                                       = cast( PFN_vkEndCommandBuffer                                       ) vkGetDeviceProcAddr( device, "vkEndCommandBuffer" );
2333     vkResetCommandBuffer                                     = cast( PFN_vkResetCommandBuffer                                     ) vkGetDeviceProcAddr( device, "vkResetCommandBuffer" );
2334     vkCmdBindPipeline                                        = cast( PFN_vkCmdBindPipeline                                        ) vkGetDeviceProcAddr( device, "vkCmdBindPipeline" );
2335     vkCmdSetViewport                                         = cast( PFN_vkCmdSetViewport                                         ) vkGetDeviceProcAddr( device, "vkCmdSetViewport" );
2336     vkCmdSetScissor                                          = cast( PFN_vkCmdSetScissor                                          ) vkGetDeviceProcAddr( device, "vkCmdSetScissor" );
2337     vkCmdSetLineWidth                                        = cast( PFN_vkCmdSetLineWidth                                        ) vkGetDeviceProcAddr( device, "vkCmdSetLineWidth" );
2338     vkCmdSetDepthBias                                        = cast( PFN_vkCmdSetDepthBias                                        ) vkGetDeviceProcAddr( device, "vkCmdSetDepthBias" );
2339     vkCmdSetBlendConstants                                   = cast( PFN_vkCmdSetBlendConstants                                   ) vkGetDeviceProcAddr( device, "vkCmdSetBlendConstants" );
2340     vkCmdSetDepthBounds                                      = cast( PFN_vkCmdSetDepthBounds                                      ) vkGetDeviceProcAddr( device, "vkCmdSetDepthBounds" );
2341     vkCmdSetStencilCompareMask                               = cast( PFN_vkCmdSetStencilCompareMask                               ) vkGetDeviceProcAddr( device, "vkCmdSetStencilCompareMask" );
2342     vkCmdSetStencilWriteMask                                 = cast( PFN_vkCmdSetStencilWriteMask                                 ) vkGetDeviceProcAddr( device, "vkCmdSetStencilWriteMask" );
2343     vkCmdSetStencilReference                                 = cast( PFN_vkCmdSetStencilReference                                 ) vkGetDeviceProcAddr( device, "vkCmdSetStencilReference" );
2344     vkCmdBindDescriptorSets                                  = cast( PFN_vkCmdBindDescriptorSets                                  ) vkGetDeviceProcAddr( device, "vkCmdBindDescriptorSets" );
2345     vkCmdBindIndexBuffer                                     = cast( PFN_vkCmdBindIndexBuffer                                     ) vkGetDeviceProcAddr( device, "vkCmdBindIndexBuffer" );
2346     vkCmdBindVertexBuffers                                   = cast( PFN_vkCmdBindVertexBuffers                                   ) vkGetDeviceProcAddr( device, "vkCmdBindVertexBuffers" );
2347     vkCmdDraw                                                = cast( PFN_vkCmdDraw                                                ) vkGetDeviceProcAddr( device, "vkCmdDraw" );
2348     vkCmdDrawIndexed                                         = cast( PFN_vkCmdDrawIndexed                                         ) vkGetDeviceProcAddr( device, "vkCmdDrawIndexed" );
2349     vkCmdDrawIndirect                                        = cast( PFN_vkCmdDrawIndirect                                        ) vkGetDeviceProcAddr( device, "vkCmdDrawIndirect" );
2350     vkCmdDrawIndexedIndirect                                 = cast( PFN_vkCmdDrawIndexedIndirect                                 ) vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirect" );
2351     vkCmdDispatch                                            = cast( PFN_vkCmdDispatch                                            ) vkGetDeviceProcAddr( device, "vkCmdDispatch" );
2352     vkCmdDispatchIndirect                                    = cast( PFN_vkCmdDispatchIndirect                                    ) vkGetDeviceProcAddr( device, "vkCmdDispatchIndirect" );
2353     vkCmdCopyBuffer                                          = cast( PFN_vkCmdCopyBuffer                                          ) vkGetDeviceProcAddr( device, "vkCmdCopyBuffer" );
2354     vkCmdCopyImage                                           = cast( PFN_vkCmdCopyImage                                           ) vkGetDeviceProcAddr( device, "vkCmdCopyImage" );
2355     vkCmdBlitImage                                           = cast( PFN_vkCmdBlitImage                                           ) vkGetDeviceProcAddr( device, "vkCmdBlitImage" );
2356     vkCmdCopyBufferToImage                                   = cast( PFN_vkCmdCopyBufferToImage                                   ) vkGetDeviceProcAddr( device, "vkCmdCopyBufferToImage" );
2357     vkCmdCopyImageToBuffer                                   = cast( PFN_vkCmdCopyImageToBuffer                                   ) vkGetDeviceProcAddr( device, "vkCmdCopyImageToBuffer" );
2358     vkCmdUpdateBuffer                                        = cast( PFN_vkCmdUpdateBuffer                                        ) vkGetDeviceProcAddr( device, "vkCmdUpdateBuffer" );
2359     vkCmdFillBuffer                                          = cast( PFN_vkCmdFillBuffer                                          ) vkGetDeviceProcAddr( device, "vkCmdFillBuffer" );
2360     vkCmdClearColorImage                                     = cast( PFN_vkCmdClearColorImage                                     ) vkGetDeviceProcAddr( device, "vkCmdClearColorImage" );
2361     vkCmdClearDepthStencilImage                              = cast( PFN_vkCmdClearDepthStencilImage                              ) vkGetDeviceProcAddr( device, "vkCmdClearDepthStencilImage" );
2362     vkCmdClearAttachments                                    = cast( PFN_vkCmdClearAttachments                                    ) vkGetDeviceProcAddr( device, "vkCmdClearAttachments" );
2363     vkCmdResolveImage                                        = cast( PFN_vkCmdResolveImage                                        ) vkGetDeviceProcAddr( device, "vkCmdResolveImage" );
2364     vkCmdSetEvent                                            = cast( PFN_vkCmdSetEvent                                            ) vkGetDeviceProcAddr( device, "vkCmdSetEvent" );
2365     vkCmdResetEvent                                          = cast( PFN_vkCmdResetEvent                                          ) vkGetDeviceProcAddr( device, "vkCmdResetEvent" );
2366     vkCmdWaitEvents                                          = cast( PFN_vkCmdWaitEvents                                          ) vkGetDeviceProcAddr( device, "vkCmdWaitEvents" );
2367     vkCmdPipelineBarrier                                     = cast( PFN_vkCmdPipelineBarrier                                     ) vkGetDeviceProcAddr( device, "vkCmdPipelineBarrier" );
2368     vkCmdBeginQuery                                          = cast( PFN_vkCmdBeginQuery                                          ) vkGetDeviceProcAddr( device, "vkCmdBeginQuery" );
2369     vkCmdEndQuery                                            = cast( PFN_vkCmdEndQuery                                            ) vkGetDeviceProcAddr( device, "vkCmdEndQuery" );
2370     vkCmdResetQueryPool                                      = cast( PFN_vkCmdResetQueryPool                                      ) vkGetDeviceProcAddr( device, "vkCmdResetQueryPool" );
2371     vkCmdWriteTimestamp                                      = cast( PFN_vkCmdWriteTimestamp                                      ) vkGetDeviceProcAddr( device, "vkCmdWriteTimestamp" );
2372     vkCmdCopyQueryPoolResults                                = cast( PFN_vkCmdCopyQueryPoolResults                                ) vkGetDeviceProcAddr( device, "vkCmdCopyQueryPoolResults" );
2373     vkCmdPushConstants                                       = cast( PFN_vkCmdPushConstants                                       ) vkGetDeviceProcAddr( device, "vkCmdPushConstants" );
2374     vkCmdBeginRenderPass                                     = cast( PFN_vkCmdBeginRenderPass                                     ) vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass" );
2375     vkCmdNextSubpass                                         = cast( PFN_vkCmdNextSubpass                                         ) vkGetDeviceProcAddr( device, "vkCmdNextSubpass" );
2376     vkCmdEndRenderPass                                       = cast( PFN_vkCmdEndRenderPass                                       ) vkGetDeviceProcAddr( device, "vkCmdEndRenderPass" );
2377     vkCmdExecuteCommands                                     = cast( PFN_vkCmdExecuteCommands                                     ) vkGetDeviceProcAddr( device, "vkCmdExecuteCommands" );
2378 
2379     // VK_VERSION_1_1
2380     vkBindBufferMemory2                                      = cast( PFN_vkBindBufferMemory2                                      ) vkGetDeviceProcAddr( device, "vkBindBufferMemory2" );
2381     vkBindImageMemory2                                       = cast( PFN_vkBindImageMemory2                                       ) vkGetDeviceProcAddr( device, "vkBindImageMemory2" );
2382     vkGetDeviceGroupPeerMemoryFeatures                       = cast( PFN_vkGetDeviceGroupPeerMemoryFeatures                       ) vkGetDeviceProcAddr( device, "vkGetDeviceGroupPeerMemoryFeatures" );
2383     vkCmdSetDeviceMask                                       = cast( PFN_vkCmdSetDeviceMask                                       ) vkGetDeviceProcAddr( device, "vkCmdSetDeviceMask" );
2384     vkCmdDispatchBase                                        = cast( PFN_vkCmdDispatchBase                                        ) vkGetDeviceProcAddr( device, "vkCmdDispatchBase" );
2385     vkGetImageMemoryRequirements2                            = cast( PFN_vkGetImageMemoryRequirements2                            ) vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements2" );
2386     vkGetBufferMemoryRequirements2                           = cast( PFN_vkGetBufferMemoryRequirements2                           ) vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements2" );
2387     vkGetImageSparseMemoryRequirements2                      = cast( PFN_vkGetImageSparseMemoryRequirements2                      ) vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements2" );
2388     vkTrimCommandPool                                        = cast( PFN_vkTrimCommandPool                                        ) vkGetDeviceProcAddr( device, "vkTrimCommandPool" );
2389     vkGetDeviceQueue2                                        = cast( PFN_vkGetDeviceQueue2                                        ) vkGetDeviceProcAddr( device, "vkGetDeviceQueue2" );
2390     vkCreateSamplerYcbcrConversion                           = cast( PFN_vkCreateSamplerYcbcrConversion                           ) vkGetDeviceProcAddr( device, "vkCreateSamplerYcbcrConversion" );
2391     vkDestroySamplerYcbcrConversion                          = cast( PFN_vkDestroySamplerYcbcrConversion                          ) vkGetDeviceProcAddr( device, "vkDestroySamplerYcbcrConversion" );
2392     vkCreateDescriptorUpdateTemplate                         = cast( PFN_vkCreateDescriptorUpdateTemplate                         ) vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplate" );
2393     vkDestroyDescriptorUpdateTemplate                        = cast( PFN_vkDestroyDescriptorUpdateTemplate                        ) vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplate" );
2394     vkUpdateDescriptorSetWithTemplate                        = cast( PFN_vkUpdateDescriptorSetWithTemplate                        ) vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplate" );
2395     vkGetDescriptorSetLayoutSupport                          = cast( PFN_vkGetDescriptorSetLayoutSupport                          ) vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSupport" );
2396 
2397     // VK_VERSION_1_2
2398     vkCmdDrawIndirectCount                                   = cast( PFN_vkCmdDrawIndirectCount                                   ) vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCount" );
2399     vkCmdDrawIndexedIndirectCount                            = cast( PFN_vkCmdDrawIndexedIndirectCount                            ) vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCount" );
2400     vkCreateRenderPass2                                      = cast( PFN_vkCreateRenderPass2                                      ) vkGetDeviceProcAddr( device, "vkCreateRenderPass2" );
2401     vkCmdBeginRenderPass2                                    = cast( PFN_vkCmdBeginRenderPass2                                    ) vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass2" );
2402     vkCmdNextSubpass2                                        = cast( PFN_vkCmdNextSubpass2                                        ) vkGetDeviceProcAddr( device, "vkCmdNextSubpass2" );
2403     vkCmdEndRenderPass2                                      = cast( PFN_vkCmdEndRenderPass2                                      ) vkGetDeviceProcAddr( device, "vkCmdEndRenderPass2" );
2404     vkResetQueryPool                                         = cast( PFN_vkResetQueryPool                                         ) vkGetDeviceProcAddr( device, "vkResetQueryPool" );
2405     vkGetSemaphoreCounterValue                               = cast( PFN_vkGetSemaphoreCounterValue                               ) vkGetDeviceProcAddr( device, "vkGetSemaphoreCounterValue" );
2406     vkWaitSemaphores                                         = cast( PFN_vkWaitSemaphores                                         ) vkGetDeviceProcAddr( device, "vkWaitSemaphores" );
2407     vkSignalSemaphore                                        = cast( PFN_vkSignalSemaphore                                        ) vkGetDeviceProcAddr( device, "vkSignalSemaphore" );
2408     vkGetBufferDeviceAddress                                 = cast( PFN_vkGetBufferDeviceAddress                                 ) vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddress" );
2409     vkGetBufferOpaqueCaptureAddress                          = cast( PFN_vkGetBufferOpaqueCaptureAddress                          ) vkGetDeviceProcAddr( device, "vkGetBufferOpaqueCaptureAddress" );
2410     vkGetDeviceMemoryOpaqueCaptureAddress                    = cast( PFN_vkGetDeviceMemoryOpaqueCaptureAddress                    ) vkGetDeviceProcAddr( device, "vkGetDeviceMemoryOpaqueCaptureAddress" );
2411 
2412     // VK_VERSION_1_3
2413     vkCreatePrivateDataSlot                                  = cast( PFN_vkCreatePrivateDataSlot                                  ) vkGetDeviceProcAddr( device, "vkCreatePrivateDataSlot" );
2414     vkDestroyPrivateDataSlot                                 = cast( PFN_vkDestroyPrivateDataSlot                                 ) vkGetDeviceProcAddr( device, "vkDestroyPrivateDataSlot" );
2415     vkSetPrivateData                                         = cast( PFN_vkSetPrivateData                                         ) vkGetDeviceProcAddr( device, "vkSetPrivateData" );
2416     vkGetPrivateData                                         = cast( PFN_vkGetPrivateData                                         ) vkGetDeviceProcAddr( device, "vkGetPrivateData" );
2417     vkCmdSetEvent2                                           = cast( PFN_vkCmdSetEvent2                                           ) vkGetDeviceProcAddr( device, "vkCmdSetEvent2" );
2418     vkCmdResetEvent2                                         = cast( PFN_vkCmdResetEvent2                                         ) vkGetDeviceProcAddr( device, "vkCmdResetEvent2" );
2419     vkCmdWaitEvents2                                         = cast( PFN_vkCmdWaitEvents2                                         ) vkGetDeviceProcAddr( device, "vkCmdWaitEvents2" );
2420     vkCmdPipelineBarrier2                                    = cast( PFN_vkCmdPipelineBarrier2                                    ) vkGetDeviceProcAddr( device, "vkCmdPipelineBarrier2" );
2421     vkCmdWriteTimestamp2                                     = cast( PFN_vkCmdWriteTimestamp2                                     ) vkGetDeviceProcAddr( device, "vkCmdWriteTimestamp2" );
2422     vkQueueSubmit2                                           = cast( PFN_vkQueueSubmit2                                           ) vkGetDeviceProcAddr( device, "vkQueueSubmit2" );
2423     vkCmdCopyBuffer2                                         = cast( PFN_vkCmdCopyBuffer2                                         ) vkGetDeviceProcAddr( device, "vkCmdCopyBuffer2" );
2424     vkCmdCopyImage2                                          = cast( PFN_vkCmdCopyImage2                                          ) vkGetDeviceProcAddr( device, "vkCmdCopyImage2" );
2425     vkCmdCopyBufferToImage2                                  = cast( PFN_vkCmdCopyBufferToImage2                                  ) vkGetDeviceProcAddr( device, "vkCmdCopyBufferToImage2" );
2426     vkCmdCopyImageToBuffer2                                  = cast( PFN_vkCmdCopyImageToBuffer2                                  ) vkGetDeviceProcAddr( device, "vkCmdCopyImageToBuffer2" );
2427     vkCmdBlitImage2                                          = cast( PFN_vkCmdBlitImage2                                          ) vkGetDeviceProcAddr( device, "vkCmdBlitImage2" );
2428     vkCmdResolveImage2                                       = cast( PFN_vkCmdResolveImage2                                       ) vkGetDeviceProcAddr( device, "vkCmdResolveImage2" );
2429     vkCmdBeginRendering                                      = cast( PFN_vkCmdBeginRendering                                      ) vkGetDeviceProcAddr( device, "vkCmdBeginRendering" );
2430     vkCmdEndRendering                                        = cast( PFN_vkCmdEndRendering                                        ) vkGetDeviceProcAddr( device, "vkCmdEndRendering" );
2431     vkCmdSetCullMode                                         = cast( PFN_vkCmdSetCullMode                                         ) vkGetDeviceProcAddr( device, "vkCmdSetCullMode" );
2432     vkCmdSetFrontFace                                        = cast( PFN_vkCmdSetFrontFace                                        ) vkGetDeviceProcAddr( device, "vkCmdSetFrontFace" );
2433     vkCmdSetPrimitiveTopology                                = cast( PFN_vkCmdSetPrimitiveTopology                                ) vkGetDeviceProcAddr( device, "vkCmdSetPrimitiveTopology" );
2434     vkCmdSetViewportWithCount                                = cast( PFN_vkCmdSetViewportWithCount                                ) vkGetDeviceProcAddr( device, "vkCmdSetViewportWithCount" );
2435     vkCmdSetScissorWithCount                                 = cast( PFN_vkCmdSetScissorWithCount                                 ) vkGetDeviceProcAddr( device, "vkCmdSetScissorWithCount" );
2436     vkCmdBindVertexBuffers2                                  = cast( PFN_vkCmdBindVertexBuffers2                                  ) vkGetDeviceProcAddr( device, "vkCmdBindVertexBuffers2" );
2437     vkCmdSetDepthTestEnable                                  = cast( PFN_vkCmdSetDepthTestEnable                                  ) vkGetDeviceProcAddr( device, "vkCmdSetDepthTestEnable" );
2438     vkCmdSetDepthWriteEnable                                 = cast( PFN_vkCmdSetDepthWriteEnable                                 ) vkGetDeviceProcAddr( device, "vkCmdSetDepthWriteEnable" );
2439     vkCmdSetDepthCompareOp                                   = cast( PFN_vkCmdSetDepthCompareOp                                   ) vkGetDeviceProcAddr( device, "vkCmdSetDepthCompareOp" );
2440     vkCmdSetDepthBoundsTestEnable                            = cast( PFN_vkCmdSetDepthBoundsTestEnable                            ) vkGetDeviceProcAddr( device, "vkCmdSetDepthBoundsTestEnable" );
2441     vkCmdSetStencilTestEnable                                = cast( PFN_vkCmdSetStencilTestEnable                                ) vkGetDeviceProcAddr( device, "vkCmdSetStencilTestEnable" );
2442     vkCmdSetStencilOp                                        = cast( PFN_vkCmdSetStencilOp                                        ) vkGetDeviceProcAddr( device, "vkCmdSetStencilOp" );
2443     vkCmdSetRasterizerDiscardEnable                          = cast( PFN_vkCmdSetRasterizerDiscardEnable                          ) vkGetDeviceProcAddr( device, "vkCmdSetRasterizerDiscardEnable" );
2444     vkCmdSetDepthBiasEnable                                  = cast( PFN_vkCmdSetDepthBiasEnable                                  ) vkGetDeviceProcAddr( device, "vkCmdSetDepthBiasEnable" );
2445     vkCmdSetPrimitiveRestartEnable                           = cast( PFN_vkCmdSetPrimitiveRestartEnable                           ) vkGetDeviceProcAddr( device, "vkCmdSetPrimitiveRestartEnable" );
2446     vkGetDeviceBufferMemoryRequirements                      = cast( PFN_vkGetDeviceBufferMemoryRequirements                      ) vkGetDeviceProcAddr( device, "vkGetDeviceBufferMemoryRequirements" );
2447     vkGetDeviceImageMemoryRequirements                       = cast( PFN_vkGetDeviceImageMemoryRequirements                       ) vkGetDeviceProcAddr( device, "vkGetDeviceImageMemoryRequirements" );
2448     vkGetDeviceImageSparseMemoryRequirements                 = cast( PFN_vkGetDeviceImageSparseMemoryRequirements                 ) vkGetDeviceProcAddr( device, "vkGetDeviceImageSparseMemoryRequirements" );
2449 
2450     // VK_KHR_swapchain
2451     vkCreateSwapchainKHR                                     = cast( PFN_vkCreateSwapchainKHR                                     ) vkGetDeviceProcAddr( device, "vkCreateSwapchainKHR" );
2452     vkDestroySwapchainKHR                                    = cast( PFN_vkDestroySwapchainKHR                                    ) vkGetDeviceProcAddr( device, "vkDestroySwapchainKHR" );
2453     vkGetSwapchainImagesKHR                                  = cast( PFN_vkGetSwapchainImagesKHR                                  ) vkGetDeviceProcAddr( device, "vkGetSwapchainImagesKHR" );
2454     vkAcquireNextImageKHR                                    = cast( PFN_vkAcquireNextImageKHR                                    ) vkGetDeviceProcAddr( device, "vkAcquireNextImageKHR" );
2455     vkQueuePresentKHR                                        = cast( PFN_vkQueuePresentKHR                                        ) vkGetDeviceProcAddr( device, "vkQueuePresentKHR" );
2456     vkGetDeviceGroupPresentCapabilitiesKHR                   = cast( PFN_vkGetDeviceGroupPresentCapabilitiesKHR                   ) vkGetDeviceProcAddr( device, "vkGetDeviceGroupPresentCapabilitiesKHR" );
2457     vkGetDeviceGroupSurfacePresentModesKHR                   = cast( PFN_vkGetDeviceGroupSurfacePresentModesKHR                   ) vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModesKHR" );
2458     vkAcquireNextImage2KHR                                   = cast( PFN_vkAcquireNextImage2KHR                                   ) vkGetDeviceProcAddr( device, "vkAcquireNextImage2KHR" );
2459 
2460     // VK_KHR_display_swapchain
2461     vkCreateSharedSwapchainsKHR                              = cast( PFN_vkCreateSharedSwapchainsKHR                              ) vkGetDeviceProcAddr( device, "vkCreateSharedSwapchainsKHR" );
2462 
2463     // VK_KHR_video_queue
2464     vkCreateVideoSessionKHR                                  = cast( PFN_vkCreateVideoSessionKHR                                  ) vkGetDeviceProcAddr( device, "vkCreateVideoSessionKHR" );
2465     vkDestroyVideoSessionKHR                                 = cast( PFN_vkDestroyVideoSessionKHR                                 ) vkGetDeviceProcAddr( device, "vkDestroyVideoSessionKHR" );
2466     vkGetVideoSessionMemoryRequirementsKHR                   = cast( PFN_vkGetVideoSessionMemoryRequirementsKHR                   ) vkGetDeviceProcAddr( device, "vkGetVideoSessionMemoryRequirementsKHR" );
2467     vkBindVideoSessionMemoryKHR                              = cast( PFN_vkBindVideoSessionMemoryKHR                              ) vkGetDeviceProcAddr( device, "vkBindVideoSessionMemoryKHR" );
2468     vkCreateVideoSessionParametersKHR                        = cast( PFN_vkCreateVideoSessionParametersKHR                        ) vkGetDeviceProcAddr( device, "vkCreateVideoSessionParametersKHR" );
2469     vkUpdateVideoSessionParametersKHR                        = cast( PFN_vkUpdateVideoSessionParametersKHR                        ) vkGetDeviceProcAddr( device, "vkUpdateVideoSessionParametersKHR" );
2470     vkDestroyVideoSessionParametersKHR                       = cast( PFN_vkDestroyVideoSessionParametersKHR                       ) vkGetDeviceProcAddr( device, "vkDestroyVideoSessionParametersKHR" );
2471     vkCmdBeginVideoCodingKHR                                 = cast( PFN_vkCmdBeginVideoCodingKHR                                 ) vkGetDeviceProcAddr( device, "vkCmdBeginVideoCodingKHR" );
2472     vkCmdEndVideoCodingKHR                                   = cast( PFN_vkCmdEndVideoCodingKHR                                   ) vkGetDeviceProcAddr( device, "vkCmdEndVideoCodingKHR" );
2473     vkCmdControlVideoCodingKHR                               = cast( PFN_vkCmdControlVideoCodingKHR                               ) vkGetDeviceProcAddr( device, "vkCmdControlVideoCodingKHR" );
2474 
2475     // VK_KHR_video_decode_queue
2476     vkCmdDecodeVideoKHR                                      = cast( PFN_vkCmdDecodeVideoKHR                                      ) vkGetDeviceProcAddr( device, "vkCmdDecodeVideoKHR" );
2477 
2478     // VK_KHR_external_memory_fd
2479     vkGetMemoryFdKHR                                         = cast( PFN_vkGetMemoryFdKHR                                         ) vkGetDeviceProcAddr( device, "vkGetMemoryFdKHR" );
2480     vkGetMemoryFdPropertiesKHR                               = cast( PFN_vkGetMemoryFdPropertiesKHR                               ) vkGetDeviceProcAddr( device, "vkGetMemoryFdPropertiesKHR" );
2481 
2482     // VK_KHR_external_semaphore_fd
2483     vkImportSemaphoreFdKHR                                   = cast( PFN_vkImportSemaphoreFdKHR                                   ) vkGetDeviceProcAddr( device, "vkImportSemaphoreFdKHR" );
2484     vkGetSemaphoreFdKHR                                      = cast( PFN_vkGetSemaphoreFdKHR                                      ) vkGetDeviceProcAddr( device, "vkGetSemaphoreFdKHR" );
2485 
2486     // VK_KHR_push_descriptor
2487     vkCmdPushDescriptorSetKHR                                = cast( PFN_vkCmdPushDescriptorSetKHR                                ) vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetKHR" );
2488     vkCmdPushDescriptorSetWithTemplateKHR                    = cast( PFN_vkCmdPushDescriptorSetWithTemplateKHR                    ) vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetWithTemplateKHR" );
2489 
2490     // VK_KHR_shared_presentable_image
2491     vkGetSwapchainStatusKHR                                  = cast( PFN_vkGetSwapchainStatusKHR                                  ) vkGetDeviceProcAddr( device, "vkGetSwapchainStatusKHR" );
2492 
2493     // VK_KHR_external_fence_fd
2494     vkImportFenceFdKHR                                       = cast( PFN_vkImportFenceFdKHR                                       ) vkGetDeviceProcAddr( device, "vkImportFenceFdKHR" );
2495     vkGetFenceFdKHR                                          = cast( PFN_vkGetFenceFdKHR                                          ) vkGetDeviceProcAddr( device, "vkGetFenceFdKHR" );
2496 
2497     // VK_KHR_performance_query
2498     vkAcquireProfilingLockKHR                                = cast( PFN_vkAcquireProfilingLockKHR                                ) vkGetDeviceProcAddr( device, "vkAcquireProfilingLockKHR" );
2499     vkReleaseProfilingLockKHR                                = cast( PFN_vkReleaseProfilingLockKHR                                ) vkGetDeviceProcAddr( device, "vkReleaseProfilingLockKHR" );
2500 
2501     // VK_KHR_fragment_shading_rate
2502     vkCmdSetFragmentShadingRateKHR                           = cast( PFN_vkCmdSetFragmentShadingRateKHR                           ) vkGetDeviceProcAddr( device, "vkCmdSetFragmentShadingRateKHR" );
2503 
2504     // VK_KHR_present_wait
2505     vkWaitForPresentKHR                                      = cast( PFN_vkWaitForPresentKHR                                      ) vkGetDeviceProcAddr( device, "vkWaitForPresentKHR" );
2506 
2507     // VK_KHR_deferred_host_operations
2508     vkCreateDeferredOperationKHR                             = cast( PFN_vkCreateDeferredOperationKHR                             ) vkGetDeviceProcAddr( device, "vkCreateDeferredOperationKHR" );
2509     vkDestroyDeferredOperationKHR                            = cast( PFN_vkDestroyDeferredOperationKHR                            ) vkGetDeviceProcAddr( device, "vkDestroyDeferredOperationKHR" );
2510     vkGetDeferredOperationMaxConcurrencyKHR                  = cast( PFN_vkGetDeferredOperationMaxConcurrencyKHR                  ) vkGetDeviceProcAddr( device, "vkGetDeferredOperationMaxConcurrencyKHR" );
2511     vkGetDeferredOperationResultKHR                          = cast( PFN_vkGetDeferredOperationResultKHR                          ) vkGetDeviceProcAddr( device, "vkGetDeferredOperationResultKHR" );
2512     vkDeferredOperationJoinKHR                               = cast( PFN_vkDeferredOperationJoinKHR                               ) vkGetDeviceProcAddr( device, "vkDeferredOperationJoinKHR" );
2513 
2514     // VK_KHR_pipeline_executable_properties
2515     vkGetPipelineExecutablePropertiesKHR                     = cast( PFN_vkGetPipelineExecutablePropertiesKHR                     ) vkGetDeviceProcAddr( device, "vkGetPipelineExecutablePropertiesKHR" );
2516     vkGetPipelineExecutableStatisticsKHR                     = cast( PFN_vkGetPipelineExecutableStatisticsKHR                     ) vkGetDeviceProcAddr( device, "vkGetPipelineExecutableStatisticsKHR" );
2517     vkGetPipelineExecutableInternalRepresentationsKHR        = cast( PFN_vkGetPipelineExecutableInternalRepresentationsKHR        ) vkGetDeviceProcAddr( device, "vkGetPipelineExecutableInternalRepresentationsKHR" );
2518 
2519     // VK_KHR_map_memory2
2520     vkMapMemory2KHR                                          = cast( PFN_vkMapMemory2KHR                                          ) vkGetDeviceProcAddr( device, "vkMapMemory2KHR" );
2521     vkUnmapMemory2KHR                                        = cast( PFN_vkUnmapMemory2KHR                                        ) vkGetDeviceProcAddr( device, "vkUnmapMemory2KHR" );
2522 
2523     // VK_KHR_synchronization2
2524     vkCmdWriteBufferMarker2AMD                               = cast( PFN_vkCmdWriteBufferMarker2AMD                               ) vkGetDeviceProcAddr( device, "vkCmdWriteBufferMarker2AMD" );
2525     vkGetQueueCheckpointData2NV                              = cast( PFN_vkGetQueueCheckpointData2NV                              ) vkGetDeviceProcAddr( device, "vkGetQueueCheckpointData2NV" );
2526 
2527     // VK_KHR_ray_tracing_maintenance1
2528     vkCmdTraceRaysIndirect2KHR                               = cast( PFN_vkCmdTraceRaysIndirect2KHR                               ) vkGetDeviceProcAddr( device, "vkCmdTraceRaysIndirect2KHR" );
2529 
2530     // VK_EXT_debug_marker
2531     vkDebugMarkerSetObjectTagEXT                             = cast( PFN_vkDebugMarkerSetObjectTagEXT                             ) vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectTagEXT" );
2532     vkDebugMarkerSetObjectNameEXT                            = cast( PFN_vkDebugMarkerSetObjectNameEXT                            ) vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectNameEXT" );
2533     vkCmdDebugMarkerBeginEXT                                 = cast( PFN_vkCmdDebugMarkerBeginEXT                                 ) vkGetDeviceProcAddr( device, "vkCmdDebugMarkerBeginEXT" );
2534     vkCmdDebugMarkerEndEXT                                   = cast( PFN_vkCmdDebugMarkerEndEXT                                   ) vkGetDeviceProcAddr( device, "vkCmdDebugMarkerEndEXT" );
2535     vkCmdDebugMarkerInsertEXT                                = cast( PFN_vkCmdDebugMarkerInsertEXT                                ) vkGetDeviceProcAddr( device, "vkCmdDebugMarkerInsertEXT" );
2536 
2537     // VK_EXT_transform_feedback
2538     vkCmdBindTransformFeedbackBuffersEXT                     = cast( PFN_vkCmdBindTransformFeedbackBuffersEXT                     ) vkGetDeviceProcAddr( device, "vkCmdBindTransformFeedbackBuffersEXT" );
2539     vkCmdBeginTransformFeedbackEXT                           = cast( PFN_vkCmdBeginTransformFeedbackEXT                           ) vkGetDeviceProcAddr( device, "vkCmdBeginTransformFeedbackEXT" );
2540     vkCmdEndTransformFeedbackEXT                             = cast( PFN_vkCmdEndTransformFeedbackEXT                             ) vkGetDeviceProcAddr( device, "vkCmdEndTransformFeedbackEXT" );
2541     vkCmdBeginQueryIndexedEXT                                = cast( PFN_vkCmdBeginQueryIndexedEXT                                ) vkGetDeviceProcAddr( device, "vkCmdBeginQueryIndexedEXT" );
2542     vkCmdEndQueryIndexedEXT                                  = cast( PFN_vkCmdEndQueryIndexedEXT                                  ) vkGetDeviceProcAddr( device, "vkCmdEndQueryIndexedEXT" );
2543     vkCmdDrawIndirectByteCountEXT                            = cast( PFN_vkCmdDrawIndirectByteCountEXT                            ) vkGetDeviceProcAddr( device, "vkCmdDrawIndirectByteCountEXT" );
2544 
2545     // VK_NVX_binary_import
2546     vkCreateCuModuleNVX                                      = cast( PFN_vkCreateCuModuleNVX                                      ) vkGetDeviceProcAddr( device, "vkCreateCuModuleNVX" );
2547     vkCreateCuFunctionNVX                                    = cast( PFN_vkCreateCuFunctionNVX                                    ) vkGetDeviceProcAddr( device, "vkCreateCuFunctionNVX" );
2548     vkDestroyCuModuleNVX                                     = cast( PFN_vkDestroyCuModuleNVX                                     ) vkGetDeviceProcAddr( device, "vkDestroyCuModuleNVX" );
2549     vkDestroyCuFunctionNVX                                   = cast( PFN_vkDestroyCuFunctionNVX                                   ) vkGetDeviceProcAddr( device, "vkDestroyCuFunctionNVX" );
2550     vkCmdCuLaunchKernelNVX                                   = cast( PFN_vkCmdCuLaunchKernelNVX                                   ) vkGetDeviceProcAddr( device, "vkCmdCuLaunchKernelNVX" );
2551 
2552     // VK_NVX_image_view_handle
2553     vkGetImageViewHandleNVX                                  = cast( PFN_vkGetImageViewHandleNVX                                  ) vkGetDeviceProcAddr( device, "vkGetImageViewHandleNVX" );
2554     vkGetImageViewAddressNVX                                 = cast( PFN_vkGetImageViewAddressNVX                                 ) vkGetDeviceProcAddr( device, "vkGetImageViewAddressNVX" );
2555 
2556     // VK_AMD_shader_info
2557     vkGetShaderInfoAMD                                       = cast( PFN_vkGetShaderInfoAMD                                       ) vkGetDeviceProcAddr( device, "vkGetShaderInfoAMD" );
2558 
2559     // VK_EXT_conditional_rendering
2560     vkCmdBeginConditionalRenderingEXT                        = cast( PFN_vkCmdBeginConditionalRenderingEXT                        ) vkGetDeviceProcAddr( device, "vkCmdBeginConditionalRenderingEXT" );
2561     vkCmdEndConditionalRenderingEXT                          = cast( PFN_vkCmdEndConditionalRenderingEXT                          ) vkGetDeviceProcAddr( device, "vkCmdEndConditionalRenderingEXT" );
2562 
2563     // VK_NV_clip_space_w_scaling
2564     vkCmdSetViewportWScalingNV                               = cast( PFN_vkCmdSetViewportWScalingNV                               ) vkGetDeviceProcAddr( device, "vkCmdSetViewportWScalingNV" );
2565 
2566     // VK_EXT_display_control
2567     vkDisplayPowerControlEXT                                 = cast( PFN_vkDisplayPowerControlEXT                                 ) vkGetDeviceProcAddr( device, "vkDisplayPowerControlEXT" );
2568     vkRegisterDeviceEventEXT                                 = cast( PFN_vkRegisterDeviceEventEXT                                 ) vkGetDeviceProcAddr( device, "vkRegisterDeviceEventEXT" );
2569     vkRegisterDisplayEventEXT                                = cast( PFN_vkRegisterDisplayEventEXT                                ) vkGetDeviceProcAddr( device, "vkRegisterDisplayEventEXT" );
2570     vkGetSwapchainCounterEXT                                 = cast( PFN_vkGetSwapchainCounterEXT                                 ) vkGetDeviceProcAddr( device, "vkGetSwapchainCounterEXT" );
2571 
2572     // VK_GOOGLE_display_timing
2573     vkGetRefreshCycleDurationGOOGLE                          = cast( PFN_vkGetRefreshCycleDurationGOOGLE                          ) vkGetDeviceProcAddr( device, "vkGetRefreshCycleDurationGOOGLE" );
2574     vkGetPastPresentationTimingGOOGLE                        = cast( PFN_vkGetPastPresentationTimingGOOGLE                        ) vkGetDeviceProcAddr( device, "vkGetPastPresentationTimingGOOGLE" );
2575 
2576     // VK_EXT_discard_rectangles
2577     vkCmdSetDiscardRectangleEXT                              = cast( PFN_vkCmdSetDiscardRectangleEXT                              ) vkGetDeviceProcAddr( device, "vkCmdSetDiscardRectangleEXT" );
2578     vkCmdSetDiscardRectangleEnableEXT                        = cast( PFN_vkCmdSetDiscardRectangleEnableEXT                        ) vkGetDeviceProcAddr( device, "vkCmdSetDiscardRectangleEnableEXT" );
2579     vkCmdSetDiscardRectangleModeEXT                          = cast( PFN_vkCmdSetDiscardRectangleModeEXT                          ) vkGetDeviceProcAddr( device, "vkCmdSetDiscardRectangleModeEXT" );
2580 
2581     // VK_EXT_hdr_metadata
2582     vkSetHdrMetadataEXT                                      = cast( PFN_vkSetHdrMetadataEXT                                      ) vkGetDeviceProcAddr( device, "vkSetHdrMetadataEXT" );
2583 
2584     // VK_EXT_debug_utils
2585     vkSetDebugUtilsObjectNameEXT                             = cast( PFN_vkSetDebugUtilsObjectNameEXT                             ) vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectNameEXT" );
2586     vkSetDebugUtilsObjectTagEXT                              = cast( PFN_vkSetDebugUtilsObjectTagEXT                              ) vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectTagEXT" );
2587     vkQueueBeginDebugUtilsLabelEXT                           = cast( PFN_vkQueueBeginDebugUtilsLabelEXT                           ) vkGetDeviceProcAddr( device, "vkQueueBeginDebugUtilsLabelEXT" );
2588     vkQueueEndDebugUtilsLabelEXT                             = cast( PFN_vkQueueEndDebugUtilsLabelEXT                             ) vkGetDeviceProcAddr( device, "vkQueueEndDebugUtilsLabelEXT" );
2589     vkQueueInsertDebugUtilsLabelEXT                          = cast( PFN_vkQueueInsertDebugUtilsLabelEXT                          ) vkGetDeviceProcAddr( device, "vkQueueInsertDebugUtilsLabelEXT" );
2590     vkCmdBeginDebugUtilsLabelEXT                             = cast( PFN_vkCmdBeginDebugUtilsLabelEXT                             ) vkGetDeviceProcAddr( device, "vkCmdBeginDebugUtilsLabelEXT" );
2591     vkCmdEndDebugUtilsLabelEXT                               = cast( PFN_vkCmdEndDebugUtilsLabelEXT                               ) vkGetDeviceProcAddr( device, "vkCmdEndDebugUtilsLabelEXT" );
2592     vkCmdInsertDebugUtilsLabelEXT                            = cast( PFN_vkCmdInsertDebugUtilsLabelEXT                            ) vkGetDeviceProcAddr( device, "vkCmdInsertDebugUtilsLabelEXT" );
2593 
2594     // VK_EXT_sample_locations
2595     vkCmdSetSampleLocationsEXT                               = cast( PFN_vkCmdSetSampleLocationsEXT                               ) vkGetDeviceProcAddr( device, "vkCmdSetSampleLocationsEXT" );
2596 
2597     // VK_EXT_image_drm_format_modifier
2598     vkGetImageDrmFormatModifierPropertiesEXT                 = cast( PFN_vkGetImageDrmFormatModifierPropertiesEXT                 ) vkGetDeviceProcAddr( device, "vkGetImageDrmFormatModifierPropertiesEXT" );
2599 
2600     // VK_EXT_validation_cache
2601     vkCreateValidationCacheEXT                               = cast( PFN_vkCreateValidationCacheEXT                               ) vkGetDeviceProcAddr( device, "vkCreateValidationCacheEXT" );
2602     vkDestroyValidationCacheEXT                              = cast( PFN_vkDestroyValidationCacheEXT                              ) vkGetDeviceProcAddr( device, "vkDestroyValidationCacheEXT" );
2603     vkMergeValidationCachesEXT                               = cast( PFN_vkMergeValidationCachesEXT                               ) vkGetDeviceProcAddr( device, "vkMergeValidationCachesEXT" );
2604     vkGetValidationCacheDataEXT                              = cast( PFN_vkGetValidationCacheDataEXT                              ) vkGetDeviceProcAddr( device, "vkGetValidationCacheDataEXT" );
2605 
2606     // VK_NV_shading_rate_image
2607     vkCmdBindShadingRateImageNV                              = cast( PFN_vkCmdBindShadingRateImageNV                              ) vkGetDeviceProcAddr( device, "vkCmdBindShadingRateImageNV" );
2608     vkCmdSetViewportShadingRatePaletteNV                     = cast( PFN_vkCmdSetViewportShadingRatePaletteNV                     ) vkGetDeviceProcAddr( device, "vkCmdSetViewportShadingRatePaletteNV" );
2609     vkCmdSetCoarseSampleOrderNV                              = cast( PFN_vkCmdSetCoarseSampleOrderNV                              ) vkGetDeviceProcAddr( device, "vkCmdSetCoarseSampleOrderNV" );
2610 
2611     // VK_NV_ray_tracing
2612     vkCreateAccelerationStructureNV                          = cast( PFN_vkCreateAccelerationStructureNV                          ) vkGetDeviceProcAddr( device, "vkCreateAccelerationStructureNV" );
2613     vkDestroyAccelerationStructureNV                         = cast( PFN_vkDestroyAccelerationStructureNV                         ) vkGetDeviceProcAddr( device, "vkDestroyAccelerationStructureNV" );
2614     vkGetAccelerationStructureMemoryRequirementsNV           = cast( PFN_vkGetAccelerationStructureMemoryRequirementsNV           ) vkGetDeviceProcAddr( device, "vkGetAccelerationStructureMemoryRequirementsNV" );
2615     vkBindAccelerationStructureMemoryNV                      = cast( PFN_vkBindAccelerationStructureMemoryNV                      ) vkGetDeviceProcAddr( device, "vkBindAccelerationStructureMemoryNV" );
2616     vkCmdBuildAccelerationStructureNV                        = cast( PFN_vkCmdBuildAccelerationStructureNV                        ) vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructureNV" );
2617     vkCmdCopyAccelerationStructureNV                         = cast( PFN_vkCmdCopyAccelerationStructureNV                         ) vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureNV" );
2618     vkCmdTraceRaysNV                                         = cast( PFN_vkCmdTraceRaysNV                                         ) vkGetDeviceProcAddr( device, "vkCmdTraceRaysNV" );
2619     vkCreateRayTracingPipelinesNV                            = cast( PFN_vkCreateRayTracingPipelinesNV                            ) vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesNV" );
2620     vkGetRayTracingShaderGroupHandlesKHR                     = cast( PFN_vkGetRayTracingShaderGroupHandlesKHR                     ) vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupHandlesKHR" );
2621     vkGetAccelerationStructureHandleNV                       = cast( PFN_vkGetAccelerationStructureHandleNV                       ) vkGetDeviceProcAddr( device, "vkGetAccelerationStructureHandleNV" );
2622     vkCmdWriteAccelerationStructuresPropertiesNV             = cast( PFN_vkCmdWriteAccelerationStructuresPropertiesNV             ) vkGetDeviceProcAddr( device, "vkCmdWriteAccelerationStructuresPropertiesNV" );
2623     vkCompileDeferredNV                                      = cast( PFN_vkCompileDeferredNV                                      ) vkGetDeviceProcAddr( device, "vkCompileDeferredNV" );
2624 
2625     // VK_EXT_external_memory_host
2626     vkGetMemoryHostPointerPropertiesEXT                      = cast( PFN_vkGetMemoryHostPointerPropertiesEXT                      ) vkGetDeviceProcAddr( device, "vkGetMemoryHostPointerPropertiesEXT" );
2627 
2628     // VK_AMD_buffer_marker
2629     vkCmdWriteBufferMarkerAMD                                = cast( PFN_vkCmdWriteBufferMarkerAMD                                ) vkGetDeviceProcAddr( device, "vkCmdWriteBufferMarkerAMD" );
2630 
2631     // VK_EXT_calibrated_timestamps
2632     vkGetCalibratedTimestampsEXT                             = cast( PFN_vkGetCalibratedTimestampsEXT                             ) vkGetDeviceProcAddr( device, "vkGetCalibratedTimestampsEXT" );
2633 
2634     // VK_NV_mesh_shader
2635     vkCmdDrawMeshTasksNV                                     = cast( PFN_vkCmdDrawMeshTasksNV                                     ) vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksNV" );
2636     vkCmdDrawMeshTasksIndirectNV                             = cast( PFN_vkCmdDrawMeshTasksIndirectNV                             ) vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectNV" );
2637     vkCmdDrawMeshTasksIndirectCountNV                        = cast( PFN_vkCmdDrawMeshTasksIndirectCountNV                        ) vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectCountNV" );
2638 
2639     // VK_NV_scissor_exclusive
2640     vkCmdSetExclusiveScissorEnableNV                         = cast( PFN_vkCmdSetExclusiveScissorEnableNV                         ) vkGetDeviceProcAddr( device, "vkCmdSetExclusiveScissorEnableNV" );
2641     vkCmdSetExclusiveScissorNV                               = cast( PFN_vkCmdSetExclusiveScissorNV                               ) vkGetDeviceProcAddr( device, "vkCmdSetExclusiveScissorNV" );
2642 
2643     // VK_NV_device_diagnostic_checkpoints
2644     vkCmdSetCheckpointNV                                     = cast( PFN_vkCmdSetCheckpointNV                                     ) vkGetDeviceProcAddr( device, "vkCmdSetCheckpointNV" );
2645     vkGetQueueCheckpointDataNV                               = cast( PFN_vkGetQueueCheckpointDataNV                               ) vkGetDeviceProcAddr( device, "vkGetQueueCheckpointDataNV" );
2646 
2647     // VK_INTEL_performance_query
2648     vkInitializePerformanceApiINTEL                          = cast( PFN_vkInitializePerformanceApiINTEL                          ) vkGetDeviceProcAddr( device, "vkInitializePerformanceApiINTEL" );
2649     vkUninitializePerformanceApiINTEL                        = cast( PFN_vkUninitializePerformanceApiINTEL                        ) vkGetDeviceProcAddr( device, "vkUninitializePerformanceApiINTEL" );
2650     vkCmdSetPerformanceMarkerINTEL                           = cast( PFN_vkCmdSetPerformanceMarkerINTEL                           ) vkGetDeviceProcAddr( device, "vkCmdSetPerformanceMarkerINTEL" );
2651     vkCmdSetPerformanceStreamMarkerINTEL                     = cast( PFN_vkCmdSetPerformanceStreamMarkerINTEL                     ) vkGetDeviceProcAddr( device, "vkCmdSetPerformanceStreamMarkerINTEL" );
2652     vkCmdSetPerformanceOverrideINTEL                         = cast( PFN_vkCmdSetPerformanceOverrideINTEL                         ) vkGetDeviceProcAddr( device, "vkCmdSetPerformanceOverrideINTEL" );
2653     vkAcquirePerformanceConfigurationINTEL                   = cast( PFN_vkAcquirePerformanceConfigurationINTEL                   ) vkGetDeviceProcAddr( device, "vkAcquirePerformanceConfigurationINTEL" );
2654     vkReleasePerformanceConfigurationINTEL                   = cast( PFN_vkReleasePerformanceConfigurationINTEL                   ) vkGetDeviceProcAddr( device, "vkReleasePerformanceConfigurationINTEL" );
2655     vkQueueSetPerformanceConfigurationINTEL                  = cast( PFN_vkQueueSetPerformanceConfigurationINTEL                  ) vkGetDeviceProcAddr( device, "vkQueueSetPerformanceConfigurationINTEL" );
2656     vkGetPerformanceParameterINTEL                           = cast( PFN_vkGetPerformanceParameterINTEL                           ) vkGetDeviceProcAddr( device, "vkGetPerformanceParameterINTEL" );
2657 
2658     // VK_AMD_display_native_hdr
2659     vkSetLocalDimmingAMD                                     = cast( PFN_vkSetLocalDimmingAMD                                     ) vkGetDeviceProcAddr( device, "vkSetLocalDimmingAMD" );
2660 
2661     // VK_EXT_line_rasterization
2662     vkCmdSetLineStippleEXT                                   = cast( PFN_vkCmdSetLineStippleEXT                                   ) vkGetDeviceProcAddr( device, "vkCmdSetLineStippleEXT" );
2663 
2664     // VK_EXT_swapchain_maintenance1
2665     vkReleaseSwapchainImagesEXT                              = cast( PFN_vkReleaseSwapchainImagesEXT                              ) vkGetDeviceProcAddr( device, "vkReleaseSwapchainImagesEXT" );
2666 
2667     // VK_NV_device_generated_commands
2668     vkGetGeneratedCommandsMemoryRequirementsNV               = cast( PFN_vkGetGeneratedCommandsMemoryRequirementsNV               ) vkGetDeviceProcAddr( device, "vkGetGeneratedCommandsMemoryRequirementsNV" );
2669     vkCmdPreprocessGeneratedCommandsNV                       = cast( PFN_vkCmdPreprocessGeneratedCommandsNV                       ) vkGetDeviceProcAddr( device, "vkCmdPreprocessGeneratedCommandsNV" );
2670     vkCmdExecuteGeneratedCommandsNV                          = cast( PFN_vkCmdExecuteGeneratedCommandsNV                          ) vkGetDeviceProcAddr( device, "vkCmdExecuteGeneratedCommandsNV" );
2671     vkCmdBindPipelineShaderGroupNV                           = cast( PFN_vkCmdBindPipelineShaderGroupNV                           ) vkGetDeviceProcAddr( device, "vkCmdBindPipelineShaderGroupNV" );
2672     vkCreateIndirectCommandsLayoutNV                         = cast( PFN_vkCreateIndirectCommandsLayoutNV                         ) vkGetDeviceProcAddr( device, "vkCreateIndirectCommandsLayoutNV" );
2673     vkDestroyIndirectCommandsLayoutNV                        = cast( PFN_vkDestroyIndirectCommandsLayoutNV                        ) vkGetDeviceProcAddr( device, "vkDestroyIndirectCommandsLayoutNV" );
2674 
2675     // VK_EXT_descriptor_buffer
2676     vkGetDescriptorSetLayoutSizeEXT                          = cast( PFN_vkGetDescriptorSetLayoutSizeEXT                          ) vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSizeEXT" );
2677     vkGetDescriptorSetLayoutBindingOffsetEXT                 = cast( PFN_vkGetDescriptorSetLayoutBindingOffsetEXT                 ) vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutBindingOffsetEXT" );
2678     vkGetDescriptorEXT                                       = cast( PFN_vkGetDescriptorEXT                                       ) vkGetDeviceProcAddr( device, "vkGetDescriptorEXT" );
2679     vkCmdBindDescriptorBuffersEXT                            = cast( PFN_vkCmdBindDescriptorBuffersEXT                            ) vkGetDeviceProcAddr( device, "vkCmdBindDescriptorBuffersEXT" );
2680     vkCmdSetDescriptorBufferOffsetsEXT                       = cast( PFN_vkCmdSetDescriptorBufferOffsetsEXT                       ) vkGetDeviceProcAddr( device, "vkCmdSetDescriptorBufferOffsetsEXT" );
2681     vkCmdBindDescriptorBufferEmbeddedSamplersEXT             = cast( PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT             ) vkGetDeviceProcAddr( device, "vkCmdBindDescriptorBufferEmbeddedSamplersEXT" );
2682     vkGetBufferOpaqueCaptureDescriptorDataEXT                = cast( PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT                ) vkGetDeviceProcAddr( device, "vkGetBufferOpaqueCaptureDescriptorDataEXT" );
2683     vkGetImageOpaqueCaptureDescriptorDataEXT                 = cast( PFN_vkGetImageOpaqueCaptureDescriptorDataEXT                 ) vkGetDeviceProcAddr( device, "vkGetImageOpaqueCaptureDescriptorDataEXT" );
2684     vkGetImageViewOpaqueCaptureDescriptorDataEXT             = cast( PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT             ) vkGetDeviceProcAddr( device, "vkGetImageViewOpaqueCaptureDescriptorDataEXT" );
2685     vkGetSamplerOpaqueCaptureDescriptorDataEXT               = cast( PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT               ) vkGetDeviceProcAddr( device, "vkGetSamplerOpaqueCaptureDescriptorDataEXT" );
2686     vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT = cast( PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT ) vkGetDeviceProcAddr( device, "vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT" );
2687 
2688     // VK_NV_fragment_shading_rate_enums
2689     vkCmdSetFragmentShadingRateEnumNV                        = cast( PFN_vkCmdSetFragmentShadingRateEnumNV                        ) vkGetDeviceProcAddr( device, "vkCmdSetFragmentShadingRateEnumNV" );
2690 
2691     // VK_EXT_image_compression_control
2692     vkGetImageSubresourceLayout2EXT                          = cast( PFN_vkGetImageSubresourceLayout2EXT                          ) vkGetDeviceProcAddr( device, "vkGetImageSubresourceLayout2EXT" );
2693 
2694     // VK_EXT_device_fault
2695     vkGetDeviceFaultInfoEXT                                  = cast( PFN_vkGetDeviceFaultInfoEXT                                  ) vkGetDeviceProcAddr( device, "vkGetDeviceFaultInfoEXT" );
2696 
2697     // VK_EXT_vertex_input_dynamic_state
2698     vkCmdSetVertexInputEXT                                   = cast( PFN_vkCmdSetVertexInputEXT                                   ) vkGetDeviceProcAddr( device, "vkCmdSetVertexInputEXT" );
2699 
2700     // VK_HUAWEI_subpass_shading
2701     vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI          = cast( PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI          ) vkGetDeviceProcAddr( device, "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI" );
2702     vkCmdSubpassShadingHUAWEI                                = cast( PFN_vkCmdSubpassShadingHUAWEI                                ) vkGetDeviceProcAddr( device, "vkCmdSubpassShadingHUAWEI" );
2703 
2704     // VK_HUAWEI_invocation_mask
2705     vkCmdBindInvocationMaskHUAWEI                            = cast( PFN_vkCmdBindInvocationMaskHUAWEI                            ) vkGetDeviceProcAddr( device, "vkCmdBindInvocationMaskHUAWEI" );
2706 
2707     // VK_NV_external_memory_rdma
2708     vkGetMemoryRemoteAddressNV                               = cast( PFN_vkGetMemoryRemoteAddressNV                               ) vkGetDeviceProcAddr( device, "vkGetMemoryRemoteAddressNV" );
2709 
2710     // VK_EXT_pipeline_properties
2711     vkGetPipelinePropertiesEXT                               = cast( PFN_vkGetPipelinePropertiesEXT                               ) vkGetDeviceProcAddr( device, "vkGetPipelinePropertiesEXT" );
2712 
2713     // VK_EXT_extended_dynamic_state2
2714     vkCmdSetPatchControlPointsEXT                            = cast( PFN_vkCmdSetPatchControlPointsEXT                            ) vkGetDeviceProcAddr( device, "vkCmdSetPatchControlPointsEXT" );
2715     vkCmdSetLogicOpEXT                                       = cast( PFN_vkCmdSetLogicOpEXT                                       ) vkGetDeviceProcAddr( device, "vkCmdSetLogicOpEXT" );
2716 
2717     // VK_EXT_color_write_enable
2718     vkCmdSetColorWriteEnableEXT                              = cast( PFN_vkCmdSetColorWriteEnableEXT                              ) vkGetDeviceProcAddr( device, "vkCmdSetColorWriteEnableEXT" );
2719 
2720     // VK_EXT_multi_draw
2721     vkCmdDrawMultiEXT                                        = cast( PFN_vkCmdDrawMultiEXT                                        ) vkGetDeviceProcAddr( device, "vkCmdDrawMultiEXT" );
2722     vkCmdDrawMultiIndexedEXT                                 = cast( PFN_vkCmdDrawMultiIndexedEXT                                 ) vkGetDeviceProcAddr( device, "vkCmdDrawMultiIndexedEXT" );
2723 
2724     // VK_EXT_opacity_micromap
2725     vkCreateMicromapEXT                                      = cast( PFN_vkCreateMicromapEXT                                      ) vkGetDeviceProcAddr( device, "vkCreateMicromapEXT" );
2726     vkDestroyMicromapEXT                                     = cast( PFN_vkDestroyMicromapEXT                                     ) vkGetDeviceProcAddr( device, "vkDestroyMicromapEXT" );
2727     vkCmdBuildMicromapsEXT                                   = cast( PFN_vkCmdBuildMicromapsEXT                                   ) vkGetDeviceProcAddr( device, "vkCmdBuildMicromapsEXT" );
2728     vkBuildMicromapsEXT                                      = cast( PFN_vkBuildMicromapsEXT                                      ) vkGetDeviceProcAddr( device, "vkBuildMicromapsEXT" );
2729     vkCopyMicromapEXT                                        = cast( PFN_vkCopyMicromapEXT                                        ) vkGetDeviceProcAddr( device, "vkCopyMicromapEXT" );
2730     vkCopyMicromapToMemoryEXT                                = cast( PFN_vkCopyMicromapToMemoryEXT                                ) vkGetDeviceProcAddr( device, "vkCopyMicromapToMemoryEXT" );
2731     vkCopyMemoryToMicromapEXT                                = cast( PFN_vkCopyMemoryToMicromapEXT                                ) vkGetDeviceProcAddr( device, "vkCopyMemoryToMicromapEXT" );
2732     vkWriteMicromapsPropertiesEXT                            = cast( PFN_vkWriteMicromapsPropertiesEXT                            ) vkGetDeviceProcAddr( device, "vkWriteMicromapsPropertiesEXT" );
2733     vkCmdCopyMicromapEXT                                     = cast( PFN_vkCmdCopyMicromapEXT                                     ) vkGetDeviceProcAddr( device, "vkCmdCopyMicromapEXT" );
2734     vkCmdCopyMicromapToMemoryEXT                             = cast( PFN_vkCmdCopyMicromapToMemoryEXT                             ) vkGetDeviceProcAddr( device, "vkCmdCopyMicromapToMemoryEXT" );
2735     vkCmdCopyMemoryToMicromapEXT                             = cast( PFN_vkCmdCopyMemoryToMicromapEXT                             ) vkGetDeviceProcAddr( device, "vkCmdCopyMemoryToMicromapEXT" );
2736     vkCmdWriteMicromapsPropertiesEXT                         = cast( PFN_vkCmdWriteMicromapsPropertiesEXT                         ) vkGetDeviceProcAddr( device, "vkCmdWriteMicromapsPropertiesEXT" );
2737     vkGetDeviceMicromapCompatibilityEXT                      = cast( PFN_vkGetDeviceMicromapCompatibilityEXT                      ) vkGetDeviceProcAddr( device, "vkGetDeviceMicromapCompatibilityEXT" );
2738     vkGetMicromapBuildSizesEXT                               = cast( PFN_vkGetMicromapBuildSizesEXT                               ) vkGetDeviceProcAddr( device, "vkGetMicromapBuildSizesEXT" );
2739 
2740     // VK_HUAWEI_cluster_culling_shader
2741     vkCmdDrawClusterHUAWEI                                   = cast( PFN_vkCmdDrawClusterHUAWEI                                   ) vkGetDeviceProcAddr( device, "vkCmdDrawClusterHUAWEI" );
2742     vkCmdDrawClusterIndirectHUAWEI                           = cast( PFN_vkCmdDrawClusterIndirectHUAWEI                           ) vkGetDeviceProcAddr( device, "vkCmdDrawClusterIndirectHUAWEI" );
2743 
2744     // VK_EXT_pageable_device_local_memory
2745     vkSetDeviceMemoryPriorityEXT                             = cast( PFN_vkSetDeviceMemoryPriorityEXT                             ) vkGetDeviceProcAddr( device, "vkSetDeviceMemoryPriorityEXT" );
2746 
2747     // VK_VALVE_descriptor_set_host_mapping
2748     vkGetDescriptorSetLayoutHostMappingInfoVALVE             = cast( PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE             ) vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutHostMappingInfoVALVE" );
2749     vkGetDescriptorSetHostMappingVALVE                       = cast( PFN_vkGetDescriptorSetHostMappingVALVE                       ) vkGetDeviceProcAddr( device, "vkGetDescriptorSetHostMappingVALVE" );
2750 
2751     // VK_NV_copy_memory_indirect
2752     vkCmdCopyMemoryIndirectNV                                = cast( PFN_vkCmdCopyMemoryIndirectNV                                ) vkGetDeviceProcAddr( device, "vkCmdCopyMemoryIndirectNV" );
2753     vkCmdCopyMemoryToImageIndirectNV                         = cast( PFN_vkCmdCopyMemoryToImageIndirectNV                         ) vkGetDeviceProcAddr( device, "vkCmdCopyMemoryToImageIndirectNV" );
2754 
2755     // VK_NV_memory_decompression
2756     vkCmdDecompressMemoryNV                                  = cast( PFN_vkCmdDecompressMemoryNV                                  ) vkGetDeviceProcAddr( device, "vkCmdDecompressMemoryNV" );
2757     vkCmdDecompressMemoryIndirectCountNV                     = cast( PFN_vkCmdDecompressMemoryIndirectCountNV                     ) vkGetDeviceProcAddr( device, "vkCmdDecompressMemoryIndirectCountNV" );
2758 
2759     // VK_EXT_extended_dynamic_state3
2760     vkCmdSetTessellationDomainOriginEXT                      = cast( PFN_vkCmdSetTessellationDomainOriginEXT                      ) vkGetDeviceProcAddr( device, "vkCmdSetTessellationDomainOriginEXT" );
2761     vkCmdSetDepthClampEnableEXT                              = cast( PFN_vkCmdSetDepthClampEnableEXT                              ) vkGetDeviceProcAddr( device, "vkCmdSetDepthClampEnableEXT" );
2762     vkCmdSetPolygonModeEXT                                   = cast( PFN_vkCmdSetPolygonModeEXT                                   ) vkGetDeviceProcAddr( device, "vkCmdSetPolygonModeEXT" );
2763     vkCmdSetRasterizationSamplesEXT                          = cast( PFN_vkCmdSetRasterizationSamplesEXT                          ) vkGetDeviceProcAddr( device, "vkCmdSetRasterizationSamplesEXT" );
2764     vkCmdSetSampleMaskEXT                                    = cast( PFN_vkCmdSetSampleMaskEXT                                    ) vkGetDeviceProcAddr( device, "vkCmdSetSampleMaskEXT" );
2765     vkCmdSetAlphaToCoverageEnableEXT                         = cast( PFN_vkCmdSetAlphaToCoverageEnableEXT                         ) vkGetDeviceProcAddr( device, "vkCmdSetAlphaToCoverageEnableEXT" );
2766     vkCmdSetAlphaToOneEnableEXT                              = cast( PFN_vkCmdSetAlphaToOneEnableEXT                              ) vkGetDeviceProcAddr( device, "vkCmdSetAlphaToOneEnableEXT" );
2767     vkCmdSetLogicOpEnableEXT                                 = cast( PFN_vkCmdSetLogicOpEnableEXT                                 ) vkGetDeviceProcAddr( device, "vkCmdSetLogicOpEnableEXT" );
2768     vkCmdSetColorBlendEnableEXT                              = cast( PFN_vkCmdSetColorBlendEnableEXT                              ) vkGetDeviceProcAddr( device, "vkCmdSetColorBlendEnableEXT" );
2769     vkCmdSetColorBlendEquationEXT                            = cast( PFN_vkCmdSetColorBlendEquationEXT                            ) vkGetDeviceProcAddr( device, "vkCmdSetColorBlendEquationEXT" );
2770     vkCmdSetColorWriteMaskEXT                                = cast( PFN_vkCmdSetColorWriteMaskEXT                                ) vkGetDeviceProcAddr( device, "vkCmdSetColorWriteMaskEXT" );
2771     vkCmdSetRasterizationStreamEXT                           = cast( PFN_vkCmdSetRasterizationStreamEXT                           ) vkGetDeviceProcAddr( device, "vkCmdSetRasterizationStreamEXT" );
2772     vkCmdSetConservativeRasterizationModeEXT                 = cast( PFN_vkCmdSetConservativeRasterizationModeEXT                 ) vkGetDeviceProcAddr( device, "vkCmdSetConservativeRasterizationModeEXT" );
2773     vkCmdSetExtraPrimitiveOverestimationSizeEXT              = cast( PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT              ) vkGetDeviceProcAddr( device, "vkCmdSetExtraPrimitiveOverestimationSizeEXT" );
2774     vkCmdSetDepthClipEnableEXT                               = cast( PFN_vkCmdSetDepthClipEnableEXT                               ) vkGetDeviceProcAddr( device, "vkCmdSetDepthClipEnableEXT" );
2775     vkCmdSetSampleLocationsEnableEXT                         = cast( PFN_vkCmdSetSampleLocationsEnableEXT                         ) vkGetDeviceProcAddr( device, "vkCmdSetSampleLocationsEnableEXT" );
2776     vkCmdSetColorBlendAdvancedEXT                            = cast( PFN_vkCmdSetColorBlendAdvancedEXT                            ) vkGetDeviceProcAddr( device, "vkCmdSetColorBlendAdvancedEXT" );
2777     vkCmdSetProvokingVertexModeEXT                           = cast( PFN_vkCmdSetProvokingVertexModeEXT                           ) vkGetDeviceProcAddr( device, "vkCmdSetProvokingVertexModeEXT" );
2778     vkCmdSetLineRasterizationModeEXT                         = cast( PFN_vkCmdSetLineRasterizationModeEXT                         ) vkGetDeviceProcAddr( device, "vkCmdSetLineRasterizationModeEXT" );
2779     vkCmdSetLineStippleEnableEXT                             = cast( PFN_vkCmdSetLineStippleEnableEXT                             ) vkGetDeviceProcAddr( device, "vkCmdSetLineStippleEnableEXT" );
2780     vkCmdSetDepthClipNegativeOneToOneEXT                     = cast( PFN_vkCmdSetDepthClipNegativeOneToOneEXT                     ) vkGetDeviceProcAddr( device, "vkCmdSetDepthClipNegativeOneToOneEXT" );
2781     vkCmdSetViewportWScalingEnableNV                         = cast( PFN_vkCmdSetViewportWScalingEnableNV                         ) vkGetDeviceProcAddr( device, "vkCmdSetViewportWScalingEnableNV" );
2782     vkCmdSetViewportSwizzleNV                                = cast( PFN_vkCmdSetViewportSwizzleNV                                ) vkGetDeviceProcAddr( device, "vkCmdSetViewportSwizzleNV" );
2783     vkCmdSetCoverageToColorEnableNV                          = cast( PFN_vkCmdSetCoverageToColorEnableNV                          ) vkGetDeviceProcAddr( device, "vkCmdSetCoverageToColorEnableNV" );
2784     vkCmdSetCoverageToColorLocationNV                        = cast( PFN_vkCmdSetCoverageToColorLocationNV                        ) vkGetDeviceProcAddr( device, "vkCmdSetCoverageToColorLocationNV" );
2785     vkCmdSetCoverageModulationModeNV                         = cast( PFN_vkCmdSetCoverageModulationModeNV                         ) vkGetDeviceProcAddr( device, "vkCmdSetCoverageModulationModeNV" );
2786     vkCmdSetCoverageModulationTableEnableNV                  = cast( PFN_vkCmdSetCoverageModulationTableEnableNV                  ) vkGetDeviceProcAddr( device, "vkCmdSetCoverageModulationTableEnableNV" );
2787     vkCmdSetCoverageModulationTableNV                        = cast( PFN_vkCmdSetCoverageModulationTableNV                        ) vkGetDeviceProcAddr( device, "vkCmdSetCoverageModulationTableNV" );
2788     vkCmdSetShadingRateImageEnableNV                         = cast( PFN_vkCmdSetShadingRateImageEnableNV                         ) vkGetDeviceProcAddr( device, "vkCmdSetShadingRateImageEnableNV" );
2789     vkCmdSetRepresentativeFragmentTestEnableNV               = cast( PFN_vkCmdSetRepresentativeFragmentTestEnableNV               ) vkGetDeviceProcAddr( device, "vkCmdSetRepresentativeFragmentTestEnableNV" );
2790     vkCmdSetCoverageReductionModeNV                          = cast( PFN_vkCmdSetCoverageReductionModeNV                          ) vkGetDeviceProcAddr( device, "vkCmdSetCoverageReductionModeNV" );
2791 
2792     // VK_EXT_shader_module_identifier
2793     vkGetShaderModuleIdentifierEXT                           = cast( PFN_vkGetShaderModuleIdentifierEXT                           ) vkGetDeviceProcAddr( device, "vkGetShaderModuleIdentifierEXT" );
2794     vkGetShaderModuleCreateInfoIdentifierEXT                 = cast( PFN_vkGetShaderModuleCreateInfoIdentifierEXT                 ) vkGetDeviceProcAddr( device, "vkGetShaderModuleCreateInfoIdentifierEXT" );
2795 
2796     // VK_NV_optical_flow
2797     vkCreateOpticalFlowSessionNV                             = cast( PFN_vkCreateOpticalFlowSessionNV                             ) vkGetDeviceProcAddr( device, "vkCreateOpticalFlowSessionNV" );
2798     vkDestroyOpticalFlowSessionNV                            = cast( PFN_vkDestroyOpticalFlowSessionNV                            ) vkGetDeviceProcAddr( device, "vkDestroyOpticalFlowSessionNV" );
2799     vkBindOpticalFlowSessionImageNV                          = cast( PFN_vkBindOpticalFlowSessionImageNV                          ) vkGetDeviceProcAddr( device, "vkBindOpticalFlowSessionImageNV" );
2800     vkCmdOpticalFlowExecuteNV                                = cast( PFN_vkCmdOpticalFlowExecuteNV                                ) vkGetDeviceProcAddr( device, "vkCmdOpticalFlowExecuteNV" );
2801 
2802     // VK_EXT_shader_object
2803     vkCreateShadersEXT                                       = cast( PFN_vkCreateShadersEXT                                       ) vkGetDeviceProcAddr( device, "vkCreateShadersEXT" );
2804     vkDestroyShaderEXT                                       = cast( PFN_vkDestroyShaderEXT                                       ) vkGetDeviceProcAddr( device, "vkDestroyShaderEXT" );
2805     vkGetShaderBinaryDataEXT                                 = cast( PFN_vkGetShaderBinaryDataEXT                                 ) vkGetDeviceProcAddr( device, "vkGetShaderBinaryDataEXT" );
2806     vkCmdBindShadersEXT                                      = cast( PFN_vkCmdBindShadersEXT                                      ) vkGetDeviceProcAddr( device, "vkCmdBindShadersEXT" );
2807 
2808     // VK_QCOM_tile_properties
2809     vkGetFramebufferTilePropertiesQCOM                       = cast( PFN_vkGetFramebufferTilePropertiesQCOM                       ) vkGetDeviceProcAddr( device, "vkGetFramebufferTilePropertiesQCOM" );
2810     vkGetDynamicRenderingTilePropertiesQCOM                  = cast( PFN_vkGetDynamicRenderingTilePropertiesQCOM                  ) vkGetDeviceProcAddr( device, "vkGetDynamicRenderingTilePropertiesQCOM" );
2811 
2812     // VK_KHR_acceleration_structure
2813     vkCreateAccelerationStructureKHR                         = cast( PFN_vkCreateAccelerationStructureKHR                         ) vkGetDeviceProcAddr( device, "vkCreateAccelerationStructureKHR" );
2814     vkDestroyAccelerationStructureKHR                        = cast( PFN_vkDestroyAccelerationStructureKHR                        ) vkGetDeviceProcAddr( device, "vkDestroyAccelerationStructureKHR" );
2815     vkCmdBuildAccelerationStructuresKHR                      = cast( PFN_vkCmdBuildAccelerationStructuresKHR                      ) vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructuresKHR" );
2816     vkCmdBuildAccelerationStructuresIndirectKHR              = cast( PFN_vkCmdBuildAccelerationStructuresIndirectKHR              ) vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructuresIndirectKHR" );
2817     vkBuildAccelerationStructuresKHR                         = cast( PFN_vkBuildAccelerationStructuresKHR                         ) vkGetDeviceProcAddr( device, "vkBuildAccelerationStructuresKHR" );
2818     vkCopyAccelerationStructureKHR                           = cast( PFN_vkCopyAccelerationStructureKHR                           ) vkGetDeviceProcAddr( device, "vkCopyAccelerationStructureKHR" );
2819     vkCopyAccelerationStructureToMemoryKHR                   = cast( PFN_vkCopyAccelerationStructureToMemoryKHR                   ) vkGetDeviceProcAddr( device, "vkCopyAccelerationStructureToMemoryKHR" );
2820     vkCopyMemoryToAccelerationStructureKHR                   = cast( PFN_vkCopyMemoryToAccelerationStructureKHR                   ) vkGetDeviceProcAddr( device, "vkCopyMemoryToAccelerationStructureKHR" );
2821     vkWriteAccelerationStructuresPropertiesKHR               = cast( PFN_vkWriteAccelerationStructuresPropertiesKHR               ) vkGetDeviceProcAddr( device, "vkWriteAccelerationStructuresPropertiesKHR" );
2822     vkCmdCopyAccelerationStructureKHR                        = cast( PFN_vkCmdCopyAccelerationStructureKHR                        ) vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureKHR" );
2823     vkCmdCopyAccelerationStructureToMemoryKHR                = cast( PFN_vkCmdCopyAccelerationStructureToMemoryKHR                ) vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureToMemoryKHR" );
2824     vkCmdCopyMemoryToAccelerationStructureKHR                = cast( PFN_vkCmdCopyMemoryToAccelerationStructureKHR                ) vkGetDeviceProcAddr( device, "vkCmdCopyMemoryToAccelerationStructureKHR" );
2825     vkGetAccelerationStructureDeviceAddressKHR               = cast( PFN_vkGetAccelerationStructureDeviceAddressKHR               ) vkGetDeviceProcAddr( device, "vkGetAccelerationStructureDeviceAddressKHR" );
2826     vkCmdWriteAccelerationStructuresPropertiesKHR            = cast( PFN_vkCmdWriteAccelerationStructuresPropertiesKHR            ) vkGetDeviceProcAddr( device, "vkCmdWriteAccelerationStructuresPropertiesKHR" );
2827     vkGetDeviceAccelerationStructureCompatibilityKHR         = cast( PFN_vkGetDeviceAccelerationStructureCompatibilityKHR         ) vkGetDeviceProcAddr( device, "vkGetDeviceAccelerationStructureCompatibilityKHR" );
2828     vkGetAccelerationStructureBuildSizesKHR                  = cast( PFN_vkGetAccelerationStructureBuildSizesKHR                  ) vkGetDeviceProcAddr( device, "vkGetAccelerationStructureBuildSizesKHR" );
2829 
2830     // VK_KHR_ray_tracing_pipeline
2831     vkCmdTraceRaysKHR                                        = cast( PFN_vkCmdTraceRaysKHR                                        ) vkGetDeviceProcAddr( device, "vkCmdTraceRaysKHR" );
2832     vkCreateRayTracingPipelinesKHR                           = cast( PFN_vkCreateRayTracingPipelinesKHR                           ) vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesKHR" );
2833     vkGetRayTracingCaptureReplayShaderGroupHandlesKHR        = cast( PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR        ) vkGetDeviceProcAddr( device, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR" );
2834     vkCmdTraceRaysIndirectKHR                                = cast( PFN_vkCmdTraceRaysIndirectKHR                                ) vkGetDeviceProcAddr( device, "vkCmdTraceRaysIndirectKHR" );
2835     vkGetRayTracingShaderGroupStackSizeKHR                   = cast( PFN_vkGetRayTracingShaderGroupStackSizeKHR                   ) vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupStackSizeKHR" );
2836     vkCmdSetRayTracingPipelineStackSizeKHR                   = cast( PFN_vkCmdSetRayTracingPipelineStackSizeKHR                   ) vkGetDeviceProcAddr( device, "vkCmdSetRayTracingPipelineStackSizeKHR" );
2837 
2838     // VK_EXT_mesh_shader
2839     vkCmdDrawMeshTasksEXT                                    = cast( PFN_vkCmdDrawMeshTasksEXT                                    ) vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksEXT" );
2840     vkCmdDrawMeshTasksIndirectEXT                            = cast( PFN_vkCmdDrawMeshTasksIndirectEXT                            ) vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectEXT" );
2841     vkCmdDrawMeshTasksIndirectCountEXT                       = cast( PFN_vkCmdDrawMeshTasksIndirectCountEXT                       ) vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectCountEXT" );
2842 }
2843