blob: b72aa0ac7fd8533b41c65a0b7f8946bc9e17f886 [file] [log] [blame]
Chia-I Wu0c203242016-03-15 13:44:51 +08001/*
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
17// WARNING: This file is generated. See ../README.md for instructions.
18
19#include <string.h>
Mark Salyzyna5e161b2016-09-29 08:08:05 -070020
Chia-I Wu0c203242016-03-15 13:44:51 +080021#include <algorithm>
Mark Salyzyna5e161b2016-09-29 08:08:05 -070022
Mark Salyzyn7823e122016-09-29 08:08:05 -070023#include <log/log.h>
Chia-I Wu0c203242016-03-15 13:44:51 +080024
Chia-I Wu3e654dc2016-05-20 16:15:06 +080025// to catch mismatches between vulkan.h and this file
26#undef VK_NO_PROTOTYPES
Chia-I Wu0c203242016-03-15 13:44:51 +080027#include "api.h"
28
29namespace vulkan {
30namespace api {
31
32#define UNLIKELY(expr) __builtin_expect((expr), 0)
33
34#define INIT_PROC(obj, proc) \
35 do { \
36 data.dispatch.proc = \
37 reinterpret_cast<PFN_vk##proc>(get_proc(obj, "vk" #proc)); \
38 if (UNLIKELY(!data.dispatch.proc)) { \
39 ALOGE("missing " #obj " proc: vk" #proc); \
40 success = false; \
41 } \
42 } while (0)
43
Chia-I Wu8925efd2016-04-13 15:13:21 +080044// Exported extension functions may be invoked even when their extensions
45// are disabled. Dispatch to stubs when that happens.
46#define INIT_PROC_EXT(ext, obj, proc) \
47 do { \
48 if (extensions[driver::ProcHook::ext]) \
49 INIT_PROC(obj, proc); \
50 else \
51 data.dispatch.proc = disabled##proc; \
Chia-I Wu0c203242016-03-15 13:44:51 +080052 } while (0)
53
Chia-I Wu8925efd2016-04-13 15:13:21 +080054namespace {
55
56// clang-format off
57
Chia-I Wu5beb2ac2016-05-04 16:37:23 +080058VKAPI_ATTR void disabledDestroySurfaceKHR(VkInstance instance, VkSurfaceKHR, const VkAllocationCallbacks*) {
59 driver::Logger(instance).Err(instance, "VK_KHR_surface not enabled. Exported vkDestroySurfaceKHR not executed.");
Chia-I Wu8925efd2016-04-13 15:13:21 +080060}
61
Chia-I Wu5beb2ac2016-05-04 16:37:23 +080062VKAPI_ATTR VkResult disabledGetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice physicalDevice, uint32_t, VkSurfaceKHR, VkBool32*) {
63 driver::Logger(physicalDevice).Err(physicalDevice, "VK_KHR_surface not enabled. Exported vkGetPhysicalDeviceSurfaceSupportKHR not executed.");
Chia-I Wu8925efd2016-04-13 15:13:21 +080064 return VK_SUCCESS;
65}
66
Chia-I Wu5beb2ac2016-05-04 16:37:23 +080067VKAPI_ATTR VkResult disabledGetPhysicalDeviceSurfaceCapabilitiesKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR, VkSurfaceCapabilitiesKHR*) {
68 driver::Logger(physicalDevice).Err(physicalDevice, "VK_KHR_surface not enabled. Exported vkGetPhysicalDeviceSurfaceCapabilitiesKHR not executed.");
Chia-I Wu8925efd2016-04-13 15:13:21 +080069 return VK_SUCCESS;
70}
71
Chia-I Wu5beb2ac2016-05-04 16:37:23 +080072VKAPI_ATTR VkResult disabledGetPhysicalDeviceSurfaceFormatsKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR, uint32_t*, VkSurfaceFormatKHR*) {
73 driver::Logger(physicalDevice).Err(physicalDevice, "VK_KHR_surface not enabled. Exported vkGetPhysicalDeviceSurfaceFormatsKHR not executed.");
Chia-I Wu8925efd2016-04-13 15:13:21 +080074 return VK_SUCCESS;
75}
76
Chia-I Wu5beb2ac2016-05-04 16:37:23 +080077VKAPI_ATTR VkResult disabledGetPhysicalDeviceSurfacePresentModesKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR, uint32_t*, VkPresentModeKHR*) {
78 driver::Logger(physicalDevice).Err(physicalDevice, "VK_KHR_surface not enabled. Exported vkGetPhysicalDeviceSurfacePresentModesKHR not executed.");
Chia-I Wu8925efd2016-04-13 15:13:21 +080079 return VK_SUCCESS;
80}
81
Chia-I Wu5beb2ac2016-05-04 16:37:23 +080082VKAPI_ATTR VkResult disabledCreateSwapchainKHR(VkDevice device, const VkSwapchainCreateInfoKHR*, const VkAllocationCallbacks*, VkSwapchainKHR*) {
83 driver::Logger(device).Err(device, "VK_KHR_swapchain not enabled. Exported vkCreateSwapchainKHR not executed.");
Chia-I Wu8925efd2016-04-13 15:13:21 +080084 return VK_SUCCESS;
85}
86
Chia-I Wu5beb2ac2016-05-04 16:37:23 +080087VKAPI_ATTR void disabledDestroySwapchainKHR(VkDevice device, VkSwapchainKHR, const VkAllocationCallbacks*) {
88 driver::Logger(device).Err(device, "VK_KHR_swapchain not enabled. Exported vkDestroySwapchainKHR not executed.");
Chia-I Wu8925efd2016-04-13 15:13:21 +080089}
90
Chia-I Wu5beb2ac2016-05-04 16:37:23 +080091VKAPI_ATTR VkResult disabledGetSwapchainImagesKHR(VkDevice device, VkSwapchainKHR, uint32_t*, VkImage*) {
92 driver::Logger(device).Err(device, "VK_KHR_swapchain not enabled. Exported vkGetSwapchainImagesKHR not executed.");
Chia-I Wu8925efd2016-04-13 15:13:21 +080093 return VK_SUCCESS;
94}
95
Chia-I Wu5beb2ac2016-05-04 16:37:23 +080096VKAPI_ATTR VkResult disabledAcquireNextImageKHR(VkDevice device, VkSwapchainKHR, uint64_t, VkSemaphore, VkFence, uint32_t*) {
97 driver::Logger(device).Err(device, "VK_KHR_swapchain not enabled. Exported vkAcquireNextImageKHR not executed.");
Chia-I Wu8925efd2016-04-13 15:13:21 +080098 return VK_SUCCESS;
99}
100
Chia-I Wu5beb2ac2016-05-04 16:37:23 +0800101VKAPI_ATTR VkResult disabledQueuePresentKHR(VkQueue queue, const VkPresentInfoKHR*) {
102 driver::Logger(queue).Err(queue, "VK_KHR_swapchain not enabled. Exported vkQueuePresentKHR not executed.");
Chia-I Wu8925efd2016-04-13 15:13:21 +0800103 return VK_SUCCESS;
104}
105
Chia-I Wu5beb2ac2016-05-04 16:37:23 +0800106VKAPI_ATTR VkResult disabledCreateAndroidSurfaceKHR(VkInstance instance, const VkAndroidSurfaceCreateInfoKHR*, const VkAllocationCallbacks*, VkSurfaceKHR*) {
107 driver::Logger(instance).Err(instance, "VK_KHR_android_surface not enabled. Exported vkCreateAndroidSurfaceKHR not executed.");
Chia-I Wu8925efd2016-04-13 15:13:21 +0800108 return VK_SUCCESS;
109}
110
111// clang-format on
112
113} // anonymous
114
115bool InitDispatchTable(
116 VkInstance instance,
117 PFN_vkGetInstanceProcAddr get_proc,
118 const std::bitset<driver::ProcHook::EXTENSION_COUNT>& extensions) {
Chia-I Wu0c203242016-03-15 13:44:51 +0800119 auto& data = GetData(instance);
120 bool success = true;
121
122 // clang-format off
123 INIT_PROC(instance, DestroyInstance);
124 INIT_PROC(instance, EnumeratePhysicalDevices);
125 INIT_PROC(instance, GetInstanceProcAddr);
126 INIT_PROC(instance, GetPhysicalDeviceProperties);
127 INIT_PROC(instance, GetPhysicalDeviceQueueFamilyProperties);
128 INIT_PROC(instance, GetPhysicalDeviceMemoryProperties);
129 INIT_PROC(instance, GetPhysicalDeviceFeatures);
130 INIT_PROC(instance, GetPhysicalDeviceFormatProperties);
131 INIT_PROC(instance, GetPhysicalDeviceImageFormatProperties);
132 INIT_PROC(instance, CreateDevice);
Chia-I Wu0c203242016-03-15 13:44:51 +0800133 INIT_PROC(instance, EnumerateDeviceExtensionProperties);
134 INIT_PROC(instance, GetPhysicalDeviceSparseImageFormatProperties);
135 INIT_PROC_EXT(KHR_surface, instance, DestroySurfaceKHR);
136 INIT_PROC_EXT(KHR_surface, instance, GetPhysicalDeviceSurfaceSupportKHR);
137 INIT_PROC_EXT(KHR_surface, instance, GetPhysicalDeviceSurfaceCapabilitiesKHR);
138 INIT_PROC_EXT(KHR_surface, instance, GetPhysicalDeviceSurfaceFormatsKHR);
139 INIT_PROC_EXT(KHR_surface, instance, GetPhysicalDeviceSurfacePresentModesKHR);
140 INIT_PROC_EXT(KHR_android_surface, instance, CreateAndroidSurfaceKHR);
141 // clang-format on
142
143 return success;
144}
145
Chia-I Wu8925efd2016-04-13 15:13:21 +0800146bool InitDispatchTable(
147 VkDevice dev,
148 PFN_vkGetDeviceProcAddr get_proc,
149 const std::bitset<driver::ProcHook::EXTENSION_COUNT>& extensions) {
Chia-I Wu0c203242016-03-15 13:44:51 +0800150 auto& data = GetData(dev);
151 bool success = true;
152
153 // clang-format off
154 INIT_PROC(dev, GetDeviceProcAddr);
155 INIT_PROC(dev, DestroyDevice);
156 INIT_PROC(dev, GetDeviceQueue);
157 INIT_PROC(dev, QueueSubmit);
158 INIT_PROC(dev, QueueWaitIdle);
159 INIT_PROC(dev, DeviceWaitIdle);
160 INIT_PROC(dev, AllocateMemory);
161 INIT_PROC(dev, FreeMemory);
162 INIT_PROC(dev, MapMemory);
163 INIT_PROC(dev, UnmapMemory);
164 INIT_PROC(dev, FlushMappedMemoryRanges);
165 INIT_PROC(dev, InvalidateMappedMemoryRanges);
166 INIT_PROC(dev, GetDeviceMemoryCommitment);
167 INIT_PROC(dev, GetBufferMemoryRequirements);
168 INIT_PROC(dev, BindBufferMemory);
169 INIT_PROC(dev, GetImageMemoryRequirements);
170 INIT_PROC(dev, BindImageMemory);
171 INIT_PROC(dev, GetImageSparseMemoryRequirements);
172 INIT_PROC(dev, QueueBindSparse);
173 INIT_PROC(dev, CreateFence);
174 INIT_PROC(dev, DestroyFence);
175 INIT_PROC(dev, ResetFences);
176 INIT_PROC(dev, GetFenceStatus);
177 INIT_PROC(dev, WaitForFences);
178 INIT_PROC(dev, CreateSemaphore);
179 INIT_PROC(dev, DestroySemaphore);
180 INIT_PROC(dev, CreateEvent);
181 INIT_PROC(dev, DestroyEvent);
182 INIT_PROC(dev, GetEventStatus);
183 INIT_PROC(dev, SetEvent);
184 INIT_PROC(dev, ResetEvent);
185 INIT_PROC(dev, CreateQueryPool);
186 INIT_PROC(dev, DestroyQueryPool);
187 INIT_PROC(dev, GetQueryPoolResults);
188 INIT_PROC(dev, CreateBuffer);
189 INIT_PROC(dev, DestroyBuffer);
190 INIT_PROC(dev, CreateBufferView);
191 INIT_PROC(dev, DestroyBufferView);
192 INIT_PROC(dev, CreateImage);
193 INIT_PROC(dev, DestroyImage);
194 INIT_PROC(dev, GetImageSubresourceLayout);
195 INIT_PROC(dev, CreateImageView);
196 INIT_PROC(dev, DestroyImageView);
197 INIT_PROC(dev, CreateShaderModule);
198 INIT_PROC(dev, DestroyShaderModule);
199 INIT_PROC(dev, CreatePipelineCache);
200 INIT_PROC(dev, DestroyPipelineCache);
201 INIT_PROC(dev, GetPipelineCacheData);
202 INIT_PROC(dev, MergePipelineCaches);
203 INIT_PROC(dev, CreateGraphicsPipelines);
204 INIT_PROC(dev, CreateComputePipelines);
205 INIT_PROC(dev, DestroyPipeline);
206 INIT_PROC(dev, CreatePipelineLayout);
207 INIT_PROC(dev, DestroyPipelineLayout);
208 INIT_PROC(dev, CreateSampler);
209 INIT_PROC(dev, DestroySampler);
210 INIT_PROC(dev, CreateDescriptorSetLayout);
211 INIT_PROC(dev, DestroyDescriptorSetLayout);
212 INIT_PROC(dev, CreateDescriptorPool);
213 INIT_PROC(dev, DestroyDescriptorPool);
214 INIT_PROC(dev, ResetDescriptorPool);
215 INIT_PROC(dev, AllocateDescriptorSets);
216 INIT_PROC(dev, FreeDescriptorSets);
217 INIT_PROC(dev, UpdateDescriptorSets);
218 INIT_PROC(dev, CreateFramebuffer);
219 INIT_PROC(dev, DestroyFramebuffer);
220 INIT_PROC(dev, CreateRenderPass);
221 INIT_PROC(dev, DestroyRenderPass);
222 INIT_PROC(dev, GetRenderAreaGranularity);
223 INIT_PROC(dev, CreateCommandPool);
224 INIT_PROC(dev, DestroyCommandPool);
225 INIT_PROC(dev, ResetCommandPool);
226 INIT_PROC(dev, AllocateCommandBuffers);
227 INIT_PROC(dev, FreeCommandBuffers);
228 INIT_PROC(dev, BeginCommandBuffer);
229 INIT_PROC(dev, EndCommandBuffer);
230 INIT_PROC(dev, ResetCommandBuffer);
231 INIT_PROC(dev, CmdBindPipeline);
232 INIT_PROC(dev, CmdSetViewport);
233 INIT_PROC(dev, CmdSetScissor);
234 INIT_PROC(dev, CmdSetLineWidth);
235 INIT_PROC(dev, CmdSetDepthBias);
236 INIT_PROC(dev, CmdSetBlendConstants);
237 INIT_PROC(dev, CmdSetDepthBounds);
238 INIT_PROC(dev, CmdSetStencilCompareMask);
239 INIT_PROC(dev, CmdSetStencilWriteMask);
240 INIT_PROC(dev, CmdSetStencilReference);
241 INIT_PROC(dev, CmdBindDescriptorSets);
242 INIT_PROC(dev, CmdBindIndexBuffer);
243 INIT_PROC(dev, CmdBindVertexBuffers);
244 INIT_PROC(dev, CmdDraw);
245 INIT_PROC(dev, CmdDrawIndexed);
246 INIT_PROC(dev, CmdDrawIndirect);
247 INIT_PROC(dev, CmdDrawIndexedIndirect);
248 INIT_PROC(dev, CmdDispatch);
249 INIT_PROC(dev, CmdDispatchIndirect);
250 INIT_PROC(dev, CmdCopyBuffer);
251 INIT_PROC(dev, CmdCopyImage);
252 INIT_PROC(dev, CmdBlitImage);
253 INIT_PROC(dev, CmdCopyBufferToImage);
254 INIT_PROC(dev, CmdCopyImageToBuffer);
255 INIT_PROC(dev, CmdUpdateBuffer);
256 INIT_PROC(dev, CmdFillBuffer);
257 INIT_PROC(dev, CmdClearColorImage);
258 INIT_PROC(dev, CmdClearDepthStencilImage);
259 INIT_PROC(dev, CmdClearAttachments);
260 INIT_PROC(dev, CmdResolveImage);
261 INIT_PROC(dev, CmdSetEvent);
262 INIT_PROC(dev, CmdResetEvent);
263 INIT_PROC(dev, CmdWaitEvents);
264 INIT_PROC(dev, CmdPipelineBarrier);
265 INIT_PROC(dev, CmdBeginQuery);
266 INIT_PROC(dev, CmdEndQuery);
267 INIT_PROC(dev, CmdResetQueryPool);
268 INIT_PROC(dev, CmdWriteTimestamp);
269 INIT_PROC(dev, CmdCopyQueryPoolResults);
270 INIT_PROC(dev, CmdPushConstants);
271 INIT_PROC(dev, CmdBeginRenderPass);
272 INIT_PROC(dev, CmdNextSubpass);
273 INIT_PROC(dev, CmdEndRenderPass);
274 INIT_PROC(dev, CmdExecuteCommands);
275 INIT_PROC_EXT(KHR_swapchain, dev, CreateSwapchainKHR);
276 INIT_PROC_EXT(KHR_swapchain, dev, DestroySwapchainKHR);
277 INIT_PROC_EXT(KHR_swapchain, dev, GetSwapchainImagesKHR);
278 INIT_PROC_EXT(KHR_swapchain, dev, AcquireNextImageKHR);
279 INIT_PROC_EXT(KHR_swapchain, dev, QueuePresentKHR);
280 // clang-format on
281
282 return success;
283}
284
Chia-I Wu0c203242016-03-15 13:44:51 +0800285// clang-format off
286
Chia-I Wu3e654dc2016-05-20 16:15:06 +0800287namespace {
288
289// forward declarations needed by GetInstanceProcAddr and GetDeviceProcAddr
290VKAPI_ATTR VkResult EnumeratePhysicalDevices(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
291VKAPI_ATTR PFN_vkVoidFunction GetDeviceProcAddr(VkDevice device, const char* pName);
292VKAPI_ATTR PFN_vkVoidFunction GetInstanceProcAddr(VkInstance instance, const char* pName);
293VKAPI_ATTR void GetPhysicalDeviceProperties(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties);
294VKAPI_ATTR void GetPhysicalDeviceQueueFamilyProperties(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties);
295VKAPI_ATTR void GetPhysicalDeviceMemoryProperties(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties);
296VKAPI_ATTR void GetPhysicalDeviceFeatures(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
297VKAPI_ATTR void GetPhysicalDeviceFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties);
298VKAPI_ATTR VkResult GetPhysicalDeviceImageFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties);
299VKAPI_ATTR void GetDeviceQueue(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue);
300VKAPI_ATTR VkResult QueueSubmit(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence);
301VKAPI_ATTR VkResult QueueWaitIdle(VkQueue queue);
302VKAPI_ATTR VkResult DeviceWaitIdle(VkDevice device);
303VKAPI_ATTR VkResult AllocateMemory(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory);
304VKAPI_ATTR void FreeMemory(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator);
305VKAPI_ATTR VkResult MapMemory(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData);
306VKAPI_ATTR void UnmapMemory(VkDevice device, VkDeviceMemory memory);
307VKAPI_ATTR VkResult FlushMappedMemoryRanges(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
308VKAPI_ATTR VkResult InvalidateMappedMemoryRanges(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
309VKAPI_ATTR void GetDeviceMemoryCommitment(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes);
310VKAPI_ATTR void GetBufferMemoryRequirements(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements);
311VKAPI_ATTR VkResult BindBufferMemory(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset);
312VKAPI_ATTR void GetImageMemoryRequirements(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements);
313VKAPI_ATTR VkResult BindImageMemory(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset);
314VKAPI_ATTR void GetImageSparseMemoryRequirements(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
315VKAPI_ATTR void GetPhysicalDeviceSparseImageFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties);
316VKAPI_ATTR VkResult QueueBindSparse(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence);
317VKAPI_ATTR VkResult CreateFence(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
318VKAPI_ATTR void DestroyFence(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator);
319VKAPI_ATTR VkResult ResetFences(VkDevice device, uint32_t fenceCount, const VkFence* pFences);
320VKAPI_ATTR VkResult GetFenceStatus(VkDevice device, VkFence fence);
321VKAPI_ATTR VkResult WaitForFences(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout);
322VKAPI_ATTR VkResult CreateSemaphore(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore);
323VKAPI_ATTR void DestroySemaphore(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator);
324VKAPI_ATTR VkResult CreateEvent(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent);
325VKAPI_ATTR void DestroyEvent(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator);
326VKAPI_ATTR VkResult GetEventStatus(VkDevice device, VkEvent event);
327VKAPI_ATTR VkResult SetEvent(VkDevice device, VkEvent event);
328VKAPI_ATTR VkResult ResetEvent(VkDevice device, VkEvent event);
329VKAPI_ATTR VkResult CreateQueryPool(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool);
330VKAPI_ATTR void DestroyQueryPool(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator);
331VKAPI_ATTR VkResult GetQueryPoolResults(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags);
332VKAPI_ATTR VkResult CreateBuffer(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer);
333VKAPI_ATTR void DestroyBuffer(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator);
334VKAPI_ATTR VkResult CreateBufferView(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView);
335VKAPI_ATTR void DestroyBufferView(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator);
336VKAPI_ATTR VkResult CreateImage(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage);
337VKAPI_ATTR void DestroyImage(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator);
338VKAPI_ATTR void GetImageSubresourceLayout(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout);
339VKAPI_ATTR VkResult CreateImageView(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView);
340VKAPI_ATTR void DestroyImageView(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator);
341VKAPI_ATTR VkResult CreateShaderModule(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule);
342VKAPI_ATTR void DestroyShaderModule(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator);
343VKAPI_ATTR VkResult CreatePipelineCache(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache);
344VKAPI_ATTR void DestroyPipelineCache(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator);
345VKAPI_ATTR VkResult GetPipelineCacheData(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData);
346VKAPI_ATTR VkResult MergePipelineCaches(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches);
347VKAPI_ATTR VkResult CreateGraphicsPipelines(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
348VKAPI_ATTR VkResult CreateComputePipelines(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
349VKAPI_ATTR void DestroyPipeline(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator);
350VKAPI_ATTR VkResult CreatePipelineLayout(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout);
351VKAPI_ATTR void DestroyPipelineLayout(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator);
352VKAPI_ATTR VkResult CreateSampler(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler);
353VKAPI_ATTR void DestroySampler(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator);
354VKAPI_ATTR VkResult CreateDescriptorSetLayout(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout);
355VKAPI_ATTR void DestroyDescriptorSetLayout(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator);
356VKAPI_ATTR VkResult CreateDescriptorPool(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool);
357VKAPI_ATTR void DestroyDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator);
358VKAPI_ATTR VkResult ResetDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
359VKAPI_ATTR VkResult AllocateDescriptorSets(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets);
360VKAPI_ATTR VkResult FreeDescriptorSets(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets);
361VKAPI_ATTR void UpdateDescriptorSets(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies);
362VKAPI_ATTR VkResult CreateFramebuffer(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer);
363VKAPI_ATTR void DestroyFramebuffer(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator);
364VKAPI_ATTR VkResult CreateRenderPass(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
365VKAPI_ATTR void DestroyRenderPass(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator);
366VKAPI_ATTR void GetRenderAreaGranularity(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity);
367VKAPI_ATTR VkResult CreateCommandPool(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool);
368VKAPI_ATTR void DestroyCommandPool(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator);
369VKAPI_ATTR VkResult ResetCommandPool(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags);
370VKAPI_ATTR VkResult AllocateCommandBuffers(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers);
371VKAPI_ATTR void FreeCommandBuffers(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
372VKAPI_ATTR VkResult BeginCommandBuffer(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo);
373VKAPI_ATTR VkResult EndCommandBuffer(VkCommandBuffer commandBuffer);
374VKAPI_ATTR VkResult ResetCommandBuffer(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags);
375VKAPI_ATTR void CmdBindPipeline(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
376VKAPI_ATTR void CmdSetViewport(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports);
377VKAPI_ATTR void CmdSetScissor(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors);
378VKAPI_ATTR void CmdSetLineWidth(VkCommandBuffer commandBuffer, float lineWidth);
379VKAPI_ATTR void CmdSetDepthBias(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor);
380VKAPI_ATTR void CmdSetBlendConstants(VkCommandBuffer commandBuffer, const float blendConstants[4]);
381VKAPI_ATTR void CmdSetDepthBounds(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds);
382VKAPI_ATTR void CmdSetStencilCompareMask(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask);
383VKAPI_ATTR void CmdSetStencilWriteMask(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask);
384VKAPI_ATTR void CmdSetStencilReference(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference);
385VKAPI_ATTR void CmdBindDescriptorSets(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets);
386VKAPI_ATTR void CmdBindIndexBuffer(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
387VKAPI_ATTR void CmdBindVertexBuffers(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets);
388VKAPI_ATTR void CmdDraw(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance);
389VKAPI_ATTR void CmdDrawIndexed(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance);
390VKAPI_ATTR void CmdDrawIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
391VKAPI_ATTR void CmdDrawIndexedIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
392VKAPI_ATTR void CmdDispatch(VkCommandBuffer commandBuffer, uint32_t x, uint32_t y, uint32_t z);
393VKAPI_ATTR void CmdDispatchIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
394VKAPI_ATTR void CmdCopyBuffer(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions);
395VKAPI_ATTR void CmdCopyImage(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions);
396VKAPI_ATTR void CmdBlitImage(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter);
397VKAPI_ATTR void CmdCopyBufferToImage(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions);
398VKAPI_ATTR void CmdCopyImageToBuffer(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions);
399VKAPI_ATTR void CmdUpdateBuffer(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const uint32_t* pData);
400VKAPI_ATTR void CmdFillBuffer(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data);
401VKAPI_ATTR void CmdClearColorImage(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
402VKAPI_ATTR void CmdClearDepthStencilImage(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
403VKAPI_ATTR void CmdClearAttachments(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects);
404VKAPI_ATTR void CmdResolveImage(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions);
405VKAPI_ATTR void CmdSetEvent(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
406VKAPI_ATTR void CmdResetEvent(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
407VKAPI_ATTR void CmdWaitEvents(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers);
408VKAPI_ATTR void CmdPipelineBarrier(VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers);
409VKAPI_ATTR void CmdBeginQuery(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags);
410VKAPI_ATTR void CmdEndQuery(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query);
411VKAPI_ATTR void CmdResetQueryPool(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
412VKAPI_ATTR void CmdWriteTimestamp(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query);
413VKAPI_ATTR void CmdCopyQueryPoolResults(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags);
414VKAPI_ATTR void CmdPushConstants(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues);
415VKAPI_ATTR void CmdBeginRenderPass(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents);
416VKAPI_ATTR void CmdNextSubpass(VkCommandBuffer commandBuffer, VkSubpassContents contents);
417VKAPI_ATTR void CmdEndRenderPass(VkCommandBuffer commandBuffer);
418VKAPI_ATTR void CmdExecuteCommands(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
419VKAPI_ATTR void DestroySurfaceKHR(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator);
420VKAPI_ATTR VkResult GetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported);
421VKAPI_ATTR VkResult GetPhysicalDeviceSurfaceCapabilitiesKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
422VKAPI_ATTR VkResult GetPhysicalDeviceSurfaceFormatsKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats);
423VKAPI_ATTR VkResult GetPhysicalDeviceSurfacePresentModesKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes);
424VKAPI_ATTR VkResult CreateSwapchainKHR(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain);
425VKAPI_ATTR void DestroySwapchainKHR(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator);
426VKAPI_ATTR VkResult GetSwapchainImagesKHR(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages);
427VKAPI_ATTR VkResult AcquireNextImageKHR(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex);
428VKAPI_ATTR VkResult QueuePresentKHR(VkQueue queue, const VkPresentInfoKHR* pPresentInfo);
429VKAPI_ATTR VkResult CreateAndroidSurfaceKHR(VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
430
431VKAPI_ATTR VkResult EnumeratePhysicalDevices(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices) {
432 return GetData(instance).dispatch.EnumeratePhysicalDevices(instance, pPhysicalDeviceCount, pPhysicalDevices);
Chia-I Wu0c203242016-03-15 13:44:51 +0800433}
434
Chia-I Wu3e654dc2016-05-20 16:15:06 +0800435VKAPI_ATTR PFN_vkVoidFunction GetDeviceProcAddr(VkDevice device, const char* pName) {
Chia-I Wu0c203242016-03-15 13:44:51 +0800436 if (device == VK_NULL_HANDLE) {
Chia-I Wu5beb2ac2016-05-04 16:37:23 +0800437 ALOGE("invalid vkGetDeviceProcAddr(VK_NULL_HANDLE, ...) call");
Chia-I Wu0c203242016-03-15 13:44:51 +0800438 return nullptr;
439 }
440
441 static const char* const known_non_device_names[] = {
442 "vkCreateAndroidSurfaceKHR",
443 "vkCreateDebugReportCallbackEXT",
444 "vkCreateDevice",
445 "vkCreateInstance",
446 "vkDebugReportMessageEXT",
447 "vkDestroyDebugReportCallbackEXT",
448 "vkDestroyInstance",
449 "vkDestroySurfaceKHR",
450 "vkEnumerateDeviceExtensionProperties",
451 "vkEnumerateDeviceLayerProperties",
452 "vkEnumerateInstanceExtensionProperties",
453 "vkEnumerateInstanceLayerProperties",
454 "vkEnumeratePhysicalDevices",
455 "vkGetInstanceProcAddr",
456 "vkGetPhysicalDeviceFeatures",
457 "vkGetPhysicalDeviceFormatProperties",
458 "vkGetPhysicalDeviceImageFormatProperties",
459 "vkGetPhysicalDeviceMemoryProperties",
460 "vkGetPhysicalDeviceProperties",
461 "vkGetPhysicalDeviceQueueFamilyProperties",
462 "vkGetPhysicalDeviceSparseImageFormatProperties",
463 "vkGetPhysicalDeviceSurfaceCapabilitiesKHR",
464 "vkGetPhysicalDeviceSurfaceFormatsKHR",
465 "vkGetPhysicalDeviceSurfacePresentModesKHR",
466 "vkGetPhysicalDeviceSurfaceSupportKHR",
467 };
468 // clang-format on
469 constexpr size_t count =
470 sizeof(known_non_device_names) / sizeof(known_non_device_names[0]);
471 if (!pName ||
472 std::binary_search(
473 known_non_device_names, known_non_device_names + count, pName,
474 [](const char* a, const char* b) { return (strcmp(a, b) < 0); })) {
Chia-I Wu5beb2ac2016-05-04 16:37:23 +0800475 vulkan::driver::Logger(device).Err(
476 device, "invalid vkGetDeviceProcAddr(%p, \"%s\") call", device,
477 (pName) ? pName : "(null)");
Chia-I Wu0c203242016-03-15 13:44:51 +0800478 return nullptr;
479 }
480 // clang-format off
481
Chia-I Wu3e654dc2016-05-20 16:15:06 +0800482 if (strcmp(pName, "vkGetDeviceProcAddr") == 0) return reinterpret_cast<PFN_vkVoidFunction>(GetDeviceProcAddr);
483 if (strcmp(pName, "vkDestroyDevice") == 0) return reinterpret_cast<PFN_vkVoidFunction>(DestroyDevice);
Chia-I Wuc56603e2016-04-12 11:16:17 +0800484
Chia-I Wu3e654dc2016-05-20 16:15:06 +0800485 return GetData(device).dispatch.GetDeviceProcAddr(device, pName);
Chia-I Wu0c203242016-03-15 13:44:51 +0800486}
487
Chia-I Wu3e654dc2016-05-20 16:15:06 +0800488VKAPI_ATTR PFN_vkVoidFunction GetInstanceProcAddr(VkInstance instance, const char* pName) {
Chia-I Wu0c203242016-03-15 13:44:51 +0800489 // global functions
Chia-I Wu5beb2ac2016-05-04 16:37:23 +0800490 if (instance == VK_NULL_HANDLE) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +0800491 if (strcmp(pName, "vkCreateInstance") == 0) return reinterpret_cast<PFN_vkVoidFunction>(CreateInstance);
492 if (strcmp(pName, "vkEnumerateInstanceLayerProperties") == 0) return reinterpret_cast<PFN_vkVoidFunction>(EnumerateInstanceLayerProperties);
493 if (strcmp(pName, "vkEnumerateInstanceExtensionProperties") == 0) return reinterpret_cast<PFN_vkVoidFunction>(EnumerateInstanceExtensionProperties);
Chia-I Wu0c203242016-03-15 13:44:51 +0800494
Chia-I Wu5beb2ac2016-05-04 16:37:23 +0800495 ALOGE("invalid vkGetInstanceProcAddr(VK_NULL_HANDLE, \"%s\") call", pName);
Chia-I Wu0c203242016-03-15 13:44:51 +0800496 return nullptr;
497 }
498
499 static const struct Hook {
500 const char* name;
501 PFN_vkVoidFunction proc;
502 } hooks[] = {
Chia-I Wu3e654dc2016-05-20 16:15:06 +0800503 { "vkAcquireNextImageKHR", reinterpret_cast<PFN_vkVoidFunction>(AcquireNextImageKHR) },
504 { "vkAllocateCommandBuffers", reinterpret_cast<PFN_vkVoidFunction>(AllocateCommandBuffers) },
505 { "vkAllocateDescriptorSets", reinterpret_cast<PFN_vkVoidFunction>(AllocateDescriptorSets) },
506 { "vkAllocateMemory", reinterpret_cast<PFN_vkVoidFunction>(AllocateMemory) },
507 { "vkBeginCommandBuffer", reinterpret_cast<PFN_vkVoidFunction>(BeginCommandBuffer) },
508 { "vkBindBufferMemory", reinterpret_cast<PFN_vkVoidFunction>(BindBufferMemory) },
509 { "vkBindImageMemory", reinterpret_cast<PFN_vkVoidFunction>(BindImageMemory) },
510 { "vkCmdBeginQuery", reinterpret_cast<PFN_vkVoidFunction>(CmdBeginQuery) },
511 { "vkCmdBeginRenderPass", reinterpret_cast<PFN_vkVoidFunction>(CmdBeginRenderPass) },
512 { "vkCmdBindDescriptorSets", reinterpret_cast<PFN_vkVoidFunction>(CmdBindDescriptorSets) },
513 { "vkCmdBindIndexBuffer", reinterpret_cast<PFN_vkVoidFunction>(CmdBindIndexBuffer) },
514 { "vkCmdBindPipeline", reinterpret_cast<PFN_vkVoidFunction>(CmdBindPipeline) },
515 { "vkCmdBindVertexBuffers", reinterpret_cast<PFN_vkVoidFunction>(CmdBindVertexBuffers) },
516 { "vkCmdBlitImage", reinterpret_cast<PFN_vkVoidFunction>(CmdBlitImage) },
517 { "vkCmdClearAttachments", reinterpret_cast<PFN_vkVoidFunction>(CmdClearAttachments) },
518 { "vkCmdClearColorImage", reinterpret_cast<PFN_vkVoidFunction>(CmdClearColorImage) },
519 { "vkCmdClearDepthStencilImage", reinterpret_cast<PFN_vkVoidFunction>(CmdClearDepthStencilImage) },
520 { "vkCmdCopyBuffer", reinterpret_cast<PFN_vkVoidFunction>(CmdCopyBuffer) },
521 { "vkCmdCopyBufferToImage", reinterpret_cast<PFN_vkVoidFunction>(CmdCopyBufferToImage) },
522 { "vkCmdCopyImage", reinterpret_cast<PFN_vkVoidFunction>(CmdCopyImage) },
523 { "vkCmdCopyImageToBuffer", reinterpret_cast<PFN_vkVoidFunction>(CmdCopyImageToBuffer) },
524 { "vkCmdCopyQueryPoolResults", reinterpret_cast<PFN_vkVoidFunction>(CmdCopyQueryPoolResults) },
525 { "vkCmdDispatch", reinterpret_cast<PFN_vkVoidFunction>(CmdDispatch) },
526 { "vkCmdDispatchIndirect", reinterpret_cast<PFN_vkVoidFunction>(CmdDispatchIndirect) },
527 { "vkCmdDraw", reinterpret_cast<PFN_vkVoidFunction>(CmdDraw) },
528 { "vkCmdDrawIndexed", reinterpret_cast<PFN_vkVoidFunction>(CmdDrawIndexed) },
529 { "vkCmdDrawIndexedIndirect", reinterpret_cast<PFN_vkVoidFunction>(CmdDrawIndexedIndirect) },
530 { "vkCmdDrawIndirect", reinterpret_cast<PFN_vkVoidFunction>(CmdDrawIndirect) },
531 { "vkCmdEndQuery", reinterpret_cast<PFN_vkVoidFunction>(CmdEndQuery) },
532 { "vkCmdEndRenderPass", reinterpret_cast<PFN_vkVoidFunction>(CmdEndRenderPass) },
533 { "vkCmdExecuteCommands", reinterpret_cast<PFN_vkVoidFunction>(CmdExecuteCommands) },
534 { "vkCmdFillBuffer", reinterpret_cast<PFN_vkVoidFunction>(CmdFillBuffer) },
535 { "vkCmdNextSubpass", reinterpret_cast<PFN_vkVoidFunction>(CmdNextSubpass) },
536 { "vkCmdPipelineBarrier", reinterpret_cast<PFN_vkVoidFunction>(CmdPipelineBarrier) },
537 { "vkCmdPushConstants", reinterpret_cast<PFN_vkVoidFunction>(CmdPushConstants) },
538 { "vkCmdResetEvent", reinterpret_cast<PFN_vkVoidFunction>(CmdResetEvent) },
539 { "vkCmdResetQueryPool", reinterpret_cast<PFN_vkVoidFunction>(CmdResetQueryPool) },
540 { "vkCmdResolveImage", reinterpret_cast<PFN_vkVoidFunction>(CmdResolveImage) },
541 { "vkCmdSetBlendConstants", reinterpret_cast<PFN_vkVoidFunction>(CmdSetBlendConstants) },
542 { "vkCmdSetDepthBias", reinterpret_cast<PFN_vkVoidFunction>(CmdSetDepthBias) },
543 { "vkCmdSetDepthBounds", reinterpret_cast<PFN_vkVoidFunction>(CmdSetDepthBounds) },
544 { "vkCmdSetEvent", reinterpret_cast<PFN_vkVoidFunction>(CmdSetEvent) },
545 { "vkCmdSetLineWidth", reinterpret_cast<PFN_vkVoidFunction>(CmdSetLineWidth) },
546 { "vkCmdSetScissor", reinterpret_cast<PFN_vkVoidFunction>(CmdSetScissor) },
547 { "vkCmdSetStencilCompareMask", reinterpret_cast<PFN_vkVoidFunction>(CmdSetStencilCompareMask) },
548 { "vkCmdSetStencilReference", reinterpret_cast<PFN_vkVoidFunction>(CmdSetStencilReference) },
549 { "vkCmdSetStencilWriteMask", reinterpret_cast<PFN_vkVoidFunction>(CmdSetStencilWriteMask) },
550 { "vkCmdSetViewport", reinterpret_cast<PFN_vkVoidFunction>(CmdSetViewport) },
551 { "vkCmdUpdateBuffer", reinterpret_cast<PFN_vkVoidFunction>(CmdUpdateBuffer) },
552 { "vkCmdWaitEvents", reinterpret_cast<PFN_vkVoidFunction>(CmdWaitEvents) },
553 { "vkCmdWriteTimestamp", reinterpret_cast<PFN_vkVoidFunction>(CmdWriteTimestamp) },
554 { "vkCreateBuffer", reinterpret_cast<PFN_vkVoidFunction>(CreateBuffer) },
555 { "vkCreateBufferView", reinterpret_cast<PFN_vkVoidFunction>(CreateBufferView) },
556 { "vkCreateCommandPool", reinterpret_cast<PFN_vkVoidFunction>(CreateCommandPool) },
557 { "vkCreateComputePipelines", reinterpret_cast<PFN_vkVoidFunction>(CreateComputePipelines) },
558 { "vkCreateDescriptorPool", reinterpret_cast<PFN_vkVoidFunction>(CreateDescriptorPool) },
559 { "vkCreateDescriptorSetLayout", reinterpret_cast<PFN_vkVoidFunction>(CreateDescriptorSetLayout) },
560 { "vkCreateDevice", reinterpret_cast<PFN_vkVoidFunction>(CreateDevice) },
561 { "vkCreateEvent", reinterpret_cast<PFN_vkVoidFunction>(CreateEvent) },
562 { "vkCreateFence", reinterpret_cast<PFN_vkVoidFunction>(CreateFence) },
563 { "vkCreateFramebuffer", reinterpret_cast<PFN_vkVoidFunction>(CreateFramebuffer) },
564 { "vkCreateGraphicsPipelines", reinterpret_cast<PFN_vkVoidFunction>(CreateGraphicsPipelines) },
565 { "vkCreateImage", reinterpret_cast<PFN_vkVoidFunction>(CreateImage) },
566 { "vkCreateImageView", reinterpret_cast<PFN_vkVoidFunction>(CreateImageView) },
Chia-I Wu0c203242016-03-15 13:44:51 +0800567 { "vkCreateInstance", nullptr },
Chia-I Wu3e654dc2016-05-20 16:15:06 +0800568 { "vkCreatePipelineCache", reinterpret_cast<PFN_vkVoidFunction>(CreatePipelineCache) },
569 { "vkCreatePipelineLayout", reinterpret_cast<PFN_vkVoidFunction>(CreatePipelineLayout) },
570 { "vkCreateQueryPool", reinterpret_cast<PFN_vkVoidFunction>(CreateQueryPool) },
571 { "vkCreateRenderPass", reinterpret_cast<PFN_vkVoidFunction>(CreateRenderPass) },
572 { "vkCreateSampler", reinterpret_cast<PFN_vkVoidFunction>(CreateSampler) },
573 { "vkCreateSemaphore", reinterpret_cast<PFN_vkVoidFunction>(CreateSemaphore) },
574 { "vkCreateShaderModule", reinterpret_cast<PFN_vkVoidFunction>(CreateShaderModule) },
575 { "vkCreateSwapchainKHR", reinterpret_cast<PFN_vkVoidFunction>(CreateSwapchainKHR) },
576 { "vkDestroyBuffer", reinterpret_cast<PFN_vkVoidFunction>(DestroyBuffer) },
577 { "vkDestroyBufferView", reinterpret_cast<PFN_vkVoidFunction>(DestroyBufferView) },
578 { "vkDestroyCommandPool", reinterpret_cast<PFN_vkVoidFunction>(DestroyCommandPool) },
579 { "vkDestroyDescriptorPool", reinterpret_cast<PFN_vkVoidFunction>(DestroyDescriptorPool) },
580 { "vkDestroyDescriptorSetLayout", reinterpret_cast<PFN_vkVoidFunction>(DestroyDescriptorSetLayout) },
581 { "vkDestroyDevice", reinterpret_cast<PFN_vkVoidFunction>(DestroyDevice) },
582 { "vkDestroyEvent", reinterpret_cast<PFN_vkVoidFunction>(DestroyEvent) },
583 { "vkDestroyFence", reinterpret_cast<PFN_vkVoidFunction>(DestroyFence) },
584 { "vkDestroyFramebuffer", reinterpret_cast<PFN_vkVoidFunction>(DestroyFramebuffer) },
585 { "vkDestroyImage", reinterpret_cast<PFN_vkVoidFunction>(DestroyImage) },
586 { "vkDestroyImageView", reinterpret_cast<PFN_vkVoidFunction>(DestroyImageView) },
587 { "vkDestroyInstance", reinterpret_cast<PFN_vkVoidFunction>(DestroyInstance) },
588 { "vkDestroyPipeline", reinterpret_cast<PFN_vkVoidFunction>(DestroyPipeline) },
589 { "vkDestroyPipelineCache", reinterpret_cast<PFN_vkVoidFunction>(DestroyPipelineCache) },
590 { "vkDestroyPipelineLayout", reinterpret_cast<PFN_vkVoidFunction>(DestroyPipelineLayout) },
591 { "vkDestroyQueryPool", reinterpret_cast<PFN_vkVoidFunction>(DestroyQueryPool) },
592 { "vkDestroyRenderPass", reinterpret_cast<PFN_vkVoidFunction>(DestroyRenderPass) },
593 { "vkDestroySampler", reinterpret_cast<PFN_vkVoidFunction>(DestroySampler) },
594 { "vkDestroySemaphore", reinterpret_cast<PFN_vkVoidFunction>(DestroySemaphore) },
595 { "vkDestroyShaderModule", reinterpret_cast<PFN_vkVoidFunction>(DestroyShaderModule) },
596 { "vkDestroySwapchainKHR", reinterpret_cast<PFN_vkVoidFunction>(DestroySwapchainKHR) },
597 { "vkDeviceWaitIdle", reinterpret_cast<PFN_vkVoidFunction>(DeviceWaitIdle) },
598 { "vkEndCommandBuffer", reinterpret_cast<PFN_vkVoidFunction>(EndCommandBuffer) },
599 { "vkEnumerateDeviceExtensionProperties", reinterpret_cast<PFN_vkVoidFunction>(EnumerateDeviceExtensionProperties) },
600 { "vkEnumerateDeviceLayerProperties", reinterpret_cast<PFN_vkVoidFunction>(EnumerateDeviceLayerProperties) },
Chia-I Wu0c203242016-03-15 13:44:51 +0800601 { "vkEnumerateInstanceExtensionProperties", nullptr },
602 { "vkEnumerateInstanceLayerProperties", nullptr },
Chia-I Wu3e654dc2016-05-20 16:15:06 +0800603 { "vkFlushMappedMemoryRanges", reinterpret_cast<PFN_vkVoidFunction>(FlushMappedMemoryRanges) },
604 { "vkFreeCommandBuffers", reinterpret_cast<PFN_vkVoidFunction>(FreeCommandBuffers) },
605 { "vkFreeDescriptorSets", reinterpret_cast<PFN_vkVoidFunction>(FreeDescriptorSets) },
606 { "vkFreeMemory", reinterpret_cast<PFN_vkVoidFunction>(FreeMemory) },
607 { "vkGetBufferMemoryRequirements", reinterpret_cast<PFN_vkVoidFunction>(GetBufferMemoryRequirements) },
608 { "vkGetDeviceMemoryCommitment", reinterpret_cast<PFN_vkVoidFunction>(GetDeviceMemoryCommitment) },
609 { "vkGetDeviceProcAddr", reinterpret_cast<PFN_vkVoidFunction>(GetDeviceProcAddr) },
610 { "vkGetDeviceQueue", reinterpret_cast<PFN_vkVoidFunction>(GetDeviceQueue) },
611 { "vkGetEventStatus", reinterpret_cast<PFN_vkVoidFunction>(GetEventStatus) },
612 { "vkGetFenceStatus", reinterpret_cast<PFN_vkVoidFunction>(GetFenceStatus) },
613 { "vkGetImageMemoryRequirements", reinterpret_cast<PFN_vkVoidFunction>(GetImageMemoryRequirements) },
614 { "vkGetImageSparseMemoryRequirements", reinterpret_cast<PFN_vkVoidFunction>(GetImageSparseMemoryRequirements) },
615 { "vkGetImageSubresourceLayout", reinterpret_cast<PFN_vkVoidFunction>(GetImageSubresourceLayout) },
616 { "vkGetInstanceProcAddr", reinterpret_cast<PFN_vkVoidFunction>(GetInstanceProcAddr) },
617 { "vkGetPipelineCacheData", reinterpret_cast<PFN_vkVoidFunction>(GetPipelineCacheData) },
618 { "vkGetQueryPoolResults", reinterpret_cast<PFN_vkVoidFunction>(GetQueryPoolResults) },
619 { "vkGetRenderAreaGranularity", reinterpret_cast<PFN_vkVoidFunction>(GetRenderAreaGranularity) },
620 { "vkGetSwapchainImagesKHR", reinterpret_cast<PFN_vkVoidFunction>(GetSwapchainImagesKHR) },
621 { "vkInvalidateMappedMemoryRanges", reinterpret_cast<PFN_vkVoidFunction>(InvalidateMappedMemoryRanges) },
622 { "vkMapMemory", reinterpret_cast<PFN_vkVoidFunction>(MapMemory) },
623 { "vkMergePipelineCaches", reinterpret_cast<PFN_vkVoidFunction>(MergePipelineCaches) },
624 { "vkQueueBindSparse", reinterpret_cast<PFN_vkVoidFunction>(QueueBindSparse) },
625 { "vkQueuePresentKHR", reinterpret_cast<PFN_vkVoidFunction>(QueuePresentKHR) },
626 { "vkQueueSubmit", reinterpret_cast<PFN_vkVoidFunction>(QueueSubmit) },
627 { "vkQueueWaitIdle", reinterpret_cast<PFN_vkVoidFunction>(QueueWaitIdle) },
628 { "vkResetCommandBuffer", reinterpret_cast<PFN_vkVoidFunction>(ResetCommandBuffer) },
629 { "vkResetCommandPool", reinterpret_cast<PFN_vkVoidFunction>(ResetCommandPool) },
630 { "vkResetDescriptorPool", reinterpret_cast<PFN_vkVoidFunction>(ResetDescriptorPool) },
631 { "vkResetEvent", reinterpret_cast<PFN_vkVoidFunction>(ResetEvent) },
632 { "vkResetFences", reinterpret_cast<PFN_vkVoidFunction>(ResetFences) },
633 { "vkSetEvent", reinterpret_cast<PFN_vkVoidFunction>(SetEvent) },
634 { "vkUnmapMemory", reinterpret_cast<PFN_vkVoidFunction>(UnmapMemory) },
635 { "vkUpdateDescriptorSets", reinterpret_cast<PFN_vkVoidFunction>(UpdateDescriptorSets) },
636 { "vkWaitForFences", reinterpret_cast<PFN_vkVoidFunction>(WaitForFences) },
Chia-I Wu0c203242016-03-15 13:44:51 +0800637 };
638 // clang-format on
639 constexpr size_t count = sizeof(hooks) / sizeof(hooks[0]);
640 auto hook = std::lower_bound(
641 hooks, hooks + count, pName,
642 [](const Hook& h, const char* n) { return strcmp(h.name, n) < 0; });
643 if (hook < hooks + count && strcmp(hook->name, pName) == 0) {
Chia-I Wu5beb2ac2016-05-04 16:37:23 +0800644 if (!hook->proc) {
645 vulkan::driver::Logger(instance).Err(
646 instance, "invalid vkGetInstanceProcAddr(%p, \"%s\") call",
647 instance, pName);
648 }
Chia-I Wu0c203242016-03-15 13:44:51 +0800649 return hook->proc;
650 }
651 // clang-format off
652
Chia-I Wu3e654dc2016-05-20 16:15:06 +0800653 return GetData(instance).dispatch.GetInstanceProcAddr(instance, pName);
654}
655
656VKAPI_ATTR void GetPhysicalDeviceProperties(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties) {
657 GetData(physicalDevice).dispatch.GetPhysicalDeviceProperties(physicalDevice, pProperties);
658}
659
660VKAPI_ATTR void GetPhysicalDeviceQueueFamilyProperties(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties) {
661 GetData(physicalDevice).dispatch.GetPhysicalDeviceQueueFamilyProperties(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties);
662}
663
664VKAPI_ATTR void GetPhysicalDeviceMemoryProperties(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties) {
665 GetData(physicalDevice).dispatch.GetPhysicalDeviceMemoryProperties(physicalDevice, pMemoryProperties);
666}
667
668VKAPI_ATTR void GetPhysicalDeviceFeatures(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures) {
669 GetData(physicalDevice).dispatch.GetPhysicalDeviceFeatures(physicalDevice, pFeatures);
670}
671
672VKAPI_ATTR void GetPhysicalDeviceFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties) {
673 GetData(physicalDevice).dispatch.GetPhysicalDeviceFormatProperties(physicalDevice, format, pFormatProperties);
674}
675
676VKAPI_ATTR VkResult GetPhysicalDeviceImageFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties) {
677 return GetData(physicalDevice).dispatch.GetPhysicalDeviceImageFormatProperties(physicalDevice, format, type, tiling, usage, flags, pImageFormatProperties);
678}
679
680VKAPI_ATTR void GetDeviceQueue(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue) {
681 GetData(device).dispatch.GetDeviceQueue(device, queueFamilyIndex, queueIndex, pQueue);
682}
683
684VKAPI_ATTR VkResult QueueSubmit(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence) {
685 return GetData(queue).dispatch.QueueSubmit(queue, submitCount, pSubmits, fence);
686}
687
688VKAPI_ATTR VkResult QueueWaitIdle(VkQueue queue) {
689 return GetData(queue).dispatch.QueueWaitIdle(queue);
690}
691
692VKAPI_ATTR VkResult DeviceWaitIdle(VkDevice device) {
693 return GetData(device).dispatch.DeviceWaitIdle(device);
694}
695
696VKAPI_ATTR VkResult AllocateMemory(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory) {
697 return GetData(device).dispatch.AllocateMemory(device, pAllocateInfo, pAllocator, pMemory);
698}
699
700VKAPI_ATTR void FreeMemory(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator) {
701 GetData(device).dispatch.FreeMemory(device, memory, pAllocator);
702}
703
704VKAPI_ATTR VkResult MapMemory(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData) {
705 return GetData(device).dispatch.MapMemory(device, memory, offset, size, flags, ppData);
706}
707
708VKAPI_ATTR void UnmapMemory(VkDevice device, VkDeviceMemory memory) {
709 GetData(device).dispatch.UnmapMemory(device, memory);
710}
711
712VKAPI_ATTR VkResult FlushMappedMemoryRanges(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges) {
713 return GetData(device).dispatch.FlushMappedMemoryRanges(device, memoryRangeCount, pMemoryRanges);
714}
715
716VKAPI_ATTR VkResult InvalidateMappedMemoryRanges(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges) {
717 return GetData(device).dispatch.InvalidateMappedMemoryRanges(device, memoryRangeCount, pMemoryRanges);
718}
719
720VKAPI_ATTR void GetDeviceMemoryCommitment(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes) {
721 GetData(device).dispatch.GetDeviceMemoryCommitment(device, memory, pCommittedMemoryInBytes);
722}
723
724VKAPI_ATTR void GetBufferMemoryRequirements(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements) {
725 GetData(device).dispatch.GetBufferMemoryRequirements(device, buffer, pMemoryRequirements);
726}
727
728VKAPI_ATTR VkResult BindBufferMemory(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset) {
729 return GetData(device).dispatch.BindBufferMemory(device, buffer, memory, memoryOffset);
730}
731
732VKAPI_ATTR void GetImageMemoryRequirements(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements) {
733 GetData(device).dispatch.GetImageMemoryRequirements(device, image, pMemoryRequirements);
734}
735
736VKAPI_ATTR VkResult BindImageMemory(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset) {
737 return GetData(device).dispatch.BindImageMemory(device, image, memory, memoryOffset);
738}
739
740VKAPI_ATTR void GetImageSparseMemoryRequirements(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements) {
741 GetData(device).dispatch.GetImageSparseMemoryRequirements(device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
742}
743
744VKAPI_ATTR void GetPhysicalDeviceSparseImageFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties) {
745 GetData(physicalDevice).dispatch.GetPhysicalDeviceSparseImageFormatProperties(physicalDevice, format, type, samples, usage, tiling, pPropertyCount, pProperties);
746}
747
748VKAPI_ATTR VkResult QueueBindSparse(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence) {
749 return GetData(queue).dispatch.QueueBindSparse(queue, bindInfoCount, pBindInfo, fence);
750}
751
752VKAPI_ATTR VkResult CreateFence(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence) {
753 return GetData(device).dispatch.CreateFence(device, pCreateInfo, pAllocator, pFence);
754}
755
756VKAPI_ATTR void DestroyFence(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator) {
757 GetData(device).dispatch.DestroyFence(device, fence, pAllocator);
758}
759
760VKAPI_ATTR VkResult ResetFences(VkDevice device, uint32_t fenceCount, const VkFence* pFences) {
761 return GetData(device).dispatch.ResetFences(device, fenceCount, pFences);
762}
763
764VKAPI_ATTR VkResult GetFenceStatus(VkDevice device, VkFence fence) {
765 return GetData(device).dispatch.GetFenceStatus(device, fence);
766}
767
768VKAPI_ATTR VkResult WaitForFences(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout) {
769 return GetData(device).dispatch.WaitForFences(device, fenceCount, pFences, waitAll, timeout);
770}
771
772VKAPI_ATTR VkResult CreateSemaphore(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore) {
773 return GetData(device).dispatch.CreateSemaphore(device, pCreateInfo, pAllocator, pSemaphore);
774}
775
776VKAPI_ATTR void DestroySemaphore(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator) {
777 GetData(device).dispatch.DestroySemaphore(device, semaphore, pAllocator);
778}
779
780VKAPI_ATTR VkResult CreateEvent(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent) {
781 return GetData(device).dispatch.CreateEvent(device, pCreateInfo, pAllocator, pEvent);
782}
783
784VKAPI_ATTR void DestroyEvent(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator) {
785 GetData(device).dispatch.DestroyEvent(device, event, pAllocator);
786}
787
788VKAPI_ATTR VkResult GetEventStatus(VkDevice device, VkEvent event) {
789 return GetData(device).dispatch.GetEventStatus(device, event);
790}
791
792VKAPI_ATTR VkResult SetEvent(VkDevice device, VkEvent event) {
793 return GetData(device).dispatch.SetEvent(device, event);
794}
795
796VKAPI_ATTR VkResult ResetEvent(VkDevice device, VkEvent event) {
797 return GetData(device).dispatch.ResetEvent(device, event);
798}
799
800VKAPI_ATTR VkResult CreateQueryPool(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool) {
801 return GetData(device).dispatch.CreateQueryPool(device, pCreateInfo, pAllocator, pQueryPool);
802}
803
804VKAPI_ATTR void DestroyQueryPool(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator) {
805 GetData(device).dispatch.DestroyQueryPool(device, queryPool, pAllocator);
806}
807
808VKAPI_ATTR VkResult GetQueryPoolResults(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags) {
809 return GetData(device).dispatch.GetQueryPoolResults(device, queryPool, firstQuery, queryCount, dataSize, pData, stride, flags);
810}
811
812VKAPI_ATTR VkResult CreateBuffer(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer) {
813 return GetData(device).dispatch.CreateBuffer(device, pCreateInfo, pAllocator, pBuffer);
814}
815
816VKAPI_ATTR void DestroyBuffer(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator) {
817 GetData(device).dispatch.DestroyBuffer(device, buffer, pAllocator);
818}
819
820VKAPI_ATTR VkResult CreateBufferView(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView) {
821 return GetData(device).dispatch.CreateBufferView(device, pCreateInfo, pAllocator, pView);
822}
823
824VKAPI_ATTR void DestroyBufferView(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator) {
825 GetData(device).dispatch.DestroyBufferView(device, bufferView, pAllocator);
826}
827
828VKAPI_ATTR VkResult CreateImage(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage) {
829 return GetData(device).dispatch.CreateImage(device, pCreateInfo, pAllocator, pImage);
830}
831
832VKAPI_ATTR void DestroyImage(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator) {
833 GetData(device).dispatch.DestroyImage(device, image, pAllocator);
834}
835
836VKAPI_ATTR void GetImageSubresourceLayout(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout) {
837 GetData(device).dispatch.GetImageSubresourceLayout(device, image, pSubresource, pLayout);
838}
839
840VKAPI_ATTR VkResult CreateImageView(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView) {
841 return GetData(device).dispatch.CreateImageView(device, pCreateInfo, pAllocator, pView);
842}
843
844VKAPI_ATTR void DestroyImageView(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator) {
845 GetData(device).dispatch.DestroyImageView(device, imageView, pAllocator);
846}
847
848VKAPI_ATTR VkResult CreateShaderModule(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule) {
849 return GetData(device).dispatch.CreateShaderModule(device, pCreateInfo, pAllocator, pShaderModule);
850}
851
852VKAPI_ATTR void DestroyShaderModule(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator) {
853 GetData(device).dispatch.DestroyShaderModule(device, shaderModule, pAllocator);
854}
855
856VKAPI_ATTR VkResult CreatePipelineCache(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache) {
857 return GetData(device).dispatch.CreatePipelineCache(device, pCreateInfo, pAllocator, pPipelineCache);
858}
859
860VKAPI_ATTR void DestroyPipelineCache(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator) {
861 GetData(device).dispatch.DestroyPipelineCache(device, pipelineCache, pAllocator);
862}
863
864VKAPI_ATTR VkResult GetPipelineCacheData(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData) {
865 return GetData(device).dispatch.GetPipelineCacheData(device, pipelineCache, pDataSize, pData);
866}
867
868VKAPI_ATTR VkResult MergePipelineCaches(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches) {
869 return GetData(device).dispatch.MergePipelineCaches(device, dstCache, srcCacheCount, pSrcCaches);
870}
871
872VKAPI_ATTR VkResult CreateGraphicsPipelines(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) {
873 return GetData(device).dispatch.CreateGraphicsPipelines(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
874}
875
876VKAPI_ATTR VkResult CreateComputePipelines(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) {
877 return GetData(device).dispatch.CreateComputePipelines(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
878}
879
880VKAPI_ATTR void DestroyPipeline(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator) {
881 GetData(device).dispatch.DestroyPipeline(device, pipeline, pAllocator);
882}
883
884VKAPI_ATTR VkResult CreatePipelineLayout(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout) {
885 return GetData(device).dispatch.CreatePipelineLayout(device, pCreateInfo, pAllocator, pPipelineLayout);
886}
887
888VKAPI_ATTR void DestroyPipelineLayout(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator) {
889 GetData(device).dispatch.DestroyPipelineLayout(device, pipelineLayout, pAllocator);
890}
891
892VKAPI_ATTR VkResult CreateSampler(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler) {
893 return GetData(device).dispatch.CreateSampler(device, pCreateInfo, pAllocator, pSampler);
894}
895
896VKAPI_ATTR void DestroySampler(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator) {
897 GetData(device).dispatch.DestroySampler(device, sampler, pAllocator);
898}
899
900VKAPI_ATTR VkResult CreateDescriptorSetLayout(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout) {
901 return GetData(device).dispatch.CreateDescriptorSetLayout(device, pCreateInfo, pAllocator, pSetLayout);
902}
903
904VKAPI_ATTR void DestroyDescriptorSetLayout(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator) {
905 GetData(device).dispatch.DestroyDescriptorSetLayout(device, descriptorSetLayout, pAllocator);
906}
907
908VKAPI_ATTR VkResult CreateDescriptorPool(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool) {
909 return GetData(device).dispatch.CreateDescriptorPool(device, pCreateInfo, pAllocator, pDescriptorPool);
910}
911
912VKAPI_ATTR void DestroyDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator) {
913 GetData(device).dispatch.DestroyDescriptorPool(device, descriptorPool, pAllocator);
914}
915
916VKAPI_ATTR VkResult ResetDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags) {
917 return GetData(device).dispatch.ResetDescriptorPool(device, descriptorPool, flags);
918}
919
920VKAPI_ATTR VkResult AllocateDescriptorSets(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets) {
921 return GetData(device).dispatch.AllocateDescriptorSets(device, pAllocateInfo, pDescriptorSets);
922}
923
924VKAPI_ATTR VkResult FreeDescriptorSets(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets) {
925 return GetData(device).dispatch.FreeDescriptorSets(device, descriptorPool, descriptorSetCount, pDescriptorSets);
926}
927
928VKAPI_ATTR void UpdateDescriptorSets(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies) {
929 GetData(device).dispatch.UpdateDescriptorSets(device, descriptorWriteCount, pDescriptorWrites, descriptorCopyCount, pDescriptorCopies);
930}
931
932VKAPI_ATTR VkResult CreateFramebuffer(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer) {
933 return GetData(device).dispatch.CreateFramebuffer(device, pCreateInfo, pAllocator, pFramebuffer);
934}
935
936VKAPI_ATTR void DestroyFramebuffer(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator) {
937 GetData(device).dispatch.DestroyFramebuffer(device, framebuffer, pAllocator);
938}
939
940VKAPI_ATTR VkResult CreateRenderPass(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass) {
941 return GetData(device).dispatch.CreateRenderPass(device, pCreateInfo, pAllocator, pRenderPass);
942}
943
944VKAPI_ATTR void DestroyRenderPass(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator) {
945 GetData(device).dispatch.DestroyRenderPass(device, renderPass, pAllocator);
946}
947
948VKAPI_ATTR void GetRenderAreaGranularity(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity) {
949 GetData(device).dispatch.GetRenderAreaGranularity(device, renderPass, pGranularity);
950}
951
952VKAPI_ATTR VkResult CreateCommandPool(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool) {
953 return GetData(device).dispatch.CreateCommandPool(device, pCreateInfo, pAllocator, pCommandPool);
954}
955
956VKAPI_ATTR void DestroyCommandPool(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator) {
957 GetData(device).dispatch.DestroyCommandPool(device, commandPool, pAllocator);
958}
959
960VKAPI_ATTR VkResult ResetCommandPool(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags) {
961 return GetData(device).dispatch.ResetCommandPool(device, commandPool, flags);
962}
963
964VKAPI_ATTR VkResult AllocateCommandBuffers(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers) {
965 return GetData(device).dispatch.AllocateCommandBuffers(device, pAllocateInfo, pCommandBuffers);
966}
967
968VKAPI_ATTR void FreeCommandBuffers(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers) {
969 GetData(device).dispatch.FreeCommandBuffers(device, commandPool, commandBufferCount, pCommandBuffers);
970}
971
972VKAPI_ATTR VkResult BeginCommandBuffer(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo) {
973 return GetData(commandBuffer).dispatch.BeginCommandBuffer(commandBuffer, pBeginInfo);
974}
975
976VKAPI_ATTR VkResult EndCommandBuffer(VkCommandBuffer commandBuffer) {
977 return GetData(commandBuffer).dispatch.EndCommandBuffer(commandBuffer);
978}
979
980VKAPI_ATTR VkResult ResetCommandBuffer(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags) {
981 return GetData(commandBuffer).dispatch.ResetCommandBuffer(commandBuffer, flags);
982}
983
984VKAPI_ATTR void CmdBindPipeline(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline) {
985 GetData(commandBuffer).dispatch.CmdBindPipeline(commandBuffer, pipelineBindPoint, pipeline);
986}
987
988VKAPI_ATTR void CmdSetViewport(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports) {
989 GetData(commandBuffer).dispatch.CmdSetViewport(commandBuffer, firstViewport, viewportCount, pViewports);
990}
991
992VKAPI_ATTR void CmdSetScissor(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors) {
993 GetData(commandBuffer).dispatch.CmdSetScissor(commandBuffer, firstScissor, scissorCount, pScissors);
994}
995
996VKAPI_ATTR void CmdSetLineWidth(VkCommandBuffer commandBuffer, float lineWidth) {
997 GetData(commandBuffer).dispatch.CmdSetLineWidth(commandBuffer, lineWidth);
998}
999
1000VKAPI_ATTR void CmdSetDepthBias(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor) {
1001 GetData(commandBuffer).dispatch.CmdSetDepthBias(commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor);
1002}
1003
1004VKAPI_ATTR void CmdSetBlendConstants(VkCommandBuffer commandBuffer, const float blendConstants[4]) {
1005 GetData(commandBuffer).dispatch.CmdSetBlendConstants(commandBuffer, blendConstants);
1006}
1007
1008VKAPI_ATTR void CmdSetDepthBounds(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds) {
1009 GetData(commandBuffer).dispatch.CmdSetDepthBounds(commandBuffer, minDepthBounds, maxDepthBounds);
1010}
1011
1012VKAPI_ATTR void CmdSetStencilCompareMask(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask) {
1013 GetData(commandBuffer).dispatch.CmdSetStencilCompareMask(commandBuffer, faceMask, compareMask);
1014}
1015
1016VKAPI_ATTR void CmdSetStencilWriteMask(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask) {
1017 GetData(commandBuffer).dispatch.CmdSetStencilWriteMask(commandBuffer, faceMask, writeMask);
1018}
1019
1020VKAPI_ATTR void CmdSetStencilReference(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference) {
1021 GetData(commandBuffer).dispatch.CmdSetStencilReference(commandBuffer, faceMask, reference);
1022}
1023
1024VKAPI_ATTR void CmdBindDescriptorSets(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets) {
1025 GetData(commandBuffer).dispatch.CmdBindDescriptorSets(commandBuffer, pipelineBindPoint, layout, firstSet, descriptorSetCount, pDescriptorSets, dynamicOffsetCount, pDynamicOffsets);
1026}
1027
1028VKAPI_ATTR void CmdBindIndexBuffer(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType) {
1029 GetData(commandBuffer).dispatch.CmdBindIndexBuffer(commandBuffer, buffer, offset, indexType);
1030}
1031
1032VKAPI_ATTR void CmdBindVertexBuffers(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets) {
1033 GetData(commandBuffer).dispatch.CmdBindVertexBuffers(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets);
1034}
1035
1036VKAPI_ATTR void CmdDraw(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance) {
1037 GetData(commandBuffer).dispatch.CmdDraw(commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance);
1038}
1039
1040VKAPI_ATTR void CmdDrawIndexed(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance) {
1041 GetData(commandBuffer).dispatch.CmdDrawIndexed(commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance);
1042}
1043
1044VKAPI_ATTR void CmdDrawIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride) {
1045 GetData(commandBuffer).dispatch.CmdDrawIndirect(commandBuffer, buffer, offset, drawCount, stride);
1046}
1047
1048VKAPI_ATTR void CmdDrawIndexedIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride) {
1049 GetData(commandBuffer).dispatch.CmdDrawIndexedIndirect(commandBuffer, buffer, offset, drawCount, stride);
1050}
1051
1052VKAPI_ATTR void CmdDispatch(VkCommandBuffer commandBuffer, uint32_t x, uint32_t y, uint32_t z) {
1053 GetData(commandBuffer).dispatch.CmdDispatch(commandBuffer, x, y, z);
1054}
1055
1056VKAPI_ATTR void CmdDispatchIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset) {
1057 GetData(commandBuffer).dispatch.CmdDispatchIndirect(commandBuffer, buffer, offset);
1058}
1059
1060VKAPI_ATTR void CmdCopyBuffer(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions) {
1061 GetData(commandBuffer).dispatch.CmdCopyBuffer(commandBuffer, srcBuffer, dstBuffer, regionCount, pRegions);
1062}
1063
1064VKAPI_ATTR void CmdCopyImage(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions) {
1065 GetData(commandBuffer).dispatch.CmdCopyImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions);
1066}
1067
1068VKAPI_ATTR void CmdBlitImage(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter) {
1069 GetData(commandBuffer).dispatch.CmdBlitImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter);
1070}
1071
1072VKAPI_ATTR void CmdCopyBufferToImage(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions) {
1073 GetData(commandBuffer).dispatch.CmdCopyBufferToImage(commandBuffer, srcBuffer, dstImage, dstImageLayout, regionCount, pRegions);
1074}
1075
1076VKAPI_ATTR void CmdCopyImageToBuffer(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions) {
1077 GetData(commandBuffer).dispatch.CmdCopyImageToBuffer(commandBuffer, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions);
1078}
1079
1080VKAPI_ATTR void CmdUpdateBuffer(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const uint32_t* pData) {
1081 GetData(commandBuffer).dispatch.CmdUpdateBuffer(commandBuffer, dstBuffer, dstOffset, dataSize, pData);
1082}
1083
1084VKAPI_ATTR void CmdFillBuffer(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data) {
1085 GetData(commandBuffer).dispatch.CmdFillBuffer(commandBuffer, dstBuffer, dstOffset, size, data);
1086}
1087
1088VKAPI_ATTR void CmdClearColorImage(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges) {
1089 GetData(commandBuffer).dispatch.CmdClearColorImage(commandBuffer, image, imageLayout, pColor, rangeCount, pRanges);
1090}
1091
1092VKAPI_ATTR void CmdClearDepthStencilImage(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges) {
1093 GetData(commandBuffer).dispatch.CmdClearDepthStencilImage(commandBuffer, image, imageLayout, pDepthStencil, rangeCount, pRanges);
1094}
1095
1096VKAPI_ATTR void CmdClearAttachments(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects) {
1097 GetData(commandBuffer).dispatch.CmdClearAttachments(commandBuffer, attachmentCount, pAttachments, rectCount, pRects);
1098}
1099
1100VKAPI_ATTR void CmdResolveImage(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions) {
1101 GetData(commandBuffer).dispatch.CmdResolveImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions);
1102}
1103
1104VKAPI_ATTR void CmdSetEvent(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask) {
1105 GetData(commandBuffer).dispatch.CmdSetEvent(commandBuffer, event, stageMask);
1106}
1107
1108VKAPI_ATTR void CmdResetEvent(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask) {
1109 GetData(commandBuffer).dispatch.CmdResetEvent(commandBuffer, event, stageMask);
1110}
1111
1112VKAPI_ATTR void CmdWaitEvents(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers) {
1113 GetData(commandBuffer).dispatch.CmdWaitEvents(commandBuffer, eventCount, pEvents, srcStageMask, dstStageMask, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers);
1114}
1115
1116VKAPI_ATTR void CmdPipelineBarrier(VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers) {
1117 GetData(commandBuffer).dispatch.CmdPipelineBarrier(commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers);
1118}
1119
1120VKAPI_ATTR void CmdBeginQuery(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags) {
1121 GetData(commandBuffer).dispatch.CmdBeginQuery(commandBuffer, queryPool, query, flags);
1122}
1123
1124VKAPI_ATTR void CmdEndQuery(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query) {
1125 GetData(commandBuffer).dispatch.CmdEndQuery(commandBuffer, queryPool, query);
1126}
1127
1128VKAPI_ATTR void CmdResetQueryPool(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount) {
1129 GetData(commandBuffer).dispatch.CmdResetQueryPool(commandBuffer, queryPool, firstQuery, queryCount);
1130}
1131
1132VKAPI_ATTR void CmdWriteTimestamp(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query) {
1133 GetData(commandBuffer).dispatch.CmdWriteTimestamp(commandBuffer, pipelineStage, queryPool, query);
1134}
1135
1136VKAPI_ATTR void CmdCopyQueryPoolResults(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags) {
1137 GetData(commandBuffer).dispatch.CmdCopyQueryPoolResults(commandBuffer, queryPool, firstQuery, queryCount, dstBuffer, dstOffset, stride, flags);
1138}
1139
1140VKAPI_ATTR void CmdPushConstants(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues) {
1141 GetData(commandBuffer).dispatch.CmdPushConstants(commandBuffer, layout, stageFlags, offset, size, pValues);
1142}
1143
1144VKAPI_ATTR void CmdBeginRenderPass(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents) {
1145 GetData(commandBuffer).dispatch.CmdBeginRenderPass(commandBuffer, pRenderPassBegin, contents);
1146}
1147
1148VKAPI_ATTR void CmdNextSubpass(VkCommandBuffer commandBuffer, VkSubpassContents contents) {
1149 GetData(commandBuffer).dispatch.CmdNextSubpass(commandBuffer, contents);
1150}
1151
1152VKAPI_ATTR void CmdEndRenderPass(VkCommandBuffer commandBuffer) {
1153 GetData(commandBuffer).dispatch.CmdEndRenderPass(commandBuffer);
1154}
1155
1156VKAPI_ATTR void CmdExecuteCommands(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers) {
1157 GetData(commandBuffer).dispatch.CmdExecuteCommands(commandBuffer, commandBufferCount, pCommandBuffers);
1158}
1159
1160VKAPI_ATTR void DestroySurfaceKHR(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator) {
1161 GetData(instance).dispatch.DestroySurfaceKHR(instance, surface, pAllocator);
1162}
1163
1164VKAPI_ATTR VkResult GetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported) {
1165 return GetData(physicalDevice).dispatch.GetPhysicalDeviceSurfaceSupportKHR(physicalDevice, queueFamilyIndex, surface, pSupported);
1166}
1167
1168VKAPI_ATTR VkResult GetPhysicalDeviceSurfaceCapabilitiesKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities) {
1169 return GetData(physicalDevice).dispatch.GetPhysicalDeviceSurfaceCapabilitiesKHR(physicalDevice, surface, pSurfaceCapabilities);
1170}
1171
1172VKAPI_ATTR VkResult GetPhysicalDeviceSurfaceFormatsKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats) {
1173 return GetData(physicalDevice).dispatch.GetPhysicalDeviceSurfaceFormatsKHR(physicalDevice, surface, pSurfaceFormatCount, pSurfaceFormats);
1174}
1175
1176VKAPI_ATTR VkResult GetPhysicalDeviceSurfacePresentModesKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes) {
1177 return GetData(physicalDevice).dispatch.GetPhysicalDeviceSurfacePresentModesKHR(physicalDevice, surface, pPresentModeCount, pPresentModes);
1178}
1179
1180VKAPI_ATTR VkResult CreateSwapchainKHR(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain) {
1181 return GetData(device).dispatch.CreateSwapchainKHR(device, pCreateInfo, pAllocator, pSwapchain);
1182}
1183
1184VKAPI_ATTR void DestroySwapchainKHR(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator) {
1185 GetData(device).dispatch.DestroySwapchainKHR(device, swapchain, pAllocator);
1186}
1187
1188VKAPI_ATTR VkResult GetSwapchainImagesKHR(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages) {
1189 return GetData(device).dispatch.GetSwapchainImagesKHR(device, swapchain, pSwapchainImageCount, pSwapchainImages);
1190}
1191
1192VKAPI_ATTR VkResult AcquireNextImageKHR(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex) {
1193 return GetData(device).dispatch.AcquireNextImageKHR(device, swapchain, timeout, semaphore, fence, pImageIndex);
1194}
1195
1196VKAPI_ATTR VkResult QueuePresentKHR(VkQueue queue, const VkPresentInfoKHR* pPresentInfo) {
1197 return GetData(queue).dispatch.QueuePresentKHR(queue, pPresentInfo);
1198}
1199
1200VKAPI_ATTR VkResult CreateAndroidSurfaceKHR(VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) {
1201 return GetData(instance).dispatch.CreateAndroidSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
1202}
1203
1204
1205} // anonymous namespace
1206
1207// clang-format on
1208
1209} // namespace api
1210} // namespace vulkan
1211
1212// clang-format off
1213
1214__attribute__((visibility("default")))
1215VKAPI_ATTR VkResult vkCreateInstance(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance) {
1216 return vulkan::api::CreateInstance(pCreateInfo, pAllocator, pInstance);
1217}
1218
1219__attribute__((visibility("default")))
1220VKAPI_ATTR void vkDestroyInstance(VkInstance instance, const VkAllocationCallbacks* pAllocator) {
1221 vulkan::api::DestroyInstance(instance, pAllocator);
1222}
1223
1224__attribute__((visibility("default")))
1225VKAPI_ATTR VkResult vkEnumeratePhysicalDevices(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices) {
1226 return vulkan::api::EnumeratePhysicalDevices(instance, pPhysicalDeviceCount, pPhysicalDevices);
1227}
1228
1229__attribute__((visibility("default")))
1230VKAPI_ATTR PFN_vkVoidFunction vkGetDeviceProcAddr(VkDevice device, const char* pName) {
1231 return vulkan::api::GetDeviceProcAddr(device, pName);
1232}
1233
1234__attribute__((visibility("default")))
1235VKAPI_ATTR PFN_vkVoidFunction vkGetInstanceProcAddr(VkInstance instance, const char* pName) {
1236 return vulkan::api::GetInstanceProcAddr(instance, pName);
Chia-I Wu0c203242016-03-15 13:44:51 +08001237}
1238
1239__attribute__((visibility("default")))
1240VKAPI_ATTR void vkGetPhysicalDeviceProperties(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001241 vulkan::api::GetPhysicalDeviceProperties(physicalDevice, pProperties);
Chia-I Wu0c203242016-03-15 13:44:51 +08001242}
1243
1244__attribute__((visibility("default")))
1245VKAPI_ATTR void vkGetPhysicalDeviceQueueFamilyProperties(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001246 vulkan::api::GetPhysicalDeviceQueueFamilyProperties(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties);
Chia-I Wu0c203242016-03-15 13:44:51 +08001247}
1248
1249__attribute__((visibility("default")))
1250VKAPI_ATTR void vkGetPhysicalDeviceMemoryProperties(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001251 vulkan::api::GetPhysicalDeviceMemoryProperties(physicalDevice, pMemoryProperties);
Chia-I Wu0c203242016-03-15 13:44:51 +08001252}
1253
1254__attribute__((visibility("default")))
1255VKAPI_ATTR void vkGetPhysicalDeviceFeatures(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001256 vulkan::api::GetPhysicalDeviceFeatures(physicalDevice, pFeatures);
Chia-I Wu0c203242016-03-15 13:44:51 +08001257}
1258
1259__attribute__((visibility("default")))
1260VKAPI_ATTR void vkGetPhysicalDeviceFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001261 vulkan::api::GetPhysicalDeviceFormatProperties(physicalDevice, format, pFormatProperties);
Chia-I Wu0c203242016-03-15 13:44:51 +08001262}
1263
1264__attribute__((visibility("default")))
1265VKAPI_ATTR VkResult vkGetPhysicalDeviceImageFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001266 return vulkan::api::GetPhysicalDeviceImageFormatProperties(physicalDevice, format, type, tiling, usage, flags, pImageFormatProperties);
Chia-I Wu0c203242016-03-15 13:44:51 +08001267}
1268
1269__attribute__((visibility("default")))
1270VKAPI_ATTR VkResult vkCreateDevice(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice) {
Chia-I Wu0c203242016-03-15 13:44:51 +08001271 return vulkan::api::CreateDevice(physicalDevice, pCreateInfo, pAllocator, pDevice);
1272}
1273
1274__attribute__((visibility("default")))
1275VKAPI_ATTR void vkDestroyDevice(VkDevice device, const VkAllocationCallbacks* pAllocator) {
Chia-I Wu0c203242016-03-15 13:44:51 +08001276 vulkan::api::DestroyDevice(device, pAllocator);
1277}
1278
1279__attribute__((visibility("default")))
1280VKAPI_ATTR VkResult vkEnumerateInstanceLayerProperties(uint32_t* pPropertyCount, VkLayerProperties* pProperties) {
Chia-I Wu0c203242016-03-15 13:44:51 +08001281 return vulkan::api::EnumerateInstanceLayerProperties(pPropertyCount, pProperties);
1282}
1283
1284__attribute__((visibility("default")))
1285VKAPI_ATTR VkResult vkEnumerateInstanceExtensionProperties(const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties) {
Chia-I Wu0c203242016-03-15 13:44:51 +08001286 return vulkan::api::EnumerateInstanceExtensionProperties(pLayerName, pPropertyCount, pProperties);
1287}
1288
1289__attribute__((visibility("default")))
1290VKAPI_ATTR VkResult vkEnumerateDeviceLayerProperties(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties) {
Chia-I Wu0c203242016-03-15 13:44:51 +08001291 return vulkan::api::EnumerateDeviceLayerProperties(physicalDevice, pPropertyCount, pProperties);
1292}
1293
1294__attribute__((visibility("default")))
1295VKAPI_ATTR VkResult vkEnumerateDeviceExtensionProperties(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties) {
Chia-I Wu0c203242016-03-15 13:44:51 +08001296 return vulkan::api::EnumerateDeviceExtensionProperties(physicalDevice, pLayerName, pPropertyCount, pProperties);
1297}
1298
1299__attribute__((visibility("default")))
1300VKAPI_ATTR void vkGetDeviceQueue(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001301 vulkan::api::GetDeviceQueue(device, queueFamilyIndex, queueIndex, pQueue);
Chia-I Wu0c203242016-03-15 13:44:51 +08001302}
1303
1304__attribute__((visibility("default")))
1305VKAPI_ATTR VkResult vkQueueSubmit(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001306 return vulkan::api::QueueSubmit(queue, submitCount, pSubmits, fence);
Chia-I Wu0c203242016-03-15 13:44:51 +08001307}
1308
1309__attribute__((visibility("default")))
1310VKAPI_ATTR VkResult vkQueueWaitIdle(VkQueue queue) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001311 return vulkan::api::QueueWaitIdle(queue);
Chia-I Wu0c203242016-03-15 13:44:51 +08001312}
1313
1314__attribute__((visibility("default")))
1315VKAPI_ATTR VkResult vkDeviceWaitIdle(VkDevice device) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001316 return vulkan::api::DeviceWaitIdle(device);
Chia-I Wu0c203242016-03-15 13:44:51 +08001317}
1318
1319__attribute__((visibility("default")))
1320VKAPI_ATTR VkResult vkAllocateMemory(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001321 return vulkan::api::AllocateMemory(device, pAllocateInfo, pAllocator, pMemory);
Chia-I Wu0c203242016-03-15 13:44:51 +08001322}
1323
1324__attribute__((visibility("default")))
1325VKAPI_ATTR void vkFreeMemory(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001326 vulkan::api::FreeMemory(device, memory, pAllocator);
Chia-I Wu0c203242016-03-15 13:44:51 +08001327}
1328
1329__attribute__((visibility("default")))
1330VKAPI_ATTR VkResult vkMapMemory(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001331 return vulkan::api::MapMemory(device, memory, offset, size, flags, ppData);
Chia-I Wu0c203242016-03-15 13:44:51 +08001332}
1333
1334__attribute__((visibility("default")))
1335VKAPI_ATTR void vkUnmapMemory(VkDevice device, VkDeviceMemory memory) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001336 vulkan::api::UnmapMemory(device, memory);
Chia-I Wu0c203242016-03-15 13:44:51 +08001337}
1338
1339__attribute__((visibility("default")))
1340VKAPI_ATTR VkResult vkFlushMappedMemoryRanges(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001341 return vulkan::api::FlushMappedMemoryRanges(device, memoryRangeCount, pMemoryRanges);
Chia-I Wu0c203242016-03-15 13:44:51 +08001342}
1343
1344__attribute__((visibility("default")))
1345VKAPI_ATTR VkResult vkInvalidateMappedMemoryRanges(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001346 return vulkan::api::InvalidateMappedMemoryRanges(device, memoryRangeCount, pMemoryRanges);
Chia-I Wu0c203242016-03-15 13:44:51 +08001347}
1348
1349__attribute__((visibility("default")))
1350VKAPI_ATTR void vkGetDeviceMemoryCommitment(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001351 vulkan::api::GetDeviceMemoryCommitment(device, memory, pCommittedMemoryInBytes);
Chia-I Wu0c203242016-03-15 13:44:51 +08001352}
1353
1354__attribute__((visibility("default")))
1355VKAPI_ATTR void vkGetBufferMemoryRequirements(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001356 vulkan::api::GetBufferMemoryRequirements(device, buffer, pMemoryRequirements);
Chia-I Wu0c203242016-03-15 13:44:51 +08001357}
1358
1359__attribute__((visibility("default")))
1360VKAPI_ATTR VkResult vkBindBufferMemory(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001361 return vulkan::api::BindBufferMemory(device, buffer, memory, memoryOffset);
Chia-I Wu0c203242016-03-15 13:44:51 +08001362}
1363
1364__attribute__((visibility("default")))
1365VKAPI_ATTR void vkGetImageMemoryRequirements(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001366 vulkan::api::GetImageMemoryRequirements(device, image, pMemoryRequirements);
Chia-I Wu0c203242016-03-15 13:44:51 +08001367}
1368
1369__attribute__((visibility("default")))
1370VKAPI_ATTR VkResult vkBindImageMemory(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001371 return vulkan::api::BindImageMemory(device, image, memory, memoryOffset);
Chia-I Wu0c203242016-03-15 13:44:51 +08001372}
1373
1374__attribute__((visibility("default")))
1375VKAPI_ATTR void vkGetImageSparseMemoryRequirements(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001376 vulkan::api::GetImageSparseMemoryRequirements(device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
Chia-I Wu0c203242016-03-15 13:44:51 +08001377}
1378
1379__attribute__((visibility("default")))
1380VKAPI_ATTR void vkGetPhysicalDeviceSparseImageFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001381 vulkan::api::GetPhysicalDeviceSparseImageFormatProperties(physicalDevice, format, type, samples, usage, tiling, pPropertyCount, pProperties);
Chia-I Wu0c203242016-03-15 13:44:51 +08001382}
1383
1384__attribute__((visibility("default")))
1385VKAPI_ATTR VkResult vkQueueBindSparse(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001386 return vulkan::api::QueueBindSparse(queue, bindInfoCount, pBindInfo, fence);
Chia-I Wu0c203242016-03-15 13:44:51 +08001387}
1388
1389__attribute__((visibility("default")))
1390VKAPI_ATTR VkResult vkCreateFence(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001391 return vulkan::api::CreateFence(device, pCreateInfo, pAllocator, pFence);
Chia-I Wu0c203242016-03-15 13:44:51 +08001392}
1393
1394__attribute__((visibility("default")))
1395VKAPI_ATTR void vkDestroyFence(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001396 vulkan::api::DestroyFence(device, fence, pAllocator);
Chia-I Wu0c203242016-03-15 13:44:51 +08001397}
1398
1399__attribute__((visibility("default")))
1400VKAPI_ATTR VkResult vkResetFences(VkDevice device, uint32_t fenceCount, const VkFence* pFences) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001401 return vulkan::api::ResetFences(device, fenceCount, pFences);
Chia-I Wu0c203242016-03-15 13:44:51 +08001402}
1403
1404__attribute__((visibility("default")))
1405VKAPI_ATTR VkResult vkGetFenceStatus(VkDevice device, VkFence fence) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001406 return vulkan::api::GetFenceStatus(device, fence);
Chia-I Wu0c203242016-03-15 13:44:51 +08001407}
1408
1409__attribute__((visibility("default")))
1410VKAPI_ATTR VkResult vkWaitForFences(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001411 return vulkan::api::WaitForFences(device, fenceCount, pFences, waitAll, timeout);
Chia-I Wu0c203242016-03-15 13:44:51 +08001412}
1413
1414__attribute__((visibility("default")))
1415VKAPI_ATTR VkResult vkCreateSemaphore(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001416 return vulkan::api::CreateSemaphore(device, pCreateInfo, pAllocator, pSemaphore);
Chia-I Wu0c203242016-03-15 13:44:51 +08001417}
1418
1419__attribute__((visibility("default")))
1420VKAPI_ATTR void vkDestroySemaphore(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001421 vulkan::api::DestroySemaphore(device, semaphore, pAllocator);
Chia-I Wu0c203242016-03-15 13:44:51 +08001422}
1423
1424__attribute__((visibility("default")))
1425VKAPI_ATTR VkResult vkCreateEvent(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001426 return vulkan::api::CreateEvent(device, pCreateInfo, pAllocator, pEvent);
Chia-I Wu0c203242016-03-15 13:44:51 +08001427}
1428
1429__attribute__((visibility("default")))
1430VKAPI_ATTR void vkDestroyEvent(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001431 vulkan::api::DestroyEvent(device, event, pAllocator);
Chia-I Wu0c203242016-03-15 13:44:51 +08001432}
1433
1434__attribute__((visibility("default")))
1435VKAPI_ATTR VkResult vkGetEventStatus(VkDevice device, VkEvent event) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001436 return vulkan::api::GetEventStatus(device, event);
Chia-I Wu0c203242016-03-15 13:44:51 +08001437}
1438
1439__attribute__((visibility("default")))
1440VKAPI_ATTR VkResult vkSetEvent(VkDevice device, VkEvent event) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001441 return vulkan::api::SetEvent(device, event);
Chia-I Wu0c203242016-03-15 13:44:51 +08001442}
1443
1444__attribute__((visibility("default")))
1445VKAPI_ATTR VkResult vkResetEvent(VkDevice device, VkEvent event) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001446 return vulkan::api::ResetEvent(device, event);
Chia-I Wu0c203242016-03-15 13:44:51 +08001447}
1448
1449__attribute__((visibility("default")))
1450VKAPI_ATTR VkResult vkCreateQueryPool(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001451 return vulkan::api::CreateQueryPool(device, pCreateInfo, pAllocator, pQueryPool);
Chia-I Wu0c203242016-03-15 13:44:51 +08001452}
1453
1454__attribute__((visibility("default")))
1455VKAPI_ATTR void vkDestroyQueryPool(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001456 vulkan::api::DestroyQueryPool(device, queryPool, pAllocator);
Chia-I Wu0c203242016-03-15 13:44:51 +08001457}
1458
1459__attribute__((visibility("default")))
1460VKAPI_ATTR VkResult vkGetQueryPoolResults(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001461 return vulkan::api::GetQueryPoolResults(device, queryPool, firstQuery, queryCount, dataSize, pData, stride, flags);
Chia-I Wu0c203242016-03-15 13:44:51 +08001462}
1463
1464__attribute__((visibility("default")))
1465VKAPI_ATTR VkResult vkCreateBuffer(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001466 return vulkan::api::CreateBuffer(device, pCreateInfo, pAllocator, pBuffer);
Chia-I Wu0c203242016-03-15 13:44:51 +08001467}
1468
1469__attribute__((visibility("default")))
1470VKAPI_ATTR void vkDestroyBuffer(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001471 vulkan::api::DestroyBuffer(device, buffer, pAllocator);
Chia-I Wu0c203242016-03-15 13:44:51 +08001472}
1473
1474__attribute__((visibility("default")))
1475VKAPI_ATTR VkResult vkCreateBufferView(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001476 return vulkan::api::CreateBufferView(device, pCreateInfo, pAllocator, pView);
Chia-I Wu0c203242016-03-15 13:44:51 +08001477}
1478
1479__attribute__((visibility("default")))
1480VKAPI_ATTR void vkDestroyBufferView(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001481 vulkan::api::DestroyBufferView(device, bufferView, pAllocator);
Chia-I Wu0c203242016-03-15 13:44:51 +08001482}
1483
1484__attribute__((visibility("default")))
1485VKAPI_ATTR VkResult vkCreateImage(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001486 return vulkan::api::CreateImage(device, pCreateInfo, pAllocator, pImage);
Chia-I Wu0c203242016-03-15 13:44:51 +08001487}
1488
1489__attribute__((visibility("default")))
1490VKAPI_ATTR void vkDestroyImage(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001491 vulkan::api::DestroyImage(device, image, pAllocator);
Chia-I Wu0c203242016-03-15 13:44:51 +08001492}
1493
1494__attribute__((visibility("default")))
1495VKAPI_ATTR void vkGetImageSubresourceLayout(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001496 vulkan::api::GetImageSubresourceLayout(device, image, pSubresource, pLayout);
Chia-I Wu0c203242016-03-15 13:44:51 +08001497}
1498
1499__attribute__((visibility("default")))
1500VKAPI_ATTR VkResult vkCreateImageView(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001501 return vulkan::api::CreateImageView(device, pCreateInfo, pAllocator, pView);
Chia-I Wu0c203242016-03-15 13:44:51 +08001502}
1503
1504__attribute__((visibility("default")))
1505VKAPI_ATTR void vkDestroyImageView(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001506 vulkan::api::DestroyImageView(device, imageView, pAllocator);
Chia-I Wu0c203242016-03-15 13:44:51 +08001507}
1508
1509__attribute__((visibility("default")))
1510VKAPI_ATTR VkResult vkCreateShaderModule(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001511 return vulkan::api::CreateShaderModule(device, pCreateInfo, pAllocator, pShaderModule);
Chia-I Wu0c203242016-03-15 13:44:51 +08001512}
1513
1514__attribute__((visibility("default")))
1515VKAPI_ATTR void vkDestroyShaderModule(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001516 vulkan::api::DestroyShaderModule(device, shaderModule, pAllocator);
Chia-I Wu0c203242016-03-15 13:44:51 +08001517}
1518
1519__attribute__((visibility("default")))
1520VKAPI_ATTR VkResult vkCreatePipelineCache(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001521 return vulkan::api::CreatePipelineCache(device, pCreateInfo, pAllocator, pPipelineCache);
Chia-I Wu0c203242016-03-15 13:44:51 +08001522}
1523
1524__attribute__((visibility("default")))
1525VKAPI_ATTR void vkDestroyPipelineCache(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001526 vulkan::api::DestroyPipelineCache(device, pipelineCache, pAllocator);
Chia-I Wu0c203242016-03-15 13:44:51 +08001527}
1528
1529__attribute__((visibility("default")))
1530VKAPI_ATTR VkResult vkGetPipelineCacheData(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001531 return vulkan::api::GetPipelineCacheData(device, pipelineCache, pDataSize, pData);
Chia-I Wu0c203242016-03-15 13:44:51 +08001532}
1533
1534__attribute__((visibility("default")))
1535VKAPI_ATTR VkResult vkMergePipelineCaches(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001536 return vulkan::api::MergePipelineCaches(device, dstCache, srcCacheCount, pSrcCaches);
Chia-I Wu0c203242016-03-15 13:44:51 +08001537}
1538
1539__attribute__((visibility("default")))
1540VKAPI_ATTR VkResult vkCreateGraphicsPipelines(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001541 return vulkan::api::CreateGraphicsPipelines(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
Chia-I Wu0c203242016-03-15 13:44:51 +08001542}
1543
1544__attribute__((visibility("default")))
1545VKAPI_ATTR VkResult vkCreateComputePipelines(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001546 return vulkan::api::CreateComputePipelines(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
Chia-I Wu0c203242016-03-15 13:44:51 +08001547}
1548
1549__attribute__((visibility("default")))
1550VKAPI_ATTR void vkDestroyPipeline(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001551 vulkan::api::DestroyPipeline(device, pipeline, pAllocator);
Chia-I Wu0c203242016-03-15 13:44:51 +08001552}
1553
1554__attribute__((visibility("default")))
1555VKAPI_ATTR VkResult vkCreatePipelineLayout(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001556 return vulkan::api::CreatePipelineLayout(device, pCreateInfo, pAllocator, pPipelineLayout);
Chia-I Wu0c203242016-03-15 13:44:51 +08001557}
1558
1559__attribute__((visibility("default")))
1560VKAPI_ATTR void vkDestroyPipelineLayout(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001561 vulkan::api::DestroyPipelineLayout(device, pipelineLayout, pAllocator);
Chia-I Wu0c203242016-03-15 13:44:51 +08001562}
1563
1564__attribute__((visibility("default")))
1565VKAPI_ATTR VkResult vkCreateSampler(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001566 return vulkan::api::CreateSampler(device, pCreateInfo, pAllocator, pSampler);
Chia-I Wu0c203242016-03-15 13:44:51 +08001567}
1568
1569__attribute__((visibility("default")))
1570VKAPI_ATTR void vkDestroySampler(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001571 vulkan::api::DestroySampler(device, sampler, pAllocator);
Chia-I Wu0c203242016-03-15 13:44:51 +08001572}
1573
1574__attribute__((visibility("default")))
1575VKAPI_ATTR VkResult vkCreateDescriptorSetLayout(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001576 return vulkan::api::CreateDescriptorSetLayout(device, pCreateInfo, pAllocator, pSetLayout);
Chia-I Wu0c203242016-03-15 13:44:51 +08001577}
1578
1579__attribute__((visibility("default")))
1580VKAPI_ATTR void vkDestroyDescriptorSetLayout(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001581 vulkan::api::DestroyDescriptorSetLayout(device, descriptorSetLayout, pAllocator);
Chia-I Wu0c203242016-03-15 13:44:51 +08001582}
1583
1584__attribute__((visibility("default")))
1585VKAPI_ATTR VkResult vkCreateDescriptorPool(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001586 return vulkan::api::CreateDescriptorPool(device, pCreateInfo, pAllocator, pDescriptorPool);
Chia-I Wu0c203242016-03-15 13:44:51 +08001587}
1588
1589__attribute__((visibility("default")))
1590VKAPI_ATTR void vkDestroyDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001591 vulkan::api::DestroyDescriptorPool(device, descriptorPool, pAllocator);
Chia-I Wu0c203242016-03-15 13:44:51 +08001592}
1593
1594__attribute__((visibility("default")))
1595VKAPI_ATTR VkResult vkResetDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001596 return vulkan::api::ResetDescriptorPool(device, descriptorPool, flags);
Chia-I Wu0c203242016-03-15 13:44:51 +08001597}
1598
1599__attribute__((visibility("default")))
1600VKAPI_ATTR VkResult vkAllocateDescriptorSets(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001601 return vulkan::api::AllocateDescriptorSets(device, pAllocateInfo, pDescriptorSets);
Chia-I Wu0c203242016-03-15 13:44:51 +08001602}
1603
1604__attribute__((visibility("default")))
1605VKAPI_ATTR VkResult vkFreeDescriptorSets(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001606 return vulkan::api::FreeDescriptorSets(device, descriptorPool, descriptorSetCount, pDescriptorSets);
Chia-I Wu0c203242016-03-15 13:44:51 +08001607}
1608
1609__attribute__((visibility("default")))
1610VKAPI_ATTR void vkUpdateDescriptorSets(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001611 vulkan::api::UpdateDescriptorSets(device, descriptorWriteCount, pDescriptorWrites, descriptorCopyCount, pDescriptorCopies);
Chia-I Wu0c203242016-03-15 13:44:51 +08001612}
1613
1614__attribute__((visibility("default")))
1615VKAPI_ATTR VkResult vkCreateFramebuffer(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001616 return vulkan::api::CreateFramebuffer(device, pCreateInfo, pAllocator, pFramebuffer);
Chia-I Wu0c203242016-03-15 13:44:51 +08001617}
1618
1619__attribute__((visibility("default")))
1620VKAPI_ATTR void vkDestroyFramebuffer(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001621 vulkan::api::DestroyFramebuffer(device, framebuffer, pAllocator);
Chia-I Wu0c203242016-03-15 13:44:51 +08001622}
1623
1624__attribute__((visibility("default")))
1625VKAPI_ATTR VkResult vkCreateRenderPass(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001626 return vulkan::api::CreateRenderPass(device, pCreateInfo, pAllocator, pRenderPass);
Chia-I Wu0c203242016-03-15 13:44:51 +08001627}
1628
1629__attribute__((visibility("default")))
1630VKAPI_ATTR void vkDestroyRenderPass(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001631 vulkan::api::DestroyRenderPass(device, renderPass, pAllocator);
Chia-I Wu0c203242016-03-15 13:44:51 +08001632}
1633
1634__attribute__((visibility("default")))
1635VKAPI_ATTR void vkGetRenderAreaGranularity(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001636 vulkan::api::GetRenderAreaGranularity(device, renderPass, pGranularity);
Chia-I Wu0c203242016-03-15 13:44:51 +08001637}
1638
1639__attribute__((visibility("default")))
1640VKAPI_ATTR VkResult vkCreateCommandPool(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001641 return vulkan::api::CreateCommandPool(device, pCreateInfo, pAllocator, pCommandPool);
Chia-I Wu0c203242016-03-15 13:44:51 +08001642}
1643
1644__attribute__((visibility("default")))
1645VKAPI_ATTR void vkDestroyCommandPool(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001646 vulkan::api::DestroyCommandPool(device, commandPool, pAllocator);
Chia-I Wu0c203242016-03-15 13:44:51 +08001647}
1648
1649__attribute__((visibility("default")))
1650VKAPI_ATTR VkResult vkResetCommandPool(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001651 return vulkan::api::ResetCommandPool(device, commandPool, flags);
Chia-I Wu0c203242016-03-15 13:44:51 +08001652}
1653
1654__attribute__((visibility("default")))
1655VKAPI_ATTR VkResult vkAllocateCommandBuffers(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001656 return vulkan::api::AllocateCommandBuffers(device, pAllocateInfo, pCommandBuffers);
Chia-I Wu0c203242016-03-15 13:44:51 +08001657}
1658
1659__attribute__((visibility("default")))
1660VKAPI_ATTR void vkFreeCommandBuffers(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001661 vulkan::api::FreeCommandBuffers(device, commandPool, commandBufferCount, pCommandBuffers);
Chia-I Wu0c203242016-03-15 13:44:51 +08001662}
1663
1664__attribute__((visibility("default")))
1665VKAPI_ATTR VkResult vkBeginCommandBuffer(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001666 return vulkan::api::BeginCommandBuffer(commandBuffer, pBeginInfo);
Chia-I Wu0c203242016-03-15 13:44:51 +08001667}
1668
1669__attribute__((visibility("default")))
1670VKAPI_ATTR VkResult vkEndCommandBuffer(VkCommandBuffer commandBuffer) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001671 return vulkan::api::EndCommandBuffer(commandBuffer);
Chia-I Wu0c203242016-03-15 13:44:51 +08001672}
1673
1674__attribute__((visibility("default")))
1675VKAPI_ATTR VkResult vkResetCommandBuffer(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001676 return vulkan::api::ResetCommandBuffer(commandBuffer, flags);
Chia-I Wu0c203242016-03-15 13:44:51 +08001677}
1678
1679__attribute__((visibility("default")))
1680VKAPI_ATTR void vkCmdBindPipeline(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001681 vulkan::api::CmdBindPipeline(commandBuffer, pipelineBindPoint, pipeline);
Chia-I Wu0c203242016-03-15 13:44:51 +08001682}
1683
1684__attribute__((visibility("default")))
1685VKAPI_ATTR void vkCmdSetViewport(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001686 vulkan::api::CmdSetViewport(commandBuffer, firstViewport, viewportCount, pViewports);
Chia-I Wu0c203242016-03-15 13:44:51 +08001687}
1688
1689__attribute__((visibility("default")))
1690VKAPI_ATTR void vkCmdSetScissor(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001691 vulkan::api::CmdSetScissor(commandBuffer, firstScissor, scissorCount, pScissors);
Chia-I Wu0c203242016-03-15 13:44:51 +08001692}
1693
1694__attribute__((visibility("default")))
1695VKAPI_ATTR void vkCmdSetLineWidth(VkCommandBuffer commandBuffer, float lineWidth) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001696 vulkan::api::CmdSetLineWidth(commandBuffer, lineWidth);
Chia-I Wu0c203242016-03-15 13:44:51 +08001697}
1698
1699__attribute__((visibility("default")))
1700VKAPI_ATTR void vkCmdSetDepthBias(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001701 vulkan::api::CmdSetDepthBias(commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor);
Chia-I Wu0c203242016-03-15 13:44:51 +08001702}
1703
1704__attribute__((visibility("default")))
1705VKAPI_ATTR void vkCmdSetBlendConstants(VkCommandBuffer commandBuffer, const float blendConstants[4]) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001706 vulkan::api::CmdSetBlendConstants(commandBuffer, blendConstants);
Chia-I Wu0c203242016-03-15 13:44:51 +08001707}
1708
1709__attribute__((visibility("default")))
1710VKAPI_ATTR void vkCmdSetDepthBounds(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001711 vulkan::api::CmdSetDepthBounds(commandBuffer, minDepthBounds, maxDepthBounds);
Chia-I Wu0c203242016-03-15 13:44:51 +08001712}
1713
1714__attribute__((visibility("default")))
1715VKAPI_ATTR void vkCmdSetStencilCompareMask(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001716 vulkan::api::CmdSetStencilCompareMask(commandBuffer, faceMask, compareMask);
Chia-I Wu0c203242016-03-15 13:44:51 +08001717}
1718
1719__attribute__((visibility("default")))
1720VKAPI_ATTR void vkCmdSetStencilWriteMask(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001721 vulkan::api::CmdSetStencilWriteMask(commandBuffer, faceMask, writeMask);
Chia-I Wu0c203242016-03-15 13:44:51 +08001722}
1723
1724__attribute__((visibility("default")))
1725VKAPI_ATTR void vkCmdSetStencilReference(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001726 vulkan::api::CmdSetStencilReference(commandBuffer, faceMask, reference);
Chia-I Wu0c203242016-03-15 13:44:51 +08001727}
1728
1729__attribute__((visibility("default")))
1730VKAPI_ATTR void vkCmdBindDescriptorSets(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001731 vulkan::api::CmdBindDescriptorSets(commandBuffer, pipelineBindPoint, layout, firstSet, descriptorSetCount, pDescriptorSets, dynamicOffsetCount, pDynamicOffsets);
Chia-I Wu0c203242016-03-15 13:44:51 +08001732}
1733
1734__attribute__((visibility("default")))
1735VKAPI_ATTR void vkCmdBindIndexBuffer(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001736 vulkan::api::CmdBindIndexBuffer(commandBuffer, buffer, offset, indexType);
Chia-I Wu0c203242016-03-15 13:44:51 +08001737}
1738
1739__attribute__((visibility("default")))
1740VKAPI_ATTR void vkCmdBindVertexBuffers(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001741 vulkan::api::CmdBindVertexBuffers(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets);
Chia-I Wu0c203242016-03-15 13:44:51 +08001742}
1743
1744__attribute__((visibility("default")))
1745VKAPI_ATTR void vkCmdDraw(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001746 vulkan::api::CmdDraw(commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance);
Chia-I Wu0c203242016-03-15 13:44:51 +08001747}
1748
1749__attribute__((visibility("default")))
1750VKAPI_ATTR void vkCmdDrawIndexed(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001751 vulkan::api::CmdDrawIndexed(commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance);
Chia-I Wu0c203242016-03-15 13:44:51 +08001752}
1753
1754__attribute__((visibility("default")))
1755VKAPI_ATTR void vkCmdDrawIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001756 vulkan::api::CmdDrawIndirect(commandBuffer, buffer, offset, drawCount, stride);
Chia-I Wu0c203242016-03-15 13:44:51 +08001757}
1758
1759__attribute__((visibility("default")))
1760VKAPI_ATTR void vkCmdDrawIndexedIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001761 vulkan::api::CmdDrawIndexedIndirect(commandBuffer, buffer, offset, drawCount, stride);
Chia-I Wu0c203242016-03-15 13:44:51 +08001762}
1763
1764__attribute__((visibility("default")))
1765VKAPI_ATTR void vkCmdDispatch(VkCommandBuffer commandBuffer, uint32_t x, uint32_t y, uint32_t z) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001766 vulkan::api::CmdDispatch(commandBuffer, x, y, z);
Chia-I Wu0c203242016-03-15 13:44:51 +08001767}
1768
1769__attribute__((visibility("default")))
1770VKAPI_ATTR void vkCmdDispatchIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001771 vulkan::api::CmdDispatchIndirect(commandBuffer, buffer, offset);
Chia-I Wu0c203242016-03-15 13:44:51 +08001772}
1773
1774__attribute__((visibility("default")))
1775VKAPI_ATTR void vkCmdCopyBuffer(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001776 vulkan::api::CmdCopyBuffer(commandBuffer, srcBuffer, dstBuffer, regionCount, pRegions);
Chia-I Wu0c203242016-03-15 13:44:51 +08001777}
1778
1779__attribute__((visibility("default")))
1780VKAPI_ATTR void vkCmdCopyImage(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001781 vulkan::api::CmdCopyImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions);
Chia-I Wu0c203242016-03-15 13:44:51 +08001782}
1783
1784__attribute__((visibility("default")))
1785VKAPI_ATTR void vkCmdBlitImage(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001786 vulkan::api::CmdBlitImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter);
Chia-I Wu0c203242016-03-15 13:44:51 +08001787}
1788
1789__attribute__((visibility("default")))
1790VKAPI_ATTR void vkCmdCopyBufferToImage(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001791 vulkan::api::CmdCopyBufferToImage(commandBuffer, srcBuffer, dstImage, dstImageLayout, regionCount, pRegions);
Chia-I Wu0c203242016-03-15 13:44:51 +08001792}
1793
1794__attribute__((visibility("default")))
1795VKAPI_ATTR void vkCmdCopyImageToBuffer(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001796 vulkan::api::CmdCopyImageToBuffer(commandBuffer, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions);
Chia-I Wu0c203242016-03-15 13:44:51 +08001797}
1798
1799__attribute__((visibility("default")))
1800VKAPI_ATTR void vkCmdUpdateBuffer(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const uint32_t* pData) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001801 vulkan::api::CmdUpdateBuffer(commandBuffer, dstBuffer, dstOffset, dataSize, pData);
Chia-I Wu0c203242016-03-15 13:44:51 +08001802}
1803
1804__attribute__((visibility("default")))
1805VKAPI_ATTR void vkCmdFillBuffer(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001806 vulkan::api::CmdFillBuffer(commandBuffer, dstBuffer, dstOffset, size, data);
Chia-I Wu0c203242016-03-15 13:44:51 +08001807}
1808
1809__attribute__((visibility("default")))
1810VKAPI_ATTR void vkCmdClearColorImage(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001811 vulkan::api::CmdClearColorImage(commandBuffer, image, imageLayout, pColor, rangeCount, pRanges);
Chia-I Wu0c203242016-03-15 13:44:51 +08001812}
1813
1814__attribute__((visibility("default")))
1815VKAPI_ATTR void vkCmdClearDepthStencilImage(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001816 vulkan::api::CmdClearDepthStencilImage(commandBuffer, image, imageLayout, pDepthStencil, rangeCount, pRanges);
Chia-I Wu0c203242016-03-15 13:44:51 +08001817}
1818
1819__attribute__((visibility("default")))
1820VKAPI_ATTR void vkCmdClearAttachments(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001821 vulkan::api::CmdClearAttachments(commandBuffer, attachmentCount, pAttachments, rectCount, pRects);
Chia-I Wu0c203242016-03-15 13:44:51 +08001822}
1823
1824__attribute__((visibility("default")))
1825VKAPI_ATTR void vkCmdResolveImage(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001826 vulkan::api::CmdResolveImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions);
Chia-I Wu0c203242016-03-15 13:44:51 +08001827}
1828
1829__attribute__((visibility("default")))
1830VKAPI_ATTR void vkCmdSetEvent(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001831 vulkan::api::CmdSetEvent(commandBuffer, event, stageMask);
Chia-I Wu0c203242016-03-15 13:44:51 +08001832}
1833
1834__attribute__((visibility("default")))
1835VKAPI_ATTR void vkCmdResetEvent(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001836 vulkan::api::CmdResetEvent(commandBuffer, event, stageMask);
Chia-I Wu0c203242016-03-15 13:44:51 +08001837}
1838
1839__attribute__((visibility("default")))
1840VKAPI_ATTR void vkCmdWaitEvents(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001841 vulkan::api::CmdWaitEvents(commandBuffer, eventCount, pEvents, srcStageMask, dstStageMask, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers);
Chia-I Wu0c203242016-03-15 13:44:51 +08001842}
1843
1844__attribute__((visibility("default")))
1845VKAPI_ATTR void vkCmdPipelineBarrier(VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001846 vulkan::api::CmdPipelineBarrier(commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers);
Chia-I Wu0c203242016-03-15 13:44:51 +08001847}
1848
1849__attribute__((visibility("default")))
1850VKAPI_ATTR void vkCmdBeginQuery(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001851 vulkan::api::CmdBeginQuery(commandBuffer, queryPool, query, flags);
Chia-I Wu0c203242016-03-15 13:44:51 +08001852}
1853
1854__attribute__((visibility("default")))
1855VKAPI_ATTR void vkCmdEndQuery(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001856 vulkan::api::CmdEndQuery(commandBuffer, queryPool, query);
Chia-I Wu0c203242016-03-15 13:44:51 +08001857}
1858
1859__attribute__((visibility("default")))
1860VKAPI_ATTR void vkCmdResetQueryPool(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001861 vulkan::api::CmdResetQueryPool(commandBuffer, queryPool, firstQuery, queryCount);
Chia-I Wu0c203242016-03-15 13:44:51 +08001862}
1863
1864__attribute__((visibility("default")))
1865VKAPI_ATTR void vkCmdWriteTimestamp(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001866 vulkan::api::CmdWriteTimestamp(commandBuffer, pipelineStage, queryPool, query);
Chia-I Wu0c203242016-03-15 13:44:51 +08001867}
1868
1869__attribute__((visibility("default")))
1870VKAPI_ATTR void vkCmdCopyQueryPoolResults(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001871 vulkan::api::CmdCopyQueryPoolResults(commandBuffer, queryPool, firstQuery, queryCount, dstBuffer, dstOffset, stride, flags);
Chia-I Wu0c203242016-03-15 13:44:51 +08001872}
1873
1874__attribute__((visibility("default")))
1875VKAPI_ATTR void vkCmdPushConstants(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001876 vulkan::api::CmdPushConstants(commandBuffer, layout, stageFlags, offset, size, pValues);
Chia-I Wu0c203242016-03-15 13:44:51 +08001877}
1878
1879__attribute__((visibility("default")))
1880VKAPI_ATTR void vkCmdBeginRenderPass(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001881 vulkan::api::CmdBeginRenderPass(commandBuffer, pRenderPassBegin, contents);
Chia-I Wu0c203242016-03-15 13:44:51 +08001882}
1883
1884__attribute__((visibility("default")))
1885VKAPI_ATTR void vkCmdNextSubpass(VkCommandBuffer commandBuffer, VkSubpassContents contents) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001886 vulkan::api::CmdNextSubpass(commandBuffer, contents);
Chia-I Wu0c203242016-03-15 13:44:51 +08001887}
1888
1889__attribute__((visibility("default")))
1890VKAPI_ATTR void vkCmdEndRenderPass(VkCommandBuffer commandBuffer) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001891 vulkan::api::CmdEndRenderPass(commandBuffer);
Chia-I Wu0c203242016-03-15 13:44:51 +08001892}
1893
1894__attribute__((visibility("default")))
1895VKAPI_ATTR void vkCmdExecuteCommands(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001896 vulkan::api::CmdExecuteCommands(commandBuffer, commandBufferCount, pCommandBuffers);
Chia-I Wu0c203242016-03-15 13:44:51 +08001897}
1898
1899__attribute__((visibility("default")))
1900VKAPI_ATTR void vkDestroySurfaceKHR(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001901 vulkan::api::DestroySurfaceKHR(instance, surface, pAllocator);
Chia-I Wu0c203242016-03-15 13:44:51 +08001902}
1903
1904__attribute__((visibility("default")))
1905VKAPI_ATTR VkResult vkGetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001906 return vulkan::api::GetPhysicalDeviceSurfaceSupportKHR(physicalDevice, queueFamilyIndex, surface, pSupported);
Chia-I Wu0c203242016-03-15 13:44:51 +08001907}
1908
1909__attribute__((visibility("default")))
1910VKAPI_ATTR VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001911 return vulkan::api::GetPhysicalDeviceSurfaceCapabilitiesKHR(physicalDevice, surface, pSurfaceCapabilities);
Chia-I Wu0c203242016-03-15 13:44:51 +08001912}
1913
1914__attribute__((visibility("default")))
1915VKAPI_ATTR VkResult vkGetPhysicalDeviceSurfaceFormatsKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001916 return vulkan::api::GetPhysicalDeviceSurfaceFormatsKHR(physicalDevice, surface, pSurfaceFormatCount, pSurfaceFormats);
Chia-I Wu0c203242016-03-15 13:44:51 +08001917}
1918
1919__attribute__((visibility("default")))
1920VKAPI_ATTR VkResult vkGetPhysicalDeviceSurfacePresentModesKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001921 return vulkan::api::GetPhysicalDeviceSurfacePresentModesKHR(physicalDevice, surface, pPresentModeCount, pPresentModes);
Chia-I Wu0c203242016-03-15 13:44:51 +08001922}
1923
1924__attribute__((visibility("default")))
1925VKAPI_ATTR VkResult vkCreateSwapchainKHR(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001926 return vulkan::api::CreateSwapchainKHR(device, pCreateInfo, pAllocator, pSwapchain);
Chia-I Wu0c203242016-03-15 13:44:51 +08001927}
1928
1929__attribute__((visibility("default")))
1930VKAPI_ATTR void vkDestroySwapchainKHR(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001931 vulkan::api::DestroySwapchainKHR(device, swapchain, pAllocator);
Chia-I Wu0c203242016-03-15 13:44:51 +08001932}
1933
1934__attribute__((visibility("default")))
1935VKAPI_ATTR VkResult vkGetSwapchainImagesKHR(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001936 return vulkan::api::GetSwapchainImagesKHR(device, swapchain, pSwapchainImageCount, pSwapchainImages);
Chia-I Wu0c203242016-03-15 13:44:51 +08001937}
1938
1939__attribute__((visibility("default")))
1940VKAPI_ATTR VkResult vkAcquireNextImageKHR(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001941 return vulkan::api::AcquireNextImageKHR(device, swapchain, timeout, semaphore, fence, pImageIndex);
Chia-I Wu0c203242016-03-15 13:44:51 +08001942}
1943
1944__attribute__((visibility("default")))
1945VKAPI_ATTR VkResult vkQueuePresentKHR(VkQueue queue, const VkPresentInfoKHR* pPresentInfo) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001946 return vulkan::api::QueuePresentKHR(queue, pPresentInfo);
Chia-I Wu0c203242016-03-15 13:44:51 +08001947}
1948
1949__attribute__((visibility("default")))
1950VKAPI_ATTR VkResult vkCreateAndroidSurfaceKHR(VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001951 return vulkan::api::CreateAndroidSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
Chia-I Wu0c203242016-03-15 13:44:51 +08001952}
1953
1954// clang-format on