1 // Copyright 2018 The Android Open Source Project 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 #pragma once 15 16 #define VK_USE_PLATFORM_ANDROID_KHR 17 18 #include <vulkan/vulkan.h> 19 #include <vulkan/vk_android_native_buffer.h> 20 21 extern "C" { 22 23 struct android_vulkan_dispatch { 24 #ifdef VK_VERSION_1_0 25 PFN_vkCreateInstance vkCreateInstance; 26 PFN_vkDestroyInstance vkDestroyInstance; 27 PFN_vkEnumeratePhysicalDevices vkEnumeratePhysicalDevices; 28 PFN_vkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeatures; 29 PFN_vkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatProperties; 30 PFN_vkGetPhysicalDeviceImageFormatProperties vkGetPhysicalDeviceImageFormatProperties; 31 PFN_vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties; 32 PFN_vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties; 33 PFN_vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties; 34 PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr; 35 PFN_vkGetDeviceProcAddr vkGetDeviceProcAddr; 36 PFN_vkCreateDevice vkCreateDevice; 37 PFN_vkDestroyDevice vkDestroyDevice; 38 PFN_vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionProperties; 39 PFN_vkEnumerateDeviceExtensionProperties vkEnumerateDeviceExtensionProperties; 40 PFN_vkEnumerateInstanceLayerProperties vkEnumerateInstanceLayerProperties; 41 PFN_vkEnumerateDeviceLayerProperties vkEnumerateDeviceLayerProperties; 42 PFN_vkGetDeviceQueue vkGetDeviceQueue; 43 PFN_vkQueueSubmit vkQueueSubmit; 44 PFN_vkQueueWaitIdle vkQueueWaitIdle; 45 PFN_vkDeviceWaitIdle vkDeviceWaitIdle; 46 PFN_vkAllocateMemory vkAllocateMemory; 47 PFN_vkFreeMemory vkFreeMemory; 48 PFN_vkMapMemory vkMapMemory; 49 PFN_vkUnmapMemory vkUnmapMemory; 50 PFN_vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges; 51 PFN_vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges; 52 PFN_vkGetDeviceMemoryCommitment vkGetDeviceMemoryCommitment; 53 PFN_vkBindBufferMemory vkBindBufferMemory; 54 PFN_vkBindImageMemory vkBindImageMemory; 55 PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements; 56 PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements; 57 PFN_vkGetImageSparseMemoryRequirements vkGetImageSparseMemoryRequirements; 58 PFN_vkGetPhysicalDeviceSparseImageFormatProperties vkGetPhysicalDeviceSparseImageFormatProperties; 59 PFN_vkQueueBindSparse vkQueueBindSparse; 60 PFN_vkCreateFence vkCreateFence; 61 PFN_vkDestroyFence vkDestroyFence; 62 PFN_vkResetFences vkResetFences; 63 PFN_vkGetFenceStatus vkGetFenceStatus; 64 PFN_vkWaitForFences vkWaitForFences; 65 PFN_vkCreateSemaphore vkCreateSemaphore; 66 PFN_vkDestroySemaphore vkDestroySemaphore; 67 PFN_vkCreateEvent vkCreateEvent; 68 PFN_vkDestroyEvent vkDestroyEvent; 69 PFN_vkGetEventStatus vkGetEventStatus; 70 PFN_vkSetEvent vkSetEvent; 71 PFN_vkResetEvent vkResetEvent; 72 PFN_vkCreateQueryPool vkCreateQueryPool; 73 PFN_vkDestroyQueryPool vkDestroyQueryPool; 74 PFN_vkGetQueryPoolResults vkGetQueryPoolResults; 75 PFN_vkCreateBuffer vkCreateBuffer; 76 PFN_vkDestroyBuffer vkDestroyBuffer; 77 PFN_vkCreateBufferView vkCreateBufferView; 78 PFN_vkDestroyBufferView vkDestroyBufferView; 79 PFN_vkCreateImage vkCreateImage; 80 PFN_vkDestroyImage vkDestroyImage; 81 PFN_vkGetImageSubresourceLayout vkGetImageSubresourceLayout; 82 PFN_vkCreateImageView vkCreateImageView; 83 PFN_vkDestroyImageView vkDestroyImageView; 84 PFN_vkCreateShaderModule vkCreateShaderModule; 85 PFN_vkDestroyShaderModule vkDestroyShaderModule; 86 PFN_vkCreatePipelineCache vkCreatePipelineCache; 87 PFN_vkDestroyPipelineCache vkDestroyPipelineCache; 88 PFN_vkGetPipelineCacheData vkGetPipelineCacheData; 89 PFN_vkMergePipelineCaches vkMergePipelineCaches; 90 PFN_vkCreateGraphicsPipelines vkCreateGraphicsPipelines; 91 PFN_vkCreateComputePipelines vkCreateComputePipelines; 92 PFN_vkDestroyPipeline vkDestroyPipeline; 93 PFN_vkCreatePipelineLayout vkCreatePipelineLayout; 94 PFN_vkDestroyPipelineLayout vkDestroyPipelineLayout; 95 PFN_vkCreateSampler vkCreateSampler; 96 PFN_vkDestroySampler vkDestroySampler; 97 PFN_vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout; 98 PFN_vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout; 99 PFN_vkCreateDescriptorPool vkCreateDescriptorPool; 100 PFN_vkDestroyDescriptorPool vkDestroyDescriptorPool; 101 PFN_vkResetDescriptorPool vkResetDescriptorPool; 102 PFN_vkAllocateDescriptorSets vkAllocateDescriptorSets; 103 PFN_vkFreeDescriptorSets vkFreeDescriptorSets; 104 PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets; 105 PFN_vkCreateFramebuffer vkCreateFramebuffer; 106 PFN_vkDestroyFramebuffer vkDestroyFramebuffer; 107 PFN_vkCreateRenderPass vkCreateRenderPass; 108 PFN_vkDestroyRenderPass vkDestroyRenderPass; 109 PFN_vkGetRenderAreaGranularity vkGetRenderAreaGranularity; 110 PFN_vkCreateCommandPool vkCreateCommandPool; 111 PFN_vkDestroyCommandPool vkDestroyCommandPool; 112 PFN_vkResetCommandPool vkResetCommandPool; 113 PFN_vkAllocateCommandBuffers vkAllocateCommandBuffers; 114 PFN_vkFreeCommandBuffers vkFreeCommandBuffers; 115 PFN_vkBeginCommandBuffer vkBeginCommandBuffer; 116 PFN_vkEndCommandBuffer vkEndCommandBuffer; 117 PFN_vkResetCommandBuffer vkResetCommandBuffer; 118 PFN_vkCmdBindPipeline vkCmdBindPipeline; 119 PFN_vkCmdSetViewport vkCmdSetViewport; 120 PFN_vkCmdSetScissor vkCmdSetScissor; 121 PFN_vkCmdSetLineWidth vkCmdSetLineWidth; 122 PFN_vkCmdSetDepthBias vkCmdSetDepthBias; 123 PFN_vkCmdSetBlendConstants vkCmdSetBlendConstants; 124 PFN_vkCmdSetDepthBounds vkCmdSetDepthBounds; 125 PFN_vkCmdSetStencilCompareMask vkCmdSetStencilCompareMask; 126 PFN_vkCmdSetStencilWriteMask vkCmdSetStencilWriteMask; 127 PFN_vkCmdSetStencilReference vkCmdSetStencilReference; 128 PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets; 129 PFN_vkCmdBindIndexBuffer vkCmdBindIndexBuffer; 130 PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers; 131 PFN_vkCmdDraw vkCmdDraw; 132 PFN_vkCmdDrawIndexed vkCmdDrawIndexed; 133 PFN_vkCmdDrawIndirect vkCmdDrawIndirect; 134 PFN_vkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirect; 135 PFN_vkCmdDispatch vkCmdDispatch; 136 PFN_vkCmdDispatchIndirect vkCmdDispatchIndirect; 137 PFN_vkCmdCopyBuffer vkCmdCopyBuffer; 138 PFN_vkCmdCopyImage vkCmdCopyImage; 139 PFN_vkCmdBlitImage vkCmdBlitImage; 140 PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage; 141 PFN_vkCmdCopyImageToBuffer vkCmdCopyImageToBuffer; 142 PFN_vkCmdUpdateBuffer vkCmdUpdateBuffer; 143 PFN_vkCmdFillBuffer vkCmdFillBuffer; 144 PFN_vkCmdClearColorImage vkCmdClearColorImage; 145 PFN_vkCmdClearDepthStencilImage vkCmdClearDepthStencilImage; 146 PFN_vkCmdClearAttachments vkCmdClearAttachments; 147 PFN_vkCmdResolveImage vkCmdResolveImage; 148 PFN_vkCmdSetEvent vkCmdSetEvent; 149 PFN_vkCmdResetEvent vkCmdResetEvent; 150 PFN_vkCmdWaitEvents vkCmdWaitEvents; 151 PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier; 152 PFN_vkCmdBeginQuery vkCmdBeginQuery; 153 PFN_vkCmdEndQuery vkCmdEndQuery; 154 PFN_vkCmdResetQueryPool vkCmdResetQueryPool; 155 PFN_vkCmdWriteTimestamp vkCmdWriteTimestamp; 156 PFN_vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults; 157 PFN_vkCmdPushConstants vkCmdPushConstants; 158 PFN_vkCmdBeginRenderPass vkCmdBeginRenderPass; 159 PFN_vkCmdNextSubpass vkCmdNextSubpass; 160 PFN_vkCmdEndRenderPass vkCmdEndRenderPass; 161 PFN_vkCmdExecuteCommands vkCmdExecuteCommands; 162 #endif 163 #ifdef VK_VERSION_1_1 164 PFN_vkEnumerateInstanceVersion vkEnumerateInstanceVersion; 165 PFN_vkBindBufferMemory2 vkBindBufferMemory2; 166 PFN_vkBindImageMemory2 vkBindImageMemory2; 167 PFN_vkGetDeviceGroupPeerMemoryFeatures vkGetDeviceGroupPeerMemoryFeatures; 168 PFN_vkCmdSetDeviceMask vkCmdSetDeviceMask; 169 PFN_vkCmdDispatchBase vkCmdDispatchBase; 170 PFN_vkEnumeratePhysicalDeviceGroups vkEnumeratePhysicalDeviceGroups; 171 PFN_vkGetImageMemoryRequirements2 vkGetImageMemoryRequirements2; 172 PFN_vkGetBufferMemoryRequirements2 vkGetBufferMemoryRequirements2; 173 PFN_vkGetImageSparseMemoryRequirements2 vkGetImageSparseMemoryRequirements2; 174 PFN_vkGetPhysicalDeviceFeatures2 vkGetPhysicalDeviceFeatures2; 175 PFN_vkGetPhysicalDeviceProperties2 vkGetPhysicalDeviceProperties2; 176 PFN_vkGetPhysicalDeviceFormatProperties2 vkGetPhysicalDeviceFormatProperties2; 177 PFN_vkGetPhysicalDeviceImageFormatProperties2 vkGetPhysicalDeviceImageFormatProperties2; 178 PFN_vkGetPhysicalDeviceQueueFamilyProperties2 vkGetPhysicalDeviceQueueFamilyProperties2; 179 PFN_vkGetPhysicalDeviceMemoryProperties2 vkGetPhysicalDeviceMemoryProperties2; 180 PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 vkGetPhysicalDeviceSparseImageFormatProperties2; 181 PFN_vkTrimCommandPool vkTrimCommandPool; 182 PFN_vkGetDeviceQueue2 vkGetDeviceQueue2; 183 PFN_vkCreateSamplerYcbcrConversion vkCreateSamplerYcbcrConversion; 184 PFN_vkDestroySamplerYcbcrConversion vkDestroySamplerYcbcrConversion; 185 PFN_vkCreateDescriptorUpdateTemplate vkCreateDescriptorUpdateTemplate; 186 PFN_vkDestroyDescriptorUpdateTemplate vkDestroyDescriptorUpdateTemplate; 187 PFN_vkUpdateDescriptorSetWithTemplate vkUpdateDescriptorSetWithTemplate; 188 PFN_vkGetPhysicalDeviceExternalBufferProperties vkGetPhysicalDeviceExternalBufferProperties; 189 PFN_vkGetPhysicalDeviceExternalFenceProperties vkGetPhysicalDeviceExternalFenceProperties; 190 PFN_vkGetPhysicalDeviceExternalSemaphoreProperties vkGetPhysicalDeviceExternalSemaphoreProperties; 191 PFN_vkGetDescriptorSetLayoutSupport vkGetDescriptorSetLayoutSupport; 192 #endif 193 #ifdef VK_KHR_surface 194 PFN_vkDestroySurfaceKHR vkDestroySurfaceKHR; 195 PFN_vkGetPhysicalDeviceSurfaceSupportKHR vkGetPhysicalDeviceSurfaceSupportKHR; 196 PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR; 197 PFN_vkGetPhysicalDeviceSurfaceFormatsKHR vkGetPhysicalDeviceSurfaceFormatsKHR; 198 PFN_vkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModesKHR; 199 #endif 200 #ifdef VK_KHR_swapchain 201 PFN_vkCreateSwapchainKHR vkCreateSwapchainKHR; 202 PFN_vkDestroySwapchainKHR vkDestroySwapchainKHR; 203 PFN_vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR; 204 PFN_vkAcquireNextImageKHR vkAcquireNextImageKHR; 205 PFN_vkQueuePresentKHR vkQueuePresentKHR; 206 PFN_vkGetDeviceGroupPresentCapabilitiesKHR vkGetDeviceGroupPresentCapabilitiesKHR; 207 PFN_vkGetDeviceGroupSurfacePresentModesKHR vkGetDeviceGroupSurfacePresentModesKHR; 208 PFN_vkGetPhysicalDevicePresentRectanglesKHR vkGetPhysicalDevicePresentRectanglesKHR; 209 PFN_vkAcquireNextImage2KHR vkAcquireNextImage2KHR; 210 #endif 211 #ifdef VK_KHR_display 212 PFN_vkGetPhysicalDeviceDisplayPropertiesKHR vkGetPhysicalDeviceDisplayPropertiesKHR; 213 PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHR; 214 PFN_vkGetDisplayPlaneSupportedDisplaysKHR vkGetDisplayPlaneSupportedDisplaysKHR; 215 PFN_vkGetDisplayModePropertiesKHR vkGetDisplayModePropertiesKHR; 216 PFN_vkCreateDisplayModeKHR vkCreateDisplayModeKHR; 217 PFN_vkGetDisplayPlaneCapabilitiesKHR vkGetDisplayPlaneCapabilitiesKHR; 218 PFN_vkCreateDisplayPlaneSurfaceKHR vkCreateDisplayPlaneSurfaceKHR; 219 #endif 220 #ifdef VK_KHR_display_swapchain 221 PFN_vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR; 222 #endif 223 #ifdef VK_KHR_xlib_surface 224 PFN_vkCreateXlibSurfaceKHR vkCreateXlibSurfaceKHR; 225 PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR vkGetPhysicalDeviceXlibPresentationSupportKHR; 226 #endif 227 #ifdef VK_KHR_xcb_surface 228 PFN_vkCreateXcbSurfaceKHR vkCreateXcbSurfaceKHR; 229 PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR vkGetPhysicalDeviceXcbPresentationSupportKHR; 230 #endif 231 #ifdef VK_KHR_wayland_surface 232 PFN_vkCreateWaylandSurfaceKHR vkCreateWaylandSurfaceKHR; 233 PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR vkGetPhysicalDeviceWaylandPresentationSupportKHR; 234 #endif 235 #ifdef VK_KHR_mir_surface 236 PFN_vkCreateMirSurfaceKHR vkCreateMirSurfaceKHR; 237 PFN_vkGetPhysicalDeviceMirPresentationSupportKHR vkGetPhysicalDeviceMirPresentationSupportKHR; 238 #endif 239 #ifdef VK_KHR_android_surface 240 PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR; 241 #endif 242 #ifdef VK_KHR_win32_surface 243 PFN_vkCreateWin32SurfaceKHR vkCreateWin32SurfaceKHR; 244 PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR vkGetPhysicalDeviceWin32PresentationSupportKHR; 245 #endif 246 #ifdef VK_KHR_sampler_mirror_clamp_to_edge 247 #endif 248 #ifdef VK_KHR_multiview 249 #endif 250 #ifdef VK_KHR_get_physical_device_properties2 251 PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR; 252 PFN_vkGetPhysicalDeviceProperties2KHR vkGetPhysicalDeviceProperties2KHR; 253 PFN_vkGetPhysicalDeviceFormatProperties2KHR vkGetPhysicalDeviceFormatProperties2KHR; 254 PFN_vkGetPhysicalDeviceImageFormatProperties2KHR vkGetPhysicalDeviceImageFormatProperties2KHR; 255 PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR vkGetPhysicalDeviceQueueFamilyProperties2KHR; 256 PFN_vkGetPhysicalDeviceMemoryProperties2KHR vkGetPhysicalDeviceMemoryProperties2KHR; 257 PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR vkGetPhysicalDeviceSparseImageFormatProperties2KHR; 258 #endif 259 #ifdef VK_KHR_device_group 260 PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR vkGetDeviceGroupPeerMemoryFeaturesKHR; 261 PFN_vkCmdSetDeviceMaskKHR vkCmdSetDeviceMaskKHR; 262 PFN_vkCmdDispatchBaseKHR vkCmdDispatchBaseKHR; 263 #endif 264 #ifdef VK_KHR_shader_draw_parameters 265 #endif 266 #ifdef VK_KHR_maintenance1 267 PFN_vkTrimCommandPoolKHR vkTrimCommandPoolKHR; 268 #endif 269 #ifdef VK_KHR_device_group_creation 270 PFN_vkEnumeratePhysicalDeviceGroupsKHR vkEnumeratePhysicalDeviceGroupsKHR; 271 #endif 272 #ifdef VK_KHR_external_memory_capabilities 273 PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR vkGetPhysicalDeviceExternalBufferPropertiesKHR; 274 #endif 275 #ifdef VK_KHR_external_memory 276 #endif 277 #ifdef VK_KHR_external_memory_win32 278 PFN_vkGetMemoryWin32HandleKHR vkGetMemoryWin32HandleKHR; 279 PFN_vkGetMemoryWin32HandlePropertiesKHR vkGetMemoryWin32HandlePropertiesKHR; 280 #endif 281 #ifdef VK_KHR_external_memory_fd 282 PFN_vkGetMemoryFdKHR vkGetMemoryFdKHR; 283 PFN_vkGetMemoryFdPropertiesKHR vkGetMemoryFdPropertiesKHR; 284 #endif 285 #ifdef VK_KHR_win32_keyed_mutex 286 #endif 287 #ifdef VK_KHR_external_semaphore_capabilities 288 PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR vkGetPhysicalDeviceExternalSemaphorePropertiesKHR; 289 #endif 290 #ifdef VK_KHR_external_semaphore 291 #endif 292 #ifdef VK_KHR_external_semaphore_win32 293 PFN_vkImportSemaphoreWin32HandleKHR vkImportSemaphoreWin32HandleKHR; 294 PFN_vkGetSemaphoreWin32HandleKHR vkGetSemaphoreWin32HandleKHR; 295 #endif 296 #ifdef VK_KHR_external_semaphore_fd 297 PFN_vkImportSemaphoreFdKHR vkImportSemaphoreFdKHR; 298 PFN_vkGetSemaphoreFdKHR vkGetSemaphoreFdKHR; 299 #endif 300 #ifdef VK_KHR_push_descriptor 301 PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR; 302 PFN_vkCmdPushDescriptorSetWithTemplateKHR vkCmdPushDescriptorSetWithTemplateKHR; 303 #endif 304 #ifdef VK_KHR_16bit_storage 305 #endif 306 #ifdef VK_KHR_incremental_present 307 #endif 308 #ifdef VK_KHR_descriptor_update_template 309 PFN_vkCreateDescriptorUpdateTemplateKHR vkCreateDescriptorUpdateTemplateKHR; 310 PFN_vkDestroyDescriptorUpdateTemplateKHR vkDestroyDescriptorUpdateTemplateKHR; 311 PFN_vkUpdateDescriptorSetWithTemplateKHR vkUpdateDescriptorSetWithTemplateKHR; 312 #endif 313 #ifdef VK_KHR_create_renderpass2 314 PFN_vkCreateRenderPass2KHR vkCreateRenderPass2KHR; 315 PFN_vkCmdBeginRenderPass2KHR vkCmdBeginRenderPass2KHR; 316 PFN_vkCmdNextSubpass2KHR vkCmdNextSubpass2KHR; 317 PFN_vkCmdEndRenderPass2KHR vkCmdEndRenderPass2KHR; 318 #endif 319 #ifdef VK_KHR_shared_presentable_image 320 PFN_vkGetSwapchainStatusKHR vkGetSwapchainStatusKHR; 321 #endif 322 #ifdef VK_KHR_external_fence_capabilities 323 PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR vkGetPhysicalDeviceExternalFencePropertiesKHR; 324 #endif 325 #ifdef VK_KHR_external_fence 326 #endif 327 #ifdef VK_KHR_external_fence_win32 328 PFN_vkImportFenceWin32HandleKHR vkImportFenceWin32HandleKHR; 329 PFN_vkGetFenceWin32HandleKHR vkGetFenceWin32HandleKHR; 330 #endif 331 #ifdef VK_KHR_external_fence_fd 332 PFN_vkImportFenceFdKHR vkImportFenceFdKHR; 333 PFN_vkGetFenceFdKHR vkGetFenceFdKHR; 334 #endif 335 #ifdef VK_KHR_maintenance2 336 #endif 337 #ifdef VK_KHR_get_surface_capabilities2 338 PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR vkGetPhysicalDeviceSurfaceCapabilities2KHR; 339 PFN_vkGetPhysicalDeviceSurfaceFormats2KHR vkGetPhysicalDeviceSurfaceFormats2KHR; 340 #endif 341 #ifdef VK_KHR_variable_pointers 342 #endif 343 #ifdef VK_KHR_get_display_properties2 344 PFN_vkGetPhysicalDeviceDisplayProperties2KHR vkGetPhysicalDeviceDisplayProperties2KHR; 345 PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR vkGetPhysicalDeviceDisplayPlaneProperties2KHR; 346 PFN_vkGetDisplayModeProperties2KHR vkGetDisplayModeProperties2KHR; 347 PFN_vkGetDisplayPlaneCapabilities2KHR vkGetDisplayPlaneCapabilities2KHR; 348 #endif 349 #ifdef VK_KHR_dedicated_allocation 350 #endif 351 #ifdef VK_KHR_storage_buffer_storage_class 352 #endif 353 #ifdef VK_KHR_relaxed_block_layout 354 #endif 355 #ifdef VK_KHR_get_memory_requirements2 356 PFN_vkGetImageMemoryRequirements2KHR vkGetImageMemoryRequirements2KHR; 357 PFN_vkGetBufferMemoryRequirements2KHR vkGetBufferMemoryRequirements2KHR; 358 PFN_vkGetImageSparseMemoryRequirements2KHR vkGetImageSparseMemoryRequirements2KHR; 359 #endif 360 #ifdef VK_KHR_image_format_list 361 #endif 362 #ifdef VK_KHR_sampler_ycbcr_conversion 363 PFN_vkCreateSamplerYcbcrConversionKHR vkCreateSamplerYcbcrConversionKHR; 364 PFN_vkDestroySamplerYcbcrConversionKHR vkDestroySamplerYcbcrConversionKHR; 365 #endif 366 #ifdef VK_KHR_bind_memory2 367 PFN_vkBindBufferMemory2KHR vkBindBufferMemory2KHR; 368 PFN_vkBindImageMemory2KHR vkBindImageMemory2KHR; 369 #endif 370 #ifdef VK_KHR_maintenance3 371 PFN_vkGetDescriptorSetLayoutSupportKHR vkGetDescriptorSetLayoutSupportKHR; 372 #endif 373 #ifdef VK_KHR_draw_indirect_count 374 PFN_vkCmdDrawIndirectCountKHR vkCmdDrawIndirectCountKHR; 375 PFN_vkCmdDrawIndexedIndirectCountKHR vkCmdDrawIndexedIndirectCountKHR; 376 #endif 377 #ifdef VK_KHR_8bit_storage 378 #endif 379 #ifdef VK_ANDROID_native_buffer 380 PFN_vkGetSwapchainGrallocUsageANDROID vkGetSwapchainGrallocUsageANDROID; 381 PFN_vkAcquireImageANDROID vkAcquireImageANDROID; 382 PFN_vkQueueSignalReleaseImageANDROID vkQueueSignalReleaseImageANDROID; 383 #endif 384 #ifdef VK_EXT_debug_report 385 PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT; 386 PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT; 387 PFN_vkDebugReportMessageEXT vkDebugReportMessageEXT; 388 #endif 389 #ifdef VK_NV_glsl_shader 390 #endif 391 #ifdef VK_EXT_depth_range_unrestricted 392 #endif 393 #ifdef VK_IMG_filter_cubic 394 #endif 395 #ifdef VK_AMD_rasterization_order 396 #endif 397 #ifdef VK_AMD_shader_trinary_minmax 398 #endif 399 #ifdef VK_AMD_shader_explicit_vertex_parameter 400 #endif 401 #ifdef VK_EXT_debug_marker 402 PFN_vkDebugMarkerSetObjectTagEXT vkDebugMarkerSetObjectTagEXT; 403 PFN_vkDebugMarkerSetObjectNameEXT vkDebugMarkerSetObjectNameEXT; 404 PFN_vkCmdDebugMarkerBeginEXT vkCmdDebugMarkerBeginEXT; 405 PFN_vkCmdDebugMarkerEndEXT vkCmdDebugMarkerEndEXT; 406 PFN_vkCmdDebugMarkerInsertEXT vkCmdDebugMarkerInsertEXT; 407 #endif 408 #ifdef VK_AMD_gcn_shader 409 #endif 410 #ifdef VK_NV_dedicated_allocation 411 #endif 412 #ifdef VK_AMD_draw_indirect_count 413 PFN_vkCmdDrawIndirectCountAMD vkCmdDrawIndirectCountAMD; 414 PFN_vkCmdDrawIndexedIndirectCountAMD vkCmdDrawIndexedIndirectCountAMD; 415 #endif 416 #ifdef VK_AMD_negative_viewport_height 417 #endif 418 #ifdef VK_AMD_gpu_shader_half_float 419 #endif 420 #ifdef VK_AMD_shader_ballot 421 #endif 422 #ifdef VK_AMD_texture_gather_bias_lod 423 #endif 424 #ifdef VK_AMD_shader_info 425 PFN_vkGetShaderInfoAMD vkGetShaderInfoAMD; 426 #endif 427 #ifdef VK_AMD_shader_image_load_store_lod 428 #endif 429 #ifdef VK_IMG_format_pvrtc 430 #endif 431 #ifdef VK_NV_external_memory_capabilities 432 PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV vkGetPhysicalDeviceExternalImageFormatPropertiesNV; 433 #endif 434 #ifdef VK_NV_external_memory 435 #endif 436 #ifdef VK_NV_external_memory_win32 437 PFN_vkGetMemoryWin32HandleNV vkGetMemoryWin32HandleNV; 438 #endif 439 #ifdef VK_NV_win32_keyed_mutex 440 #endif 441 #ifdef VK_EXT_validation_flags 442 #endif 443 #ifdef VK_NN_vi_surface 444 PFN_vkCreateViSurfaceNN vkCreateViSurfaceNN; 445 #endif 446 #ifdef VK_EXT_shader_subgroup_ballot 447 #endif 448 #ifdef VK_EXT_shader_subgroup_vote 449 #endif 450 #ifdef VK_EXT_conditional_rendering 451 PFN_vkCmdBeginConditionalRenderingEXT vkCmdBeginConditionalRenderingEXT; 452 PFN_vkCmdEndConditionalRenderingEXT vkCmdEndConditionalRenderingEXT; 453 #endif 454 #ifdef VK_NVX_device_generated_commands 455 PFN_vkCmdProcessCommandsNVX vkCmdProcessCommandsNVX; 456 PFN_vkCmdReserveSpaceForCommandsNVX vkCmdReserveSpaceForCommandsNVX; 457 PFN_vkCreateIndirectCommandsLayoutNVX vkCreateIndirectCommandsLayoutNVX; 458 PFN_vkDestroyIndirectCommandsLayoutNVX vkDestroyIndirectCommandsLayoutNVX; 459 PFN_vkCreateObjectTableNVX vkCreateObjectTableNVX; 460 PFN_vkDestroyObjectTableNVX vkDestroyObjectTableNVX; 461 PFN_vkRegisterObjectsNVX vkRegisterObjectsNVX; 462 PFN_vkUnregisterObjectsNVX vkUnregisterObjectsNVX; 463 PFN_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX; 464 #endif 465 #ifdef VK_NV_clip_space_w_scaling 466 PFN_vkCmdSetViewportWScalingNV vkCmdSetViewportWScalingNV; 467 #endif 468 #ifdef VK_EXT_direct_mode_display 469 PFN_vkReleaseDisplayEXT vkReleaseDisplayEXT; 470 #endif 471 #ifdef VK_EXT_acquire_xlib_display 472 PFN_vkAcquireXlibDisplayEXT vkAcquireXlibDisplayEXT; 473 PFN_vkGetRandROutputDisplayEXT vkGetRandROutputDisplayEXT; 474 #endif 475 #ifdef VK_EXT_display_surface_counter 476 PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT vkGetPhysicalDeviceSurfaceCapabilities2EXT; 477 #endif 478 #ifdef VK_EXT_display_control 479 PFN_vkDisplayPowerControlEXT vkDisplayPowerControlEXT; 480 PFN_vkRegisterDeviceEventEXT vkRegisterDeviceEventEXT; 481 PFN_vkRegisterDisplayEventEXT vkRegisterDisplayEventEXT; 482 PFN_vkGetSwapchainCounterEXT vkGetSwapchainCounterEXT; 483 #endif 484 #ifdef VK_GOOGLE_display_timing 485 PFN_vkGetRefreshCycleDurationGOOGLE vkGetRefreshCycleDurationGOOGLE; 486 PFN_vkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLE; 487 #endif 488 #ifdef VK_NV_sample_mask_override_coverage 489 #endif 490 #ifdef VK_NV_geometry_shader_passthrough 491 #endif 492 #ifdef VK_NV_viewport_array2 493 #endif 494 #ifdef VK_NVX_multiview_per_view_attributes 495 #endif 496 #ifdef VK_NV_viewport_swizzle 497 #endif 498 #ifdef VK_EXT_discard_rectangles 499 PFN_vkCmdSetDiscardRectangleEXT vkCmdSetDiscardRectangleEXT; 500 #endif 501 #ifdef VK_EXT_conservative_rasterization 502 #endif 503 #ifdef VK_EXT_swapchain_colorspace 504 #endif 505 #ifdef VK_EXT_hdr_metadata 506 PFN_vkSetHdrMetadataEXT vkSetHdrMetadataEXT; 507 #endif 508 #ifdef VK_MVK_ios_surface 509 PFN_vkCreateIOSSurfaceMVK vkCreateIOSSurfaceMVK; 510 #endif 511 #ifdef VK_MVK_macos_surface 512 PFN_vkCreateMacOSSurfaceMVK vkCreateMacOSSurfaceMVK; 513 #endif 514 #ifdef VK_EXT_external_memory_dma_buf 515 #endif 516 #ifdef VK_EXT_queue_family_foreign 517 #endif 518 #ifdef VK_EXT_debug_utils 519 PFN_vkSetDebugUtilsObjectNameEXT vkSetDebugUtilsObjectNameEXT; 520 PFN_vkSetDebugUtilsObjectTagEXT vkSetDebugUtilsObjectTagEXT; 521 PFN_vkQueueBeginDebugUtilsLabelEXT vkQueueBeginDebugUtilsLabelEXT; 522 PFN_vkQueueEndDebugUtilsLabelEXT vkQueueEndDebugUtilsLabelEXT; 523 PFN_vkQueueInsertDebugUtilsLabelEXT vkQueueInsertDebugUtilsLabelEXT; 524 PFN_vkCmdBeginDebugUtilsLabelEXT vkCmdBeginDebugUtilsLabelEXT; 525 PFN_vkCmdEndDebugUtilsLabelEXT vkCmdEndDebugUtilsLabelEXT; 526 PFN_vkCmdInsertDebugUtilsLabelEXT vkCmdInsertDebugUtilsLabelEXT; 527 PFN_vkCreateDebugUtilsMessengerEXT vkCreateDebugUtilsMessengerEXT; 528 PFN_vkDestroyDebugUtilsMessengerEXT vkDestroyDebugUtilsMessengerEXT; 529 PFN_vkSubmitDebugUtilsMessageEXT vkSubmitDebugUtilsMessageEXT; 530 #endif 531 #ifdef VK_ANDROID_external_memory_android_hardware_buffer 532 PFN_vkGetAndroidHardwareBufferPropertiesANDROID vkGetAndroidHardwareBufferPropertiesANDROID; 533 PFN_vkGetMemoryAndroidHardwareBufferANDROID vkGetMemoryAndroidHardwareBufferANDROID; 534 #endif 535 #ifdef VK_EXT_sampler_filter_minmax 536 #endif 537 #ifdef VK_AMD_gpu_shader_int16 538 #endif 539 #ifdef VK_AMD_mixed_attachment_samples 540 #endif 541 #ifdef VK_AMD_shader_fragment_mask 542 #endif 543 #ifdef VK_EXT_shader_stencil_export 544 #endif 545 #ifdef VK_EXT_sample_locations 546 PFN_vkCmdSetSampleLocationsEXT vkCmdSetSampleLocationsEXT; 547 PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT vkGetPhysicalDeviceMultisamplePropertiesEXT; 548 #endif 549 #ifdef VK_EXT_blend_operation_advanced 550 #endif 551 #ifdef VK_NV_fragment_coverage_to_color 552 #endif 553 #ifdef VK_NV_framebuffer_mixed_samples 554 #endif 555 #ifdef VK_NV_fill_rectangle 556 #endif 557 #ifdef VK_EXT_post_depth_coverage 558 #endif 559 #ifdef VK_EXT_validation_cache 560 PFN_vkCreateValidationCacheEXT vkCreateValidationCacheEXT; 561 PFN_vkDestroyValidationCacheEXT vkDestroyValidationCacheEXT; 562 PFN_vkMergeValidationCachesEXT vkMergeValidationCachesEXT; 563 PFN_vkGetValidationCacheDataEXT vkGetValidationCacheDataEXT; 564 #endif 565 #ifdef VK_EXT_descriptor_indexing 566 #endif 567 #ifdef VK_EXT_shader_viewport_index_layer 568 #endif 569 #ifdef VK_EXT_global_priority 570 #endif 571 #ifdef VK_EXT_external_memory_host 572 PFN_vkGetMemoryHostPointerPropertiesEXT vkGetMemoryHostPointerPropertiesEXT; 573 #endif 574 #ifdef VK_AMD_buffer_marker 575 PFN_vkCmdWriteBufferMarkerAMD vkCmdWriteBufferMarkerAMD; 576 #endif 577 #ifdef VK_AMD_shader_core_properties 578 #endif 579 #ifdef VK_EXT_vertex_attribute_divisor 580 #endif 581 #ifdef VK_NV_shader_subgroup_partitioned 582 #endif 583 #ifdef VK_NV_device_diagnostic_checkpoints 584 PFN_vkCmdSetCheckpointNV vkCmdSetCheckpointNV; 585 PFN_vkGetQueueCheckpointDataNV vkGetQueueCheckpointDataNV; 586 #endif 587 #if defined(VK_GOOGLE_gfxstream) || defined(VK_GOOGLE_address_space) 588 PFN_vkMapMemoryIntoAddressSpaceGOOGLE vkMapMemoryIntoAddressSpaceGOOGLE; 589 #endif 590 }; 591 592 android_vulkan_dispatch* load_android_vulkan_dispatch(const char* path); 593 594 } // extern "C" 595