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