blob: 2f7d80688cacc0be606d75543497e702f586f47b [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.
Cody Northrop75af0e32016-04-26 19:17:21 -060017#ifdef __cplusplus
18extern "C" {
19#endif
20
Cody Northropb43afee2016-03-08 22:23:51 -070021#include "vulkan_wrapper.h"
22#include <dlfcn.h>
23
24int InitVulkan(void) {
Mark Lobodzinski729a8d32017-01-26 12:16:30 -070025 void *libvulkan = dlopen("libvulkan.so", RTLD_NOW | RTLD_LOCAL);
Mark Lobodzinski64318ba2017-01-26 13:34:13 -070026 if (!libvulkan) return 0;
Cody Northropb43afee2016-03-08 22:23:51 -070027
28 // Vulkan supported, set function addresses
29 vkCreateInstance = reinterpret_cast<PFN_vkCreateInstance>(dlsym(libvulkan, "vkCreateInstance"));
30 vkDestroyInstance = reinterpret_cast<PFN_vkDestroyInstance>(dlsym(libvulkan, "vkDestroyInstance"));
31 vkEnumeratePhysicalDevices = reinterpret_cast<PFN_vkEnumeratePhysicalDevices>(dlsym(libvulkan, "vkEnumeratePhysicalDevices"));
Mark Lobodzinski729a8d32017-01-26 12:16:30 -070032 vkGetPhysicalDeviceFeatures =
33 reinterpret_cast<PFN_vkGetPhysicalDeviceFeatures>(dlsym(libvulkan, "vkGetPhysicalDeviceFeatures"));
34 vkGetPhysicalDeviceFormatProperties =
35 reinterpret_cast<PFN_vkGetPhysicalDeviceFormatProperties>(dlsym(libvulkan, "vkGetPhysicalDeviceFormatProperties"));
36 vkGetPhysicalDeviceImageFormatProperties = reinterpret_cast<PFN_vkGetPhysicalDeviceImageFormatProperties>(
37 dlsym(libvulkan, "vkGetPhysicalDeviceImageFormatProperties"));
38 vkGetPhysicalDeviceProperties =
39 reinterpret_cast<PFN_vkGetPhysicalDeviceProperties>(dlsym(libvulkan, "vkGetPhysicalDeviceProperties"));
40 vkGetPhysicalDeviceQueueFamilyProperties = reinterpret_cast<PFN_vkGetPhysicalDeviceQueueFamilyProperties>(
41 dlsym(libvulkan, "vkGetPhysicalDeviceQueueFamilyProperties"));
42 vkGetPhysicalDeviceMemoryProperties =
43 reinterpret_cast<PFN_vkGetPhysicalDeviceMemoryProperties>(dlsym(libvulkan, "vkGetPhysicalDeviceMemoryProperties"));
Cody Northropb43afee2016-03-08 22:23:51 -070044 vkGetInstanceProcAddr = reinterpret_cast<PFN_vkGetInstanceProcAddr>(dlsym(libvulkan, "vkGetInstanceProcAddr"));
45 vkGetDeviceProcAddr = reinterpret_cast<PFN_vkGetDeviceProcAddr>(dlsym(libvulkan, "vkGetDeviceProcAddr"));
46 vkCreateDevice = reinterpret_cast<PFN_vkCreateDevice>(dlsym(libvulkan, "vkCreateDevice"));
47 vkDestroyDevice = reinterpret_cast<PFN_vkDestroyDevice>(dlsym(libvulkan, "vkDestroyDevice"));
Mark Lobodzinski729a8d32017-01-26 12:16:30 -070048 vkEnumerateInstanceExtensionProperties =
49 reinterpret_cast<PFN_vkEnumerateInstanceExtensionProperties>(dlsym(libvulkan, "vkEnumerateInstanceExtensionProperties"));
50 vkEnumerateDeviceExtensionProperties =
51 reinterpret_cast<PFN_vkEnumerateDeviceExtensionProperties>(dlsym(libvulkan, "vkEnumerateDeviceExtensionProperties"));
52 vkEnumerateInstanceLayerProperties =
53 reinterpret_cast<PFN_vkEnumerateInstanceLayerProperties>(dlsym(libvulkan, "vkEnumerateInstanceLayerProperties"));
54 vkEnumerateDeviceLayerProperties =
55 reinterpret_cast<PFN_vkEnumerateDeviceLayerProperties>(dlsym(libvulkan, "vkEnumerateDeviceLayerProperties"));
Cody Northropb43afee2016-03-08 22:23:51 -070056 vkGetDeviceQueue = reinterpret_cast<PFN_vkGetDeviceQueue>(dlsym(libvulkan, "vkGetDeviceQueue"));
57 vkQueueSubmit = reinterpret_cast<PFN_vkQueueSubmit>(dlsym(libvulkan, "vkQueueSubmit"));
58 vkQueueWaitIdle = reinterpret_cast<PFN_vkQueueWaitIdle>(dlsym(libvulkan, "vkQueueWaitIdle"));
59 vkDeviceWaitIdle = reinterpret_cast<PFN_vkDeviceWaitIdle>(dlsym(libvulkan, "vkDeviceWaitIdle"));
60 vkAllocateMemory = reinterpret_cast<PFN_vkAllocateMemory>(dlsym(libvulkan, "vkAllocateMemory"));
61 vkFreeMemory = reinterpret_cast<PFN_vkFreeMemory>(dlsym(libvulkan, "vkFreeMemory"));
62 vkMapMemory = reinterpret_cast<PFN_vkMapMemory>(dlsym(libvulkan, "vkMapMemory"));
63 vkUnmapMemory = reinterpret_cast<PFN_vkUnmapMemory>(dlsym(libvulkan, "vkUnmapMemory"));
64 vkFlushMappedMemoryRanges = reinterpret_cast<PFN_vkFlushMappedMemoryRanges>(dlsym(libvulkan, "vkFlushMappedMemoryRanges"));
Mark Lobodzinski729a8d32017-01-26 12:16:30 -070065 vkInvalidateMappedMemoryRanges =
66 reinterpret_cast<PFN_vkInvalidateMappedMemoryRanges>(dlsym(libvulkan, "vkInvalidateMappedMemoryRanges"));
67 vkGetDeviceMemoryCommitment =
68 reinterpret_cast<PFN_vkGetDeviceMemoryCommitment>(dlsym(libvulkan, "vkGetDeviceMemoryCommitment"));
Cody Northropb43afee2016-03-08 22:23:51 -070069 vkBindBufferMemory = reinterpret_cast<PFN_vkBindBufferMemory>(dlsym(libvulkan, "vkBindBufferMemory"));
70 vkBindImageMemory = reinterpret_cast<PFN_vkBindImageMemory>(dlsym(libvulkan, "vkBindImageMemory"));
Mark Lobodzinski729a8d32017-01-26 12:16:30 -070071 vkGetBufferMemoryRequirements =
72 reinterpret_cast<PFN_vkGetBufferMemoryRequirements>(dlsym(libvulkan, "vkGetBufferMemoryRequirements"));
73 vkGetImageMemoryRequirements =
74 reinterpret_cast<PFN_vkGetImageMemoryRequirements>(dlsym(libvulkan, "vkGetImageMemoryRequirements"));
75 vkGetImageSparseMemoryRequirements =
76 reinterpret_cast<PFN_vkGetImageSparseMemoryRequirements>(dlsym(libvulkan, "vkGetImageSparseMemoryRequirements"));
77 vkGetPhysicalDeviceSparseImageFormatProperties = reinterpret_cast<PFN_vkGetPhysicalDeviceSparseImageFormatProperties>(
78 dlsym(libvulkan, "vkGetPhysicalDeviceSparseImageFormatProperties"));
Cody Northropb43afee2016-03-08 22:23:51 -070079 vkQueueBindSparse = reinterpret_cast<PFN_vkQueueBindSparse>(dlsym(libvulkan, "vkQueueBindSparse"));
80 vkCreateFence = reinterpret_cast<PFN_vkCreateFence>(dlsym(libvulkan, "vkCreateFence"));
81 vkDestroyFence = reinterpret_cast<PFN_vkDestroyFence>(dlsym(libvulkan, "vkDestroyFence"));
82 vkResetFences = reinterpret_cast<PFN_vkResetFences>(dlsym(libvulkan, "vkResetFences"));
83 vkGetFenceStatus = reinterpret_cast<PFN_vkGetFenceStatus>(dlsym(libvulkan, "vkGetFenceStatus"));
84 vkWaitForFences = reinterpret_cast<PFN_vkWaitForFences>(dlsym(libvulkan, "vkWaitForFences"));
85 vkCreateSemaphore = reinterpret_cast<PFN_vkCreateSemaphore>(dlsym(libvulkan, "vkCreateSemaphore"));
86 vkDestroySemaphore = reinterpret_cast<PFN_vkDestroySemaphore>(dlsym(libvulkan, "vkDestroySemaphore"));
87 vkCreateEvent = reinterpret_cast<PFN_vkCreateEvent>(dlsym(libvulkan, "vkCreateEvent"));
88 vkDestroyEvent = reinterpret_cast<PFN_vkDestroyEvent>(dlsym(libvulkan, "vkDestroyEvent"));
89 vkGetEventStatus = reinterpret_cast<PFN_vkGetEventStatus>(dlsym(libvulkan, "vkGetEventStatus"));
90 vkSetEvent = reinterpret_cast<PFN_vkSetEvent>(dlsym(libvulkan, "vkSetEvent"));
91 vkResetEvent = reinterpret_cast<PFN_vkResetEvent>(dlsym(libvulkan, "vkResetEvent"));
92 vkCreateQueryPool = reinterpret_cast<PFN_vkCreateQueryPool>(dlsym(libvulkan, "vkCreateQueryPool"));
93 vkDestroyQueryPool = reinterpret_cast<PFN_vkDestroyQueryPool>(dlsym(libvulkan, "vkDestroyQueryPool"));
94 vkGetQueryPoolResults = reinterpret_cast<PFN_vkGetQueryPoolResults>(dlsym(libvulkan, "vkGetQueryPoolResults"));
95 vkCreateBuffer = reinterpret_cast<PFN_vkCreateBuffer>(dlsym(libvulkan, "vkCreateBuffer"));
96 vkDestroyBuffer = reinterpret_cast<PFN_vkDestroyBuffer>(dlsym(libvulkan, "vkDestroyBuffer"));
97 vkCreateBufferView = reinterpret_cast<PFN_vkCreateBufferView>(dlsym(libvulkan, "vkCreateBufferView"));
98 vkDestroyBufferView = reinterpret_cast<PFN_vkDestroyBufferView>(dlsym(libvulkan, "vkDestroyBufferView"));
99 vkCreateImage = reinterpret_cast<PFN_vkCreateImage>(dlsym(libvulkan, "vkCreateImage"));
100 vkDestroyImage = reinterpret_cast<PFN_vkDestroyImage>(dlsym(libvulkan, "vkDestroyImage"));
Mark Lobodzinski729a8d32017-01-26 12:16:30 -0700101 vkGetImageSubresourceLayout =
102 reinterpret_cast<PFN_vkGetImageSubresourceLayout>(dlsym(libvulkan, "vkGetImageSubresourceLayout"));
Cody Northropb43afee2016-03-08 22:23:51 -0700103 vkCreateImageView = reinterpret_cast<PFN_vkCreateImageView>(dlsym(libvulkan, "vkCreateImageView"));
104 vkDestroyImageView = reinterpret_cast<PFN_vkDestroyImageView>(dlsym(libvulkan, "vkDestroyImageView"));
105 vkCreateShaderModule = reinterpret_cast<PFN_vkCreateShaderModule>(dlsym(libvulkan, "vkCreateShaderModule"));
106 vkDestroyShaderModule = reinterpret_cast<PFN_vkDestroyShaderModule>(dlsym(libvulkan, "vkDestroyShaderModule"));
107 vkCreatePipelineCache = reinterpret_cast<PFN_vkCreatePipelineCache>(dlsym(libvulkan, "vkCreatePipelineCache"));
108 vkDestroyPipelineCache = reinterpret_cast<PFN_vkDestroyPipelineCache>(dlsym(libvulkan, "vkDestroyPipelineCache"));
109 vkGetPipelineCacheData = reinterpret_cast<PFN_vkGetPipelineCacheData>(dlsym(libvulkan, "vkGetPipelineCacheData"));
110 vkMergePipelineCaches = reinterpret_cast<PFN_vkMergePipelineCaches>(dlsym(libvulkan, "vkMergePipelineCaches"));
111 vkCreateGraphicsPipelines = reinterpret_cast<PFN_vkCreateGraphicsPipelines>(dlsym(libvulkan, "vkCreateGraphicsPipelines"));
112 vkCreateComputePipelines = reinterpret_cast<PFN_vkCreateComputePipelines>(dlsym(libvulkan, "vkCreateComputePipelines"));
113 vkDestroyPipeline = reinterpret_cast<PFN_vkDestroyPipeline>(dlsym(libvulkan, "vkDestroyPipeline"));
114 vkCreatePipelineLayout = reinterpret_cast<PFN_vkCreatePipelineLayout>(dlsym(libvulkan, "vkCreatePipelineLayout"));
115 vkDestroyPipelineLayout = reinterpret_cast<PFN_vkDestroyPipelineLayout>(dlsym(libvulkan, "vkDestroyPipelineLayout"));
116 vkCreateSampler = reinterpret_cast<PFN_vkCreateSampler>(dlsym(libvulkan, "vkCreateSampler"));
117 vkDestroySampler = reinterpret_cast<PFN_vkDestroySampler>(dlsym(libvulkan, "vkDestroySampler"));
Mark Lobodzinski729a8d32017-01-26 12:16:30 -0700118 vkCreateDescriptorSetLayout =
119 reinterpret_cast<PFN_vkCreateDescriptorSetLayout>(dlsym(libvulkan, "vkCreateDescriptorSetLayout"));
120 vkDestroyDescriptorSetLayout =
121 reinterpret_cast<PFN_vkDestroyDescriptorSetLayout>(dlsym(libvulkan, "vkDestroyDescriptorSetLayout"));
Cody Northropb43afee2016-03-08 22:23:51 -0700122 vkCreateDescriptorPool = reinterpret_cast<PFN_vkCreateDescriptorPool>(dlsym(libvulkan, "vkCreateDescriptorPool"));
123 vkDestroyDescriptorPool = reinterpret_cast<PFN_vkDestroyDescriptorPool>(dlsym(libvulkan, "vkDestroyDescriptorPool"));
124 vkResetDescriptorPool = reinterpret_cast<PFN_vkResetDescriptorPool>(dlsym(libvulkan, "vkResetDescriptorPool"));
125 vkAllocateDescriptorSets = reinterpret_cast<PFN_vkAllocateDescriptorSets>(dlsym(libvulkan, "vkAllocateDescriptorSets"));
126 vkFreeDescriptorSets = reinterpret_cast<PFN_vkFreeDescriptorSets>(dlsym(libvulkan, "vkFreeDescriptorSets"));
127 vkUpdateDescriptorSets = reinterpret_cast<PFN_vkUpdateDescriptorSets>(dlsym(libvulkan, "vkUpdateDescriptorSets"));
128 vkCreateFramebuffer = reinterpret_cast<PFN_vkCreateFramebuffer>(dlsym(libvulkan, "vkCreateFramebuffer"));
129 vkDestroyFramebuffer = reinterpret_cast<PFN_vkDestroyFramebuffer>(dlsym(libvulkan, "vkDestroyFramebuffer"));
130 vkCreateRenderPass = reinterpret_cast<PFN_vkCreateRenderPass>(dlsym(libvulkan, "vkCreateRenderPass"));
131 vkDestroyRenderPass = reinterpret_cast<PFN_vkDestroyRenderPass>(dlsym(libvulkan, "vkDestroyRenderPass"));
132 vkGetRenderAreaGranularity = reinterpret_cast<PFN_vkGetRenderAreaGranularity>(dlsym(libvulkan, "vkGetRenderAreaGranularity"));
133 vkCreateCommandPool = reinterpret_cast<PFN_vkCreateCommandPool>(dlsym(libvulkan, "vkCreateCommandPool"));
134 vkDestroyCommandPool = reinterpret_cast<PFN_vkDestroyCommandPool>(dlsym(libvulkan, "vkDestroyCommandPool"));
135 vkResetCommandPool = reinterpret_cast<PFN_vkResetCommandPool>(dlsym(libvulkan, "vkResetCommandPool"));
136 vkAllocateCommandBuffers = reinterpret_cast<PFN_vkAllocateCommandBuffers>(dlsym(libvulkan, "vkAllocateCommandBuffers"));
137 vkFreeCommandBuffers = reinterpret_cast<PFN_vkFreeCommandBuffers>(dlsym(libvulkan, "vkFreeCommandBuffers"));
138 vkBeginCommandBuffer = reinterpret_cast<PFN_vkBeginCommandBuffer>(dlsym(libvulkan, "vkBeginCommandBuffer"));
139 vkEndCommandBuffer = reinterpret_cast<PFN_vkEndCommandBuffer>(dlsym(libvulkan, "vkEndCommandBuffer"));
140 vkResetCommandBuffer = reinterpret_cast<PFN_vkResetCommandBuffer>(dlsym(libvulkan, "vkResetCommandBuffer"));
141 vkCmdBindPipeline = reinterpret_cast<PFN_vkCmdBindPipeline>(dlsym(libvulkan, "vkCmdBindPipeline"));
142 vkCmdSetViewport = reinterpret_cast<PFN_vkCmdSetViewport>(dlsym(libvulkan, "vkCmdSetViewport"));
143 vkCmdSetScissor = reinterpret_cast<PFN_vkCmdSetScissor>(dlsym(libvulkan, "vkCmdSetScissor"));
144 vkCmdSetLineWidth = reinterpret_cast<PFN_vkCmdSetLineWidth>(dlsym(libvulkan, "vkCmdSetLineWidth"));
145 vkCmdSetDepthBias = reinterpret_cast<PFN_vkCmdSetDepthBias>(dlsym(libvulkan, "vkCmdSetDepthBias"));
146 vkCmdSetBlendConstants = reinterpret_cast<PFN_vkCmdSetBlendConstants>(dlsym(libvulkan, "vkCmdSetBlendConstants"));
147 vkCmdSetDepthBounds = reinterpret_cast<PFN_vkCmdSetDepthBounds>(dlsym(libvulkan, "vkCmdSetDepthBounds"));
148 vkCmdSetStencilCompareMask = reinterpret_cast<PFN_vkCmdSetStencilCompareMask>(dlsym(libvulkan, "vkCmdSetStencilCompareMask"));
149 vkCmdSetStencilWriteMask = reinterpret_cast<PFN_vkCmdSetStencilWriteMask>(dlsym(libvulkan, "vkCmdSetStencilWriteMask"));
150 vkCmdSetStencilReference = reinterpret_cast<PFN_vkCmdSetStencilReference>(dlsym(libvulkan, "vkCmdSetStencilReference"));
151 vkCmdBindDescriptorSets = reinterpret_cast<PFN_vkCmdBindDescriptorSets>(dlsym(libvulkan, "vkCmdBindDescriptorSets"));
152 vkCmdBindIndexBuffer = reinterpret_cast<PFN_vkCmdBindIndexBuffer>(dlsym(libvulkan, "vkCmdBindIndexBuffer"));
153 vkCmdBindVertexBuffers = reinterpret_cast<PFN_vkCmdBindVertexBuffers>(dlsym(libvulkan, "vkCmdBindVertexBuffers"));
154 vkCmdDraw = reinterpret_cast<PFN_vkCmdDraw>(dlsym(libvulkan, "vkCmdDraw"));
155 vkCmdDrawIndexed = reinterpret_cast<PFN_vkCmdDrawIndexed>(dlsym(libvulkan, "vkCmdDrawIndexed"));
156 vkCmdDrawIndirect = reinterpret_cast<PFN_vkCmdDrawIndirect>(dlsym(libvulkan, "vkCmdDrawIndirect"));
157 vkCmdDrawIndexedIndirect = reinterpret_cast<PFN_vkCmdDrawIndexedIndirect>(dlsym(libvulkan, "vkCmdDrawIndexedIndirect"));
158 vkCmdDispatch = reinterpret_cast<PFN_vkCmdDispatch>(dlsym(libvulkan, "vkCmdDispatch"));
159 vkCmdDispatchIndirect = reinterpret_cast<PFN_vkCmdDispatchIndirect>(dlsym(libvulkan, "vkCmdDispatchIndirect"));
160 vkCmdCopyBuffer = reinterpret_cast<PFN_vkCmdCopyBuffer>(dlsym(libvulkan, "vkCmdCopyBuffer"));
161 vkCmdCopyImage = reinterpret_cast<PFN_vkCmdCopyImage>(dlsym(libvulkan, "vkCmdCopyImage"));
162 vkCmdBlitImage = reinterpret_cast<PFN_vkCmdBlitImage>(dlsym(libvulkan, "vkCmdBlitImage"));
163 vkCmdCopyBufferToImage = reinterpret_cast<PFN_vkCmdCopyBufferToImage>(dlsym(libvulkan, "vkCmdCopyBufferToImage"));
164 vkCmdCopyImageToBuffer = reinterpret_cast<PFN_vkCmdCopyImageToBuffer>(dlsym(libvulkan, "vkCmdCopyImageToBuffer"));
165 vkCmdUpdateBuffer = reinterpret_cast<PFN_vkCmdUpdateBuffer>(dlsym(libvulkan, "vkCmdUpdateBuffer"));
166 vkCmdFillBuffer = reinterpret_cast<PFN_vkCmdFillBuffer>(dlsym(libvulkan, "vkCmdFillBuffer"));
167 vkCmdClearColorImage = reinterpret_cast<PFN_vkCmdClearColorImage>(dlsym(libvulkan, "vkCmdClearColorImage"));
Mark Lobodzinski729a8d32017-01-26 12:16:30 -0700168 vkCmdClearDepthStencilImage =
169 reinterpret_cast<PFN_vkCmdClearDepthStencilImage>(dlsym(libvulkan, "vkCmdClearDepthStencilImage"));
Cody Northropb43afee2016-03-08 22:23:51 -0700170 vkCmdClearAttachments = reinterpret_cast<PFN_vkCmdClearAttachments>(dlsym(libvulkan, "vkCmdClearAttachments"));
171 vkCmdResolveImage = reinterpret_cast<PFN_vkCmdResolveImage>(dlsym(libvulkan, "vkCmdResolveImage"));
172 vkCmdSetEvent = reinterpret_cast<PFN_vkCmdSetEvent>(dlsym(libvulkan, "vkCmdSetEvent"));
173 vkCmdResetEvent = reinterpret_cast<PFN_vkCmdResetEvent>(dlsym(libvulkan, "vkCmdResetEvent"));
174 vkCmdWaitEvents = reinterpret_cast<PFN_vkCmdWaitEvents>(dlsym(libvulkan, "vkCmdWaitEvents"));
175 vkCmdPipelineBarrier = reinterpret_cast<PFN_vkCmdPipelineBarrier>(dlsym(libvulkan, "vkCmdPipelineBarrier"));
176 vkCmdBeginQuery = reinterpret_cast<PFN_vkCmdBeginQuery>(dlsym(libvulkan, "vkCmdBeginQuery"));
177 vkCmdEndQuery = reinterpret_cast<PFN_vkCmdEndQuery>(dlsym(libvulkan, "vkCmdEndQuery"));
178 vkCmdResetQueryPool = reinterpret_cast<PFN_vkCmdResetQueryPool>(dlsym(libvulkan, "vkCmdResetQueryPool"));
179 vkCmdWriteTimestamp = reinterpret_cast<PFN_vkCmdWriteTimestamp>(dlsym(libvulkan, "vkCmdWriteTimestamp"));
180 vkCmdCopyQueryPoolResults = reinterpret_cast<PFN_vkCmdCopyQueryPoolResults>(dlsym(libvulkan, "vkCmdCopyQueryPoolResults"));
181 vkCmdPushConstants = reinterpret_cast<PFN_vkCmdPushConstants>(dlsym(libvulkan, "vkCmdPushConstants"));
182 vkCmdBeginRenderPass = reinterpret_cast<PFN_vkCmdBeginRenderPass>(dlsym(libvulkan, "vkCmdBeginRenderPass"));
183 vkCmdNextSubpass = reinterpret_cast<PFN_vkCmdNextSubpass>(dlsym(libvulkan, "vkCmdNextSubpass"));
184 vkCmdEndRenderPass = reinterpret_cast<PFN_vkCmdEndRenderPass>(dlsym(libvulkan, "vkCmdEndRenderPass"));
185 vkCmdExecuteCommands = reinterpret_cast<PFN_vkCmdExecuteCommands>(dlsym(libvulkan, "vkCmdExecuteCommands"));
186 vkDestroySurfaceKHR = reinterpret_cast<PFN_vkDestroySurfaceKHR>(dlsym(libvulkan, "vkDestroySurfaceKHR"));
Mark Lobodzinski729a8d32017-01-26 12:16:30 -0700187 vkGetPhysicalDeviceSurfaceSupportKHR =
188 reinterpret_cast<PFN_vkGetPhysicalDeviceSurfaceSupportKHR>(dlsym(libvulkan, "vkGetPhysicalDeviceSurfaceSupportKHR"));
189 vkGetPhysicalDeviceSurfaceCapabilitiesKHR = reinterpret_cast<PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR>(
190 dlsym(libvulkan, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR"));
191 vkGetPhysicalDeviceSurfaceFormatsKHR =
192 reinterpret_cast<PFN_vkGetPhysicalDeviceSurfaceFormatsKHR>(dlsym(libvulkan, "vkGetPhysicalDeviceSurfaceFormatsKHR"));
193 vkGetPhysicalDeviceSurfacePresentModesKHR = reinterpret_cast<PFN_vkGetPhysicalDeviceSurfacePresentModesKHR>(
194 dlsym(libvulkan, "vkGetPhysicalDeviceSurfacePresentModesKHR"));
Cody Northropb43afee2016-03-08 22:23:51 -0700195 vkCreateSwapchainKHR = reinterpret_cast<PFN_vkCreateSwapchainKHR>(dlsym(libvulkan, "vkCreateSwapchainKHR"));
196 vkDestroySwapchainKHR = reinterpret_cast<PFN_vkDestroySwapchainKHR>(dlsym(libvulkan, "vkDestroySwapchainKHR"));
197 vkGetSwapchainImagesKHR = reinterpret_cast<PFN_vkGetSwapchainImagesKHR>(dlsym(libvulkan, "vkGetSwapchainImagesKHR"));
198 vkAcquireNextImageKHR = reinterpret_cast<PFN_vkAcquireNextImageKHR>(dlsym(libvulkan, "vkAcquireNextImageKHR"));
199 vkQueuePresentKHR = reinterpret_cast<PFN_vkQueuePresentKHR>(dlsym(libvulkan, "vkQueuePresentKHR"));
Mark Lobodzinski729a8d32017-01-26 12:16:30 -0700200 vkGetPhysicalDeviceDisplayPropertiesKHR =
201 reinterpret_cast<PFN_vkGetPhysicalDeviceDisplayPropertiesKHR>(dlsym(libvulkan, "vkGetPhysicalDeviceDisplayPropertiesKHR"));
202 vkGetPhysicalDeviceDisplayPlanePropertiesKHR = reinterpret_cast<PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR>(
203 dlsym(libvulkan, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR"));
204 vkGetDisplayPlaneSupportedDisplaysKHR =
205 reinterpret_cast<PFN_vkGetDisplayPlaneSupportedDisplaysKHR>(dlsym(libvulkan, "vkGetDisplayPlaneSupportedDisplaysKHR"));
206 vkGetDisplayModePropertiesKHR =
207 reinterpret_cast<PFN_vkGetDisplayModePropertiesKHR>(dlsym(libvulkan, "vkGetDisplayModePropertiesKHR"));
Cody Northropb43afee2016-03-08 22:23:51 -0700208 vkCreateDisplayModeKHR = reinterpret_cast<PFN_vkCreateDisplayModeKHR>(dlsym(libvulkan, "vkCreateDisplayModeKHR"));
Mark Lobodzinski729a8d32017-01-26 12:16:30 -0700209 vkGetDisplayPlaneCapabilitiesKHR =
210 reinterpret_cast<PFN_vkGetDisplayPlaneCapabilitiesKHR>(dlsym(libvulkan, "vkGetDisplayPlaneCapabilitiesKHR"));
211 vkCreateDisplayPlaneSurfaceKHR =
212 reinterpret_cast<PFN_vkCreateDisplayPlaneSurfaceKHR>(dlsym(libvulkan, "vkCreateDisplayPlaneSurfaceKHR"));
213 vkCreateSharedSwapchainsKHR =
214 reinterpret_cast<PFN_vkCreateSharedSwapchainsKHR>(dlsym(libvulkan, "vkCreateSharedSwapchainsKHR"));
Cody Northropb43afee2016-03-08 22:23:51 -0700215
216#ifdef VK_USE_PLATFORM_XLIB_KHR
217 vkCreateXlibSurfaceKHR = reinterpret_cast<PFN_vkCreateXlibSurfaceKHR>(dlsym(libvulkan, "vkCreateXlibSurfaceKHR"));
Mark Lobodzinski729a8d32017-01-26 12:16:30 -0700218 vkGetPhysicalDeviceXlibPresentationSupportKHR = reinterpret_cast<PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR>(
219 dlsym(libvulkan, "vkGetPhysicalDeviceXlibPresentationSupportKHR"));
Cody Northropb43afee2016-03-08 22:23:51 -0700220#endif
221
222#ifdef VK_USE_PLATFORM_XCB_KHR
223 vkCreateXcbSurfaceKHR = reinterpret_cast<PFN_vkCreateXcbSurfaceKHR>(dlsym(libvulkan, "vkCreateXcbSurfaceKHR"));
Mark Lobodzinski729a8d32017-01-26 12:16:30 -0700224 vkGetPhysicalDeviceXcbPresentationSupportKHR = reinterpret_cast<PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR>(
225 dlsym(libvulkan, "vkGetPhysicalDeviceXcbPresentationSupportKHR"));
Cody Northropb43afee2016-03-08 22:23:51 -0700226#endif
227
228#ifdef VK_USE_PLATFORM_WAYLAND_KHR
229 vkCreateWaylandSurfaceKHR = reinterpret_cast<PFN_vkCreateWaylandSurfaceKHR>(dlsym(libvulkan, "vkCreateWaylandSurfaceKHR"));
Mark Lobodzinski729a8d32017-01-26 12:16:30 -0700230 vkGetPhysicalDeviceWaylandPresentationSupportKHR = reinterpret_cast<PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR>(
231 dlsym(libvulkan, "vkGetPhysicalDeviceWaylandPresentationSupportKHR"));
Cody Northropb43afee2016-03-08 22:23:51 -0700232#endif
233
234#ifdef VK_USE_PLATFORM_MIR_KHR
235 vkCreateMirSurfaceKHR = reinterpret_cast<PFN_vkCreateMirSurfaceKHR>(dlsym(libvulkan, "vkCreateMirSurfaceKHR"));
Mark Lobodzinski729a8d32017-01-26 12:16:30 -0700236 vkGetPhysicalDeviceMirPresentationSupportKHR = reinterpret_cast<PFN_vkGetPhysicalDeviceMirPresentationSupportKHR>(
237 dlsym(libvulkan, "vkGetPhysicalDeviceMirPresentationSupportKHR"));
Cody Northropb43afee2016-03-08 22:23:51 -0700238#endif
239
240#ifdef VK_USE_PLATFORM_ANDROID_KHR
241 vkCreateAndroidSurfaceKHR = reinterpret_cast<PFN_vkCreateAndroidSurfaceKHR>(dlsym(libvulkan, "vkCreateAndroidSurfaceKHR"));
242#endif
243
244#ifdef VK_USE_PLATFORM_WIN32_KHR
245 vkCreateWin32SurfaceKHR = reinterpret_cast<PFN_vkCreateWin32SurfaceKHR>(dlsym(libvulkan, "vkCreateWin32SurfaceKHR"));
Mark Lobodzinski729a8d32017-01-26 12:16:30 -0700246 vkGetPhysicalDeviceWin32PresentationSupportKHR = reinterpret_cast<PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR>(
247 dlsym(libvulkan, "vkGetPhysicalDeviceWin32PresentationSupportKHR"));
Cody Northropb43afee2016-03-08 22:23:51 -0700248#endif
249 return 1;
250}
251
252// No Vulkan support, do not set function addresses
253PFN_vkCreateInstance vkCreateInstance;
254PFN_vkDestroyInstance vkDestroyInstance;
255PFN_vkEnumeratePhysicalDevices vkEnumeratePhysicalDevices;
256PFN_vkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeatures;
257PFN_vkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatProperties;
258PFN_vkGetPhysicalDeviceImageFormatProperties vkGetPhysicalDeviceImageFormatProperties;
259PFN_vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties;
260PFN_vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties;
261PFN_vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties;
262PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr;
263PFN_vkGetDeviceProcAddr vkGetDeviceProcAddr;
264PFN_vkCreateDevice vkCreateDevice;
265PFN_vkDestroyDevice vkDestroyDevice;
266PFN_vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionProperties;
267PFN_vkEnumerateDeviceExtensionProperties vkEnumerateDeviceExtensionProperties;
268PFN_vkEnumerateInstanceLayerProperties vkEnumerateInstanceLayerProperties;
269PFN_vkEnumerateDeviceLayerProperties vkEnumerateDeviceLayerProperties;
270PFN_vkGetDeviceQueue vkGetDeviceQueue;
271PFN_vkQueueSubmit vkQueueSubmit;
272PFN_vkQueueWaitIdle vkQueueWaitIdle;
273PFN_vkDeviceWaitIdle vkDeviceWaitIdle;
274PFN_vkAllocateMemory vkAllocateMemory;
275PFN_vkFreeMemory vkFreeMemory;
276PFN_vkMapMemory vkMapMemory;
277PFN_vkUnmapMemory vkUnmapMemory;
278PFN_vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges;
279PFN_vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges;
280PFN_vkGetDeviceMemoryCommitment vkGetDeviceMemoryCommitment;
281PFN_vkBindBufferMemory vkBindBufferMemory;
282PFN_vkBindImageMemory vkBindImageMemory;
283PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements;
284PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements;
285PFN_vkGetImageSparseMemoryRequirements vkGetImageSparseMemoryRequirements;
286PFN_vkGetPhysicalDeviceSparseImageFormatProperties vkGetPhysicalDeviceSparseImageFormatProperties;
287PFN_vkQueueBindSparse vkQueueBindSparse;
288PFN_vkCreateFence vkCreateFence;
289PFN_vkDestroyFence vkDestroyFence;
290PFN_vkResetFences vkResetFences;
291PFN_vkGetFenceStatus vkGetFenceStatus;
292PFN_vkWaitForFences vkWaitForFences;
293PFN_vkCreateSemaphore vkCreateSemaphore;
294PFN_vkDestroySemaphore vkDestroySemaphore;
295PFN_vkCreateEvent vkCreateEvent;
296PFN_vkDestroyEvent vkDestroyEvent;
297PFN_vkGetEventStatus vkGetEventStatus;
298PFN_vkSetEvent vkSetEvent;
299PFN_vkResetEvent vkResetEvent;
300PFN_vkCreateQueryPool vkCreateQueryPool;
301PFN_vkDestroyQueryPool vkDestroyQueryPool;
302PFN_vkGetQueryPoolResults vkGetQueryPoolResults;
303PFN_vkCreateBuffer vkCreateBuffer;
304PFN_vkDestroyBuffer vkDestroyBuffer;
305PFN_vkCreateBufferView vkCreateBufferView;
306PFN_vkDestroyBufferView vkDestroyBufferView;
307PFN_vkCreateImage vkCreateImage;
308PFN_vkDestroyImage vkDestroyImage;
309PFN_vkGetImageSubresourceLayout vkGetImageSubresourceLayout;
310PFN_vkCreateImageView vkCreateImageView;
311PFN_vkDestroyImageView vkDestroyImageView;
312PFN_vkCreateShaderModule vkCreateShaderModule;
313PFN_vkDestroyShaderModule vkDestroyShaderModule;
314PFN_vkCreatePipelineCache vkCreatePipelineCache;
315PFN_vkDestroyPipelineCache vkDestroyPipelineCache;
316PFN_vkGetPipelineCacheData vkGetPipelineCacheData;
317PFN_vkMergePipelineCaches vkMergePipelineCaches;
318PFN_vkCreateGraphicsPipelines vkCreateGraphicsPipelines;
319PFN_vkCreateComputePipelines vkCreateComputePipelines;
320PFN_vkDestroyPipeline vkDestroyPipeline;
321PFN_vkCreatePipelineLayout vkCreatePipelineLayout;
322PFN_vkDestroyPipelineLayout vkDestroyPipelineLayout;
323PFN_vkCreateSampler vkCreateSampler;
324PFN_vkDestroySampler vkDestroySampler;
325PFN_vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout;
326PFN_vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout;
327PFN_vkCreateDescriptorPool vkCreateDescriptorPool;
328PFN_vkDestroyDescriptorPool vkDestroyDescriptorPool;
329PFN_vkResetDescriptorPool vkResetDescriptorPool;
330PFN_vkAllocateDescriptorSets vkAllocateDescriptorSets;
331PFN_vkFreeDescriptorSets vkFreeDescriptorSets;
332PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets;
333PFN_vkCreateFramebuffer vkCreateFramebuffer;
334PFN_vkDestroyFramebuffer vkDestroyFramebuffer;
335PFN_vkCreateRenderPass vkCreateRenderPass;
336PFN_vkDestroyRenderPass vkDestroyRenderPass;
337PFN_vkGetRenderAreaGranularity vkGetRenderAreaGranularity;
338PFN_vkCreateCommandPool vkCreateCommandPool;
339PFN_vkDestroyCommandPool vkDestroyCommandPool;
340PFN_vkResetCommandPool vkResetCommandPool;
341PFN_vkAllocateCommandBuffers vkAllocateCommandBuffers;
342PFN_vkFreeCommandBuffers vkFreeCommandBuffers;
343PFN_vkBeginCommandBuffer vkBeginCommandBuffer;
344PFN_vkEndCommandBuffer vkEndCommandBuffer;
345PFN_vkResetCommandBuffer vkResetCommandBuffer;
346PFN_vkCmdBindPipeline vkCmdBindPipeline;
347PFN_vkCmdSetViewport vkCmdSetViewport;
348PFN_vkCmdSetScissor vkCmdSetScissor;
349PFN_vkCmdSetLineWidth vkCmdSetLineWidth;
350PFN_vkCmdSetDepthBias vkCmdSetDepthBias;
351PFN_vkCmdSetBlendConstants vkCmdSetBlendConstants;
352PFN_vkCmdSetDepthBounds vkCmdSetDepthBounds;
353PFN_vkCmdSetStencilCompareMask vkCmdSetStencilCompareMask;
354PFN_vkCmdSetStencilWriteMask vkCmdSetStencilWriteMask;
355PFN_vkCmdSetStencilReference vkCmdSetStencilReference;
356PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets;
357PFN_vkCmdBindIndexBuffer vkCmdBindIndexBuffer;
358PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers;
359PFN_vkCmdDraw vkCmdDraw;
360PFN_vkCmdDrawIndexed vkCmdDrawIndexed;
361PFN_vkCmdDrawIndirect vkCmdDrawIndirect;
362PFN_vkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirect;
363PFN_vkCmdDispatch vkCmdDispatch;
364PFN_vkCmdDispatchIndirect vkCmdDispatchIndirect;
365PFN_vkCmdCopyBuffer vkCmdCopyBuffer;
366PFN_vkCmdCopyImage vkCmdCopyImage;
367PFN_vkCmdBlitImage vkCmdBlitImage;
368PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage;
369PFN_vkCmdCopyImageToBuffer vkCmdCopyImageToBuffer;
370PFN_vkCmdUpdateBuffer vkCmdUpdateBuffer;
371PFN_vkCmdFillBuffer vkCmdFillBuffer;
372PFN_vkCmdClearColorImage vkCmdClearColorImage;
373PFN_vkCmdClearDepthStencilImage vkCmdClearDepthStencilImage;
374PFN_vkCmdClearAttachments vkCmdClearAttachments;
375PFN_vkCmdResolveImage vkCmdResolveImage;
376PFN_vkCmdSetEvent vkCmdSetEvent;
377PFN_vkCmdResetEvent vkCmdResetEvent;
378PFN_vkCmdWaitEvents vkCmdWaitEvents;
379PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier;
380PFN_vkCmdBeginQuery vkCmdBeginQuery;
381PFN_vkCmdEndQuery vkCmdEndQuery;
382PFN_vkCmdResetQueryPool vkCmdResetQueryPool;
383PFN_vkCmdWriteTimestamp vkCmdWriteTimestamp;
384PFN_vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults;
385PFN_vkCmdPushConstants vkCmdPushConstants;
386PFN_vkCmdBeginRenderPass vkCmdBeginRenderPass;
387PFN_vkCmdNextSubpass vkCmdNextSubpass;
388PFN_vkCmdEndRenderPass vkCmdEndRenderPass;
389PFN_vkCmdExecuteCommands vkCmdExecuteCommands;
390PFN_vkDestroySurfaceKHR vkDestroySurfaceKHR;
391PFN_vkGetPhysicalDeviceSurfaceSupportKHR vkGetPhysicalDeviceSurfaceSupportKHR;
392PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR;
393PFN_vkGetPhysicalDeviceSurfaceFormatsKHR vkGetPhysicalDeviceSurfaceFormatsKHR;
394PFN_vkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModesKHR;
395PFN_vkCreateSwapchainKHR vkCreateSwapchainKHR;
396PFN_vkDestroySwapchainKHR vkDestroySwapchainKHR;
397PFN_vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR;
398PFN_vkAcquireNextImageKHR vkAcquireNextImageKHR;
399PFN_vkQueuePresentKHR vkQueuePresentKHR;
400PFN_vkGetPhysicalDeviceDisplayPropertiesKHR vkGetPhysicalDeviceDisplayPropertiesKHR;
401PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHR;
402PFN_vkGetDisplayPlaneSupportedDisplaysKHR vkGetDisplayPlaneSupportedDisplaysKHR;
403PFN_vkGetDisplayModePropertiesKHR vkGetDisplayModePropertiesKHR;
404PFN_vkCreateDisplayModeKHR vkCreateDisplayModeKHR;
405PFN_vkGetDisplayPlaneCapabilitiesKHR vkGetDisplayPlaneCapabilitiesKHR;
406PFN_vkCreateDisplayPlaneSurfaceKHR vkCreateDisplayPlaneSurfaceKHR;
407PFN_vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR;
408
409#ifdef VK_USE_PLATFORM_XLIB_KHR
410PFN_vkCreateXlibSurfaceKHR vkCreateXlibSurfaceKHR;
411PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR vkGetPhysicalDeviceXlibPresentationSupportKHR;
412#endif
413
414#ifdef VK_USE_PLATFORM_XCB_KHR
415PFN_vkCreateXcbSurfaceKHR vkCreateXcbSurfaceKHR;
416PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR vkGetPhysicalDeviceXcbPresentationSupportKHR;
417#endif
418
419#ifdef VK_USE_PLATFORM_WAYLAND_KHR
420PFN_vkCreateWaylandSurfaceKHR vkCreateWaylandSurfaceKHR;
421PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR vkGetPhysicalDeviceWaylandPresentationSupportKHR;
422#endif
423
424#ifdef VK_USE_PLATFORM_MIR_KHR
425PFN_vkCreateMirSurfaceKHR vkCreateMirSurfaceKHR;
426PFN_vkGetPhysicalDeviceMirPresentationSupportKHR vkGetPhysicalDeviceMirPresentationSupportKHR;
427#endif
428
429#ifdef VK_USE_PLATFORM_ANDROID_KHR
430PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR;
431#endif
432
433#ifdef VK_USE_PLATFORM_WIN32_KHR
434PFN_vkCreateWin32SurfaceKHR vkCreateWin32SurfaceKHR;
435PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR vkGetPhysicalDeviceWin32PresentationSupportKHR;
436#endif
437PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT;
438PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT;
439PFN_vkDebugReportMessageEXT vkDebugReportMessageEXT;
440
Cody Northrop75af0e32016-04-26 19:17:21 -0600441#ifdef __cplusplus
442}
443#endif