blob: 1740d03b9efc93ca29d30dba2f38317d7949aec5 [file] [log] [blame]
Cody Northropb43afee2016-03-08 22:23:51 -07001/*
2 * Copyright 2016 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16// This file is generated.
17#include "vulkan_wrapper.h"
18#include <dlfcn.h>
19
20int InitVulkan(void) {
21 void* libvulkan = dlopen("libvulkan.so", RTLD_NOW | RTLD_LOCAL);
22 if (!libvulkan)
23 return 0;
24
25 // Vulkan supported, set function addresses
26 vkCreateInstance = reinterpret_cast<PFN_vkCreateInstance>(dlsym(libvulkan, "vkCreateInstance"));
27 vkDestroyInstance = reinterpret_cast<PFN_vkDestroyInstance>(dlsym(libvulkan, "vkDestroyInstance"));
28 vkEnumeratePhysicalDevices = reinterpret_cast<PFN_vkEnumeratePhysicalDevices>(dlsym(libvulkan, "vkEnumeratePhysicalDevices"));
29 vkGetPhysicalDeviceFeatures = reinterpret_cast<PFN_vkGetPhysicalDeviceFeatures>(dlsym(libvulkan, "vkGetPhysicalDeviceFeatures"));
30 vkGetPhysicalDeviceFormatProperties = reinterpret_cast<PFN_vkGetPhysicalDeviceFormatProperties>(dlsym(libvulkan, "vkGetPhysicalDeviceFormatProperties"));
31 vkGetPhysicalDeviceImageFormatProperties = reinterpret_cast<PFN_vkGetPhysicalDeviceImageFormatProperties>(dlsym(libvulkan, "vkGetPhysicalDeviceImageFormatProperties"));
32 vkGetPhysicalDeviceProperties = reinterpret_cast<PFN_vkGetPhysicalDeviceProperties>(dlsym(libvulkan, "vkGetPhysicalDeviceProperties"));
33 vkGetPhysicalDeviceQueueFamilyProperties = reinterpret_cast<PFN_vkGetPhysicalDeviceQueueFamilyProperties>(dlsym(libvulkan, "vkGetPhysicalDeviceQueueFamilyProperties"));
34 vkGetPhysicalDeviceMemoryProperties = reinterpret_cast<PFN_vkGetPhysicalDeviceMemoryProperties>(dlsym(libvulkan, "vkGetPhysicalDeviceMemoryProperties"));
35 vkGetInstanceProcAddr = reinterpret_cast<PFN_vkGetInstanceProcAddr>(dlsym(libvulkan, "vkGetInstanceProcAddr"));
36 vkGetDeviceProcAddr = reinterpret_cast<PFN_vkGetDeviceProcAddr>(dlsym(libvulkan, "vkGetDeviceProcAddr"));
37 vkCreateDevice = reinterpret_cast<PFN_vkCreateDevice>(dlsym(libvulkan, "vkCreateDevice"));
38 vkDestroyDevice = reinterpret_cast<PFN_vkDestroyDevice>(dlsym(libvulkan, "vkDestroyDevice"));
39 vkEnumerateInstanceExtensionProperties = reinterpret_cast<PFN_vkEnumerateInstanceExtensionProperties>(dlsym(libvulkan, "vkEnumerateInstanceExtensionProperties"));
40 vkEnumerateDeviceExtensionProperties = reinterpret_cast<PFN_vkEnumerateDeviceExtensionProperties>(dlsym(libvulkan, "vkEnumerateDeviceExtensionProperties"));
41 vkEnumerateInstanceLayerProperties = reinterpret_cast<PFN_vkEnumerateInstanceLayerProperties>(dlsym(libvulkan, "vkEnumerateInstanceLayerProperties"));
42 vkEnumerateDeviceLayerProperties = reinterpret_cast<PFN_vkEnumerateDeviceLayerProperties>(dlsym(libvulkan, "vkEnumerateDeviceLayerProperties"));
43 vkGetDeviceQueue = reinterpret_cast<PFN_vkGetDeviceQueue>(dlsym(libvulkan, "vkGetDeviceQueue"));
44 vkQueueSubmit = reinterpret_cast<PFN_vkQueueSubmit>(dlsym(libvulkan, "vkQueueSubmit"));
45 vkQueueWaitIdle = reinterpret_cast<PFN_vkQueueWaitIdle>(dlsym(libvulkan, "vkQueueWaitIdle"));
46 vkDeviceWaitIdle = reinterpret_cast<PFN_vkDeviceWaitIdle>(dlsym(libvulkan, "vkDeviceWaitIdle"));
47 vkAllocateMemory = reinterpret_cast<PFN_vkAllocateMemory>(dlsym(libvulkan, "vkAllocateMemory"));
48 vkFreeMemory = reinterpret_cast<PFN_vkFreeMemory>(dlsym(libvulkan, "vkFreeMemory"));
49 vkMapMemory = reinterpret_cast<PFN_vkMapMemory>(dlsym(libvulkan, "vkMapMemory"));
50 vkUnmapMemory = reinterpret_cast<PFN_vkUnmapMemory>(dlsym(libvulkan, "vkUnmapMemory"));
51 vkFlushMappedMemoryRanges = reinterpret_cast<PFN_vkFlushMappedMemoryRanges>(dlsym(libvulkan, "vkFlushMappedMemoryRanges"));
52 vkInvalidateMappedMemoryRanges = reinterpret_cast<PFN_vkInvalidateMappedMemoryRanges>(dlsym(libvulkan, "vkInvalidateMappedMemoryRanges"));
53 vkGetDeviceMemoryCommitment = reinterpret_cast<PFN_vkGetDeviceMemoryCommitment>(dlsym(libvulkan, "vkGetDeviceMemoryCommitment"));
54 vkBindBufferMemory = reinterpret_cast<PFN_vkBindBufferMemory>(dlsym(libvulkan, "vkBindBufferMemory"));
55 vkBindImageMemory = reinterpret_cast<PFN_vkBindImageMemory>(dlsym(libvulkan, "vkBindImageMemory"));
56 vkGetBufferMemoryRequirements = reinterpret_cast<PFN_vkGetBufferMemoryRequirements>(dlsym(libvulkan, "vkGetBufferMemoryRequirements"));
57 vkGetImageMemoryRequirements = reinterpret_cast<PFN_vkGetImageMemoryRequirements>(dlsym(libvulkan, "vkGetImageMemoryRequirements"));
58 vkGetImageSparseMemoryRequirements = reinterpret_cast<PFN_vkGetImageSparseMemoryRequirements>(dlsym(libvulkan, "vkGetImageSparseMemoryRequirements"));
59 vkGetPhysicalDeviceSparseImageFormatProperties = reinterpret_cast<PFN_vkGetPhysicalDeviceSparseImageFormatProperties>(dlsym(libvulkan, "vkGetPhysicalDeviceSparseImageFormatProperties"));
60 vkQueueBindSparse = reinterpret_cast<PFN_vkQueueBindSparse>(dlsym(libvulkan, "vkQueueBindSparse"));
61 vkCreateFence = reinterpret_cast<PFN_vkCreateFence>(dlsym(libvulkan, "vkCreateFence"));
62 vkDestroyFence = reinterpret_cast<PFN_vkDestroyFence>(dlsym(libvulkan, "vkDestroyFence"));
63 vkResetFences = reinterpret_cast<PFN_vkResetFences>(dlsym(libvulkan, "vkResetFences"));
64 vkGetFenceStatus = reinterpret_cast<PFN_vkGetFenceStatus>(dlsym(libvulkan, "vkGetFenceStatus"));
65 vkWaitForFences = reinterpret_cast<PFN_vkWaitForFences>(dlsym(libvulkan, "vkWaitForFences"));
66 vkCreateSemaphore = reinterpret_cast<PFN_vkCreateSemaphore>(dlsym(libvulkan, "vkCreateSemaphore"));
67 vkDestroySemaphore = reinterpret_cast<PFN_vkDestroySemaphore>(dlsym(libvulkan, "vkDestroySemaphore"));
68 vkCreateEvent = reinterpret_cast<PFN_vkCreateEvent>(dlsym(libvulkan, "vkCreateEvent"));
69 vkDestroyEvent = reinterpret_cast<PFN_vkDestroyEvent>(dlsym(libvulkan, "vkDestroyEvent"));
70 vkGetEventStatus = reinterpret_cast<PFN_vkGetEventStatus>(dlsym(libvulkan, "vkGetEventStatus"));
71 vkSetEvent = reinterpret_cast<PFN_vkSetEvent>(dlsym(libvulkan, "vkSetEvent"));
72 vkResetEvent = reinterpret_cast<PFN_vkResetEvent>(dlsym(libvulkan, "vkResetEvent"));
73 vkCreateQueryPool = reinterpret_cast<PFN_vkCreateQueryPool>(dlsym(libvulkan, "vkCreateQueryPool"));
74 vkDestroyQueryPool = reinterpret_cast<PFN_vkDestroyQueryPool>(dlsym(libvulkan, "vkDestroyQueryPool"));
75 vkGetQueryPoolResults = reinterpret_cast<PFN_vkGetQueryPoolResults>(dlsym(libvulkan, "vkGetQueryPoolResults"));
76 vkCreateBuffer = reinterpret_cast<PFN_vkCreateBuffer>(dlsym(libvulkan, "vkCreateBuffer"));
77 vkDestroyBuffer = reinterpret_cast<PFN_vkDestroyBuffer>(dlsym(libvulkan, "vkDestroyBuffer"));
78 vkCreateBufferView = reinterpret_cast<PFN_vkCreateBufferView>(dlsym(libvulkan, "vkCreateBufferView"));
79 vkDestroyBufferView = reinterpret_cast<PFN_vkDestroyBufferView>(dlsym(libvulkan, "vkDestroyBufferView"));
80 vkCreateImage = reinterpret_cast<PFN_vkCreateImage>(dlsym(libvulkan, "vkCreateImage"));
81 vkDestroyImage = reinterpret_cast<PFN_vkDestroyImage>(dlsym(libvulkan, "vkDestroyImage"));
82 vkGetImageSubresourceLayout = reinterpret_cast<PFN_vkGetImageSubresourceLayout>(dlsym(libvulkan, "vkGetImageSubresourceLayout"));
83 vkCreateImageView = reinterpret_cast<PFN_vkCreateImageView>(dlsym(libvulkan, "vkCreateImageView"));
84 vkDestroyImageView = reinterpret_cast<PFN_vkDestroyImageView>(dlsym(libvulkan, "vkDestroyImageView"));
85 vkCreateShaderModule = reinterpret_cast<PFN_vkCreateShaderModule>(dlsym(libvulkan, "vkCreateShaderModule"));
86 vkDestroyShaderModule = reinterpret_cast<PFN_vkDestroyShaderModule>(dlsym(libvulkan, "vkDestroyShaderModule"));
87 vkCreatePipelineCache = reinterpret_cast<PFN_vkCreatePipelineCache>(dlsym(libvulkan, "vkCreatePipelineCache"));
88 vkDestroyPipelineCache = reinterpret_cast<PFN_vkDestroyPipelineCache>(dlsym(libvulkan, "vkDestroyPipelineCache"));
89 vkGetPipelineCacheData = reinterpret_cast<PFN_vkGetPipelineCacheData>(dlsym(libvulkan, "vkGetPipelineCacheData"));
90 vkMergePipelineCaches = reinterpret_cast<PFN_vkMergePipelineCaches>(dlsym(libvulkan, "vkMergePipelineCaches"));
91 vkCreateGraphicsPipelines = reinterpret_cast<PFN_vkCreateGraphicsPipelines>(dlsym(libvulkan, "vkCreateGraphicsPipelines"));
92 vkCreateComputePipelines = reinterpret_cast<PFN_vkCreateComputePipelines>(dlsym(libvulkan, "vkCreateComputePipelines"));
93 vkDestroyPipeline = reinterpret_cast<PFN_vkDestroyPipeline>(dlsym(libvulkan, "vkDestroyPipeline"));
94 vkCreatePipelineLayout = reinterpret_cast<PFN_vkCreatePipelineLayout>(dlsym(libvulkan, "vkCreatePipelineLayout"));
95 vkDestroyPipelineLayout = reinterpret_cast<PFN_vkDestroyPipelineLayout>(dlsym(libvulkan, "vkDestroyPipelineLayout"));
96 vkCreateSampler = reinterpret_cast<PFN_vkCreateSampler>(dlsym(libvulkan, "vkCreateSampler"));
97 vkDestroySampler = reinterpret_cast<PFN_vkDestroySampler>(dlsym(libvulkan, "vkDestroySampler"));
98 vkCreateDescriptorSetLayout = reinterpret_cast<PFN_vkCreateDescriptorSetLayout>(dlsym(libvulkan, "vkCreateDescriptorSetLayout"));
99 vkDestroyDescriptorSetLayout = reinterpret_cast<PFN_vkDestroyDescriptorSetLayout>(dlsym(libvulkan, "vkDestroyDescriptorSetLayout"));
100 vkCreateDescriptorPool = reinterpret_cast<PFN_vkCreateDescriptorPool>(dlsym(libvulkan, "vkCreateDescriptorPool"));
101 vkDestroyDescriptorPool = reinterpret_cast<PFN_vkDestroyDescriptorPool>(dlsym(libvulkan, "vkDestroyDescriptorPool"));
102 vkResetDescriptorPool = reinterpret_cast<PFN_vkResetDescriptorPool>(dlsym(libvulkan, "vkResetDescriptorPool"));
103 vkAllocateDescriptorSets = reinterpret_cast<PFN_vkAllocateDescriptorSets>(dlsym(libvulkan, "vkAllocateDescriptorSets"));
104 vkFreeDescriptorSets = reinterpret_cast<PFN_vkFreeDescriptorSets>(dlsym(libvulkan, "vkFreeDescriptorSets"));
105 vkUpdateDescriptorSets = reinterpret_cast<PFN_vkUpdateDescriptorSets>(dlsym(libvulkan, "vkUpdateDescriptorSets"));
106 vkCreateFramebuffer = reinterpret_cast<PFN_vkCreateFramebuffer>(dlsym(libvulkan, "vkCreateFramebuffer"));
107 vkDestroyFramebuffer = reinterpret_cast<PFN_vkDestroyFramebuffer>(dlsym(libvulkan, "vkDestroyFramebuffer"));
108 vkCreateRenderPass = reinterpret_cast<PFN_vkCreateRenderPass>(dlsym(libvulkan, "vkCreateRenderPass"));
109 vkDestroyRenderPass = reinterpret_cast<PFN_vkDestroyRenderPass>(dlsym(libvulkan, "vkDestroyRenderPass"));
110 vkGetRenderAreaGranularity = reinterpret_cast<PFN_vkGetRenderAreaGranularity>(dlsym(libvulkan, "vkGetRenderAreaGranularity"));
111 vkCreateCommandPool = reinterpret_cast<PFN_vkCreateCommandPool>(dlsym(libvulkan, "vkCreateCommandPool"));
112 vkDestroyCommandPool = reinterpret_cast<PFN_vkDestroyCommandPool>(dlsym(libvulkan, "vkDestroyCommandPool"));
113 vkResetCommandPool = reinterpret_cast<PFN_vkResetCommandPool>(dlsym(libvulkan, "vkResetCommandPool"));
114 vkAllocateCommandBuffers = reinterpret_cast<PFN_vkAllocateCommandBuffers>(dlsym(libvulkan, "vkAllocateCommandBuffers"));
115 vkFreeCommandBuffers = reinterpret_cast<PFN_vkFreeCommandBuffers>(dlsym(libvulkan, "vkFreeCommandBuffers"));
116 vkBeginCommandBuffer = reinterpret_cast<PFN_vkBeginCommandBuffer>(dlsym(libvulkan, "vkBeginCommandBuffer"));
117 vkEndCommandBuffer = reinterpret_cast<PFN_vkEndCommandBuffer>(dlsym(libvulkan, "vkEndCommandBuffer"));
118 vkResetCommandBuffer = reinterpret_cast<PFN_vkResetCommandBuffer>(dlsym(libvulkan, "vkResetCommandBuffer"));
119 vkCmdBindPipeline = reinterpret_cast<PFN_vkCmdBindPipeline>(dlsym(libvulkan, "vkCmdBindPipeline"));
120 vkCmdSetViewport = reinterpret_cast<PFN_vkCmdSetViewport>(dlsym(libvulkan, "vkCmdSetViewport"));
121 vkCmdSetScissor = reinterpret_cast<PFN_vkCmdSetScissor>(dlsym(libvulkan, "vkCmdSetScissor"));
122 vkCmdSetLineWidth = reinterpret_cast<PFN_vkCmdSetLineWidth>(dlsym(libvulkan, "vkCmdSetLineWidth"));
123 vkCmdSetDepthBias = reinterpret_cast<PFN_vkCmdSetDepthBias>(dlsym(libvulkan, "vkCmdSetDepthBias"));
124 vkCmdSetBlendConstants = reinterpret_cast<PFN_vkCmdSetBlendConstants>(dlsym(libvulkan, "vkCmdSetBlendConstants"));
125 vkCmdSetDepthBounds = reinterpret_cast<PFN_vkCmdSetDepthBounds>(dlsym(libvulkan, "vkCmdSetDepthBounds"));
126 vkCmdSetStencilCompareMask = reinterpret_cast<PFN_vkCmdSetStencilCompareMask>(dlsym(libvulkan, "vkCmdSetStencilCompareMask"));
127 vkCmdSetStencilWriteMask = reinterpret_cast<PFN_vkCmdSetStencilWriteMask>(dlsym(libvulkan, "vkCmdSetStencilWriteMask"));
128 vkCmdSetStencilReference = reinterpret_cast<PFN_vkCmdSetStencilReference>(dlsym(libvulkan, "vkCmdSetStencilReference"));
129 vkCmdBindDescriptorSets = reinterpret_cast<PFN_vkCmdBindDescriptorSets>(dlsym(libvulkan, "vkCmdBindDescriptorSets"));
130 vkCmdBindIndexBuffer = reinterpret_cast<PFN_vkCmdBindIndexBuffer>(dlsym(libvulkan, "vkCmdBindIndexBuffer"));
131 vkCmdBindVertexBuffers = reinterpret_cast<PFN_vkCmdBindVertexBuffers>(dlsym(libvulkan, "vkCmdBindVertexBuffers"));
132 vkCmdDraw = reinterpret_cast<PFN_vkCmdDraw>(dlsym(libvulkan, "vkCmdDraw"));
133 vkCmdDrawIndexed = reinterpret_cast<PFN_vkCmdDrawIndexed>(dlsym(libvulkan, "vkCmdDrawIndexed"));
134 vkCmdDrawIndirect = reinterpret_cast<PFN_vkCmdDrawIndirect>(dlsym(libvulkan, "vkCmdDrawIndirect"));
135 vkCmdDrawIndexedIndirect = reinterpret_cast<PFN_vkCmdDrawIndexedIndirect>(dlsym(libvulkan, "vkCmdDrawIndexedIndirect"));
136 vkCmdDispatch = reinterpret_cast<PFN_vkCmdDispatch>(dlsym(libvulkan, "vkCmdDispatch"));
137 vkCmdDispatchIndirect = reinterpret_cast<PFN_vkCmdDispatchIndirect>(dlsym(libvulkan, "vkCmdDispatchIndirect"));
138 vkCmdCopyBuffer = reinterpret_cast<PFN_vkCmdCopyBuffer>(dlsym(libvulkan, "vkCmdCopyBuffer"));
139 vkCmdCopyImage = reinterpret_cast<PFN_vkCmdCopyImage>(dlsym(libvulkan, "vkCmdCopyImage"));
140 vkCmdBlitImage = reinterpret_cast<PFN_vkCmdBlitImage>(dlsym(libvulkan, "vkCmdBlitImage"));
141 vkCmdCopyBufferToImage = reinterpret_cast<PFN_vkCmdCopyBufferToImage>(dlsym(libvulkan, "vkCmdCopyBufferToImage"));
142 vkCmdCopyImageToBuffer = reinterpret_cast<PFN_vkCmdCopyImageToBuffer>(dlsym(libvulkan, "vkCmdCopyImageToBuffer"));
143 vkCmdUpdateBuffer = reinterpret_cast<PFN_vkCmdUpdateBuffer>(dlsym(libvulkan, "vkCmdUpdateBuffer"));
144 vkCmdFillBuffer = reinterpret_cast<PFN_vkCmdFillBuffer>(dlsym(libvulkan, "vkCmdFillBuffer"));
145 vkCmdClearColorImage = reinterpret_cast<PFN_vkCmdClearColorImage>(dlsym(libvulkan, "vkCmdClearColorImage"));
146 vkCmdClearDepthStencilImage = reinterpret_cast<PFN_vkCmdClearDepthStencilImage>(dlsym(libvulkan, "vkCmdClearDepthStencilImage"));
147 vkCmdClearAttachments = reinterpret_cast<PFN_vkCmdClearAttachments>(dlsym(libvulkan, "vkCmdClearAttachments"));
148 vkCmdResolveImage = reinterpret_cast<PFN_vkCmdResolveImage>(dlsym(libvulkan, "vkCmdResolveImage"));
149 vkCmdSetEvent = reinterpret_cast<PFN_vkCmdSetEvent>(dlsym(libvulkan, "vkCmdSetEvent"));
150 vkCmdResetEvent = reinterpret_cast<PFN_vkCmdResetEvent>(dlsym(libvulkan, "vkCmdResetEvent"));
151 vkCmdWaitEvents = reinterpret_cast<PFN_vkCmdWaitEvents>(dlsym(libvulkan, "vkCmdWaitEvents"));
152 vkCmdPipelineBarrier = reinterpret_cast<PFN_vkCmdPipelineBarrier>(dlsym(libvulkan, "vkCmdPipelineBarrier"));
153 vkCmdBeginQuery = reinterpret_cast<PFN_vkCmdBeginQuery>(dlsym(libvulkan, "vkCmdBeginQuery"));
154 vkCmdEndQuery = reinterpret_cast<PFN_vkCmdEndQuery>(dlsym(libvulkan, "vkCmdEndQuery"));
155 vkCmdResetQueryPool = reinterpret_cast<PFN_vkCmdResetQueryPool>(dlsym(libvulkan, "vkCmdResetQueryPool"));
156 vkCmdWriteTimestamp = reinterpret_cast<PFN_vkCmdWriteTimestamp>(dlsym(libvulkan, "vkCmdWriteTimestamp"));
157 vkCmdCopyQueryPoolResults = reinterpret_cast<PFN_vkCmdCopyQueryPoolResults>(dlsym(libvulkan, "vkCmdCopyQueryPoolResults"));
158 vkCmdPushConstants = reinterpret_cast<PFN_vkCmdPushConstants>(dlsym(libvulkan, "vkCmdPushConstants"));
159 vkCmdBeginRenderPass = reinterpret_cast<PFN_vkCmdBeginRenderPass>(dlsym(libvulkan, "vkCmdBeginRenderPass"));
160 vkCmdNextSubpass = reinterpret_cast<PFN_vkCmdNextSubpass>(dlsym(libvulkan, "vkCmdNextSubpass"));
161 vkCmdEndRenderPass = reinterpret_cast<PFN_vkCmdEndRenderPass>(dlsym(libvulkan, "vkCmdEndRenderPass"));
162 vkCmdExecuteCommands = reinterpret_cast<PFN_vkCmdExecuteCommands>(dlsym(libvulkan, "vkCmdExecuteCommands"));
163 vkDestroySurfaceKHR = reinterpret_cast<PFN_vkDestroySurfaceKHR>(dlsym(libvulkan, "vkDestroySurfaceKHR"));
164 vkGetPhysicalDeviceSurfaceSupportKHR = reinterpret_cast<PFN_vkGetPhysicalDeviceSurfaceSupportKHR>(dlsym(libvulkan, "vkGetPhysicalDeviceSurfaceSupportKHR"));
165 vkGetPhysicalDeviceSurfaceCapabilitiesKHR = reinterpret_cast<PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR>(dlsym(libvulkan, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR"));
166 vkGetPhysicalDeviceSurfaceFormatsKHR = reinterpret_cast<PFN_vkGetPhysicalDeviceSurfaceFormatsKHR>(dlsym(libvulkan, "vkGetPhysicalDeviceSurfaceFormatsKHR"));
167 vkGetPhysicalDeviceSurfacePresentModesKHR = reinterpret_cast<PFN_vkGetPhysicalDeviceSurfacePresentModesKHR>(dlsym(libvulkan, "vkGetPhysicalDeviceSurfacePresentModesKHR"));
168 vkCreateSwapchainKHR = reinterpret_cast<PFN_vkCreateSwapchainKHR>(dlsym(libvulkan, "vkCreateSwapchainKHR"));
169 vkDestroySwapchainKHR = reinterpret_cast<PFN_vkDestroySwapchainKHR>(dlsym(libvulkan, "vkDestroySwapchainKHR"));
170 vkGetSwapchainImagesKHR = reinterpret_cast<PFN_vkGetSwapchainImagesKHR>(dlsym(libvulkan, "vkGetSwapchainImagesKHR"));
171 vkAcquireNextImageKHR = reinterpret_cast<PFN_vkAcquireNextImageKHR>(dlsym(libvulkan, "vkAcquireNextImageKHR"));
172 vkQueuePresentKHR = reinterpret_cast<PFN_vkQueuePresentKHR>(dlsym(libvulkan, "vkQueuePresentKHR"));
173 vkGetPhysicalDeviceDisplayPropertiesKHR = reinterpret_cast<PFN_vkGetPhysicalDeviceDisplayPropertiesKHR>(dlsym(libvulkan, "vkGetPhysicalDeviceDisplayPropertiesKHR"));
174 vkGetPhysicalDeviceDisplayPlanePropertiesKHR = reinterpret_cast<PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR>(dlsym(libvulkan, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR"));
175 vkGetDisplayPlaneSupportedDisplaysKHR = reinterpret_cast<PFN_vkGetDisplayPlaneSupportedDisplaysKHR>(dlsym(libvulkan, "vkGetDisplayPlaneSupportedDisplaysKHR"));
176 vkGetDisplayModePropertiesKHR = reinterpret_cast<PFN_vkGetDisplayModePropertiesKHR>(dlsym(libvulkan, "vkGetDisplayModePropertiesKHR"));
177 vkCreateDisplayModeKHR = reinterpret_cast<PFN_vkCreateDisplayModeKHR>(dlsym(libvulkan, "vkCreateDisplayModeKHR"));
178 vkGetDisplayPlaneCapabilitiesKHR = reinterpret_cast<PFN_vkGetDisplayPlaneCapabilitiesKHR>(dlsym(libvulkan, "vkGetDisplayPlaneCapabilitiesKHR"));
179 vkCreateDisplayPlaneSurfaceKHR = reinterpret_cast<PFN_vkCreateDisplayPlaneSurfaceKHR>(dlsym(libvulkan, "vkCreateDisplayPlaneSurfaceKHR"));
180 vkCreateSharedSwapchainsKHR = reinterpret_cast<PFN_vkCreateSharedSwapchainsKHR>(dlsym(libvulkan, "vkCreateSharedSwapchainsKHR"));
181
182#ifdef VK_USE_PLATFORM_XLIB_KHR
183 vkCreateXlibSurfaceKHR = reinterpret_cast<PFN_vkCreateXlibSurfaceKHR>(dlsym(libvulkan, "vkCreateXlibSurfaceKHR"));
184 vkGetPhysicalDeviceXlibPresentationSupportKHR = reinterpret_cast<PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR>(dlsym(libvulkan, "vkGetPhysicalDeviceXlibPresentationSupportKHR"));
185#endif
186
187#ifdef VK_USE_PLATFORM_XCB_KHR
188 vkCreateXcbSurfaceKHR = reinterpret_cast<PFN_vkCreateXcbSurfaceKHR>(dlsym(libvulkan, "vkCreateXcbSurfaceKHR"));
189 vkGetPhysicalDeviceXcbPresentationSupportKHR = reinterpret_cast<PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR>(dlsym(libvulkan, "vkGetPhysicalDeviceXcbPresentationSupportKHR"));
190#endif
191
192#ifdef VK_USE_PLATFORM_WAYLAND_KHR
193 vkCreateWaylandSurfaceKHR = reinterpret_cast<PFN_vkCreateWaylandSurfaceKHR>(dlsym(libvulkan, "vkCreateWaylandSurfaceKHR"));
194 vkGetPhysicalDeviceWaylandPresentationSupportKHR = reinterpret_cast<PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR>(dlsym(libvulkan, "vkGetPhysicalDeviceWaylandPresentationSupportKHR"));
195#endif
196
197#ifdef VK_USE_PLATFORM_MIR_KHR
198 vkCreateMirSurfaceKHR = reinterpret_cast<PFN_vkCreateMirSurfaceKHR>(dlsym(libvulkan, "vkCreateMirSurfaceKHR"));
199 vkGetPhysicalDeviceMirPresentationSupportKHR = reinterpret_cast<PFN_vkGetPhysicalDeviceMirPresentationSupportKHR>(dlsym(libvulkan, "vkGetPhysicalDeviceMirPresentationSupportKHR"));
200#endif
201
202#ifdef VK_USE_PLATFORM_ANDROID_KHR
203 vkCreateAndroidSurfaceKHR = reinterpret_cast<PFN_vkCreateAndroidSurfaceKHR>(dlsym(libvulkan, "vkCreateAndroidSurfaceKHR"));
204#endif
205
206#ifdef VK_USE_PLATFORM_WIN32_KHR
207 vkCreateWin32SurfaceKHR = reinterpret_cast<PFN_vkCreateWin32SurfaceKHR>(dlsym(libvulkan, "vkCreateWin32SurfaceKHR"));
208 vkGetPhysicalDeviceWin32PresentationSupportKHR = reinterpret_cast<PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR>(dlsym(libvulkan, "vkGetPhysicalDeviceWin32PresentationSupportKHR"));
209#endif
210 return 1;
211}
212
213// No Vulkan support, do not set function addresses
214PFN_vkCreateInstance vkCreateInstance;
215PFN_vkDestroyInstance vkDestroyInstance;
216PFN_vkEnumeratePhysicalDevices vkEnumeratePhysicalDevices;
217PFN_vkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeatures;
218PFN_vkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatProperties;
219PFN_vkGetPhysicalDeviceImageFormatProperties vkGetPhysicalDeviceImageFormatProperties;
220PFN_vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties;
221PFN_vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties;
222PFN_vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties;
223PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr;
224PFN_vkGetDeviceProcAddr vkGetDeviceProcAddr;
225PFN_vkCreateDevice vkCreateDevice;
226PFN_vkDestroyDevice vkDestroyDevice;
227PFN_vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionProperties;
228PFN_vkEnumerateDeviceExtensionProperties vkEnumerateDeviceExtensionProperties;
229PFN_vkEnumerateInstanceLayerProperties vkEnumerateInstanceLayerProperties;
230PFN_vkEnumerateDeviceLayerProperties vkEnumerateDeviceLayerProperties;
231PFN_vkGetDeviceQueue vkGetDeviceQueue;
232PFN_vkQueueSubmit vkQueueSubmit;
233PFN_vkQueueWaitIdle vkQueueWaitIdle;
234PFN_vkDeviceWaitIdle vkDeviceWaitIdle;
235PFN_vkAllocateMemory vkAllocateMemory;
236PFN_vkFreeMemory vkFreeMemory;
237PFN_vkMapMemory vkMapMemory;
238PFN_vkUnmapMemory vkUnmapMemory;
239PFN_vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges;
240PFN_vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges;
241PFN_vkGetDeviceMemoryCommitment vkGetDeviceMemoryCommitment;
242PFN_vkBindBufferMemory vkBindBufferMemory;
243PFN_vkBindImageMemory vkBindImageMemory;
244PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements;
245PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements;
246PFN_vkGetImageSparseMemoryRequirements vkGetImageSparseMemoryRequirements;
247PFN_vkGetPhysicalDeviceSparseImageFormatProperties vkGetPhysicalDeviceSparseImageFormatProperties;
248PFN_vkQueueBindSparse vkQueueBindSparse;
249PFN_vkCreateFence vkCreateFence;
250PFN_vkDestroyFence vkDestroyFence;
251PFN_vkResetFences vkResetFences;
252PFN_vkGetFenceStatus vkGetFenceStatus;
253PFN_vkWaitForFences vkWaitForFences;
254PFN_vkCreateSemaphore vkCreateSemaphore;
255PFN_vkDestroySemaphore vkDestroySemaphore;
256PFN_vkCreateEvent vkCreateEvent;
257PFN_vkDestroyEvent vkDestroyEvent;
258PFN_vkGetEventStatus vkGetEventStatus;
259PFN_vkSetEvent vkSetEvent;
260PFN_vkResetEvent vkResetEvent;
261PFN_vkCreateQueryPool vkCreateQueryPool;
262PFN_vkDestroyQueryPool vkDestroyQueryPool;
263PFN_vkGetQueryPoolResults vkGetQueryPoolResults;
264PFN_vkCreateBuffer vkCreateBuffer;
265PFN_vkDestroyBuffer vkDestroyBuffer;
266PFN_vkCreateBufferView vkCreateBufferView;
267PFN_vkDestroyBufferView vkDestroyBufferView;
268PFN_vkCreateImage vkCreateImage;
269PFN_vkDestroyImage vkDestroyImage;
270PFN_vkGetImageSubresourceLayout vkGetImageSubresourceLayout;
271PFN_vkCreateImageView vkCreateImageView;
272PFN_vkDestroyImageView vkDestroyImageView;
273PFN_vkCreateShaderModule vkCreateShaderModule;
274PFN_vkDestroyShaderModule vkDestroyShaderModule;
275PFN_vkCreatePipelineCache vkCreatePipelineCache;
276PFN_vkDestroyPipelineCache vkDestroyPipelineCache;
277PFN_vkGetPipelineCacheData vkGetPipelineCacheData;
278PFN_vkMergePipelineCaches vkMergePipelineCaches;
279PFN_vkCreateGraphicsPipelines vkCreateGraphicsPipelines;
280PFN_vkCreateComputePipelines vkCreateComputePipelines;
281PFN_vkDestroyPipeline vkDestroyPipeline;
282PFN_vkCreatePipelineLayout vkCreatePipelineLayout;
283PFN_vkDestroyPipelineLayout vkDestroyPipelineLayout;
284PFN_vkCreateSampler vkCreateSampler;
285PFN_vkDestroySampler vkDestroySampler;
286PFN_vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout;
287PFN_vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout;
288PFN_vkCreateDescriptorPool vkCreateDescriptorPool;
289PFN_vkDestroyDescriptorPool vkDestroyDescriptorPool;
290PFN_vkResetDescriptorPool vkResetDescriptorPool;
291PFN_vkAllocateDescriptorSets vkAllocateDescriptorSets;
292PFN_vkFreeDescriptorSets vkFreeDescriptorSets;
293PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets;
294PFN_vkCreateFramebuffer vkCreateFramebuffer;
295PFN_vkDestroyFramebuffer vkDestroyFramebuffer;
296PFN_vkCreateRenderPass vkCreateRenderPass;
297PFN_vkDestroyRenderPass vkDestroyRenderPass;
298PFN_vkGetRenderAreaGranularity vkGetRenderAreaGranularity;
299PFN_vkCreateCommandPool vkCreateCommandPool;
300PFN_vkDestroyCommandPool vkDestroyCommandPool;
301PFN_vkResetCommandPool vkResetCommandPool;
302PFN_vkAllocateCommandBuffers vkAllocateCommandBuffers;
303PFN_vkFreeCommandBuffers vkFreeCommandBuffers;
304PFN_vkBeginCommandBuffer vkBeginCommandBuffer;
305PFN_vkEndCommandBuffer vkEndCommandBuffer;
306PFN_vkResetCommandBuffer vkResetCommandBuffer;
307PFN_vkCmdBindPipeline vkCmdBindPipeline;
308PFN_vkCmdSetViewport vkCmdSetViewport;
309PFN_vkCmdSetScissor vkCmdSetScissor;
310PFN_vkCmdSetLineWidth vkCmdSetLineWidth;
311PFN_vkCmdSetDepthBias vkCmdSetDepthBias;
312PFN_vkCmdSetBlendConstants vkCmdSetBlendConstants;
313PFN_vkCmdSetDepthBounds vkCmdSetDepthBounds;
314PFN_vkCmdSetStencilCompareMask vkCmdSetStencilCompareMask;
315PFN_vkCmdSetStencilWriteMask vkCmdSetStencilWriteMask;
316PFN_vkCmdSetStencilReference vkCmdSetStencilReference;
317PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets;
318PFN_vkCmdBindIndexBuffer vkCmdBindIndexBuffer;
319PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers;
320PFN_vkCmdDraw vkCmdDraw;
321PFN_vkCmdDrawIndexed vkCmdDrawIndexed;
322PFN_vkCmdDrawIndirect vkCmdDrawIndirect;
323PFN_vkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirect;
324PFN_vkCmdDispatch vkCmdDispatch;
325PFN_vkCmdDispatchIndirect vkCmdDispatchIndirect;
326PFN_vkCmdCopyBuffer vkCmdCopyBuffer;
327PFN_vkCmdCopyImage vkCmdCopyImage;
328PFN_vkCmdBlitImage vkCmdBlitImage;
329PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage;
330PFN_vkCmdCopyImageToBuffer vkCmdCopyImageToBuffer;
331PFN_vkCmdUpdateBuffer vkCmdUpdateBuffer;
332PFN_vkCmdFillBuffer vkCmdFillBuffer;
333PFN_vkCmdClearColorImage vkCmdClearColorImage;
334PFN_vkCmdClearDepthStencilImage vkCmdClearDepthStencilImage;
335PFN_vkCmdClearAttachments vkCmdClearAttachments;
336PFN_vkCmdResolveImage vkCmdResolveImage;
337PFN_vkCmdSetEvent vkCmdSetEvent;
338PFN_vkCmdResetEvent vkCmdResetEvent;
339PFN_vkCmdWaitEvents vkCmdWaitEvents;
340PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier;
341PFN_vkCmdBeginQuery vkCmdBeginQuery;
342PFN_vkCmdEndQuery vkCmdEndQuery;
343PFN_vkCmdResetQueryPool vkCmdResetQueryPool;
344PFN_vkCmdWriteTimestamp vkCmdWriteTimestamp;
345PFN_vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults;
346PFN_vkCmdPushConstants vkCmdPushConstants;
347PFN_vkCmdBeginRenderPass vkCmdBeginRenderPass;
348PFN_vkCmdNextSubpass vkCmdNextSubpass;
349PFN_vkCmdEndRenderPass vkCmdEndRenderPass;
350PFN_vkCmdExecuteCommands vkCmdExecuteCommands;
351PFN_vkDestroySurfaceKHR vkDestroySurfaceKHR;
352PFN_vkGetPhysicalDeviceSurfaceSupportKHR vkGetPhysicalDeviceSurfaceSupportKHR;
353PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR;
354PFN_vkGetPhysicalDeviceSurfaceFormatsKHR vkGetPhysicalDeviceSurfaceFormatsKHR;
355PFN_vkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModesKHR;
356PFN_vkCreateSwapchainKHR vkCreateSwapchainKHR;
357PFN_vkDestroySwapchainKHR vkDestroySwapchainKHR;
358PFN_vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR;
359PFN_vkAcquireNextImageKHR vkAcquireNextImageKHR;
360PFN_vkQueuePresentKHR vkQueuePresentKHR;
361PFN_vkGetPhysicalDeviceDisplayPropertiesKHR vkGetPhysicalDeviceDisplayPropertiesKHR;
362PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHR;
363PFN_vkGetDisplayPlaneSupportedDisplaysKHR vkGetDisplayPlaneSupportedDisplaysKHR;
364PFN_vkGetDisplayModePropertiesKHR vkGetDisplayModePropertiesKHR;
365PFN_vkCreateDisplayModeKHR vkCreateDisplayModeKHR;
366PFN_vkGetDisplayPlaneCapabilitiesKHR vkGetDisplayPlaneCapabilitiesKHR;
367PFN_vkCreateDisplayPlaneSurfaceKHR vkCreateDisplayPlaneSurfaceKHR;
368PFN_vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR;
369
370#ifdef VK_USE_PLATFORM_XLIB_KHR
371PFN_vkCreateXlibSurfaceKHR vkCreateXlibSurfaceKHR;
372PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR vkGetPhysicalDeviceXlibPresentationSupportKHR;
373#endif
374
375#ifdef VK_USE_PLATFORM_XCB_KHR
376PFN_vkCreateXcbSurfaceKHR vkCreateXcbSurfaceKHR;
377PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR vkGetPhysicalDeviceXcbPresentationSupportKHR;
378#endif
379
380#ifdef VK_USE_PLATFORM_WAYLAND_KHR
381PFN_vkCreateWaylandSurfaceKHR vkCreateWaylandSurfaceKHR;
382PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR vkGetPhysicalDeviceWaylandPresentationSupportKHR;
383#endif
384
385#ifdef VK_USE_PLATFORM_MIR_KHR
386PFN_vkCreateMirSurfaceKHR vkCreateMirSurfaceKHR;
387PFN_vkGetPhysicalDeviceMirPresentationSupportKHR vkGetPhysicalDeviceMirPresentationSupportKHR;
388#endif
389
390#ifdef VK_USE_PLATFORM_ANDROID_KHR
391PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR;
392#endif
393
394#ifdef VK_USE_PLATFORM_WIN32_KHR
395PFN_vkCreateWin32SurfaceKHR vkCreateWin32SurfaceKHR;
396PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR vkGetPhysicalDeviceWin32PresentationSupportKHR;
397#endif
398PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT;
399PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT;
400PFN_vkDebugReportMessageEXT vkDebugReportMessageEXT;
401