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