1 /** 2 * Dlang vulkan device related func loader as struct members 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.dispatch_device; 9 10 public import erupted.types; 11 import erupted.functions; 12 13 nothrow @nogc: 14 15 16 /// struct to group per device device level functions into a custom namespace 17 /// keeps track of the device to which the functions are bound 18 /// additionally to the device related vulkan functions, convenience functions exist 19 /// with same name but omitting the vk prefix as well as the first (VkDevice) parameter 20 /// these functions forward to their vk counterparts using the VkDevice member of the DispatchDevice 21 /// Moreover the same convenience functions exist for vkCmd... functions. In this case the 22 /// first parameter is substituted with the public member VkCommandBuffer commandBuffer, 23 /// which must have been set to a valid command buffer before usage. 24 struct DispatchDevice { 25 26 private VkDevice device = VK_NULL_HANDLE; 27 private const( VkAllocationCallbacks )* allocator = null; 28 VkCommandBuffer commandBuffer = VK_NULL_HANDLE; 29 30 31 /// return copy of the internal VkDevice 32 VkDevice vkDevice() { 33 return device; 34 } 35 36 37 /// return const allocator address 38 const( VkAllocationCallbacks )* pAllocator() { 39 return allocator; 40 } 41 42 43 /// constructor forwards parameter 'device' to 'this.loadDeviceLevelFunctions' 44 this( VkDevice device, const( VkAllocationCallbacks )* allocator = null ) { 45 this.loadDeviceLevelFunctions( device ); 46 } 47 48 49 /// load the device level member functions 50 /// this also sets the private member 'device' to the passed in VkDevice 51 /// as well as the otional host allocator 52 /// if a custom allocator is required it must be specified here and cannot be changed throughout the liftime of the device 53 /// now the DispatchDevice can be used e.g.: 54 /// auto dd = DispatchDevice( device ); 55 /// dd.vkDestroyDevice( dd.vkDevice, pAllocator ); 56 /// convenience functions to omit the first arg and the allocator do exist, see bellow 57 void loadDeviceLevelFunctions( VkDevice device, const( VkAllocationCallbacks )* allocator = null ) { 58 assert( vkGetInstanceProcAddr !is null, "Function pointer vkGetInstanceProcAddr is null!\nCall loadGlobalLevelFunctions -> loadInstanceLevelFunctions -> DispatchDevice.loadDeviceLevelFunctions" ); 59 this.allocator = allocator; 60 this.device = device; 61 62 // VK_VERSION_1_0 63 vkDestroyDevice = cast( PFN_vkDestroyDevice ) vkGetDeviceProcAddr( device, "vkDestroyDevice" ); 64 vkGetDeviceQueue = cast( PFN_vkGetDeviceQueue ) vkGetDeviceProcAddr( device, "vkGetDeviceQueue" ); 65 vkQueueSubmit = cast( PFN_vkQueueSubmit ) vkGetDeviceProcAddr( device, "vkQueueSubmit" ); 66 vkQueueWaitIdle = cast( PFN_vkQueueWaitIdle ) vkGetDeviceProcAddr( device, "vkQueueWaitIdle" ); 67 vkDeviceWaitIdle = cast( PFN_vkDeviceWaitIdle ) vkGetDeviceProcAddr( device, "vkDeviceWaitIdle" ); 68 vkAllocateMemory = cast( PFN_vkAllocateMemory ) vkGetDeviceProcAddr( device, "vkAllocateMemory" ); 69 vkFreeMemory = cast( PFN_vkFreeMemory ) vkGetDeviceProcAddr( device, "vkFreeMemory" ); 70 vkMapMemory = cast( PFN_vkMapMemory ) vkGetDeviceProcAddr( device, "vkMapMemory" ); 71 vkUnmapMemory = cast( PFN_vkUnmapMemory ) vkGetDeviceProcAddr( device, "vkUnmapMemory" ); 72 vkFlushMappedMemoryRanges = cast( PFN_vkFlushMappedMemoryRanges ) vkGetDeviceProcAddr( device, "vkFlushMappedMemoryRanges" ); 73 vkInvalidateMappedMemoryRanges = cast( PFN_vkInvalidateMappedMemoryRanges ) vkGetDeviceProcAddr( device, "vkInvalidateMappedMemoryRanges" ); 74 vkGetDeviceMemoryCommitment = cast( PFN_vkGetDeviceMemoryCommitment ) vkGetDeviceProcAddr( device, "vkGetDeviceMemoryCommitment" ); 75 vkBindBufferMemory = cast( PFN_vkBindBufferMemory ) vkGetDeviceProcAddr( device, "vkBindBufferMemory" ); 76 vkBindImageMemory = cast( PFN_vkBindImageMemory ) vkGetDeviceProcAddr( device, "vkBindImageMemory" ); 77 vkGetBufferMemoryRequirements = cast( PFN_vkGetBufferMemoryRequirements ) vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements" ); 78 vkGetImageMemoryRequirements = cast( PFN_vkGetImageMemoryRequirements ) vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements" ); 79 vkGetImageSparseMemoryRequirements = cast( PFN_vkGetImageSparseMemoryRequirements ) vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements" ); 80 vkQueueBindSparse = cast( PFN_vkQueueBindSparse ) vkGetDeviceProcAddr( device, "vkQueueBindSparse" ); 81 vkCreateFence = cast( PFN_vkCreateFence ) vkGetDeviceProcAddr( device, "vkCreateFence" ); 82 vkDestroyFence = cast( PFN_vkDestroyFence ) vkGetDeviceProcAddr( device, "vkDestroyFence" ); 83 vkResetFences = cast( PFN_vkResetFences ) vkGetDeviceProcAddr( device, "vkResetFences" ); 84 vkGetFenceStatus = cast( PFN_vkGetFenceStatus ) vkGetDeviceProcAddr( device, "vkGetFenceStatus" ); 85 vkWaitForFences = cast( PFN_vkWaitForFences ) vkGetDeviceProcAddr( device, "vkWaitForFences" ); 86 vkCreateSemaphore = cast( PFN_vkCreateSemaphore ) vkGetDeviceProcAddr( device, "vkCreateSemaphore" ); 87 vkDestroySemaphore = cast( PFN_vkDestroySemaphore ) vkGetDeviceProcAddr( device, "vkDestroySemaphore" ); 88 vkCreateEvent = cast( PFN_vkCreateEvent ) vkGetDeviceProcAddr( device, "vkCreateEvent" ); 89 vkDestroyEvent = cast( PFN_vkDestroyEvent ) vkGetDeviceProcAddr( device, "vkDestroyEvent" ); 90 vkGetEventStatus = cast( PFN_vkGetEventStatus ) vkGetDeviceProcAddr( device, "vkGetEventStatus" ); 91 vkSetEvent = cast( PFN_vkSetEvent ) vkGetDeviceProcAddr( device, "vkSetEvent" ); 92 vkResetEvent = cast( PFN_vkResetEvent ) vkGetDeviceProcAddr( device, "vkResetEvent" ); 93 vkCreateQueryPool = cast( PFN_vkCreateQueryPool ) vkGetDeviceProcAddr( device, "vkCreateQueryPool" ); 94 vkDestroyQueryPool = cast( PFN_vkDestroyQueryPool ) vkGetDeviceProcAddr( device, "vkDestroyQueryPool" ); 95 vkGetQueryPoolResults = cast( PFN_vkGetQueryPoolResults ) vkGetDeviceProcAddr( device, "vkGetQueryPoolResults" ); 96 vkCreateBuffer = cast( PFN_vkCreateBuffer ) vkGetDeviceProcAddr( device, "vkCreateBuffer" ); 97 vkDestroyBuffer = cast( PFN_vkDestroyBuffer ) vkGetDeviceProcAddr( device, "vkDestroyBuffer" ); 98 vkCreateBufferView = cast( PFN_vkCreateBufferView ) vkGetDeviceProcAddr( device, "vkCreateBufferView" ); 99 vkDestroyBufferView = cast( PFN_vkDestroyBufferView ) vkGetDeviceProcAddr( device, "vkDestroyBufferView" ); 100 vkCreateImage = cast( PFN_vkCreateImage ) vkGetDeviceProcAddr( device, "vkCreateImage" ); 101 vkDestroyImage = cast( PFN_vkDestroyImage ) vkGetDeviceProcAddr( device, "vkDestroyImage" ); 102 vkGetImageSubresourceLayout = cast( PFN_vkGetImageSubresourceLayout ) vkGetDeviceProcAddr( device, "vkGetImageSubresourceLayout" ); 103 vkCreateImageView = cast( PFN_vkCreateImageView ) vkGetDeviceProcAddr( device, "vkCreateImageView" ); 104 vkDestroyImageView = cast( PFN_vkDestroyImageView ) vkGetDeviceProcAddr( device, "vkDestroyImageView" ); 105 vkCreateShaderModule = cast( PFN_vkCreateShaderModule ) vkGetDeviceProcAddr( device, "vkCreateShaderModule" ); 106 vkDestroyShaderModule = cast( PFN_vkDestroyShaderModule ) vkGetDeviceProcAddr( device, "vkDestroyShaderModule" ); 107 vkCreatePipelineCache = cast( PFN_vkCreatePipelineCache ) vkGetDeviceProcAddr( device, "vkCreatePipelineCache" ); 108 vkDestroyPipelineCache = cast( PFN_vkDestroyPipelineCache ) vkGetDeviceProcAddr( device, "vkDestroyPipelineCache" ); 109 vkGetPipelineCacheData = cast( PFN_vkGetPipelineCacheData ) vkGetDeviceProcAddr( device, "vkGetPipelineCacheData" ); 110 vkMergePipelineCaches = cast( PFN_vkMergePipelineCaches ) vkGetDeviceProcAddr( device, "vkMergePipelineCaches" ); 111 vkCreateGraphicsPipelines = cast( PFN_vkCreateGraphicsPipelines ) vkGetDeviceProcAddr( device, "vkCreateGraphicsPipelines" ); 112 vkCreateComputePipelines = cast( PFN_vkCreateComputePipelines ) vkGetDeviceProcAddr( device, "vkCreateComputePipelines" ); 113 vkDestroyPipeline = cast( PFN_vkDestroyPipeline ) vkGetDeviceProcAddr( device, "vkDestroyPipeline" ); 114 vkCreatePipelineLayout = cast( PFN_vkCreatePipelineLayout ) vkGetDeviceProcAddr( device, "vkCreatePipelineLayout" ); 115 vkDestroyPipelineLayout = cast( PFN_vkDestroyPipelineLayout ) vkGetDeviceProcAddr( device, "vkDestroyPipelineLayout" ); 116 vkCreateSampler = cast( PFN_vkCreateSampler ) vkGetDeviceProcAddr( device, "vkCreateSampler" ); 117 vkDestroySampler = cast( PFN_vkDestroySampler ) vkGetDeviceProcAddr( device, "vkDestroySampler" ); 118 vkCreateDescriptorSetLayout = cast( PFN_vkCreateDescriptorSetLayout ) vkGetDeviceProcAddr( device, "vkCreateDescriptorSetLayout" ); 119 vkDestroyDescriptorSetLayout = cast( PFN_vkDestroyDescriptorSetLayout ) vkGetDeviceProcAddr( device, "vkDestroyDescriptorSetLayout" ); 120 vkCreateDescriptorPool = cast( PFN_vkCreateDescriptorPool ) vkGetDeviceProcAddr( device, "vkCreateDescriptorPool" ); 121 vkDestroyDescriptorPool = cast( PFN_vkDestroyDescriptorPool ) vkGetDeviceProcAddr( device, "vkDestroyDescriptorPool" ); 122 vkResetDescriptorPool = cast( PFN_vkResetDescriptorPool ) vkGetDeviceProcAddr( device, "vkResetDescriptorPool" ); 123 vkAllocateDescriptorSets = cast( PFN_vkAllocateDescriptorSets ) vkGetDeviceProcAddr( device, "vkAllocateDescriptorSets" ); 124 vkFreeDescriptorSets = cast( PFN_vkFreeDescriptorSets ) vkGetDeviceProcAddr( device, "vkFreeDescriptorSets" ); 125 vkUpdateDescriptorSets = cast( PFN_vkUpdateDescriptorSets ) vkGetDeviceProcAddr( device, "vkUpdateDescriptorSets" ); 126 vkCreateFramebuffer = cast( PFN_vkCreateFramebuffer ) vkGetDeviceProcAddr( device, "vkCreateFramebuffer" ); 127 vkDestroyFramebuffer = cast( PFN_vkDestroyFramebuffer ) vkGetDeviceProcAddr( device, "vkDestroyFramebuffer" ); 128 vkCreateRenderPass = cast( PFN_vkCreateRenderPass ) vkGetDeviceProcAddr( device, "vkCreateRenderPass" ); 129 vkDestroyRenderPass = cast( PFN_vkDestroyRenderPass ) vkGetDeviceProcAddr( device, "vkDestroyRenderPass" ); 130 vkGetRenderAreaGranularity = cast( PFN_vkGetRenderAreaGranularity ) vkGetDeviceProcAddr( device, "vkGetRenderAreaGranularity" ); 131 vkCreateCommandPool = cast( PFN_vkCreateCommandPool ) vkGetDeviceProcAddr( device, "vkCreateCommandPool" ); 132 vkDestroyCommandPool = cast( PFN_vkDestroyCommandPool ) vkGetDeviceProcAddr( device, "vkDestroyCommandPool" ); 133 vkResetCommandPool = cast( PFN_vkResetCommandPool ) vkGetDeviceProcAddr( device, "vkResetCommandPool" ); 134 vkAllocateCommandBuffers = cast( PFN_vkAllocateCommandBuffers ) vkGetDeviceProcAddr( device, "vkAllocateCommandBuffers" ); 135 vkFreeCommandBuffers = cast( PFN_vkFreeCommandBuffers ) vkGetDeviceProcAddr( device, "vkFreeCommandBuffers" ); 136 vkBeginCommandBuffer = cast( PFN_vkBeginCommandBuffer ) vkGetDeviceProcAddr( device, "vkBeginCommandBuffer" ); 137 vkEndCommandBuffer = cast( PFN_vkEndCommandBuffer ) vkGetDeviceProcAddr( device, "vkEndCommandBuffer" ); 138 vkResetCommandBuffer = cast( PFN_vkResetCommandBuffer ) vkGetDeviceProcAddr( device, "vkResetCommandBuffer" ); 139 vkCmdBindPipeline = cast( PFN_vkCmdBindPipeline ) vkGetDeviceProcAddr( device, "vkCmdBindPipeline" ); 140 vkCmdSetViewport = cast( PFN_vkCmdSetViewport ) vkGetDeviceProcAddr( device, "vkCmdSetViewport" ); 141 vkCmdSetScissor = cast( PFN_vkCmdSetScissor ) vkGetDeviceProcAddr( device, "vkCmdSetScissor" ); 142 vkCmdSetLineWidth = cast( PFN_vkCmdSetLineWidth ) vkGetDeviceProcAddr( device, "vkCmdSetLineWidth" ); 143 vkCmdSetDepthBias = cast( PFN_vkCmdSetDepthBias ) vkGetDeviceProcAddr( device, "vkCmdSetDepthBias" ); 144 vkCmdSetBlendConstants = cast( PFN_vkCmdSetBlendConstants ) vkGetDeviceProcAddr( device, "vkCmdSetBlendConstants" ); 145 vkCmdSetDepthBounds = cast( PFN_vkCmdSetDepthBounds ) vkGetDeviceProcAddr( device, "vkCmdSetDepthBounds" ); 146 vkCmdSetStencilCompareMask = cast( PFN_vkCmdSetStencilCompareMask ) vkGetDeviceProcAddr( device, "vkCmdSetStencilCompareMask" ); 147 vkCmdSetStencilWriteMask = cast( PFN_vkCmdSetStencilWriteMask ) vkGetDeviceProcAddr( device, "vkCmdSetStencilWriteMask" ); 148 vkCmdSetStencilReference = cast( PFN_vkCmdSetStencilReference ) vkGetDeviceProcAddr( device, "vkCmdSetStencilReference" ); 149 vkCmdBindDescriptorSets = cast( PFN_vkCmdBindDescriptorSets ) vkGetDeviceProcAddr( device, "vkCmdBindDescriptorSets" ); 150 vkCmdBindIndexBuffer = cast( PFN_vkCmdBindIndexBuffer ) vkGetDeviceProcAddr( device, "vkCmdBindIndexBuffer" ); 151 vkCmdBindVertexBuffers = cast( PFN_vkCmdBindVertexBuffers ) vkGetDeviceProcAddr( device, "vkCmdBindVertexBuffers" ); 152 vkCmdDraw = cast( PFN_vkCmdDraw ) vkGetDeviceProcAddr( device, "vkCmdDraw" ); 153 vkCmdDrawIndexed = cast( PFN_vkCmdDrawIndexed ) vkGetDeviceProcAddr( device, "vkCmdDrawIndexed" ); 154 vkCmdDrawIndirect = cast( PFN_vkCmdDrawIndirect ) vkGetDeviceProcAddr( device, "vkCmdDrawIndirect" ); 155 vkCmdDrawIndexedIndirect = cast( PFN_vkCmdDrawIndexedIndirect ) vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirect" ); 156 vkCmdDispatch = cast( PFN_vkCmdDispatch ) vkGetDeviceProcAddr( device, "vkCmdDispatch" ); 157 vkCmdDispatchIndirect = cast( PFN_vkCmdDispatchIndirect ) vkGetDeviceProcAddr( device, "vkCmdDispatchIndirect" ); 158 vkCmdCopyBuffer = cast( PFN_vkCmdCopyBuffer ) vkGetDeviceProcAddr( device, "vkCmdCopyBuffer" ); 159 vkCmdCopyImage = cast( PFN_vkCmdCopyImage ) vkGetDeviceProcAddr( device, "vkCmdCopyImage" ); 160 vkCmdBlitImage = cast( PFN_vkCmdBlitImage ) vkGetDeviceProcAddr( device, "vkCmdBlitImage" ); 161 vkCmdCopyBufferToImage = cast( PFN_vkCmdCopyBufferToImage ) vkGetDeviceProcAddr( device, "vkCmdCopyBufferToImage" ); 162 vkCmdCopyImageToBuffer = cast( PFN_vkCmdCopyImageToBuffer ) vkGetDeviceProcAddr( device, "vkCmdCopyImageToBuffer" ); 163 vkCmdUpdateBuffer = cast( PFN_vkCmdUpdateBuffer ) vkGetDeviceProcAddr( device, "vkCmdUpdateBuffer" ); 164 vkCmdFillBuffer = cast( PFN_vkCmdFillBuffer ) vkGetDeviceProcAddr( device, "vkCmdFillBuffer" ); 165 vkCmdClearColorImage = cast( PFN_vkCmdClearColorImage ) vkGetDeviceProcAddr( device, "vkCmdClearColorImage" ); 166 vkCmdClearDepthStencilImage = cast( PFN_vkCmdClearDepthStencilImage ) vkGetDeviceProcAddr( device, "vkCmdClearDepthStencilImage" ); 167 vkCmdClearAttachments = cast( PFN_vkCmdClearAttachments ) vkGetDeviceProcAddr( device, "vkCmdClearAttachments" ); 168 vkCmdResolveImage = cast( PFN_vkCmdResolveImage ) vkGetDeviceProcAddr( device, "vkCmdResolveImage" ); 169 vkCmdSetEvent = cast( PFN_vkCmdSetEvent ) vkGetDeviceProcAddr( device, "vkCmdSetEvent" ); 170 vkCmdResetEvent = cast( PFN_vkCmdResetEvent ) vkGetDeviceProcAddr( device, "vkCmdResetEvent" ); 171 vkCmdWaitEvents = cast( PFN_vkCmdWaitEvents ) vkGetDeviceProcAddr( device, "vkCmdWaitEvents" ); 172 vkCmdPipelineBarrier = cast( PFN_vkCmdPipelineBarrier ) vkGetDeviceProcAddr( device, "vkCmdPipelineBarrier" ); 173 vkCmdBeginQuery = cast( PFN_vkCmdBeginQuery ) vkGetDeviceProcAddr( device, "vkCmdBeginQuery" ); 174 vkCmdEndQuery = cast( PFN_vkCmdEndQuery ) vkGetDeviceProcAddr( device, "vkCmdEndQuery" ); 175 vkCmdResetQueryPool = cast( PFN_vkCmdResetQueryPool ) vkGetDeviceProcAddr( device, "vkCmdResetQueryPool" ); 176 vkCmdWriteTimestamp = cast( PFN_vkCmdWriteTimestamp ) vkGetDeviceProcAddr( device, "vkCmdWriteTimestamp" ); 177 vkCmdCopyQueryPoolResults = cast( PFN_vkCmdCopyQueryPoolResults ) vkGetDeviceProcAddr( device, "vkCmdCopyQueryPoolResults" ); 178 vkCmdPushConstants = cast( PFN_vkCmdPushConstants ) vkGetDeviceProcAddr( device, "vkCmdPushConstants" ); 179 vkCmdBeginRenderPass = cast( PFN_vkCmdBeginRenderPass ) vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass" ); 180 vkCmdNextSubpass = cast( PFN_vkCmdNextSubpass ) vkGetDeviceProcAddr( device, "vkCmdNextSubpass" ); 181 vkCmdEndRenderPass = cast( PFN_vkCmdEndRenderPass ) vkGetDeviceProcAddr( device, "vkCmdEndRenderPass" ); 182 vkCmdExecuteCommands = cast( PFN_vkCmdExecuteCommands ) vkGetDeviceProcAddr( device, "vkCmdExecuteCommands" ); 183 184 // VK_VERSION_1_1 185 vkBindBufferMemory2 = cast( PFN_vkBindBufferMemory2 ) vkGetDeviceProcAddr( device, "vkBindBufferMemory2" ); 186 vkBindImageMemory2 = cast( PFN_vkBindImageMemory2 ) vkGetDeviceProcAddr( device, "vkBindImageMemory2" ); 187 vkGetDeviceGroupPeerMemoryFeatures = cast( PFN_vkGetDeviceGroupPeerMemoryFeatures ) vkGetDeviceProcAddr( device, "vkGetDeviceGroupPeerMemoryFeatures" ); 188 vkCmdSetDeviceMask = cast( PFN_vkCmdSetDeviceMask ) vkGetDeviceProcAddr( device, "vkCmdSetDeviceMask" ); 189 vkCmdDispatchBase = cast( PFN_vkCmdDispatchBase ) vkGetDeviceProcAddr( device, "vkCmdDispatchBase" ); 190 vkGetImageMemoryRequirements2 = cast( PFN_vkGetImageMemoryRequirements2 ) vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements2" ); 191 vkGetBufferMemoryRequirements2 = cast( PFN_vkGetBufferMemoryRequirements2 ) vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements2" ); 192 vkGetImageSparseMemoryRequirements2 = cast( PFN_vkGetImageSparseMemoryRequirements2 ) vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements2" ); 193 vkTrimCommandPool = cast( PFN_vkTrimCommandPool ) vkGetDeviceProcAddr( device, "vkTrimCommandPool" ); 194 vkGetDeviceQueue2 = cast( PFN_vkGetDeviceQueue2 ) vkGetDeviceProcAddr( device, "vkGetDeviceQueue2" ); 195 vkCreateSamplerYcbcrConversion = cast( PFN_vkCreateSamplerYcbcrConversion ) vkGetDeviceProcAddr( device, "vkCreateSamplerYcbcrConversion" ); 196 vkDestroySamplerYcbcrConversion = cast( PFN_vkDestroySamplerYcbcrConversion ) vkGetDeviceProcAddr( device, "vkDestroySamplerYcbcrConversion" ); 197 vkCreateDescriptorUpdateTemplate = cast( PFN_vkCreateDescriptorUpdateTemplate ) vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplate" ); 198 vkDestroyDescriptorUpdateTemplate = cast( PFN_vkDestroyDescriptorUpdateTemplate ) vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplate" ); 199 vkUpdateDescriptorSetWithTemplate = cast( PFN_vkUpdateDescriptorSetWithTemplate ) vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplate" ); 200 vkGetDescriptorSetLayoutSupport = cast( PFN_vkGetDescriptorSetLayoutSupport ) vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSupport" ); 201 202 // VK_VERSION_1_2 203 vkCmdDrawIndirectCount = cast( PFN_vkCmdDrawIndirectCount ) vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCount" ); 204 vkCmdDrawIndexedIndirectCount = cast( PFN_vkCmdDrawIndexedIndirectCount ) vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCount" ); 205 vkCreateRenderPass2 = cast( PFN_vkCreateRenderPass2 ) vkGetDeviceProcAddr( device, "vkCreateRenderPass2" ); 206 vkCmdBeginRenderPass2 = cast( PFN_vkCmdBeginRenderPass2 ) vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass2" ); 207 vkCmdNextSubpass2 = cast( PFN_vkCmdNextSubpass2 ) vkGetDeviceProcAddr( device, "vkCmdNextSubpass2" ); 208 vkCmdEndRenderPass2 = cast( PFN_vkCmdEndRenderPass2 ) vkGetDeviceProcAddr( device, "vkCmdEndRenderPass2" ); 209 vkResetQueryPool = cast( PFN_vkResetQueryPool ) vkGetDeviceProcAddr( device, "vkResetQueryPool" ); 210 vkGetSemaphoreCounterValue = cast( PFN_vkGetSemaphoreCounterValue ) vkGetDeviceProcAddr( device, "vkGetSemaphoreCounterValue" ); 211 vkWaitSemaphores = cast( PFN_vkWaitSemaphores ) vkGetDeviceProcAddr( device, "vkWaitSemaphores" ); 212 vkSignalSemaphore = cast( PFN_vkSignalSemaphore ) vkGetDeviceProcAddr( device, "vkSignalSemaphore" ); 213 vkGetBufferDeviceAddress = cast( PFN_vkGetBufferDeviceAddress ) vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddress" ); 214 vkGetBufferOpaqueCaptureAddress = cast( PFN_vkGetBufferOpaqueCaptureAddress ) vkGetDeviceProcAddr( device, "vkGetBufferOpaqueCaptureAddress" ); 215 vkGetDeviceMemoryOpaqueCaptureAddress = cast( PFN_vkGetDeviceMemoryOpaqueCaptureAddress ) vkGetDeviceProcAddr( device, "vkGetDeviceMemoryOpaqueCaptureAddress" ); 216 217 // VK_KHR_swapchain 218 vkCreateSwapchainKHR = cast( PFN_vkCreateSwapchainKHR ) vkGetDeviceProcAddr( device, "vkCreateSwapchainKHR" ); 219 vkDestroySwapchainKHR = cast( PFN_vkDestroySwapchainKHR ) vkGetDeviceProcAddr( device, "vkDestroySwapchainKHR" ); 220 vkGetSwapchainImagesKHR = cast( PFN_vkGetSwapchainImagesKHR ) vkGetDeviceProcAddr( device, "vkGetSwapchainImagesKHR" ); 221 vkAcquireNextImageKHR = cast( PFN_vkAcquireNextImageKHR ) vkGetDeviceProcAddr( device, "vkAcquireNextImageKHR" ); 222 vkQueuePresentKHR = cast( PFN_vkQueuePresentKHR ) vkGetDeviceProcAddr( device, "vkQueuePresentKHR" ); 223 vkGetDeviceGroupPresentCapabilitiesKHR = cast( PFN_vkGetDeviceGroupPresentCapabilitiesKHR ) vkGetDeviceProcAddr( device, "vkGetDeviceGroupPresentCapabilitiesKHR" ); 224 vkGetDeviceGroupSurfacePresentModesKHR = cast( PFN_vkGetDeviceGroupSurfacePresentModesKHR ) vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModesKHR" ); 225 vkAcquireNextImage2KHR = cast( PFN_vkAcquireNextImage2KHR ) vkGetDeviceProcAddr( device, "vkAcquireNextImage2KHR" ); 226 227 // VK_KHR_display_swapchain 228 vkCreateSharedSwapchainsKHR = cast( PFN_vkCreateSharedSwapchainsKHR ) vkGetDeviceProcAddr( device, "vkCreateSharedSwapchainsKHR" ); 229 230 // VK_KHR_external_memory_fd 231 vkGetMemoryFdKHR = cast( PFN_vkGetMemoryFdKHR ) vkGetDeviceProcAddr( device, "vkGetMemoryFdKHR" ); 232 vkGetMemoryFdPropertiesKHR = cast( PFN_vkGetMemoryFdPropertiesKHR ) vkGetDeviceProcAddr( device, "vkGetMemoryFdPropertiesKHR" ); 233 234 // VK_KHR_external_semaphore_fd 235 vkImportSemaphoreFdKHR = cast( PFN_vkImportSemaphoreFdKHR ) vkGetDeviceProcAddr( device, "vkImportSemaphoreFdKHR" ); 236 vkGetSemaphoreFdKHR = cast( PFN_vkGetSemaphoreFdKHR ) vkGetDeviceProcAddr( device, "vkGetSemaphoreFdKHR" ); 237 238 // VK_KHR_push_descriptor 239 vkCmdPushDescriptorSetKHR = cast( PFN_vkCmdPushDescriptorSetKHR ) vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetKHR" ); 240 vkCmdPushDescriptorSetWithTemplateKHR = cast( PFN_vkCmdPushDescriptorSetWithTemplateKHR ) vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetWithTemplateKHR" ); 241 242 // VK_KHR_shared_presentable_image 243 vkGetSwapchainStatusKHR = cast( PFN_vkGetSwapchainStatusKHR ) vkGetDeviceProcAddr( device, "vkGetSwapchainStatusKHR" ); 244 245 // VK_KHR_external_fence_fd 246 vkImportFenceFdKHR = cast( PFN_vkImportFenceFdKHR ) vkGetDeviceProcAddr( device, "vkImportFenceFdKHR" ); 247 vkGetFenceFdKHR = cast( PFN_vkGetFenceFdKHR ) vkGetDeviceProcAddr( device, "vkGetFenceFdKHR" ); 248 249 // VK_KHR_performance_query 250 vkAcquireProfilingLockKHR = cast( PFN_vkAcquireProfilingLockKHR ) vkGetDeviceProcAddr( device, "vkAcquireProfilingLockKHR" ); 251 vkReleaseProfilingLockKHR = cast( PFN_vkReleaseProfilingLockKHR ) vkGetDeviceProcAddr( device, "vkReleaseProfilingLockKHR" ); 252 253 // VK_KHR_fragment_shading_rate 254 vkCmdSetFragmentShadingRateKHR = cast( PFN_vkCmdSetFragmentShadingRateKHR ) vkGetDeviceProcAddr( device, "vkCmdSetFragmentShadingRateKHR" ); 255 256 // VK_KHR_deferred_host_operations 257 vkCreateDeferredOperationKHR = cast( PFN_vkCreateDeferredOperationKHR ) vkGetDeviceProcAddr( device, "vkCreateDeferredOperationKHR" ); 258 vkDestroyDeferredOperationKHR = cast( PFN_vkDestroyDeferredOperationKHR ) vkGetDeviceProcAddr( device, "vkDestroyDeferredOperationKHR" ); 259 vkGetDeferredOperationMaxConcurrencyKHR = cast( PFN_vkGetDeferredOperationMaxConcurrencyKHR ) vkGetDeviceProcAddr( device, "vkGetDeferredOperationMaxConcurrencyKHR" ); 260 vkGetDeferredOperationResultKHR = cast( PFN_vkGetDeferredOperationResultKHR ) vkGetDeviceProcAddr( device, "vkGetDeferredOperationResultKHR" ); 261 vkDeferredOperationJoinKHR = cast( PFN_vkDeferredOperationJoinKHR ) vkGetDeviceProcAddr( device, "vkDeferredOperationJoinKHR" ); 262 263 // VK_KHR_pipeline_executable_properties 264 vkGetPipelineExecutablePropertiesKHR = cast( PFN_vkGetPipelineExecutablePropertiesKHR ) vkGetDeviceProcAddr( device, "vkGetPipelineExecutablePropertiesKHR" ); 265 vkGetPipelineExecutableStatisticsKHR = cast( PFN_vkGetPipelineExecutableStatisticsKHR ) vkGetDeviceProcAddr( device, "vkGetPipelineExecutableStatisticsKHR" ); 266 vkGetPipelineExecutableInternalRepresentationsKHR = cast( PFN_vkGetPipelineExecutableInternalRepresentationsKHR ) vkGetDeviceProcAddr( device, "vkGetPipelineExecutableInternalRepresentationsKHR" ); 267 268 // VK_KHR_copy_commands2 269 vkCmdCopyBuffer2KHR = cast( PFN_vkCmdCopyBuffer2KHR ) vkGetDeviceProcAddr( device, "vkCmdCopyBuffer2KHR" ); 270 vkCmdCopyImage2KHR = cast( PFN_vkCmdCopyImage2KHR ) vkGetDeviceProcAddr( device, "vkCmdCopyImage2KHR" ); 271 vkCmdCopyBufferToImage2KHR = cast( PFN_vkCmdCopyBufferToImage2KHR ) vkGetDeviceProcAddr( device, "vkCmdCopyBufferToImage2KHR" ); 272 vkCmdCopyImageToBuffer2KHR = cast( PFN_vkCmdCopyImageToBuffer2KHR ) vkGetDeviceProcAddr( device, "vkCmdCopyImageToBuffer2KHR" ); 273 vkCmdBlitImage2KHR = cast( PFN_vkCmdBlitImage2KHR ) vkGetDeviceProcAddr( device, "vkCmdBlitImage2KHR" ); 274 vkCmdResolveImage2KHR = cast( PFN_vkCmdResolveImage2KHR ) vkGetDeviceProcAddr( device, "vkCmdResolveImage2KHR" ); 275 276 // VK_EXT_debug_marker 277 vkDebugMarkerSetObjectTagEXT = cast( PFN_vkDebugMarkerSetObjectTagEXT ) vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectTagEXT" ); 278 vkDebugMarkerSetObjectNameEXT = cast( PFN_vkDebugMarkerSetObjectNameEXT ) vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectNameEXT" ); 279 vkCmdDebugMarkerBeginEXT = cast( PFN_vkCmdDebugMarkerBeginEXT ) vkGetDeviceProcAddr( device, "vkCmdDebugMarkerBeginEXT" ); 280 vkCmdDebugMarkerEndEXT = cast( PFN_vkCmdDebugMarkerEndEXT ) vkGetDeviceProcAddr( device, "vkCmdDebugMarkerEndEXT" ); 281 vkCmdDebugMarkerInsertEXT = cast( PFN_vkCmdDebugMarkerInsertEXT ) vkGetDeviceProcAddr( device, "vkCmdDebugMarkerInsertEXT" ); 282 283 // VK_EXT_transform_feedback 284 vkCmdBindTransformFeedbackBuffersEXT = cast( PFN_vkCmdBindTransformFeedbackBuffersEXT ) vkGetDeviceProcAddr( device, "vkCmdBindTransformFeedbackBuffersEXT" ); 285 vkCmdBeginTransformFeedbackEXT = cast( PFN_vkCmdBeginTransformFeedbackEXT ) vkGetDeviceProcAddr( device, "vkCmdBeginTransformFeedbackEXT" ); 286 vkCmdEndTransformFeedbackEXT = cast( PFN_vkCmdEndTransformFeedbackEXT ) vkGetDeviceProcAddr( device, "vkCmdEndTransformFeedbackEXT" ); 287 vkCmdBeginQueryIndexedEXT = cast( PFN_vkCmdBeginQueryIndexedEXT ) vkGetDeviceProcAddr( device, "vkCmdBeginQueryIndexedEXT" ); 288 vkCmdEndQueryIndexedEXT = cast( PFN_vkCmdEndQueryIndexedEXT ) vkGetDeviceProcAddr( device, "vkCmdEndQueryIndexedEXT" ); 289 vkCmdDrawIndirectByteCountEXT = cast( PFN_vkCmdDrawIndirectByteCountEXT ) vkGetDeviceProcAddr( device, "vkCmdDrawIndirectByteCountEXT" ); 290 291 // VK_NVX_image_view_handle 292 vkGetImageViewHandleNVX = cast( PFN_vkGetImageViewHandleNVX ) vkGetDeviceProcAddr( device, "vkGetImageViewHandleNVX" ); 293 vkGetImageViewAddressNVX = cast( PFN_vkGetImageViewAddressNVX ) vkGetDeviceProcAddr( device, "vkGetImageViewAddressNVX" ); 294 295 // VK_AMD_shader_info 296 vkGetShaderInfoAMD = cast( PFN_vkGetShaderInfoAMD ) vkGetDeviceProcAddr( device, "vkGetShaderInfoAMD" ); 297 298 // VK_EXT_conditional_rendering 299 vkCmdBeginConditionalRenderingEXT = cast( PFN_vkCmdBeginConditionalRenderingEXT ) vkGetDeviceProcAddr( device, "vkCmdBeginConditionalRenderingEXT" ); 300 vkCmdEndConditionalRenderingEXT = cast( PFN_vkCmdEndConditionalRenderingEXT ) vkGetDeviceProcAddr( device, "vkCmdEndConditionalRenderingEXT" ); 301 302 // VK_NV_clip_space_w_scaling 303 vkCmdSetViewportWScalingNV = cast( PFN_vkCmdSetViewportWScalingNV ) vkGetDeviceProcAddr( device, "vkCmdSetViewportWScalingNV" ); 304 305 // VK_EXT_display_control 306 vkDisplayPowerControlEXT = cast( PFN_vkDisplayPowerControlEXT ) vkGetDeviceProcAddr( device, "vkDisplayPowerControlEXT" ); 307 vkRegisterDeviceEventEXT = cast( PFN_vkRegisterDeviceEventEXT ) vkGetDeviceProcAddr( device, "vkRegisterDeviceEventEXT" ); 308 vkRegisterDisplayEventEXT = cast( PFN_vkRegisterDisplayEventEXT ) vkGetDeviceProcAddr( device, "vkRegisterDisplayEventEXT" ); 309 vkGetSwapchainCounterEXT = cast( PFN_vkGetSwapchainCounterEXT ) vkGetDeviceProcAddr( device, "vkGetSwapchainCounterEXT" ); 310 311 // VK_GOOGLE_display_timing 312 vkGetRefreshCycleDurationGOOGLE = cast( PFN_vkGetRefreshCycleDurationGOOGLE ) vkGetDeviceProcAddr( device, "vkGetRefreshCycleDurationGOOGLE" ); 313 vkGetPastPresentationTimingGOOGLE = cast( PFN_vkGetPastPresentationTimingGOOGLE ) vkGetDeviceProcAddr( device, "vkGetPastPresentationTimingGOOGLE" ); 314 315 // VK_EXT_discard_rectangles 316 vkCmdSetDiscardRectangleEXT = cast( PFN_vkCmdSetDiscardRectangleEXT ) vkGetDeviceProcAddr( device, "vkCmdSetDiscardRectangleEXT" ); 317 318 // VK_EXT_hdr_metadata 319 vkSetHdrMetadataEXT = cast( PFN_vkSetHdrMetadataEXT ) vkGetDeviceProcAddr( device, "vkSetHdrMetadataEXT" ); 320 321 // VK_EXT_debug_utils 322 vkSetDebugUtilsObjectNameEXT = cast( PFN_vkSetDebugUtilsObjectNameEXT ) vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectNameEXT" ); 323 vkSetDebugUtilsObjectTagEXT = cast( PFN_vkSetDebugUtilsObjectTagEXT ) vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectTagEXT" ); 324 vkQueueBeginDebugUtilsLabelEXT = cast( PFN_vkQueueBeginDebugUtilsLabelEXT ) vkGetDeviceProcAddr( device, "vkQueueBeginDebugUtilsLabelEXT" ); 325 vkQueueEndDebugUtilsLabelEXT = cast( PFN_vkQueueEndDebugUtilsLabelEXT ) vkGetDeviceProcAddr( device, "vkQueueEndDebugUtilsLabelEXT" ); 326 vkQueueInsertDebugUtilsLabelEXT = cast( PFN_vkQueueInsertDebugUtilsLabelEXT ) vkGetDeviceProcAddr( device, "vkQueueInsertDebugUtilsLabelEXT" ); 327 vkCmdBeginDebugUtilsLabelEXT = cast( PFN_vkCmdBeginDebugUtilsLabelEXT ) vkGetDeviceProcAddr( device, "vkCmdBeginDebugUtilsLabelEXT" ); 328 vkCmdEndDebugUtilsLabelEXT = cast( PFN_vkCmdEndDebugUtilsLabelEXT ) vkGetDeviceProcAddr( device, "vkCmdEndDebugUtilsLabelEXT" ); 329 vkCmdInsertDebugUtilsLabelEXT = cast( PFN_vkCmdInsertDebugUtilsLabelEXT ) vkGetDeviceProcAddr( device, "vkCmdInsertDebugUtilsLabelEXT" ); 330 331 // VK_EXT_sample_locations 332 vkCmdSetSampleLocationsEXT = cast( PFN_vkCmdSetSampleLocationsEXT ) vkGetDeviceProcAddr( device, "vkCmdSetSampleLocationsEXT" ); 333 334 // VK_EXT_image_drm_format_modifier 335 vkGetImageDrmFormatModifierPropertiesEXT = cast( PFN_vkGetImageDrmFormatModifierPropertiesEXT ) vkGetDeviceProcAddr( device, "vkGetImageDrmFormatModifierPropertiesEXT" ); 336 337 // VK_EXT_validation_cache 338 vkCreateValidationCacheEXT = cast( PFN_vkCreateValidationCacheEXT ) vkGetDeviceProcAddr( device, "vkCreateValidationCacheEXT" ); 339 vkDestroyValidationCacheEXT = cast( PFN_vkDestroyValidationCacheEXT ) vkGetDeviceProcAddr( device, "vkDestroyValidationCacheEXT" ); 340 vkMergeValidationCachesEXT = cast( PFN_vkMergeValidationCachesEXT ) vkGetDeviceProcAddr( device, "vkMergeValidationCachesEXT" ); 341 vkGetValidationCacheDataEXT = cast( PFN_vkGetValidationCacheDataEXT ) vkGetDeviceProcAddr( device, "vkGetValidationCacheDataEXT" ); 342 343 // VK_NV_shading_rate_image 344 vkCmdBindShadingRateImageNV = cast( PFN_vkCmdBindShadingRateImageNV ) vkGetDeviceProcAddr( device, "vkCmdBindShadingRateImageNV" ); 345 vkCmdSetViewportShadingRatePaletteNV = cast( PFN_vkCmdSetViewportShadingRatePaletteNV ) vkGetDeviceProcAddr( device, "vkCmdSetViewportShadingRatePaletteNV" ); 346 vkCmdSetCoarseSampleOrderNV = cast( PFN_vkCmdSetCoarseSampleOrderNV ) vkGetDeviceProcAddr( device, "vkCmdSetCoarseSampleOrderNV" ); 347 348 // VK_NV_ray_tracing 349 vkCreateAccelerationStructureNV = cast( PFN_vkCreateAccelerationStructureNV ) vkGetDeviceProcAddr( device, "vkCreateAccelerationStructureNV" ); 350 vkDestroyAccelerationStructureNV = cast( PFN_vkDestroyAccelerationStructureNV ) vkGetDeviceProcAddr( device, "vkDestroyAccelerationStructureNV" ); 351 vkGetAccelerationStructureMemoryRequirementsNV = cast( PFN_vkGetAccelerationStructureMemoryRequirementsNV ) vkGetDeviceProcAddr( device, "vkGetAccelerationStructureMemoryRequirementsNV" ); 352 vkBindAccelerationStructureMemoryNV = cast( PFN_vkBindAccelerationStructureMemoryNV ) vkGetDeviceProcAddr( device, "vkBindAccelerationStructureMemoryNV" ); 353 vkCmdBuildAccelerationStructureNV = cast( PFN_vkCmdBuildAccelerationStructureNV ) vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructureNV" ); 354 vkCmdCopyAccelerationStructureNV = cast( PFN_vkCmdCopyAccelerationStructureNV ) vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureNV" ); 355 vkCmdTraceRaysNV = cast( PFN_vkCmdTraceRaysNV ) vkGetDeviceProcAddr( device, "vkCmdTraceRaysNV" ); 356 vkCreateRayTracingPipelinesNV = cast( PFN_vkCreateRayTracingPipelinesNV ) vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesNV" ); 357 vkGetRayTracingShaderGroupHandlesKHR = cast( PFN_vkGetRayTracingShaderGroupHandlesKHR ) vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupHandlesKHR" ); 358 vkGetAccelerationStructureHandleNV = cast( PFN_vkGetAccelerationStructureHandleNV ) vkGetDeviceProcAddr( device, "vkGetAccelerationStructureHandleNV" ); 359 vkCmdWriteAccelerationStructuresPropertiesNV = cast( PFN_vkCmdWriteAccelerationStructuresPropertiesNV ) vkGetDeviceProcAddr( device, "vkCmdWriteAccelerationStructuresPropertiesNV" ); 360 vkCompileDeferredNV = cast( PFN_vkCompileDeferredNV ) vkGetDeviceProcAddr( device, "vkCompileDeferredNV" ); 361 362 // VK_EXT_external_memory_host 363 vkGetMemoryHostPointerPropertiesEXT = cast( PFN_vkGetMemoryHostPointerPropertiesEXT ) vkGetDeviceProcAddr( device, "vkGetMemoryHostPointerPropertiesEXT" ); 364 365 // VK_AMD_buffer_marker 366 vkCmdWriteBufferMarkerAMD = cast( PFN_vkCmdWriteBufferMarkerAMD ) vkGetDeviceProcAddr( device, "vkCmdWriteBufferMarkerAMD" ); 367 368 // VK_EXT_calibrated_timestamps 369 vkGetCalibratedTimestampsEXT = cast( PFN_vkGetCalibratedTimestampsEXT ) vkGetDeviceProcAddr( device, "vkGetCalibratedTimestampsEXT" ); 370 371 // VK_NV_mesh_shader 372 vkCmdDrawMeshTasksNV = cast( PFN_vkCmdDrawMeshTasksNV ) vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksNV" ); 373 vkCmdDrawMeshTasksIndirectNV = cast( PFN_vkCmdDrawMeshTasksIndirectNV ) vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectNV" ); 374 vkCmdDrawMeshTasksIndirectCountNV = cast( PFN_vkCmdDrawMeshTasksIndirectCountNV ) vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectCountNV" ); 375 376 // VK_NV_scissor_exclusive 377 vkCmdSetExclusiveScissorNV = cast( PFN_vkCmdSetExclusiveScissorNV ) vkGetDeviceProcAddr( device, "vkCmdSetExclusiveScissorNV" ); 378 379 // VK_NV_device_diagnostic_checkpoints 380 vkCmdSetCheckpointNV = cast( PFN_vkCmdSetCheckpointNV ) vkGetDeviceProcAddr( device, "vkCmdSetCheckpointNV" ); 381 vkGetQueueCheckpointDataNV = cast( PFN_vkGetQueueCheckpointDataNV ) vkGetDeviceProcAddr( device, "vkGetQueueCheckpointDataNV" ); 382 383 // VK_INTEL_performance_query 384 vkInitializePerformanceApiINTEL = cast( PFN_vkInitializePerformanceApiINTEL ) vkGetDeviceProcAddr( device, "vkInitializePerformanceApiINTEL" ); 385 vkUninitializePerformanceApiINTEL = cast( PFN_vkUninitializePerformanceApiINTEL ) vkGetDeviceProcAddr( device, "vkUninitializePerformanceApiINTEL" ); 386 vkCmdSetPerformanceMarkerINTEL = cast( PFN_vkCmdSetPerformanceMarkerINTEL ) vkGetDeviceProcAddr( device, "vkCmdSetPerformanceMarkerINTEL" ); 387 vkCmdSetPerformanceStreamMarkerINTEL = cast( PFN_vkCmdSetPerformanceStreamMarkerINTEL ) vkGetDeviceProcAddr( device, "vkCmdSetPerformanceStreamMarkerINTEL" ); 388 vkCmdSetPerformanceOverrideINTEL = cast( PFN_vkCmdSetPerformanceOverrideINTEL ) vkGetDeviceProcAddr( device, "vkCmdSetPerformanceOverrideINTEL" ); 389 vkAcquirePerformanceConfigurationINTEL = cast( PFN_vkAcquirePerformanceConfigurationINTEL ) vkGetDeviceProcAddr( device, "vkAcquirePerformanceConfigurationINTEL" ); 390 vkReleasePerformanceConfigurationINTEL = cast( PFN_vkReleasePerformanceConfigurationINTEL ) vkGetDeviceProcAddr( device, "vkReleasePerformanceConfigurationINTEL" ); 391 vkQueueSetPerformanceConfigurationINTEL = cast( PFN_vkQueueSetPerformanceConfigurationINTEL ) vkGetDeviceProcAddr( device, "vkQueueSetPerformanceConfigurationINTEL" ); 392 vkGetPerformanceParameterINTEL = cast( PFN_vkGetPerformanceParameterINTEL ) vkGetDeviceProcAddr( device, "vkGetPerformanceParameterINTEL" ); 393 394 // VK_AMD_display_native_hdr 395 vkSetLocalDimmingAMD = cast( PFN_vkSetLocalDimmingAMD ) vkGetDeviceProcAddr( device, "vkSetLocalDimmingAMD" ); 396 397 // VK_EXT_line_rasterization 398 vkCmdSetLineStippleEXT = cast( PFN_vkCmdSetLineStippleEXT ) vkGetDeviceProcAddr( device, "vkCmdSetLineStippleEXT" ); 399 400 // VK_EXT_extended_dynamic_state 401 vkCmdSetCullModeEXT = cast( PFN_vkCmdSetCullModeEXT ) vkGetDeviceProcAddr( device, "vkCmdSetCullModeEXT" ); 402 vkCmdSetFrontFaceEXT = cast( PFN_vkCmdSetFrontFaceEXT ) vkGetDeviceProcAddr( device, "vkCmdSetFrontFaceEXT" ); 403 vkCmdSetPrimitiveTopologyEXT = cast( PFN_vkCmdSetPrimitiveTopologyEXT ) vkGetDeviceProcAddr( device, "vkCmdSetPrimitiveTopologyEXT" ); 404 vkCmdSetViewportWithCountEXT = cast( PFN_vkCmdSetViewportWithCountEXT ) vkGetDeviceProcAddr( device, "vkCmdSetViewportWithCountEXT" ); 405 vkCmdSetScissorWithCountEXT = cast( PFN_vkCmdSetScissorWithCountEXT ) vkGetDeviceProcAddr( device, "vkCmdSetScissorWithCountEXT" ); 406 vkCmdBindVertexBuffers2EXT = cast( PFN_vkCmdBindVertexBuffers2EXT ) vkGetDeviceProcAddr( device, "vkCmdBindVertexBuffers2EXT" ); 407 vkCmdSetDepthTestEnableEXT = cast( PFN_vkCmdSetDepthTestEnableEXT ) vkGetDeviceProcAddr( device, "vkCmdSetDepthTestEnableEXT" ); 408 vkCmdSetDepthWriteEnableEXT = cast( PFN_vkCmdSetDepthWriteEnableEXT ) vkGetDeviceProcAddr( device, "vkCmdSetDepthWriteEnableEXT" ); 409 vkCmdSetDepthCompareOpEXT = cast( PFN_vkCmdSetDepthCompareOpEXT ) vkGetDeviceProcAddr( device, "vkCmdSetDepthCompareOpEXT" ); 410 vkCmdSetDepthBoundsTestEnableEXT = cast( PFN_vkCmdSetDepthBoundsTestEnableEXT ) vkGetDeviceProcAddr( device, "vkCmdSetDepthBoundsTestEnableEXT" ); 411 vkCmdSetStencilTestEnableEXT = cast( PFN_vkCmdSetStencilTestEnableEXT ) vkGetDeviceProcAddr( device, "vkCmdSetStencilTestEnableEXT" ); 412 vkCmdSetStencilOpEXT = cast( PFN_vkCmdSetStencilOpEXT ) vkGetDeviceProcAddr( device, "vkCmdSetStencilOpEXT" ); 413 414 // VK_NV_device_generated_commands 415 vkGetGeneratedCommandsMemoryRequirementsNV = cast( PFN_vkGetGeneratedCommandsMemoryRequirementsNV ) vkGetDeviceProcAddr( device, "vkGetGeneratedCommandsMemoryRequirementsNV" ); 416 vkCmdPreprocessGeneratedCommandsNV = cast( PFN_vkCmdPreprocessGeneratedCommandsNV ) vkGetDeviceProcAddr( device, "vkCmdPreprocessGeneratedCommandsNV" ); 417 vkCmdExecuteGeneratedCommandsNV = cast( PFN_vkCmdExecuteGeneratedCommandsNV ) vkGetDeviceProcAddr( device, "vkCmdExecuteGeneratedCommandsNV" ); 418 vkCmdBindPipelineShaderGroupNV = cast( PFN_vkCmdBindPipelineShaderGroupNV ) vkGetDeviceProcAddr( device, "vkCmdBindPipelineShaderGroupNV" ); 419 vkCreateIndirectCommandsLayoutNV = cast( PFN_vkCreateIndirectCommandsLayoutNV ) vkGetDeviceProcAddr( device, "vkCreateIndirectCommandsLayoutNV" ); 420 vkDestroyIndirectCommandsLayoutNV = cast( PFN_vkDestroyIndirectCommandsLayoutNV ) vkGetDeviceProcAddr( device, "vkDestroyIndirectCommandsLayoutNV" ); 421 422 // VK_EXT_private_data 423 vkCreatePrivateDataSlotEXT = cast( PFN_vkCreatePrivateDataSlotEXT ) vkGetDeviceProcAddr( device, "vkCreatePrivateDataSlotEXT" ); 424 vkDestroyPrivateDataSlotEXT = cast( PFN_vkDestroyPrivateDataSlotEXT ) vkGetDeviceProcAddr( device, "vkDestroyPrivateDataSlotEXT" ); 425 vkSetPrivateDataEXT = cast( PFN_vkSetPrivateDataEXT ) vkGetDeviceProcAddr( device, "vkSetPrivateDataEXT" ); 426 vkGetPrivateDataEXT = cast( PFN_vkGetPrivateDataEXT ) vkGetDeviceProcAddr( device, "vkGetPrivateDataEXT" ); 427 428 // VK_NV_fragment_shading_rate_enums 429 vkCmdSetFragmentShadingRateEnumNV = cast( PFN_vkCmdSetFragmentShadingRateEnumNV ) vkGetDeviceProcAddr( device, "vkCmdSetFragmentShadingRateEnumNV" ); 430 431 // VK_KHR_acceleration_structure 432 vkCreateAccelerationStructureKHR = cast( PFN_vkCreateAccelerationStructureKHR ) vkGetDeviceProcAddr( device, "vkCreateAccelerationStructureKHR" ); 433 vkDestroyAccelerationStructureKHR = cast( PFN_vkDestroyAccelerationStructureKHR ) vkGetDeviceProcAddr( device, "vkDestroyAccelerationStructureKHR" ); 434 vkCmdBuildAccelerationStructuresKHR = cast( PFN_vkCmdBuildAccelerationStructuresKHR ) vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructuresKHR" ); 435 vkCmdBuildAccelerationStructuresIndirectKHR = cast( PFN_vkCmdBuildAccelerationStructuresIndirectKHR ) vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructuresIndirectKHR" ); 436 vkBuildAccelerationStructuresKHR = cast( PFN_vkBuildAccelerationStructuresKHR ) vkGetDeviceProcAddr( device, "vkBuildAccelerationStructuresKHR" ); 437 vkCopyAccelerationStructureKHR = cast( PFN_vkCopyAccelerationStructureKHR ) vkGetDeviceProcAddr( device, "vkCopyAccelerationStructureKHR" ); 438 vkCopyAccelerationStructureToMemoryKHR = cast( PFN_vkCopyAccelerationStructureToMemoryKHR ) vkGetDeviceProcAddr( device, "vkCopyAccelerationStructureToMemoryKHR" ); 439 vkCopyMemoryToAccelerationStructureKHR = cast( PFN_vkCopyMemoryToAccelerationStructureKHR ) vkGetDeviceProcAddr( device, "vkCopyMemoryToAccelerationStructureKHR" ); 440 vkWriteAccelerationStructuresPropertiesKHR = cast( PFN_vkWriteAccelerationStructuresPropertiesKHR ) vkGetDeviceProcAddr( device, "vkWriteAccelerationStructuresPropertiesKHR" ); 441 vkCmdCopyAccelerationStructureKHR = cast( PFN_vkCmdCopyAccelerationStructureKHR ) vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureKHR" ); 442 vkCmdCopyAccelerationStructureToMemoryKHR = cast( PFN_vkCmdCopyAccelerationStructureToMemoryKHR ) vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureToMemoryKHR" ); 443 vkCmdCopyMemoryToAccelerationStructureKHR = cast( PFN_vkCmdCopyMemoryToAccelerationStructureKHR ) vkGetDeviceProcAddr( device, "vkCmdCopyMemoryToAccelerationStructureKHR" ); 444 vkGetAccelerationStructureDeviceAddressKHR = cast( PFN_vkGetAccelerationStructureDeviceAddressKHR ) vkGetDeviceProcAddr( device, "vkGetAccelerationStructureDeviceAddressKHR" ); 445 vkCmdWriteAccelerationStructuresPropertiesKHR = cast( PFN_vkCmdWriteAccelerationStructuresPropertiesKHR ) vkGetDeviceProcAddr( device, "vkCmdWriteAccelerationStructuresPropertiesKHR" ); 446 vkGetDeviceAccelerationStructureCompatibilityKHR = cast( PFN_vkGetDeviceAccelerationStructureCompatibilityKHR ) vkGetDeviceProcAddr( device, "vkGetDeviceAccelerationStructureCompatibilityKHR" ); 447 vkGetAccelerationStructureBuildSizesKHR = cast( PFN_vkGetAccelerationStructureBuildSizesKHR ) vkGetDeviceProcAddr( device, "vkGetAccelerationStructureBuildSizesKHR" ); 448 449 // VK_KHR_ray_tracing_pipeline 450 vkCmdTraceRaysKHR = cast( PFN_vkCmdTraceRaysKHR ) vkGetDeviceProcAddr( device, "vkCmdTraceRaysKHR" ); 451 vkCreateRayTracingPipelinesKHR = cast( PFN_vkCreateRayTracingPipelinesKHR ) vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesKHR" ); 452 vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = cast( PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR ) vkGetDeviceProcAddr( device, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR" ); 453 vkCmdTraceRaysIndirectKHR = cast( PFN_vkCmdTraceRaysIndirectKHR ) vkGetDeviceProcAddr( device, "vkCmdTraceRaysIndirectKHR" ); 454 vkGetRayTracingShaderGroupStackSizeKHR = cast( PFN_vkGetRayTracingShaderGroupStackSizeKHR ) vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupStackSizeKHR" ); 455 vkCmdSetRayTracingPipelineStackSizeKHR = cast( PFN_vkCmdSetRayTracingPipelineStackSizeKHR ) vkGetDeviceProcAddr( device, "vkCmdSetRayTracingPipelineStackSizeKHR" ); 456 } 457 458 459 /// convenience member functions, forwarded to corresponding vulkan functions 460 /// parameters of type VkDevice, const( VkAllocationCallbacks )* and VkCommandBuffer are omitted 461 /// they will be supplied by the member properties vkDevice, pAllocator and the public member commandBuffer 462 /// e.g.: 463 /// auto dd = DispatchDevice( device ); 464 /// dd.DestroyDevice(); // instead of: dd.vkDestroyDevice( dd.vkDevice, pAllocator ); 465 /// 466 /// Same mechanism works with functions which require a VkCommandBuffer as first arg 467 /// In this case the public member 'commandBuffer' must be set beforehand 468 /// e.g.: 469 /// dd.commandBuffer = some_command_buffer; 470 /// dd.BeginCommandBuffer( &beginInfo ); 471 /// dd.CmdBindPipeline( VK_PIPELINE_BIND_POINT_GRAPHICS, some_pipeline ); 472 /// 473 /// Does not work with queues, there are just too few queue related functions 474 475 // VK_VERSION_1_0 476 void DestroyDevice() { vkDestroyDevice( vkDevice, pAllocator ); } 477 void GetDeviceQueue( uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue ) { vkGetDeviceQueue( vkDevice, queueFamilyIndex, queueIndex, pQueue ); } 478 VkResult DeviceWaitIdle() { return vkDeviceWaitIdle( vkDevice ); } 479 VkResult AllocateMemory( const( VkMemoryAllocateInfo )* pAllocateInfo, VkDeviceMemory* pMemory ) { return vkAllocateMemory( vkDevice, pAllocateInfo, pAllocator, pMemory ); } 480 void FreeMemory( VkDeviceMemory memory ) { vkFreeMemory( vkDevice, memory, pAllocator ); } 481 VkResult MapMemory( VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData ) { return vkMapMemory( vkDevice, memory, offset, size, flags, ppData ); } 482 void UnmapMemory( VkDeviceMemory memory ) { vkUnmapMemory( vkDevice, memory ); } 483 VkResult FlushMappedMemoryRanges( uint32_t memoryRangeCount, const( VkMappedMemoryRange )* pMemoryRanges ) { return vkFlushMappedMemoryRanges( vkDevice, memoryRangeCount, pMemoryRanges ); } 484 VkResult InvalidateMappedMemoryRanges( uint32_t memoryRangeCount, const( VkMappedMemoryRange )* pMemoryRanges ) { return vkInvalidateMappedMemoryRanges( vkDevice, memoryRangeCount, pMemoryRanges ); } 485 void GetDeviceMemoryCommitment( VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes ) { vkGetDeviceMemoryCommitment( vkDevice, memory, pCommittedMemoryInBytes ); } 486 VkResult BindBufferMemory( VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset ) { return vkBindBufferMemory( vkDevice, buffer, memory, memoryOffset ); } 487 VkResult BindImageMemory( VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset ) { return vkBindImageMemory( vkDevice, image, memory, memoryOffset ); } 488 void GetBufferMemoryRequirements( VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements ) { vkGetBufferMemoryRequirements( vkDevice, buffer, pMemoryRequirements ); } 489 void GetImageMemoryRequirements( VkImage image, VkMemoryRequirements* pMemoryRequirements ) { vkGetImageMemoryRequirements( vkDevice, image, pMemoryRequirements ); } 490 void GetImageSparseMemoryRequirements( VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements ) { vkGetImageSparseMemoryRequirements( vkDevice, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements ); } 491 VkResult CreateFence( const( VkFenceCreateInfo )* pCreateInfo, VkFence* pFence ) { return vkCreateFence( vkDevice, pCreateInfo, pAllocator, pFence ); } 492 void DestroyFence( VkFence fence ) { vkDestroyFence( vkDevice, fence, pAllocator ); } 493 VkResult ResetFences( uint32_t fenceCount, const( VkFence )* pFences ) { return vkResetFences( vkDevice, fenceCount, pFences ); } 494 VkResult GetFenceStatus( VkFence fence ) { return vkGetFenceStatus( vkDevice, fence ); } 495 VkResult WaitForFences( uint32_t fenceCount, const( VkFence )* pFences, VkBool32 waitAll, uint64_t timeout ) { return vkWaitForFences( vkDevice, fenceCount, pFences, waitAll, timeout ); } 496 VkResult CreateSemaphore( const( VkSemaphoreCreateInfo )* pCreateInfo, VkSemaphore* pSemaphore ) { return vkCreateSemaphore( vkDevice, pCreateInfo, pAllocator, pSemaphore ); } 497 void DestroySemaphore( VkSemaphore semaphore ) { vkDestroySemaphore( vkDevice, semaphore, pAllocator ); } 498 VkResult CreateEvent( const( VkEventCreateInfo )* pCreateInfo, VkEvent* pEvent ) { return vkCreateEvent( vkDevice, pCreateInfo, pAllocator, pEvent ); } 499 void DestroyEvent( VkEvent event ) { vkDestroyEvent( vkDevice, event, pAllocator ); } 500 VkResult GetEventStatus( VkEvent event ) { return vkGetEventStatus( vkDevice, event ); } 501 VkResult SetEvent( VkEvent event ) { return vkSetEvent( vkDevice, event ); } 502 VkResult ResetEvent( VkEvent event ) { return vkResetEvent( vkDevice, event ); } 503 VkResult CreateQueryPool( const( VkQueryPoolCreateInfo )* pCreateInfo, VkQueryPool* pQueryPool ) { return vkCreateQueryPool( vkDevice, pCreateInfo, pAllocator, pQueryPool ); } 504 void DestroyQueryPool( VkQueryPool queryPool ) { vkDestroyQueryPool( vkDevice, queryPool, pAllocator ); } 505 VkResult GetQueryPoolResults( VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags ) { return vkGetQueryPoolResults( vkDevice, queryPool, firstQuery, queryCount, dataSize, pData, stride, flags ); } 506 VkResult CreateBuffer( const( VkBufferCreateInfo )* pCreateInfo, VkBuffer* pBuffer ) { return vkCreateBuffer( vkDevice, pCreateInfo, pAllocator, pBuffer ); } 507 void DestroyBuffer( VkBuffer buffer ) { vkDestroyBuffer( vkDevice, buffer, pAllocator ); } 508 VkResult CreateBufferView( const( VkBufferViewCreateInfo )* pCreateInfo, VkBufferView* pView ) { return vkCreateBufferView( vkDevice, pCreateInfo, pAllocator, pView ); } 509 void DestroyBufferView( VkBufferView bufferView ) { vkDestroyBufferView( vkDevice, bufferView, pAllocator ); } 510 VkResult CreateImage( const( VkImageCreateInfo )* pCreateInfo, VkImage* pImage ) { return vkCreateImage( vkDevice, pCreateInfo, pAllocator, pImage ); } 511 void DestroyImage( VkImage image ) { vkDestroyImage( vkDevice, image, pAllocator ); } 512 void GetImageSubresourceLayout( VkImage image, const( VkImageSubresource )* pSubresource, VkSubresourceLayout* pLayout ) { vkGetImageSubresourceLayout( vkDevice, image, pSubresource, pLayout ); } 513 VkResult CreateImageView( const( VkImageViewCreateInfo )* pCreateInfo, VkImageView* pView ) { return vkCreateImageView( vkDevice, pCreateInfo, pAllocator, pView ); } 514 void DestroyImageView( VkImageView imageView ) { vkDestroyImageView( vkDevice, imageView, pAllocator ); } 515 VkResult CreateShaderModule( const( VkShaderModuleCreateInfo )* pCreateInfo, VkShaderModule* pShaderModule ) { return vkCreateShaderModule( vkDevice, pCreateInfo, pAllocator, pShaderModule ); } 516 void DestroyShaderModule( VkShaderModule shaderModule ) { vkDestroyShaderModule( vkDevice, shaderModule, pAllocator ); } 517 VkResult CreatePipelineCache( const( VkPipelineCacheCreateInfo )* pCreateInfo, VkPipelineCache* pPipelineCache ) { return vkCreatePipelineCache( vkDevice, pCreateInfo, pAllocator, pPipelineCache ); } 518 void DestroyPipelineCache( VkPipelineCache pipelineCache ) { vkDestroyPipelineCache( vkDevice, pipelineCache, pAllocator ); } 519 VkResult GetPipelineCacheData( VkPipelineCache pipelineCache, size_t* pDataSize, void* pData ) { return vkGetPipelineCacheData( vkDevice, pipelineCache, pDataSize, pData ); } 520 VkResult MergePipelineCaches( VkPipelineCache dstCache, uint32_t srcCacheCount, const( VkPipelineCache )* pSrcCaches ) { return vkMergePipelineCaches( vkDevice, dstCache, srcCacheCount, pSrcCaches ); } 521 VkResult CreateGraphicsPipelines( VkPipelineCache pipelineCache, uint32_t createInfoCount, const( VkGraphicsPipelineCreateInfo )* pCreateInfos, VkPipeline* pPipelines ) { return vkCreateGraphicsPipelines( vkDevice, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines ); } 522 VkResult CreateComputePipelines( VkPipelineCache pipelineCache, uint32_t createInfoCount, const( VkComputePipelineCreateInfo )* pCreateInfos, VkPipeline* pPipelines ) { return vkCreateComputePipelines( vkDevice, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines ); } 523 void DestroyPipeline( VkPipeline pipeline ) { vkDestroyPipeline( vkDevice, pipeline, pAllocator ); } 524 VkResult CreatePipelineLayout( const( VkPipelineLayoutCreateInfo )* pCreateInfo, VkPipelineLayout* pPipelineLayout ) { return vkCreatePipelineLayout( vkDevice, pCreateInfo, pAllocator, pPipelineLayout ); } 525 void DestroyPipelineLayout( VkPipelineLayout pipelineLayout ) { vkDestroyPipelineLayout( vkDevice, pipelineLayout, pAllocator ); } 526 VkResult CreateSampler( const( VkSamplerCreateInfo )* pCreateInfo, VkSampler* pSampler ) { return vkCreateSampler( vkDevice, pCreateInfo, pAllocator, pSampler ); } 527 void DestroySampler( VkSampler sampler ) { vkDestroySampler( vkDevice, sampler, pAllocator ); } 528 VkResult CreateDescriptorSetLayout( const( VkDescriptorSetLayoutCreateInfo )* pCreateInfo, VkDescriptorSetLayout* pSetLayout ) { return vkCreateDescriptorSetLayout( vkDevice, pCreateInfo, pAllocator, pSetLayout ); } 529 void DestroyDescriptorSetLayout( VkDescriptorSetLayout descriptorSetLayout ) { vkDestroyDescriptorSetLayout( vkDevice, descriptorSetLayout, pAllocator ); } 530 VkResult CreateDescriptorPool( const( VkDescriptorPoolCreateInfo )* pCreateInfo, VkDescriptorPool* pDescriptorPool ) { return vkCreateDescriptorPool( vkDevice, pCreateInfo, pAllocator, pDescriptorPool ); } 531 void DestroyDescriptorPool( VkDescriptorPool descriptorPool ) { vkDestroyDescriptorPool( vkDevice, descriptorPool, pAllocator ); } 532 VkResult ResetDescriptorPool( VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags ) { return vkResetDescriptorPool( vkDevice, descriptorPool, flags ); } 533 VkResult AllocateDescriptorSets( const( VkDescriptorSetAllocateInfo )* pAllocateInfo, VkDescriptorSet* pDescriptorSets ) { return vkAllocateDescriptorSets( vkDevice, pAllocateInfo, pDescriptorSets ); } 534 VkResult FreeDescriptorSets( VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const( VkDescriptorSet )* pDescriptorSets ) { return vkFreeDescriptorSets( vkDevice, descriptorPool, descriptorSetCount, pDescriptorSets ); } 535 void UpdateDescriptorSets( uint32_t descriptorWriteCount, const( VkWriteDescriptorSet )* pDescriptorWrites, uint32_t descriptorCopyCount, const( VkCopyDescriptorSet )* pDescriptorCopies ) { vkUpdateDescriptorSets( vkDevice, descriptorWriteCount, pDescriptorWrites, descriptorCopyCount, pDescriptorCopies ); } 536 VkResult CreateFramebuffer( const( VkFramebufferCreateInfo )* pCreateInfo, VkFramebuffer* pFramebuffer ) { return vkCreateFramebuffer( vkDevice, pCreateInfo, pAllocator, pFramebuffer ); } 537 void DestroyFramebuffer( VkFramebuffer framebuffer ) { vkDestroyFramebuffer( vkDevice, framebuffer, pAllocator ); } 538 VkResult CreateRenderPass( const( VkRenderPassCreateInfo )* pCreateInfo, VkRenderPass* pRenderPass ) { return vkCreateRenderPass( vkDevice, pCreateInfo, pAllocator, pRenderPass ); } 539 void DestroyRenderPass( VkRenderPass renderPass ) { vkDestroyRenderPass( vkDevice, renderPass, pAllocator ); } 540 void GetRenderAreaGranularity( VkRenderPass renderPass, VkExtent2D* pGranularity ) { vkGetRenderAreaGranularity( vkDevice, renderPass, pGranularity ); } 541 VkResult CreateCommandPool( const( VkCommandPoolCreateInfo )* pCreateInfo, VkCommandPool* pCommandPool ) { return vkCreateCommandPool( vkDevice, pCreateInfo, pAllocator, pCommandPool ); } 542 void DestroyCommandPool( VkCommandPool commandPool ) { vkDestroyCommandPool( vkDevice, commandPool, pAllocator ); } 543 VkResult ResetCommandPool( VkCommandPool commandPool, VkCommandPoolResetFlags flags ) { return vkResetCommandPool( vkDevice, commandPool, flags ); } 544 VkResult AllocateCommandBuffers( const( VkCommandBufferAllocateInfo )* pAllocateInfo, VkCommandBuffer* pCommandBuffers ) { return vkAllocateCommandBuffers( vkDevice, pAllocateInfo, pCommandBuffers ); } 545 void FreeCommandBuffers( VkCommandPool commandPool, uint32_t commandBufferCount, const( VkCommandBuffer )* pCommandBuffers ) { vkFreeCommandBuffers( vkDevice, commandPool, commandBufferCount, pCommandBuffers ); } 546 VkResult BeginCommandBuffer( const( VkCommandBufferBeginInfo )* pBeginInfo ) { return vkBeginCommandBuffer( commandBuffer, pBeginInfo ); } 547 VkResult EndCommandBuffer() { return vkEndCommandBuffer( commandBuffer ); } 548 VkResult ResetCommandBuffer( VkCommandBufferResetFlags flags ) { return vkResetCommandBuffer( commandBuffer, flags ); } 549 void CmdBindPipeline( VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline ) { vkCmdBindPipeline( commandBuffer, pipelineBindPoint, pipeline ); } 550 void CmdSetViewport( uint32_t firstViewport, uint32_t viewportCount, const( VkViewport )* pViewports ) { vkCmdSetViewport( commandBuffer, firstViewport, viewportCount, pViewports ); } 551 void CmdSetScissor( uint32_t firstScissor, uint32_t scissorCount, const( VkRect2D )* pScissors ) { vkCmdSetScissor( commandBuffer, firstScissor, scissorCount, pScissors ); } 552 void CmdSetLineWidth( float lineWidth ) { vkCmdSetLineWidth( commandBuffer, lineWidth ); } 553 void CmdSetDepthBias( float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor ) { vkCmdSetDepthBias( commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor ); } 554 void CmdSetBlendConstants( const float[4] blendConstants ) { vkCmdSetBlendConstants( commandBuffer, blendConstants ); } 555 void CmdSetDepthBounds( float minDepthBounds, float maxDepthBounds ) { vkCmdSetDepthBounds( commandBuffer, minDepthBounds, maxDepthBounds ); } 556 void CmdSetStencilCompareMask( VkStencilFaceFlags faceMask, uint32_t compareMask ) { vkCmdSetStencilCompareMask( commandBuffer, faceMask, compareMask ); } 557 void CmdSetStencilWriteMask( VkStencilFaceFlags faceMask, uint32_t writeMask ) { vkCmdSetStencilWriteMask( commandBuffer, faceMask, writeMask ); } 558 void CmdSetStencilReference( VkStencilFaceFlags faceMask, uint32_t reference ) { vkCmdSetStencilReference( commandBuffer, faceMask, reference ); } 559 void CmdBindDescriptorSets( VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const( VkDescriptorSet )* pDescriptorSets, uint32_t dynamicOffsetCount, const( uint32_t )* pDynamicOffsets ) { vkCmdBindDescriptorSets( commandBuffer, pipelineBindPoint, layout, firstSet, descriptorSetCount, pDescriptorSets, dynamicOffsetCount, pDynamicOffsets ); } 560 void CmdBindIndexBuffer( VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType ) { vkCmdBindIndexBuffer( commandBuffer, buffer, offset, indexType ); } 561 void CmdBindVertexBuffers( uint32_t firstBinding, uint32_t bindingCount, const( VkBuffer )* pBuffers, const( VkDeviceSize )* pOffsets ) { vkCmdBindVertexBuffers( commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets ); } 562 void CmdDraw( uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance ) { vkCmdDraw( commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance ); } 563 void CmdDrawIndexed( uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance ) { vkCmdDrawIndexed( commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance ); } 564 void CmdDrawIndirect( VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride ) { vkCmdDrawIndirect( commandBuffer, buffer, offset, drawCount, stride ); } 565 void CmdDrawIndexedIndirect( VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride ) { vkCmdDrawIndexedIndirect( commandBuffer, buffer, offset, drawCount, stride ); } 566 void CmdDispatch( uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ ) { vkCmdDispatch( commandBuffer, groupCountX, groupCountY, groupCountZ ); } 567 void CmdDispatchIndirect( VkBuffer buffer, VkDeviceSize offset ) { vkCmdDispatchIndirect( commandBuffer, buffer, offset ); } 568 void CmdCopyBuffer( VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const( VkBufferCopy )* pRegions ) { vkCmdCopyBuffer( commandBuffer, srcBuffer, dstBuffer, regionCount, pRegions ); } 569 void CmdCopyImage( VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const( VkImageCopy )* pRegions ) { vkCmdCopyImage( commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions ); } 570 void CmdBlitImage( VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const( VkImageBlit )* pRegions, VkFilter filter ) { vkCmdBlitImage( commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter ); } 571 void CmdCopyBufferToImage( VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const( VkBufferImageCopy )* pRegions ) { vkCmdCopyBufferToImage( commandBuffer, srcBuffer, dstImage, dstImageLayout, regionCount, pRegions ); } 572 void CmdCopyImageToBuffer( VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const( VkBufferImageCopy )* pRegions ) { vkCmdCopyImageToBuffer( commandBuffer, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions ); } 573 void CmdUpdateBuffer( VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const( void )* pData ) { vkCmdUpdateBuffer( commandBuffer, dstBuffer, dstOffset, dataSize, pData ); } 574 void CmdFillBuffer( VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data ) { vkCmdFillBuffer( commandBuffer, dstBuffer, dstOffset, size, data ); } 575 void CmdClearColorImage( VkImage image, VkImageLayout imageLayout, const( VkClearColorValue )* pColor, uint32_t rangeCount, const( VkImageSubresourceRange )* pRanges ) { vkCmdClearColorImage( commandBuffer, image, imageLayout, pColor, rangeCount, pRanges ); } 576 void CmdClearDepthStencilImage( VkImage image, VkImageLayout imageLayout, const( VkClearDepthStencilValue )* pDepthStencil, uint32_t rangeCount, const( VkImageSubresourceRange )* pRanges ) { vkCmdClearDepthStencilImage( commandBuffer, image, imageLayout, pDepthStencil, rangeCount, pRanges ); } 577 void CmdClearAttachments( uint32_t attachmentCount, const( VkClearAttachment )* pAttachments, uint32_t rectCount, const( VkClearRect )* pRects ) { vkCmdClearAttachments( commandBuffer, attachmentCount, pAttachments, rectCount, pRects ); } 578 void CmdResolveImage( VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const( VkImageResolve )* pRegions ) { vkCmdResolveImage( commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions ); } 579 void CmdSetEvent( VkEvent event, VkPipelineStageFlags stageMask ) { vkCmdSetEvent( commandBuffer, event, stageMask ); } 580 void CmdResetEvent( VkEvent event, VkPipelineStageFlags stageMask ) { vkCmdResetEvent( commandBuffer, event, stageMask ); } 581 void CmdWaitEvents( 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 ) { vkCmdWaitEvents( commandBuffer, eventCount, pEvents, srcStageMask, dstStageMask, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers ); } 582 void CmdPipelineBarrier( VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const( VkMemoryBarrier )* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const( VkBufferMemoryBarrier )* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const( VkImageMemoryBarrier )* pImageMemoryBarriers ) { vkCmdPipelineBarrier( commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers ); } 583 void CmdBeginQuery( VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags ) { vkCmdBeginQuery( commandBuffer, queryPool, query, flags ); } 584 void CmdEndQuery( VkQueryPool queryPool, uint32_t query ) { vkCmdEndQuery( commandBuffer, queryPool, query ); } 585 void CmdResetQueryPool( VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount ) { vkCmdResetQueryPool( commandBuffer, queryPool, firstQuery, queryCount ); } 586 void CmdWriteTimestamp( VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query ) { vkCmdWriteTimestamp( commandBuffer, pipelineStage, queryPool, query ); } 587 void CmdCopyQueryPoolResults( VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags ) { vkCmdCopyQueryPoolResults( commandBuffer, queryPool, firstQuery, queryCount, dstBuffer, dstOffset, stride, flags ); } 588 void CmdPushConstants( VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const( void )* pValues ) { vkCmdPushConstants( commandBuffer, layout, stageFlags, offset, size, pValues ); } 589 void CmdBeginRenderPass( const( VkRenderPassBeginInfo )* pRenderPassBegin, VkSubpassContents contents ) { vkCmdBeginRenderPass( commandBuffer, pRenderPassBegin, contents ); } 590 void CmdNextSubpass( VkSubpassContents contents ) { vkCmdNextSubpass( commandBuffer, contents ); } 591 void CmdEndRenderPass() { vkCmdEndRenderPass( commandBuffer ); } 592 void CmdExecuteCommands( uint32_t commandBufferCount, const( VkCommandBuffer )* pCommandBuffers ) { vkCmdExecuteCommands( commandBuffer, commandBufferCount, pCommandBuffers ); } 593 594 // VK_VERSION_1_1 595 VkResult BindBufferMemory2( uint32_t bindInfoCount, const( VkBindBufferMemoryInfo )* pBindInfos ) { return vkBindBufferMemory2( vkDevice, bindInfoCount, pBindInfos ); } 596 VkResult BindImageMemory2( uint32_t bindInfoCount, const( VkBindImageMemoryInfo )* pBindInfos ) { return vkBindImageMemory2( vkDevice, bindInfoCount, pBindInfos ); } 597 void GetDeviceGroupPeerMemoryFeatures( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures ) { vkGetDeviceGroupPeerMemoryFeatures( vkDevice, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures ); } 598 void CmdSetDeviceMask( uint32_t deviceMask ) { vkCmdSetDeviceMask( commandBuffer, deviceMask ); } 599 void CmdDispatchBase( uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ ) { vkCmdDispatchBase( commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ ); } 600 void GetImageMemoryRequirements2( const( VkImageMemoryRequirementsInfo2 )* pInfo, VkMemoryRequirements2* pMemoryRequirements ) { vkGetImageMemoryRequirements2( vkDevice, pInfo, pMemoryRequirements ); } 601 void GetBufferMemoryRequirements2( const( VkBufferMemoryRequirementsInfo2 )* pInfo, VkMemoryRequirements2* pMemoryRequirements ) { vkGetBufferMemoryRequirements2( vkDevice, pInfo, pMemoryRequirements ); } 602 void GetImageSparseMemoryRequirements2( const( VkImageSparseMemoryRequirementsInfo2 )* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements ) { vkGetImageSparseMemoryRequirements2( vkDevice, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements ); } 603 void TrimCommandPool( VkCommandPool commandPool, VkCommandPoolTrimFlags flags ) { vkTrimCommandPool( vkDevice, commandPool, flags ); } 604 void GetDeviceQueue2( const( VkDeviceQueueInfo2 )* pQueueInfo, VkQueue* pQueue ) { vkGetDeviceQueue2( vkDevice, pQueueInfo, pQueue ); } 605 VkResult CreateSamplerYcbcrConversion( const( VkSamplerYcbcrConversionCreateInfo )* pCreateInfo, VkSamplerYcbcrConversion* pYcbcrConversion ) { return vkCreateSamplerYcbcrConversion( vkDevice, pCreateInfo, pAllocator, pYcbcrConversion ); } 606 void DestroySamplerYcbcrConversion( VkSamplerYcbcrConversion ycbcrConversion ) { vkDestroySamplerYcbcrConversion( vkDevice, ycbcrConversion, pAllocator ); } 607 VkResult CreateDescriptorUpdateTemplate( const( VkDescriptorUpdateTemplateCreateInfo )* pCreateInfo, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate ) { return vkCreateDescriptorUpdateTemplate( vkDevice, pCreateInfo, pAllocator, pDescriptorUpdateTemplate ); } 608 void DestroyDescriptorUpdateTemplate( VkDescriptorUpdateTemplate descriptorUpdateTemplate ) { vkDestroyDescriptorUpdateTemplate( vkDevice, descriptorUpdateTemplate, pAllocator ); } 609 void UpdateDescriptorSetWithTemplate( VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const( void )* pData ) { vkUpdateDescriptorSetWithTemplate( vkDevice, descriptorSet, descriptorUpdateTemplate, pData ); } 610 void GetDescriptorSetLayoutSupport( const( VkDescriptorSetLayoutCreateInfo )* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport ) { vkGetDescriptorSetLayoutSupport( vkDevice, pCreateInfo, pSupport ); } 611 612 // VK_VERSION_1_2 613 void CmdDrawIndirectCount( VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) { vkCmdDrawIndirectCount( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride ); } 614 void CmdDrawIndexedIndirectCount( VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) { vkCmdDrawIndexedIndirectCount( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride ); } 615 VkResult CreateRenderPass2( const( VkRenderPassCreateInfo2 )* pCreateInfo, VkRenderPass* pRenderPass ) { return vkCreateRenderPass2( vkDevice, pCreateInfo, pAllocator, pRenderPass ); } 616 void CmdBeginRenderPass2( const( VkRenderPassBeginInfo )* pRenderPassBegin, const( VkSubpassBeginInfo )* pSubpassBeginInfo ) { vkCmdBeginRenderPass2( commandBuffer, pRenderPassBegin, pSubpassBeginInfo ); } 617 void CmdNextSubpass2( const( VkSubpassBeginInfo )* pSubpassBeginInfo, const( VkSubpassEndInfo )* pSubpassEndInfo ) { vkCmdNextSubpass2( commandBuffer, pSubpassBeginInfo, pSubpassEndInfo ); } 618 void CmdEndRenderPass2( const( VkSubpassEndInfo )* pSubpassEndInfo ) { vkCmdEndRenderPass2( commandBuffer, pSubpassEndInfo ); } 619 void ResetQueryPool( VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount ) { vkResetQueryPool( vkDevice, queryPool, firstQuery, queryCount ); } 620 VkResult GetSemaphoreCounterValue( VkSemaphore semaphore, uint64_t* pValue ) { return vkGetSemaphoreCounterValue( vkDevice, semaphore, pValue ); } 621 VkResult WaitSemaphores( const( VkSemaphoreWaitInfo )* pWaitInfo, uint64_t timeout ) { return vkWaitSemaphores( vkDevice, pWaitInfo, timeout ); } 622 VkResult SignalSemaphore( const( VkSemaphoreSignalInfo )* pSignalInfo ) { return vkSignalSemaphore( vkDevice, pSignalInfo ); } 623 VkDeviceAddress GetBufferDeviceAddress( const( VkBufferDeviceAddressInfo )* pInfo ) { return vkGetBufferDeviceAddress( vkDevice, pInfo ); } 624 uint64_t GetBufferOpaqueCaptureAddress( const( VkBufferDeviceAddressInfo )* pInfo ) { return vkGetBufferOpaqueCaptureAddress( vkDevice, pInfo ); } 625 uint64_t GetDeviceMemoryOpaqueCaptureAddress( const( VkDeviceMemoryOpaqueCaptureAddressInfo )* pInfo ) { return vkGetDeviceMemoryOpaqueCaptureAddress( vkDevice, pInfo ); } 626 627 // VK_KHR_swapchain 628 VkResult CreateSwapchainKHR( const( VkSwapchainCreateInfoKHR )* pCreateInfo, VkSwapchainKHR* pSwapchain ) { return vkCreateSwapchainKHR( vkDevice, pCreateInfo, pAllocator, pSwapchain ); } 629 void DestroySwapchainKHR( VkSwapchainKHR swapchain ) { vkDestroySwapchainKHR( vkDevice, swapchain, pAllocator ); } 630 VkResult GetSwapchainImagesKHR( VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages ) { return vkGetSwapchainImagesKHR( vkDevice, swapchain, pSwapchainImageCount, pSwapchainImages ); } 631 VkResult AcquireNextImageKHR( VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex ) { return vkAcquireNextImageKHR( vkDevice, swapchain, timeout, semaphore, fence, pImageIndex ); } 632 VkResult GetDeviceGroupPresentCapabilitiesKHR( VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities ) { return vkGetDeviceGroupPresentCapabilitiesKHR( vkDevice, pDeviceGroupPresentCapabilities ); } 633 VkResult GetDeviceGroupSurfacePresentModesKHR( VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes ) { return vkGetDeviceGroupSurfacePresentModesKHR( vkDevice, surface, pModes ); } 634 VkResult AcquireNextImage2KHR( const( VkAcquireNextImageInfoKHR )* pAcquireInfo, uint32_t* pImageIndex ) { return vkAcquireNextImage2KHR( vkDevice, pAcquireInfo, pImageIndex ); } 635 636 // VK_KHR_display_swapchain 637 VkResult CreateSharedSwapchainsKHR( uint32_t swapchainCount, const( VkSwapchainCreateInfoKHR )* pCreateInfos, VkSwapchainKHR* pSwapchains ) { return vkCreateSharedSwapchainsKHR( vkDevice, swapchainCount, pCreateInfos, pAllocator, pSwapchains ); } 638 639 // VK_KHR_external_memory_fd 640 VkResult GetMemoryFdKHR( const( VkMemoryGetFdInfoKHR )* pGetFdInfo, int* pFd ) { return vkGetMemoryFdKHR( vkDevice, pGetFdInfo, pFd ); } 641 VkResult GetMemoryFdPropertiesKHR( VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties ) { return vkGetMemoryFdPropertiesKHR( vkDevice, handleType, fd, pMemoryFdProperties ); } 642 643 // VK_KHR_external_semaphore_fd 644 VkResult ImportSemaphoreFdKHR( const( VkImportSemaphoreFdInfoKHR )* pImportSemaphoreFdInfo ) { return vkImportSemaphoreFdKHR( vkDevice, pImportSemaphoreFdInfo ); } 645 VkResult GetSemaphoreFdKHR( const( VkSemaphoreGetFdInfoKHR )* pGetFdInfo, int* pFd ) { return vkGetSemaphoreFdKHR( vkDevice, pGetFdInfo, pFd ); } 646 647 // VK_KHR_push_descriptor 648 void CmdPushDescriptorSetKHR( VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const( VkWriteDescriptorSet )* pDescriptorWrites ) { vkCmdPushDescriptorSetKHR( commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites ); } 649 void CmdPushDescriptorSetWithTemplateKHR( VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const( void )* pData ) { vkCmdPushDescriptorSetWithTemplateKHR( commandBuffer, descriptorUpdateTemplate, layout, set, pData ); } 650 651 // VK_KHR_shared_presentable_image 652 VkResult GetSwapchainStatusKHR( VkSwapchainKHR swapchain ) { return vkGetSwapchainStatusKHR( vkDevice, swapchain ); } 653 654 // VK_KHR_external_fence_fd 655 VkResult ImportFenceFdKHR( const( VkImportFenceFdInfoKHR )* pImportFenceFdInfo ) { return vkImportFenceFdKHR( vkDevice, pImportFenceFdInfo ); } 656 VkResult GetFenceFdKHR( const( VkFenceGetFdInfoKHR )* pGetFdInfo, int* pFd ) { return vkGetFenceFdKHR( vkDevice, pGetFdInfo, pFd ); } 657 658 // VK_KHR_performance_query 659 VkResult AcquireProfilingLockKHR( const( VkAcquireProfilingLockInfoKHR )* pInfo ) { return vkAcquireProfilingLockKHR( vkDevice, pInfo ); } 660 void ReleaseProfilingLockKHR() { vkReleaseProfilingLockKHR( vkDevice ); } 661 662 // VK_KHR_fragment_shading_rate 663 void CmdSetFragmentShadingRateKHR( const( VkExtent2D )* pFragmentSize, const VkFragmentShadingRateCombinerOpKHR[2] combinerOps ) { vkCmdSetFragmentShadingRateKHR( commandBuffer, pFragmentSize, combinerOps ); } 664 665 // VK_KHR_deferred_host_operations 666 VkResult CreateDeferredOperationKHR( VkDeferredOperationKHR* pDeferredOperation ) { return vkCreateDeferredOperationKHR( vkDevice, pAllocator, pDeferredOperation ); } 667 void DestroyDeferredOperationKHR( VkDeferredOperationKHR operation ) { vkDestroyDeferredOperationKHR( vkDevice, operation, pAllocator ); } 668 uint32_t GetDeferredOperationMaxConcurrencyKHR( VkDeferredOperationKHR operation ) { return vkGetDeferredOperationMaxConcurrencyKHR( vkDevice, operation ); } 669 VkResult GetDeferredOperationResultKHR( VkDeferredOperationKHR operation ) { return vkGetDeferredOperationResultKHR( vkDevice, operation ); } 670 VkResult DeferredOperationJoinKHR( VkDeferredOperationKHR operation ) { return vkDeferredOperationJoinKHR( vkDevice, operation ); } 671 672 // VK_KHR_pipeline_executable_properties 673 VkResult GetPipelineExecutablePropertiesKHR( const( VkPipelineInfoKHR )* pPipelineInfo, uint32_t* pExecutableCount, VkPipelineExecutablePropertiesKHR* pProperties ) { return vkGetPipelineExecutablePropertiesKHR( vkDevice, pPipelineInfo, pExecutableCount, pProperties ); } 674 VkResult GetPipelineExecutableStatisticsKHR( const( VkPipelineExecutableInfoKHR )* pExecutableInfo, uint32_t* pStatisticCount, VkPipelineExecutableStatisticKHR* pStatistics ) { return vkGetPipelineExecutableStatisticsKHR( vkDevice, pExecutableInfo, pStatisticCount, pStatistics ); } 675 VkResult GetPipelineExecutableInternalRepresentationsKHR( const( VkPipelineExecutableInfoKHR )* pExecutableInfo, uint32_t* pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations ) { return vkGetPipelineExecutableInternalRepresentationsKHR( vkDevice, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations ); } 676 677 // VK_KHR_copy_commands2 678 void CmdCopyBuffer2KHR( const( VkCopyBufferInfo2KHR )* pCopyBufferInfo ) { vkCmdCopyBuffer2KHR( commandBuffer, pCopyBufferInfo ); } 679 void CmdCopyImage2KHR( const( VkCopyImageInfo2KHR )* pCopyImageInfo ) { vkCmdCopyImage2KHR( commandBuffer, pCopyImageInfo ); } 680 void CmdCopyBufferToImage2KHR( const( VkCopyBufferToImageInfo2KHR )* pCopyBufferToImageInfo ) { vkCmdCopyBufferToImage2KHR( commandBuffer, pCopyBufferToImageInfo ); } 681 void CmdCopyImageToBuffer2KHR( const( VkCopyImageToBufferInfo2KHR )* pCopyImageToBufferInfo ) { vkCmdCopyImageToBuffer2KHR( commandBuffer, pCopyImageToBufferInfo ); } 682 void CmdBlitImage2KHR( const( VkBlitImageInfo2KHR )* pBlitImageInfo ) { vkCmdBlitImage2KHR( commandBuffer, pBlitImageInfo ); } 683 void CmdResolveImage2KHR( const( VkResolveImageInfo2KHR )* pResolveImageInfo ) { vkCmdResolveImage2KHR( commandBuffer, pResolveImageInfo ); } 684 685 // VK_EXT_debug_marker 686 VkResult DebugMarkerSetObjectTagEXT( const( VkDebugMarkerObjectTagInfoEXT )* pTagInfo ) { return vkDebugMarkerSetObjectTagEXT( vkDevice, pTagInfo ); } 687 VkResult DebugMarkerSetObjectNameEXT( const( VkDebugMarkerObjectNameInfoEXT )* pNameInfo ) { return vkDebugMarkerSetObjectNameEXT( vkDevice, pNameInfo ); } 688 void CmdDebugMarkerBeginEXT( const( VkDebugMarkerMarkerInfoEXT )* pMarkerInfo ) { vkCmdDebugMarkerBeginEXT( commandBuffer, pMarkerInfo ); } 689 void CmdDebugMarkerEndEXT() { vkCmdDebugMarkerEndEXT( commandBuffer ); } 690 void CmdDebugMarkerInsertEXT( const( VkDebugMarkerMarkerInfoEXT )* pMarkerInfo ) { vkCmdDebugMarkerInsertEXT( commandBuffer, pMarkerInfo ); } 691 692 // VK_EXT_transform_feedback 693 void CmdBindTransformFeedbackBuffersEXT( uint32_t firstBinding, uint32_t bindingCount, const( VkBuffer )* pBuffers, const( VkDeviceSize )* pOffsets, const( VkDeviceSize )* pSizes ) { vkCmdBindTransformFeedbackBuffersEXT( commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes ); } 694 void CmdBeginTransformFeedbackEXT( uint32_t firstCounterBuffer, uint32_t counterBufferCount, const( VkBuffer )* pCounterBuffers, const( VkDeviceSize )* pCounterBufferOffsets ) { vkCmdBeginTransformFeedbackEXT( commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets ); } 695 void CmdEndTransformFeedbackEXT( uint32_t firstCounterBuffer, uint32_t counterBufferCount, const( VkBuffer )* pCounterBuffers, const( VkDeviceSize )* pCounterBufferOffsets ) { vkCmdEndTransformFeedbackEXT( commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets ); } 696 void CmdBeginQueryIndexedEXT( VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index ) { vkCmdBeginQueryIndexedEXT( commandBuffer, queryPool, query, flags, index ); } 697 void CmdEndQueryIndexedEXT( VkQueryPool queryPool, uint32_t query, uint32_t index ) { vkCmdEndQueryIndexedEXT( commandBuffer, queryPool, query, index ); } 698 void CmdDrawIndirectByteCountEXT( uint32_t instanceCount, uint32_t firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride ) { vkCmdDrawIndirectByteCountEXT( commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride ); } 699 700 // VK_NVX_image_view_handle 701 uint32_t GetImageViewHandleNVX( const( VkImageViewHandleInfoNVX )* pInfo ) { return vkGetImageViewHandleNVX( vkDevice, pInfo ); } 702 VkResult GetImageViewAddressNVX( VkImageView imageView, VkImageViewAddressPropertiesNVX* pProperties ) { return vkGetImageViewAddressNVX( vkDevice, imageView, pProperties ); } 703 704 // VK_AMD_shader_info 705 VkResult GetShaderInfoAMD( VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo ) { return vkGetShaderInfoAMD( vkDevice, pipeline, shaderStage, infoType, pInfoSize, pInfo ); } 706 707 // VK_EXT_conditional_rendering 708 void CmdBeginConditionalRenderingEXT( const( VkConditionalRenderingBeginInfoEXT )* pConditionalRenderingBegin ) { vkCmdBeginConditionalRenderingEXT( commandBuffer, pConditionalRenderingBegin ); } 709 void CmdEndConditionalRenderingEXT() { vkCmdEndConditionalRenderingEXT( commandBuffer ); } 710 711 // VK_NV_clip_space_w_scaling 712 void CmdSetViewportWScalingNV( uint32_t firstViewport, uint32_t viewportCount, const( VkViewportWScalingNV )* pViewportWScalings ) { vkCmdSetViewportWScalingNV( commandBuffer, firstViewport, viewportCount, pViewportWScalings ); } 713 714 // VK_EXT_display_control 715 VkResult DisplayPowerControlEXT( VkDisplayKHR display, const( VkDisplayPowerInfoEXT )* pDisplayPowerInfo ) { return vkDisplayPowerControlEXT( vkDevice, display, pDisplayPowerInfo ); } 716 VkResult RegisterDeviceEventEXT( const( VkDeviceEventInfoEXT )* pDeviceEventInfo, VkFence* pFence ) { return vkRegisterDeviceEventEXT( vkDevice, pDeviceEventInfo, pAllocator, pFence ); } 717 VkResult RegisterDisplayEventEXT( VkDisplayKHR display, const( VkDisplayEventInfoEXT )* pDisplayEventInfo, VkFence* pFence ) { return vkRegisterDisplayEventEXT( vkDevice, display, pDisplayEventInfo, pAllocator, pFence ); } 718 VkResult GetSwapchainCounterEXT( VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue ) { return vkGetSwapchainCounterEXT( vkDevice, swapchain, counter, pCounterValue ); } 719 720 // VK_GOOGLE_display_timing 721 VkResult GetRefreshCycleDurationGOOGLE( VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties ) { return vkGetRefreshCycleDurationGOOGLE( vkDevice, swapchain, pDisplayTimingProperties ); } 722 VkResult GetPastPresentationTimingGOOGLE( VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings ) { return vkGetPastPresentationTimingGOOGLE( vkDevice, swapchain, pPresentationTimingCount, pPresentationTimings ); } 723 724 // VK_EXT_discard_rectangles 725 void CmdSetDiscardRectangleEXT( uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const( VkRect2D )* pDiscardRectangles ) { vkCmdSetDiscardRectangleEXT( commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles ); } 726 727 // VK_EXT_hdr_metadata 728 void SetHdrMetadataEXT( uint32_t swapchainCount, const( VkSwapchainKHR )* pSwapchains, const( VkHdrMetadataEXT )* pMetadata ) { vkSetHdrMetadataEXT( vkDevice, swapchainCount, pSwapchains, pMetadata ); } 729 730 // VK_EXT_debug_utils 731 VkResult SetDebugUtilsObjectNameEXT( const( VkDebugUtilsObjectNameInfoEXT )* pNameInfo ) { return vkSetDebugUtilsObjectNameEXT( vkDevice, pNameInfo ); } 732 VkResult SetDebugUtilsObjectTagEXT( const( VkDebugUtilsObjectTagInfoEXT )* pTagInfo ) { return vkSetDebugUtilsObjectTagEXT( vkDevice, pTagInfo ); } 733 void CmdBeginDebugUtilsLabelEXT( const( VkDebugUtilsLabelEXT )* pLabelInfo ) { vkCmdBeginDebugUtilsLabelEXT( commandBuffer, pLabelInfo ); } 734 void CmdEndDebugUtilsLabelEXT() { vkCmdEndDebugUtilsLabelEXT( commandBuffer ); } 735 void CmdInsertDebugUtilsLabelEXT( const( VkDebugUtilsLabelEXT )* pLabelInfo ) { vkCmdInsertDebugUtilsLabelEXT( commandBuffer, pLabelInfo ); } 736 737 // VK_EXT_sample_locations 738 void CmdSetSampleLocationsEXT( const( VkSampleLocationsInfoEXT )* pSampleLocationsInfo ) { vkCmdSetSampleLocationsEXT( commandBuffer, pSampleLocationsInfo ); } 739 740 // VK_EXT_image_drm_format_modifier 741 VkResult GetImageDrmFormatModifierPropertiesEXT( VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties ) { return vkGetImageDrmFormatModifierPropertiesEXT( vkDevice, image, pProperties ); } 742 743 // VK_EXT_validation_cache 744 VkResult CreateValidationCacheEXT( const( VkValidationCacheCreateInfoEXT )* pCreateInfo, VkValidationCacheEXT* pValidationCache ) { return vkCreateValidationCacheEXT( vkDevice, pCreateInfo, pAllocator, pValidationCache ); } 745 void DestroyValidationCacheEXT( VkValidationCacheEXT validationCache ) { vkDestroyValidationCacheEXT( vkDevice, validationCache, pAllocator ); } 746 VkResult MergeValidationCachesEXT( VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const( VkValidationCacheEXT )* pSrcCaches ) { return vkMergeValidationCachesEXT( vkDevice, dstCache, srcCacheCount, pSrcCaches ); } 747 VkResult GetValidationCacheDataEXT( VkValidationCacheEXT validationCache, size_t* pDataSize, void* pData ) { return vkGetValidationCacheDataEXT( vkDevice, validationCache, pDataSize, pData ); } 748 749 // VK_NV_shading_rate_image 750 void CmdBindShadingRateImageNV( VkImageView imageView, VkImageLayout imageLayout ) { vkCmdBindShadingRateImageNV( commandBuffer, imageView, imageLayout ); } 751 void CmdSetViewportShadingRatePaletteNV( uint32_t firstViewport, uint32_t viewportCount, const( VkShadingRatePaletteNV )* pShadingRatePalettes ) { vkCmdSetViewportShadingRatePaletteNV( commandBuffer, firstViewport, viewportCount, pShadingRatePalettes ); } 752 void CmdSetCoarseSampleOrderNV( VkCoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const( VkCoarseSampleOrderCustomNV )* pCustomSampleOrders ) { vkCmdSetCoarseSampleOrderNV( commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders ); } 753 754 // VK_NV_ray_tracing 755 VkResult CreateAccelerationStructureNV( const( VkAccelerationStructureCreateInfoNV )* pCreateInfo, VkAccelerationStructureNV* pAccelerationStructure ) { return vkCreateAccelerationStructureNV( vkDevice, pCreateInfo, pAllocator, pAccelerationStructure ); } 756 void DestroyAccelerationStructureNV( VkAccelerationStructureNV accelerationStructure ) { vkDestroyAccelerationStructureNV( vkDevice, accelerationStructure, pAllocator ); } 757 void GetAccelerationStructureMemoryRequirementsNV( const( VkAccelerationStructureMemoryRequirementsInfoNV )* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements ) { vkGetAccelerationStructureMemoryRequirementsNV( vkDevice, pInfo, pMemoryRequirements ); } 758 VkResult BindAccelerationStructureMemoryNV( uint32_t bindInfoCount, const( VkBindAccelerationStructureMemoryInfoNV )* pBindInfos ) { return vkBindAccelerationStructureMemoryNV( vkDevice, bindInfoCount, pBindInfos ); } 759 void CmdBuildAccelerationStructureNV( const( VkAccelerationStructureInfoNV )* pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkBuffer scratch, VkDeviceSize scratchOffset ) { vkCmdBuildAccelerationStructureNV( commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset ); } 760 void CmdCopyAccelerationStructureNV( VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkCopyAccelerationStructureModeKHR mode ) { vkCmdCopyAccelerationStructureNV( commandBuffer, dst, src, mode ); } 761 void CmdTraceRaysNV( 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 ) { vkCmdTraceRaysNV( commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth ); } 762 VkResult CreateRayTracingPipelinesNV( VkPipelineCache pipelineCache, uint32_t createInfoCount, const( VkRayTracingPipelineCreateInfoNV )* pCreateInfos, VkPipeline* pPipelines ) { return vkCreateRayTracingPipelinesNV( vkDevice, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines ); } 763 VkResult GetRayTracingShaderGroupHandlesKHR( VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData ) { return vkGetRayTracingShaderGroupHandlesKHR( vkDevice, pipeline, firstGroup, groupCount, dataSize, pData ); } 764 VkResult GetAccelerationStructureHandleNV( VkAccelerationStructureNV accelerationStructure, size_t dataSize, void* pData ) { return vkGetAccelerationStructureHandleNV( vkDevice, accelerationStructure, dataSize, pData ); } 765 void CmdWriteAccelerationStructuresPropertiesNV( uint32_t accelerationStructureCount, const( VkAccelerationStructureNV )* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery ) { vkCmdWriteAccelerationStructuresPropertiesNV( commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery ); } 766 VkResult CompileDeferredNV( VkPipeline pipeline, uint32_t shader ) { return vkCompileDeferredNV( vkDevice, pipeline, shader ); } 767 768 // VK_EXT_external_memory_host 769 VkResult GetMemoryHostPointerPropertiesEXT( VkExternalMemoryHandleTypeFlagBits handleType, const( void )* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties ) { return vkGetMemoryHostPointerPropertiesEXT( vkDevice, handleType, pHostPointer, pMemoryHostPointerProperties ); } 770 771 // VK_AMD_buffer_marker 772 void CmdWriteBufferMarkerAMD( VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker ) { vkCmdWriteBufferMarkerAMD( commandBuffer, pipelineStage, dstBuffer, dstOffset, marker ); } 773 774 // VK_EXT_calibrated_timestamps 775 VkResult GetCalibratedTimestampsEXT( uint32_t timestampCount, const( VkCalibratedTimestampInfoEXT )* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation ) { return vkGetCalibratedTimestampsEXT( vkDevice, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation ); } 776 777 // VK_NV_mesh_shader 778 void CmdDrawMeshTasksNV( uint32_t taskCount, uint32_t firstTask ) { vkCmdDrawMeshTasksNV( commandBuffer, taskCount, firstTask ); } 779 void CmdDrawMeshTasksIndirectNV( VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride ) { vkCmdDrawMeshTasksIndirectNV( commandBuffer, buffer, offset, drawCount, stride ); } 780 void CmdDrawMeshTasksIndirectCountNV( VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) { vkCmdDrawMeshTasksIndirectCountNV( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride ); } 781 782 // VK_NV_scissor_exclusive 783 void CmdSetExclusiveScissorNV( uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const( VkRect2D )* pExclusiveScissors ) { vkCmdSetExclusiveScissorNV( commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors ); } 784 785 // VK_NV_device_diagnostic_checkpoints 786 void CmdSetCheckpointNV( const( void )* pCheckpointMarker ) { vkCmdSetCheckpointNV( commandBuffer, pCheckpointMarker ); } 787 788 // VK_INTEL_performance_query 789 VkResult InitializePerformanceApiINTEL( const( VkInitializePerformanceApiInfoINTEL )* pInitializeInfo ) { return vkInitializePerformanceApiINTEL( vkDevice, pInitializeInfo ); } 790 void UninitializePerformanceApiINTEL() { vkUninitializePerformanceApiINTEL( vkDevice ); } 791 VkResult CmdSetPerformanceMarkerINTEL( const( VkPerformanceMarkerInfoINTEL )* pMarkerInfo ) { return vkCmdSetPerformanceMarkerINTEL( commandBuffer, pMarkerInfo ); } 792 VkResult CmdSetPerformanceStreamMarkerINTEL( const( VkPerformanceStreamMarkerInfoINTEL )* pMarkerInfo ) { return vkCmdSetPerformanceStreamMarkerINTEL( commandBuffer, pMarkerInfo ); } 793 VkResult CmdSetPerformanceOverrideINTEL( const( VkPerformanceOverrideInfoINTEL )* pOverrideInfo ) { return vkCmdSetPerformanceOverrideINTEL( commandBuffer, pOverrideInfo ); } 794 VkResult AcquirePerformanceConfigurationINTEL( const( VkPerformanceConfigurationAcquireInfoINTEL )* pAcquireInfo, VkPerformanceConfigurationINTEL* pConfiguration ) { return vkAcquirePerformanceConfigurationINTEL( vkDevice, pAcquireInfo, pConfiguration ); } 795 VkResult ReleasePerformanceConfigurationINTEL( VkPerformanceConfigurationINTEL configuration ) { return vkReleasePerformanceConfigurationINTEL( vkDevice, configuration ); } 796 VkResult GetPerformanceParameterINTEL( VkPerformanceParameterTypeINTEL parameter, VkPerformanceValueINTEL* pValue ) { return vkGetPerformanceParameterINTEL( vkDevice, parameter, pValue ); } 797 798 // VK_AMD_display_native_hdr 799 void SetLocalDimmingAMD( VkSwapchainKHR swapChain, VkBool32 localDimmingEnable ) { vkSetLocalDimmingAMD( vkDevice, swapChain, localDimmingEnable ); } 800 801 // VK_EXT_line_rasterization 802 void CmdSetLineStippleEXT( uint32_t lineStippleFactor, uint16_t lineStipplePattern ) { vkCmdSetLineStippleEXT( commandBuffer, lineStippleFactor, lineStipplePattern ); } 803 804 // VK_EXT_extended_dynamic_state 805 void CmdSetCullModeEXT( VkCullModeFlags cullMode ) { vkCmdSetCullModeEXT( commandBuffer, cullMode ); } 806 void CmdSetFrontFaceEXT( VkFrontFace frontFace ) { vkCmdSetFrontFaceEXT( commandBuffer, frontFace ); } 807 void CmdSetPrimitiveTopologyEXT( VkPrimitiveTopology primitiveTopology ) { vkCmdSetPrimitiveTopologyEXT( commandBuffer, primitiveTopology ); } 808 void CmdSetViewportWithCountEXT( uint32_t viewportCount, const( VkViewport )* pViewports ) { vkCmdSetViewportWithCountEXT( commandBuffer, viewportCount, pViewports ); } 809 void CmdSetScissorWithCountEXT( uint32_t scissorCount, const( VkRect2D )* pScissors ) { vkCmdSetScissorWithCountEXT( commandBuffer, scissorCount, pScissors ); } 810 void CmdBindVertexBuffers2EXT( uint32_t firstBinding, uint32_t bindingCount, const( VkBuffer )* pBuffers, const( VkDeviceSize )* pOffsets, const( VkDeviceSize )* pSizes, const( VkDeviceSize )* pStrides ) { vkCmdBindVertexBuffers2EXT( commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides ); } 811 void CmdSetDepthTestEnableEXT( VkBool32 depthTestEnable ) { vkCmdSetDepthTestEnableEXT( commandBuffer, depthTestEnable ); } 812 void CmdSetDepthWriteEnableEXT( VkBool32 depthWriteEnable ) { vkCmdSetDepthWriteEnableEXT( commandBuffer, depthWriteEnable ); } 813 void CmdSetDepthCompareOpEXT( VkCompareOp depthCompareOp ) { vkCmdSetDepthCompareOpEXT( commandBuffer, depthCompareOp ); } 814 void CmdSetDepthBoundsTestEnableEXT( VkBool32 depthBoundsTestEnable ) { vkCmdSetDepthBoundsTestEnableEXT( commandBuffer, depthBoundsTestEnable ); } 815 void CmdSetStencilTestEnableEXT( VkBool32 stencilTestEnable ) { vkCmdSetStencilTestEnableEXT( commandBuffer, stencilTestEnable ); } 816 void CmdSetStencilOpEXT( VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp ) { vkCmdSetStencilOpEXT( commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp ); } 817 818 // VK_NV_device_generated_commands 819 void GetGeneratedCommandsMemoryRequirementsNV( const( VkGeneratedCommandsMemoryRequirementsInfoNV )* pInfo, VkMemoryRequirements2* pMemoryRequirements ) { vkGetGeneratedCommandsMemoryRequirementsNV( vkDevice, pInfo, pMemoryRequirements ); } 820 void CmdPreprocessGeneratedCommandsNV( const( VkGeneratedCommandsInfoNV )* pGeneratedCommandsInfo ) { vkCmdPreprocessGeneratedCommandsNV( commandBuffer, pGeneratedCommandsInfo ); } 821 void CmdExecuteGeneratedCommandsNV( VkBool32 isPreprocessed, const( VkGeneratedCommandsInfoNV )* pGeneratedCommandsInfo ) { vkCmdExecuteGeneratedCommandsNV( commandBuffer, isPreprocessed, pGeneratedCommandsInfo ); } 822 void CmdBindPipelineShaderGroupNV( VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline, uint32_t groupIndex ) { vkCmdBindPipelineShaderGroupNV( commandBuffer, pipelineBindPoint, pipeline, groupIndex ); } 823 VkResult CreateIndirectCommandsLayoutNV( const( VkIndirectCommandsLayoutCreateInfoNV )* pCreateInfo, VkIndirectCommandsLayoutNV* pIndirectCommandsLayout ) { return vkCreateIndirectCommandsLayoutNV( vkDevice, pCreateInfo, pAllocator, pIndirectCommandsLayout ); } 824 void DestroyIndirectCommandsLayoutNV( VkIndirectCommandsLayoutNV indirectCommandsLayout ) { vkDestroyIndirectCommandsLayoutNV( vkDevice, indirectCommandsLayout, pAllocator ); } 825 826 // VK_EXT_private_data 827 VkResult CreatePrivateDataSlotEXT( const( VkPrivateDataSlotCreateInfoEXT )* pCreateInfo, VkPrivateDataSlotEXT* pPrivateDataSlot ) { return vkCreatePrivateDataSlotEXT( vkDevice, pCreateInfo, pAllocator, pPrivateDataSlot ); } 828 void DestroyPrivateDataSlotEXT( VkPrivateDataSlotEXT privateDataSlot ) { vkDestroyPrivateDataSlotEXT( vkDevice, privateDataSlot, pAllocator ); } 829 VkResult SetPrivateDataEXT( VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlotEXT privateDataSlot, uint64_t data ) { return vkSetPrivateDataEXT( vkDevice, objectType, objectHandle, privateDataSlot, data ); } 830 void GetPrivateDataEXT( VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlotEXT privateDataSlot, uint64_t* pData ) { vkGetPrivateDataEXT( vkDevice, objectType, objectHandle, privateDataSlot, pData ); } 831 832 // VK_NV_fragment_shading_rate_enums 833 void CmdSetFragmentShadingRateEnumNV( VkFragmentShadingRateNV shadingRate, const VkFragmentShadingRateCombinerOpKHR[2] combinerOps ) { vkCmdSetFragmentShadingRateEnumNV( commandBuffer, shadingRate, combinerOps ); } 834 835 // VK_KHR_acceleration_structure 836 VkResult CreateAccelerationStructureKHR( const( VkAccelerationStructureCreateInfoKHR )* pCreateInfo, VkAccelerationStructureKHR* pAccelerationStructure ) { return vkCreateAccelerationStructureKHR( vkDevice, pCreateInfo, pAllocator, pAccelerationStructure ); } 837 void DestroyAccelerationStructureKHR( VkAccelerationStructureKHR accelerationStructure ) { vkDestroyAccelerationStructureKHR( vkDevice, accelerationStructure, pAllocator ); } 838 void CmdBuildAccelerationStructuresKHR( uint32_t infoCount, const( VkAccelerationStructureBuildGeometryInfoKHR )* pInfos, const( VkAccelerationStructureBuildRangeInfoKHR* )* ppBuildRangeInfos ) { vkCmdBuildAccelerationStructuresKHR( commandBuffer, infoCount, pInfos, ppBuildRangeInfos ); } 839 void CmdBuildAccelerationStructuresIndirectKHR( uint32_t infoCount, const( VkAccelerationStructureBuildGeometryInfoKHR )* pInfos, const( VkDeviceAddress )* pIndirectDeviceAddresses, const( uint32_t )* pIndirectStrides, const( uint32_t* )* ppMaxPrimitiveCounts ) { vkCmdBuildAccelerationStructuresIndirectKHR( commandBuffer, infoCount, pInfos, pIndirectDeviceAddresses, pIndirectStrides, ppMaxPrimitiveCounts ); } 840 VkResult BuildAccelerationStructuresKHR( VkDeferredOperationKHR deferredOperation, uint32_t infoCount, const( VkAccelerationStructureBuildGeometryInfoKHR )* pInfos, const( VkAccelerationStructureBuildRangeInfoKHR* )* ppBuildRangeInfos ) { return vkBuildAccelerationStructuresKHR( vkDevice, deferredOperation, infoCount, pInfos, ppBuildRangeInfos ); } 841 VkResult CopyAccelerationStructureKHR( VkDeferredOperationKHR deferredOperation, const( VkCopyAccelerationStructureInfoKHR )* pInfo ) { return vkCopyAccelerationStructureKHR( vkDevice, deferredOperation, pInfo ); } 842 VkResult CopyAccelerationStructureToMemoryKHR( VkDeferredOperationKHR deferredOperation, const( VkCopyAccelerationStructureToMemoryInfoKHR )* pInfo ) { return vkCopyAccelerationStructureToMemoryKHR( vkDevice, deferredOperation, pInfo ); } 843 VkResult CopyMemoryToAccelerationStructureKHR( VkDeferredOperationKHR deferredOperation, const( VkCopyMemoryToAccelerationStructureInfoKHR )* pInfo ) { return vkCopyMemoryToAccelerationStructureKHR( vkDevice, deferredOperation, pInfo ); } 844 VkResult WriteAccelerationStructuresPropertiesKHR( uint32_t accelerationStructureCount, const( VkAccelerationStructureKHR )* pAccelerationStructures, VkQueryType queryType, size_t dataSize, void* pData, size_t stride ) { return vkWriteAccelerationStructuresPropertiesKHR( vkDevice, accelerationStructureCount, pAccelerationStructures, queryType, dataSize, pData, stride ); } 845 void CmdCopyAccelerationStructureKHR( const( VkCopyAccelerationStructureInfoKHR )* pInfo ) { vkCmdCopyAccelerationStructureKHR( commandBuffer, pInfo ); } 846 void CmdCopyAccelerationStructureToMemoryKHR( const( VkCopyAccelerationStructureToMemoryInfoKHR )* pInfo ) { vkCmdCopyAccelerationStructureToMemoryKHR( commandBuffer, pInfo ); } 847 void CmdCopyMemoryToAccelerationStructureKHR( const( VkCopyMemoryToAccelerationStructureInfoKHR )* pInfo ) { vkCmdCopyMemoryToAccelerationStructureKHR( commandBuffer, pInfo ); } 848 VkDeviceAddress GetAccelerationStructureDeviceAddressKHR( const( VkAccelerationStructureDeviceAddressInfoKHR )* pInfo ) { return vkGetAccelerationStructureDeviceAddressKHR( vkDevice, pInfo ); } 849 void CmdWriteAccelerationStructuresPropertiesKHR( uint32_t accelerationStructureCount, const( VkAccelerationStructureKHR )* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery ) { vkCmdWriteAccelerationStructuresPropertiesKHR( commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery ); } 850 void GetDeviceAccelerationStructureCompatibilityKHR( const( VkAccelerationStructureVersionInfoKHR )* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility ) { vkGetDeviceAccelerationStructureCompatibilityKHR( vkDevice, pVersionInfo, pCompatibility ); } 851 void GetAccelerationStructureBuildSizesKHR( VkAccelerationStructureBuildTypeKHR buildType, const( VkAccelerationStructureBuildGeometryInfoKHR )* pBuildInfo, const( uint32_t )* pMaxPrimitiveCounts, VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo ) { vkGetAccelerationStructureBuildSizesKHR( vkDevice, buildType, pBuildInfo, pMaxPrimitiveCounts, pSizeInfo ); } 852 853 // VK_KHR_ray_tracing_pipeline 854 void CmdTraceRaysKHR( const( VkStridedDeviceAddressRegionKHR )* pRaygenShaderBindingTable, const( VkStridedDeviceAddressRegionKHR )* pMissShaderBindingTable, const( VkStridedDeviceAddressRegionKHR )* pHitShaderBindingTable, const( VkStridedDeviceAddressRegionKHR )* pCallableShaderBindingTable, uint32_t width, uint32_t height, uint32_t depth ) { vkCmdTraceRaysKHR( commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, width, height, depth ); } 855 VkResult CreateRayTracingPipelinesKHR( VkDeferredOperationKHR deferredOperation, VkPipelineCache pipelineCache, uint32_t createInfoCount, const( VkRayTracingPipelineCreateInfoKHR )* pCreateInfos, VkPipeline* pPipelines ) { return vkCreateRayTracingPipelinesKHR( vkDevice, deferredOperation, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines ); } 856 VkResult GetRayTracingCaptureReplayShaderGroupHandlesKHR( VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData ) { return vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( vkDevice, pipeline, firstGroup, groupCount, dataSize, pData ); } 857 void CmdTraceRaysIndirectKHR( const( VkStridedDeviceAddressRegionKHR )* pRaygenShaderBindingTable, const( VkStridedDeviceAddressRegionKHR )* pMissShaderBindingTable, const( VkStridedDeviceAddressRegionKHR )* pHitShaderBindingTable, const( VkStridedDeviceAddressRegionKHR )* pCallableShaderBindingTable, VkDeviceAddress indirectDeviceAddress ) { vkCmdTraceRaysIndirectKHR( commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress ); } 858 VkDeviceSize GetRayTracingShaderGroupStackSizeKHR( VkPipeline pipeline, uint32_t group, VkShaderGroupShaderKHR groupShader ) { return vkGetRayTracingShaderGroupStackSizeKHR( vkDevice, pipeline, group, groupShader ); } 859 void CmdSetRayTracingPipelineStackSizeKHR( uint32_t pipelineStackSize ) { vkCmdSetRayTracingPipelineStackSizeKHR( commandBuffer, pipelineStackSize ); } 860 861 // VK_KHR_device_group 862 alias GetDeviceGroupPeerMemoryFeaturesKHR = GetDeviceGroupPeerMemoryFeatures; 863 alias CmdSetDeviceMaskKHR = CmdSetDeviceMask; 864 alias CmdDispatchBaseKHR = CmdDispatchBase; 865 866 // VK_KHR_maintenance1 867 alias TrimCommandPoolKHR = TrimCommandPool; 868 869 // VK_KHR_descriptor_update_template 870 alias CreateDescriptorUpdateTemplateKHR = CreateDescriptorUpdateTemplate; 871 alias DestroyDescriptorUpdateTemplateKHR = DestroyDescriptorUpdateTemplate; 872 alias UpdateDescriptorSetWithTemplateKHR = UpdateDescriptorSetWithTemplate; 873 874 // VK_KHR_create_renderpass2 875 alias CreateRenderPass2KHR = CreateRenderPass2; 876 alias CmdBeginRenderPass2KHR = CmdBeginRenderPass2; 877 alias CmdNextSubpass2KHR = CmdNextSubpass2; 878 alias CmdEndRenderPass2KHR = CmdEndRenderPass2; 879 880 // VK_KHR_get_memory_requirements2 881 alias GetImageMemoryRequirements2KHR = GetImageMemoryRequirements2; 882 alias GetBufferMemoryRequirements2KHR = GetBufferMemoryRequirements2; 883 alias GetImageSparseMemoryRequirements2KHR = GetImageSparseMemoryRequirements2; 884 885 // VK_KHR_sampler_ycbcr_conversion 886 alias CreateSamplerYcbcrConversionKHR = CreateSamplerYcbcrConversion; 887 alias DestroySamplerYcbcrConversionKHR = DestroySamplerYcbcrConversion; 888 889 // VK_KHR_bind_memory2 890 alias BindBufferMemory2KHR = BindBufferMemory2; 891 alias BindImageMemory2KHR = BindImageMemory2; 892 893 // VK_KHR_maintenance3 894 alias GetDescriptorSetLayoutSupportKHR = GetDescriptorSetLayoutSupport; 895 896 // VK_KHR_draw_indirect_count 897 alias CmdDrawIndirectCountKHR = CmdDrawIndirectCount; 898 alias CmdDrawIndexedIndirectCountKHR = CmdDrawIndexedIndirectCount; 899 900 // VK_KHR_timeline_semaphore 901 alias GetSemaphoreCounterValueKHR = GetSemaphoreCounterValue; 902 alias WaitSemaphoresKHR = WaitSemaphores; 903 alias SignalSemaphoreKHR = SignalSemaphore; 904 905 // VK_KHR_buffer_device_address 906 alias GetBufferDeviceAddressKHR = GetBufferDeviceAddress; 907 alias GetBufferOpaqueCaptureAddressKHR = GetBufferOpaqueCaptureAddress; 908 alias GetDeviceMemoryOpaqueCaptureAddressKHR = GetDeviceMemoryOpaqueCaptureAddress; 909 910 // VK_AMD_draw_indirect_count 911 alias CmdDrawIndirectCountAMD = CmdDrawIndirectCount; 912 alias CmdDrawIndexedIndirectCountAMD = CmdDrawIndexedIndirectCount; 913 914 // VK_NV_ray_tracing 915 alias GetRayTracingShaderGroupHandlesNV = GetRayTracingShaderGroupHandlesKHR; 916 917 // VK_EXT_buffer_device_address 918 alias GetBufferDeviceAddressEXT = GetBufferDeviceAddress; 919 920 // VK_EXT_host_query_reset 921 alias ResetQueryPoolEXT = ResetQueryPool; 922 923 924 /// member function pointer decelerations 925 926 // VK_VERSION_1_0 927 PFN_vkDestroyDevice vkDestroyDevice; 928 PFN_vkGetDeviceQueue vkGetDeviceQueue; 929 PFN_vkQueueSubmit vkQueueSubmit; 930 PFN_vkQueueWaitIdle vkQueueWaitIdle; 931 PFN_vkDeviceWaitIdle vkDeviceWaitIdle; 932 PFN_vkAllocateMemory vkAllocateMemory; 933 PFN_vkFreeMemory vkFreeMemory; 934 PFN_vkMapMemory vkMapMemory; 935 PFN_vkUnmapMemory vkUnmapMemory; 936 PFN_vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges; 937 PFN_vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges; 938 PFN_vkGetDeviceMemoryCommitment vkGetDeviceMemoryCommitment; 939 PFN_vkBindBufferMemory vkBindBufferMemory; 940 PFN_vkBindImageMemory vkBindImageMemory; 941 PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements; 942 PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements; 943 PFN_vkGetImageSparseMemoryRequirements vkGetImageSparseMemoryRequirements; 944 PFN_vkQueueBindSparse vkQueueBindSparse; 945 PFN_vkCreateFence vkCreateFence; 946 PFN_vkDestroyFence vkDestroyFence; 947 PFN_vkResetFences vkResetFences; 948 PFN_vkGetFenceStatus vkGetFenceStatus; 949 PFN_vkWaitForFences vkWaitForFences; 950 PFN_vkCreateSemaphore vkCreateSemaphore; 951 PFN_vkDestroySemaphore vkDestroySemaphore; 952 PFN_vkCreateEvent vkCreateEvent; 953 PFN_vkDestroyEvent vkDestroyEvent; 954 PFN_vkGetEventStatus vkGetEventStatus; 955 PFN_vkSetEvent vkSetEvent; 956 PFN_vkResetEvent vkResetEvent; 957 PFN_vkCreateQueryPool vkCreateQueryPool; 958 PFN_vkDestroyQueryPool vkDestroyQueryPool; 959 PFN_vkGetQueryPoolResults vkGetQueryPoolResults; 960 PFN_vkCreateBuffer vkCreateBuffer; 961 PFN_vkDestroyBuffer vkDestroyBuffer; 962 PFN_vkCreateBufferView vkCreateBufferView; 963 PFN_vkDestroyBufferView vkDestroyBufferView; 964 PFN_vkCreateImage vkCreateImage; 965 PFN_vkDestroyImage vkDestroyImage; 966 PFN_vkGetImageSubresourceLayout vkGetImageSubresourceLayout; 967 PFN_vkCreateImageView vkCreateImageView; 968 PFN_vkDestroyImageView vkDestroyImageView; 969 PFN_vkCreateShaderModule vkCreateShaderModule; 970 PFN_vkDestroyShaderModule vkDestroyShaderModule; 971 PFN_vkCreatePipelineCache vkCreatePipelineCache; 972 PFN_vkDestroyPipelineCache vkDestroyPipelineCache; 973 PFN_vkGetPipelineCacheData vkGetPipelineCacheData; 974 PFN_vkMergePipelineCaches vkMergePipelineCaches; 975 PFN_vkCreateGraphicsPipelines vkCreateGraphicsPipelines; 976 PFN_vkCreateComputePipelines vkCreateComputePipelines; 977 PFN_vkDestroyPipeline vkDestroyPipeline; 978 PFN_vkCreatePipelineLayout vkCreatePipelineLayout; 979 PFN_vkDestroyPipelineLayout vkDestroyPipelineLayout; 980 PFN_vkCreateSampler vkCreateSampler; 981 PFN_vkDestroySampler vkDestroySampler; 982 PFN_vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout; 983 PFN_vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout; 984 PFN_vkCreateDescriptorPool vkCreateDescriptorPool; 985 PFN_vkDestroyDescriptorPool vkDestroyDescriptorPool; 986 PFN_vkResetDescriptorPool vkResetDescriptorPool; 987 PFN_vkAllocateDescriptorSets vkAllocateDescriptorSets; 988 PFN_vkFreeDescriptorSets vkFreeDescriptorSets; 989 PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets; 990 PFN_vkCreateFramebuffer vkCreateFramebuffer; 991 PFN_vkDestroyFramebuffer vkDestroyFramebuffer; 992 PFN_vkCreateRenderPass vkCreateRenderPass; 993 PFN_vkDestroyRenderPass vkDestroyRenderPass; 994 PFN_vkGetRenderAreaGranularity vkGetRenderAreaGranularity; 995 PFN_vkCreateCommandPool vkCreateCommandPool; 996 PFN_vkDestroyCommandPool vkDestroyCommandPool; 997 PFN_vkResetCommandPool vkResetCommandPool; 998 PFN_vkAllocateCommandBuffers vkAllocateCommandBuffers; 999 PFN_vkFreeCommandBuffers vkFreeCommandBuffers; 1000 PFN_vkBeginCommandBuffer vkBeginCommandBuffer; 1001 PFN_vkEndCommandBuffer vkEndCommandBuffer; 1002 PFN_vkResetCommandBuffer vkResetCommandBuffer; 1003 PFN_vkCmdBindPipeline vkCmdBindPipeline; 1004 PFN_vkCmdSetViewport vkCmdSetViewport; 1005 PFN_vkCmdSetScissor vkCmdSetScissor; 1006 PFN_vkCmdSetLineWidth vkCmdSetLineWidth; 1007 PFN_vkCmdSetDepthBias vkCmdSetDepthBias; 1008 PFN_vkCmdSetBlendConstants vkCmdSetBlendConstants; 1009 PFN_vkCmdSetDepthBounds vkCmdSetDepthBounds; 1010 PFN_vkCmdSetStencilCompareMask vkCmdSetStencilCompareMask; 1011 PFN_vkCmdSetStencilWriteMask vkCmdSetStencilWriteMask; 1012 PFN_vkCmdSetStencilReference vkCmdSetStencilReference; 1013 PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets; 1014 PFN_vkCmdBindIndexBuffer vkCmdBindIndexBuffer; 1015 PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers; 1016 PFN_vkCmdDraw vkCmdDraw; 1017 PFN_vkCmdDrawIndexed vkCmdDrawIndexed; 1018 PFN_vkCmdDrawIndirect vkCmdDrawIndirect; 1019 PFN_vkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirect; 1020 PFN_vkCmdDispatch vkCmdDispatch; 1021 PFN_vkCmdDispatchIndirect vkCmdDispatchIndirect; 1022 PFN_vkCmdCopyBuffer vkCmdCopyBuffer; 1023 PFN_vkCmdCopyImage vkCmdCopyImage; 1024 PFN_vkCmdBlitImage vkCmdBlitImage; 1025 PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage; 1026 PFN_vkCmdCopyImageToBuffer vkCmdCopyImageToBuffer; 1027 PFN_vkCmdUpdateBuffer vkCmdUpdateBuffer; 1028 PFN_vkCmdFillBuffer vkCmdFillBuffer; 1029 PFN_vkCmdClearColorImage vkCmdClearColorImage; 1030 PFN_vkCmdClearDepthStencilImage vkCmdClearDepthStencilImage; 1031 PFN_vkCmdClearAttachments vkCmdClearAttachments; 1032 PFN_vkCmdResolveImage vkCmdResolveImage; 1033 PFN_vkCmdSetEvent vkCmdSetEvent; 1034 PFN_vkCmdResetEvent vkCmdResetEvent; 1035 PFN_vkCmdWaitEvents vkCmdWaitEvents; 1036 PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier; 1037 PFN_vkCmdBeginQuery vkCmdBeginQuery; 1038 PFN_vkCmdEndQuery vkCmdEndQuery; 1039 PFN_vkCmdResetQueryPool vkCmdResetQueryPool; 1040 PFN_vkCmdWriteTimestamp vkCmdWriteTimestamp; 1041 PFN_vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults; 1042 PFN_vkCmdPushConstants vkCmdPushConstants; 1043 PFN_vkCmdBeginRenderPass vkCmdBeginRenderPass; 1044 PFN_vkCmdNextSubpass vkCmdNextSubpass; 1045 PFN_vkCmdEndRenderPass vkCmdEndRenderPass; 1046 PFN_vkCmdExecuteCommands vkCmdExecuteCommands; 1047 1048 // VK_VERSION_1_1 1049 PFN_vkBindBufferMemory2 vkBindBufferMemory2; 1050 PFN_vkBindImageMemory2 vkBindImageMemory2; 1051 PFN_vkGetDeviceGroupPeerMemoryFeatures vkGetDeviceGroupPeerMemoryFeatures; 1052 PFN_vkCmdSetDeviceMask vkCmdSetDeviceMask; 1053 PFN_vkCmdDispatchBase vkCmdDispatchBase; 1054 PFN_vkGetImageMemoryRequirements2 vkGetImageMemoryRequirements2; 1055 PFN_vkGetBufferMemoryRequirements2 vkGetBufferMemoryRequirements2; 1056 PFN_vkGetImageSparseMemoryRequirements2 vkGetImageSparseMemoryRequirements2; 1057 PFN_vkTrimCommandPool vkTrimCommandPool; 1058 PFN_vkGetDeviceQueue2 vkGetDeviceQueue2; 1059 PFN_vkCreateSamplerYcbcrConversion vkCreateSamplerYcbcrConversion; 1060 PFN_vkDestroySamplerYcbcrConversion vkDestroySamplerYcbcrConversion; 1061 PFN_vkCreateDescriptorUpdateTemplate vkCreateDescriptorUpdateTemplate; 1062 PFN_vkDestroyDescriptorUpdateTemplate vkDestroyDescriptorUpdateTemplate; 1063 PFN_vkUpdateDescriptorSetWithTemplate vkUpdateDescriptorSetWithTemplate; 1064 PFN_vkGetDescriptorSetLayoutSupport vkGetDescriptorSetLayoutSupport; 1065 1066 // VK_VERSION_1_2 1067 PFN_vkCmdDrawIndirectCount vkCmdDrawIndirectCount; 1068 PFN_vkCmdDrawIndexedIndirectCount vkCmdDrawIndexedIndirectCount; 1069 PFN_vkCreateRenderPass2 vkCreateRenderPass2; 1070 PFN_vkCmdBeginRenderPass2 vkCmdBeginRenderPass2; 1071 PFN_vkCmdNextSubpass2 vkCmdNextSubpass2; 1072 PFN_vkCmdEndRenderPass2 vkCmdEndRenderPass2; 1073 PFN_vkResetQueryPool vkResetQueryPool; 1074 PFN_vkGetSemaphoreCounterValue vkGetSemaphoreCounterValue; 1075 PFN_vkWaitSemaphores vkWaitSemaphores; 1076 PFN_vkSignalSemaphore vkSignalSemaphore; 1077 PFN_vkGetBufferDeviceAddress vkGetBufferDeviceAddress; 1078 PFN_vkGetBufferOpaqueCaptureAddress vkGetBufferOpaqueCaptureAddress; 1079 PFN_vkGetDeviceMemoryOpaqueCaptureAddress vkGetDeviceMemoryOpaqueCaptureAddress; 1080 1081 // VK_KHR_swapchain 1082 PFN_vkCreateSwapchainKHR vkCreateSwapchainKHR; 1083 PFN_vkDestroySwapchainKHR vkDestroySwapchainKHR; 1084 PFN_vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR; 1085 PFN_vkAcquireNextImageKHR vkAcquireNextImageKHR; 1086 PFN_vkQueuePresentKHR vkQueuePresentKHR; 1087 PFN_vkGetDeviceGroupPresentCapabilitiesKHR vkGetDeviceGroupPresentCapabilitiesKHR; 1088 PFN_vkGetDeviceGroupSurfacePresentModesKHR vkGetDeviceGroupSurfacePresentModesKHR; 1089 PFN_vkAcquireNextImage2KHR vkAcquireNextImage2KHR; 1090 1091 // VK_KHR_display_swapchain 1092 PFN_vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR; 1093 1094 // VK_KHR_external_memory_fd 1095 PFN_vkGetMemoryFdKHR vkGetMemoryFdKHR; 1096 PFN_vkGetMemoryFdPropertiesKHR vkGetMemoryFdPropertiesKHR; 1097 1098 // VK_KHR_external_semaphore_fd 1099 PFN_vkImportSemaphoreFdKHR vkImportSemaphoreFdKHR; 1100 PFN_vkGetSemaphoreFdKHR vkGetSemaphoreFdKHR; 1101 1102 // VK_KHR_push_descriptor 1103 PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR; 1104 PFN_vkCmdPushDescriptorSetWithTemplateKHR vkCmdPushDescriptorSetWithTemplateKHR; 1105 1106 // VK_KHR_shared_presentable_image 1107 PFN_vkGetSwapchainStatusKHR vkGetSwapchainStatusKHR; 1108 1109 // VK_KHR_external_fence_fd 1110 PFN_vkImportFenceFdKHR vkImportFenceFdKHR; 1111 PFN_vkGetFenceFdKHR vkGetFenceFdKHR; 1112 1113 // VK_KHR_performance_query 1114 PFN_vkAcquireProfilingLockKHR vkAcquireProfilingLockKHR; 1115 PFN_vkReleaseProfilingLockKHR vkReleaseProfilingLockKHR; 1116 1117 // VK_KHR_fragment_shading_rate 1118 PFN_vkCmdSetFragmentShadingRateKHR vkCmdSetFragmentShadingRateKHR; 1119 1120 // VK_KHR_deferred_host_operations 1121 PFN_vkCreateDeferredOperationKHR vkCreateDeferredOperationKHR; 1122 PFN_vkDestroyDeferredOperationKHR vkDestroyDeferredOperationKHR; 1123 PFN_vkGetDeferredOperationMaxConcurrencyKHR vkGetDeferredOperationMaxConcurrencyKHR; 1124 PFN_vkGetDeferredOperationResultKHR vkGetDeferredOperationResultKHR; 1125 PFN_vkDeferredOperationJoinKHR vkDeferredOperationJoinKHR; 1126 1127 // VK_KHR_pipeline_executable_properties 1128 PFN_vkGetPipelineExecutablePropertiesKHR vkGetPipelineExecutablePropertiesKHR; 1129 PFN_vkGetPipelineExecutableStatisticsKHR vkGetPipelineExecutableStatisticsKHR; 1130 PFN_vkGetPipelineExecutableInternalRepresentationsKHR vkGetPipelineExecutableInternalRepresentationsKHR; 1131 1132 // VK_KHR_copy_commands2 1133 PFN_vkCmdCopyBuffer2KHR vkCmdCopyBuffer2KHR; 1134 PFN_vkCmdCopyImage2KHR vkCmdCopyImage2KHR; 1135 PFN_vkCmdCopyBufferToImage2KHR vkCmdCopyBufferToImage2KHR; 1136 PFN_vkCmdCopyImageToBuffer2KHR vkCmdCopyImageToBuffer2KHR; 1137 PFN_vkCmdBlitImage2KHR vkCmdBlitImage2KHR; 1138 PFN_vkCmdResolveImage2KHR vkCmdResolveImage2KHR; 1139 1140 // VK_EXT_debug_marker 1141 PFN_vkDebugMarkerSetObjectTagEXT vkDebugMarkerSetObjectTagEXT; 1142 PFN_vkDebugMarkerSetObjectNameEXT vkDebugMarkerSetObjectNameEXT; 1143 PFN_vkCmdDebugMarkerBeginEXT vkCmdDebugMarkerBeginEXT; 1144 PFN_vkCmdDebugMarkerEndEXT vkCmdDebugMarkerEndEXT; 1145 PFN_vkCmdDebugMarkerInsertEXT vkCmdDebugMarkerInsertEXT; 1146 1147 // VK_EXT_transform_feedback 1148 PFN_vkCmdBindTransformFeedbackBuffersEXT vkCmdBindTransformFeedbackBuffersEXT; 1149 PFN_vkCmdBeginTransformFeedbackEXT vkCmdBeginTransformFeedbackEXT; 1150 PFN_vkCmdEndTransformFeedbackEXT vkCmdEndTransformFeedbackEXT; 1151 PFN_vkCmdBeginQueryIndexedEXT vkCmdBeginQueryIndexedEXT; 1152 PFN_vkCmdEndQueryIndexedEXT vkCmdEndQueryIndexedEXT; 1153 PFN_vkCmdDrawIndirectByteCountEXT vkCmdDrawIndirectByteCountEXT; 1154 1155 // VK_NVX_image_view_handle 1156 PFN_vkGetImageViewHandleNVX vkGetImageViewHandleNVX; 1157 PFN_vkGetImageViewAddressNVX vkGetImageViewAddressNVX; 1158 1159 // VK_AMD_shader_info 1160 PFN_vkGetShaderInfoAMD vkGetShaderInfoAMD; 1161 1162 // VK_EXT_conditional_rendering 1163 PFN_vkCmdBeginConditionalRenderingEXT vkCmdBeginConditionalRenderingEXT; 1164 PFN_vkCmdEndConditionalRenderingEXT vkCmdEndConditionalRenderingEXT; 1165 1166 // VK_NV_clip_space_w_scaling 1167 PFN_vkCmdSetViewportWScalingNV vkCmdSetViewportWScalingNV; 1168 1169 // VK_EXT_display_control 1170 PFN_vkDisplayPowerControlEXT vkDisplayPowerControlEXT; 1171 PFN_vkRegisterDeviceEventEXT vkRegisterDeviceEventEXT; 1172 PFN_vkRegisterDisplayEventEXT vkRegisterDisplayEventEXT; 1173 PFN_vkGetSwapchainCounterEXT vkGetSwapchainCounterEXT; 1174 1175 // VK_GOOGLE_display_timing 1176 PFN_vkGetRefreshCycleDurationGOOGLE vkGetRefreshCycleDurationGOOGLE; 1177 PFN_vkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLE; 1178 1179 // VK_EXT_discard_rectangles 1180 PFN_vkCmdSetDiscardRectangleEXT vkCmdSetDiscardRectangleEXT; 1181 1182 // VK_EXT_hdr_metadata 1183 PFN_vkSetHdrMetadataEXT vkSetHdrMetadataEXT; 1184 1185 // VK_EXT_debug_utils 1186 PFN_vkSetDebugUtilsObjectNameEXT vkSetDebugUtilsObjectNameEXT; 1187 PFN_vkSetDebugUtilsObjectTagEXT vkSetDebugUtilsObjectTagEXT; 1188 PFN_vkQueueBeginDebugUtilsLabelEXT vkQueueBeginDebugUtilsLabelEXT; 1189 PFN_vkQueueEndDebugUtilsLabelEXT vkQueueEndDebugUtilsLabelEXT; 1190 PFN_vkQueueInsertDebugUtilsLabelEXT vkQueueInsertDebugUtilsLabelEXT; 1191 PFN_vkCmdBeginDebugUtilsLabelEXT vkCmdBeginDebugUtilsLabelEXT; 1192 PFN_vkCmdEndDebugUtilsLabelEXT vkCmdEndDebugUtilsLabelEXT; 1193 PFN_vkCmdInsertDebugUtilsLabelEXT vkCmdInsertDebugUtilsLabelEXT; 1194 1195 // VK_EXT_sample_locations 1196 PFN_vkCmdSetSampleLocationsEXT vkCmdSetSampleLocationsEXT; 1197 1198 // VK_EXT_image_drm_format_modifier 1199 PFN_vkGetImageDrmFormatModifierPropertiesEXT vkGetImageDrmFormatModifierPropertiesEXT; 1200 1201 // VK_EXT_validation_cache 1202 PFN_vkCreateValidationCacheEXT vkCreateValidationCacheEXT; 1203 PFN_vkDestroyValidationCacheEXT vkDestroyValidationCacheEXT; 1204 PFN_vkMergeValidationCachesEXT vkMergeValidationCachesEXT; 1205 PFN_vkGetValidationCacheDataEXT vkGetValidationCacheDataEXT; 1206 1207 // VK_NV_shading_rate_image 1208 PFN_vkCmdBindShadingRateImageNV vkCmdBindShadingRateImageNV; 1209 PFN_vkCmdSetViewportShadingRatePaletteNV vkCmdSetViewportShadingRatePaletteNV; 1210 PFN_vkCmdSetCoarseSampleOrderNV vkCmdSetCoarseSampleOrderNV; 1211 1212 // VK_NV_ray_tracing 1213 PFN_vkCreateAccelerationStructureNV vkCreateAccelerationStructureNV; 1214 PFN_vkDestroyAccelerationStructureNV vkDestroyAccelerationStructureNV; 1215 PFN_vkGetAccelerationStructureMemoryRequirementsNV vkGetAccelerationStructureMemoryRequirementsNV; 1216 PFN_vkBindAccelerationStructureMemoryNV vkBindAccelerationStructureMemoryNV; 1217 PFN_vkCmdBuildAccelerationStructureNV vkCmdBuildAccelerationStructureNV; 1218 PFN_vkCmdCopyAccelerationStructureNV vkCmdCopyAccelerationStructureNV; 1219 PFN_vkCmdTraceRaysNV vkCmdTraceRaysNV; 1220 PFN_vkCreateRayTracingPipelinesNV vkCreateRayTracingPipelinesNV; 1221 PFN_vkGetRayTracingShaderGroupHandlesKHR vkGetRayTracingShaderGroupHandlesKHR; 1222 PFN_vkGetAccelerationStructureHandleNV vkGetAccelerationStructureHandleNV; 1223 PFN_vkCmdWriteAccelerationStructuresPropertiesNV vkCmdWriteAccelerationStructuresPropertiesNV; 1224 PFN_vkCompileDeferredNV vkCompileDeferredNV; 1225 1226 // VK_EXT_external_memory_host 1227 PFN_vkGetMemoryHostPointerPropertiesEXT vkGetMemoryHostPointerPropertiesEXT; 1228 1229 // VK_AMD_buffer_marker 1230 PFN_vkCmdWriteBufferMarkerAMD vkCmdWriteBufferMarkerAMD; 1231 1232 // VK_EXT_calibrated_timestamps 1233 PFN_vkGetCalibratedTimestampsEXT vkGetCalibratedTimestampsEXT; 1234 1235 // VK_NV_mesh_shader 1236 PFN_vkCmdDrawMeshTasksNV vkCmdDrawMeshTasksNV; 1237 PFN_vkCmdDrawMeshTasksIndirectNV vkCmdDrawMeshTasksIndirectNV; 1238 PFN_vkCmdDrawMeshTasksIndirectCountNV vkCmdDrawMeshTasksIndirectCountNV; 1239 1240 // VK_NV_scissor_exclusive 1241 PFN_vkCmdSetExclusiveScissorNV vkCmdSetExclusiveScissorNV; 1242 1243 // VK_NV_device_diagnostic_checkpoints 1244 PFN_vkCmdSetCheckpointNV vkCmdSetCheckpointNV; 1245 PFN_vkGetQueueCheckpointDataNV vkGetQueueCheckpointDataNV; 1246 1247 // VK_INTEL_performance_query 1248 PFN_vkInitializePerformanceApiINTEL vkInitializePerformanceApiINTEL; 1249 PFN_vkUninitializePerformanceApiINTEL vkUninitializePerformanceApiINTEL; 1250 PFN_vkCmdSetPerformanceMarkerINTEL vkCmdSetPerformanceMarkerINTEL; 1251 PFN_vkCmdSetPerformanceStreamMarkerINTEL vkCmdSetPerformanceStreamMarkerINTEL; 1252 PFN_vkCmdSetPerformanceOverrideINTEL vkCmdSetPerformanceOverrideINTEL; 1253 PFN_vkAcquirePerformanceConfigurationINTEL vkAcquirePerformanceConfigurationINTEL; 1254 PFN_vkReleasePerformanceConfigurationINTEL vkReleasePerformanceConfigurationINTEL; 1255 PFN_vkQueueSetPerformanceConfigurationINTEL vkQueueSetPerformanceConfigurationINTEL; 1256 PFN_vkGetPerformanceParameterINTEL vkGetPerformanceParameterINTEL; 1257 1258 // VK_AMD_display_native_hdr 1259 PFN_vkSetLocalDimmingAMD vkSetLocalDimmingAMD; 1260 1261 // VK_EXT_line_rasterization 1262 PFN_vkCmdSetLineStippleEXT vkCmdSetLineStippleEXT; 1263 1264 // VK_EXT_extended_dynamic_state 1265 PFN_vkCmdSetCullModeEXT vkCmdSetCullModeEXT; 1266 PFN_vkCmdSetFrontFaceEXT vkCmdSetFrontFaceEXT; 1267 PFN_vkCmdSetPrimitiveTopologyEXT vkCmdSetPrimitiveTopologyEXT; 1268 PFN_vkCmdSetViewportWithCountEXT vkCmdSetViewportWithCountEXT; 1269 PFN_vkCmdSetScissorWithCountEXT vkCmdSetScissorWithCountEXT; 1270 PFN_vkCmdBindVertexBuffers2EXT vkCmdBindVertexBuffers2EXT; 1271 PFN_vkCmdSetDepthTestEnableEXT vkCmdSetDepthTestEnableEXT; 1272 PFN_vkCmdSetDepthWriteEnableEXT vkCmdSetDepthWriteEnableEXT; 1273 PFN_vkCmdSetDepthCompareOpEXT vkCmdSetDepthCompareOpEXT; 1274 PFN_vkCmdSetDepthBoundsTestEnableEXT vkCmdSetDepthBoundsTestEnableEXT; 1275 PFN_vkCmdSetStencilTestEnableEXT vkCmdSetStencilTestEnableEXT; 1276 PFN_vkCmdSetStencilOpEXT vkCmdSetStencilOpEXT; 1277 1278 // VK_NV_device_generated_commands 1279 PFN_vkGetGeneratedCommandsMemoryRequirementsNV vkGetGeneratedCommandsMemoryRequirementsNV; 1280 PFN_vkCmdPreprocessGeneratedCommandsNV vkCmdPreprocessGeneratedCommandsNV; 1281 PFN_vkCmdExecuteGeneratedCommandsNV vkCmdExecuteGeneratedCommandsNV; 1282 PFN_vkCmdBindPipelineShaderGroupNV vkCmdBindPipelineShaderGroupNV; 1283 PFN_vkCreateIndirectCommandsLayoutNV vkCreateIndirectCommandsLayoutNV; 1284 PFN_vkDestroyIndirectCommandsLayoutNV vkDestroyIndirectCommandsLayoutNV; 1285 1286 // VK_EXT_private_data 1287 PFN_vkCreatePrivateDataSlotEXT vkCreatePrivateDataSlotEXT; 1288 PFN_vkDestroyPrivateDataSlotEXT vkDestroyPrivateDataSlotEXT; 1289 PFN_vkSetPrivateDataEXT vkSetPrivateDataEXT; 1290 PFN_vkGetPrivateDataEXT vkGetPrivateDataEXT; 1291 1292 // VK_NV_fragment_shading_rate_enums 1293 PFN_vkCmdSetFragmentShadingRateEnumNV vkCmdSetFragmentShadingRateEnumNV; 1294 1295 // VK_KHR_acceleration_structure 1296 PFN_vkCreateAccelerationStructureKHR vkCreateAccelerationStructureKHR; 1297 PFN_vkDestroyAccelerationStructureKHR vkDestroyAccelerationStructureKHR; 1298 PFN_vkCmdBuildAccelerationStructuresKHR vkCmdBuildAccelerationStructuresKHR; 1299 PFN_vkCmdBuildAccelerationStructuresIndirectKHR vkCmdBuildAccelerationStructuresIndirectKHR; 1300 PFN_vkBuildAccelerationStructuresKHR vkBuildAccelerationStructuresKHR; 1301 PFN_vkCopyAccelerationStructureKHR vkCopyAccelerationStructureKHR; 1302 PFN_vkCopyAccelerationStructureToMemoryKHR vkCopyAccelerationStructureToMemoryKHR; 1303 PFN_vkCopyMemoryToAccelerationStructureKHR vkCopyMemoryToAccelerationStructureKHR; 1304 PFN_vkWriteAccelerationStructuresPropertiesKHR vkWriteAccelerationStructuresPropertiesKHR; 1305 PFN_vkCmdCopyAccelerationStructureKHR vkCmdCopyAccelerationStructureKHR; 1306 PFN_vkCmdCopyAccelerationStructureToMemoryKHR vkCmdCopyAccelerationStructureToMemoryKHR; 1307 PFN_vkCmdCopyMemoryToAccelerationStructureKHR vkCmdCopyMemoryToAccelerationStructureKHR; 1308 PFN_vkGetAccelerationStructureDeviceAddressKHR vkGetAccelerationStructureDeviceAddressKHR; 1309 PFN_vkCmdWriteAccelerationStructuresPropertiesKHR vkCmdWriteAccelerationStructuresPropertiesKHR; 1310 PFN_vkGetDeviceAccelerationStructureCompatibilityKHR vkGetDeviceAccelerationStructureCompatibilityKHR; 1311 PFN_vkGetAccelerationStructureBuildSizesKHR vkGetAccelerationStructureBuildSizesKHR; 1312 1313 // VK_KHR_ray_tracing_pipeline 1314 PFN_vkCmdTraceRaysKHR vkCmdTraceRaysKHR; 1315 PFN_vkCreateRayTracingPipelinesKHR vkCreateRayTracingPipelinesKHR; 1316 PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR vkGetRayTracingCaptureReplayShaderGroupHandlesKHR; 1317 PFN_vkCmdTraceRaysIndirectKHR vkCmdTraceRaysIndirectKHR; 1318 PFN_vkGetRayTracingShaderGroupStackSizeKHR vkGetRayTracingShaderGroupStackSizeKHR; 1319 PFN_vkCmdSetRayTracingPipelineStackSizeKHR vkCmdSetRayTracingPipelineStackSizeKHR; 1320 1321 // VK_KHR_device_group 1322 alias vkGetDeviceGroupPeerMemoryFeaturesKHR = vkGetDeviceGroupPeerMemoryFeatures; 1323 alias vkCmdSetDeviceMaskKHR = vkCmdSetDeviceMask; 1324 alias vkCmdDispatchBaseKHR = vkCmdDispatchBase; 1325 1326 // VK_KHR_maintenance1 1327 alias vkTrimCommandPoolKHR = vkTrimCommandPool; 1328 1329 // VK_KHR_descriptor_update_template 1330 alias vkCreateDescriptorUpdateTemplateKHR = vkCreateDescriptorUpdateTemplate; 1331 alias vkDestroyDescriptorUpdateTemplateKHR = vkDestroyDescriptorUpdateTemplate; 1332 alias vkUpdateDescriptorSetWithTemplateKHR = vkUpdateDescriptorSetWithTemplate; 1333 1334 // VK_KHR_create_renderpass2 1335 alias vkCreateRenderPass2KHR = vkCreateRenderPass2; 1336 alias vkCmdBeginRenderPass2KHR = vkCmdBeginRenderPass2; 1337 alias vkCmdNextSubpass2KHR = vkCmdNextSubpass2; 1338 alias vkCmdEndRenderPass2KHR = vkCmdEndRenderPass2; 1339 1340 // VK_KHR_get_memory_requirements2 1341 alias vkGetImageMemoryRequirements2KHR = vkGetImageMemoryRequirements2; 1342 alias vkGetBufferMemoryRequirements2KHR = vkGetBufferMemoryRequirements2; 1343 alias vkGetImageSparseMemoryRequirements2KHR = vkGetImageSparseMemoryRequirements2; 1344 1345 // VK_KHR_sampler_ycbcr_conversion 1346 alias vkCreateSamplerYcbcrConversionKHR = vkCreateSamplerYcbcrConversion; 1347 alias vkDestroySamplerYcbcrConversionKHR = vkDestroySamplerYcbcrConversion; 1348 1349 // VK_KHR_bind_memory2 1350 alias vkBindBufferMemory2KHR = vkBindBufferMemory2; 1351 alias vkBindImageMemory2KHR = vkBindImageMemory2; 1352 1353 // VK_KHR_maintenance3 1354 alias vkGetDescriptorSetLayoutSupportKHR = vkGetDescriptorSetLayoutSupport; 1355 1356 // VK_KHR_draw_indirect_count 1357 alias vkCmdDrawIndirectCountKHR = vkCmdDrawIndirectCount; 1358 alias vkCmdDrawIndexedIndirectCountKHR = vkCmdDrawIndexedIndirectCount; 1359 1360 // VK_KHR_timeline_semaphore 1361 alias vkGetSemaphoreCounterValueKHR = vkGetSemaphoreCounterValue; 1362 alias vkWaitSemaphoresKHR = vkWaitSemaphores; 1363 alias vkSignalSemaphoreKHR = vkSignalSemaphore; 1364 1365 // VK_KHR_buffer_device_address 1366 alias vkGetBufferDeviceAddressKHR = vkGetBufferDeviceAddress; 1367 alias vkGetBufferOpaqueCaptureAddressKHR = vkGetBufferOpaqueCaptureAddress; 1368 alias vkGetDeviceMemoryOpaqueCaptureAddressKHR = vkGetDeviceMemoryOpaqueCaptureAddress; 1369 1370 // VK_AMD_draw_indirect_count 1371 alias vkCmdDrawIndirectCountAMD = vkCmdDrawIndirectCount; 1372 alias vkCmdDrawIndexedIndirectCountAMD = vkCmdDrawIndexedIndirectCount; 1373 1374 // VK_NV_ray_tracing 1375 alias vkGetRayTracingShaderGroupHandlesNV = vkGetRayTracingShaderGroupHandlesKHR; 1376 1377 // VK_EXT_buffer_device_address 1378 alias vkGetBufferDeviceAddressEXT = vkGetBufferDeviceAddress; 1379 1380 // VK_EXT_host_query_reset 1381 alias vkResetQueryPoolEXT = vkResetQueryPool; 1382 } 1383