blob: ff00f327c6751754ec4baff57ae8189690fff8e3 [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>
20#include <algorithm>
21#include <log/log.h>
22
Chia-I Wu3e654dc2016-05-20 16:15:06 +080023// to catch mismatches between vulkan.h and this file
24#undef VK_NO_PROTOTYPES
Chia-I Wu0c203242016-03-15 13:44:51 +080025#include "api.h"
26
27namespace vulkan {
28namespace api {
29
30#define UNLIKELY(expr) __builtin_expect((expr), 0)
31
32#define INIT_PROC(obj, proc) \
33 do { \
34 data.dispatch.proc = \
35 reinterpret_cast<PFN_vk##proc>(get_proc(obj, "vk" #proc)); \
36 if (UNLIKELY(!data.dispatch.proc)) { \
37 ALOGE("missing " #obj " proc: vk" #proc); \
38 success = false; \
39 } \
40 } while (0)
41
Chia-I Wu8925efd2016-04-13 15:13:21 +080042// Exported extension functions may be invoked even when their extensions
43// are disabled. Dispatch to stubs when that happens.
44#define INIT_PROC_EXT(ext, obj, proc) \
45 do { \
46 if (extensions[driver::ProcHook::ext]) \
47 INIT_PROC(obj, proc); \
48 else \
49 data.dispatch.proc = disabled##proc; \
Chia-I Wu0c203242016-03-15 13:44:51 +080050 } while (0)
51
Chia-I Wu8925efd2016-04-13 15:13:21 +080052namespace {
53
54// clang-format off
55
Chia-I Wu5beb2ac2016-05-04 16:37:23 +080056VKAPI_ATTR void disabledDestroySurfaceKHR(VkInstance instance, VkSurfaceKHR, const VkAllocationCallbacks*) {
57 driver::Logger(instance).Err(instance, "VK_KHR_surface not enabled. Exported vkDestroySurfaceKHR not executed.");
Chia-I Wu8925efd2016-04-13 15:13:21 +080058}
59
Chia-I Wu5beb2ac2016-05-04 16:37:23 +080060VKAPI_ATTR VkResult disabledGetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice physicalDevice, uint32_t, VkSurfaceKHR, VkBool32*) {
61 driver::Logger(physicalDevice).Err(physicalDevice, "VK_KHR_surface not enabled. Exported vkGetPhysicalDeviceSurfaceSupportKHR not executed.");
Chia-I Wu8925efd2016-04-13 15:13:21 +080062 return VK_SUCCESS;
63}
64
Chia-I Wu5beb2ac2016-05-04 16:37:23 +080065VKAPI_ATTR VkResult disabledGetPhysicalDeviceSurfaceCapabilitiesKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR, VkSurfaceCapabilitiesKHR*) {
66 driver::Logger(physicalDevice).Err(physicalDevice, "VK_KHR_surface not enabled. Exported vkGetPhysicalDeviceSurfaceCapabilitiesKHR not executed.");
Chia-I Wu8925efd2016-04-13 15:13:21 +080067 return VK_SUCCESS;
68}
69
Chia-I Wu5beb2ac2016-05-04 16:37:23 +080070VKAPI_ATTR VkResult disabledGetPhysicalDeviceSurfaceFormatsKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR, uint32_t*, VkSurfaceFormatKHR*) {
71 driver::Logger(physicalDevice).Err(physicalDevice, "VK_KHR_surface not enabled. Exported vkGetPhysicalDeviceSurfaceFormatsKHR not executed.");
Chia-I Wu8925efd2016-04-13 15:13:21 +080072 return VK_SUCCESS;
73}
74
Chia-I Wu5beb2ac2016-05-04 16:37:23 +080075VKAPI_ATTR VkResult disabledGetPhysicalDeviceSurfacePresentModesKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR, uint32_t*, VkPresentModeKHR*) {
76 driver::Logger(physicalDevice).Err(physicalDevice, "VK_KHR_surface not enabled. Exported vkGetPhysicalDeviceSurfacePresentModesKHR not executed.");
Chia-I Wu8925efd2016-04-13 15:13:21 +080077 return VK_SUCCESS;
78}
79
Chia-I Wu5beb2ac2016-05-04 16:37:23 +080080VKAPI_ATTR VkResult disabledCreateSwapchainKHR(VkDevice device, const VkSwapchainCreateInfoKHR*, const VkAllocationCallbacks*, VkSwapchainKHR*) {
81 driver::Logger(device).Err(device, "VK_KHR_swapchain not enabled. Exported vkCreateSwapchainKHR not executed.");
Chia-I Wu8925efd2016-04-13 15:13:21 +080082 return VK_SUCCESS;
83}
84
Chia-I Wu5beb2ac2016-05-04 16:37:23 +080085VKAPI_ATTR void disabledDestroySwapchainKHR(VkDevice device, VkSwapchainKHR, const VkAllocationCallbacks*) {
86 driver::Logger(device).Err(device, "VK_KHR_swapchain not enabled. Exported vkDestroySwapchainKHR not executed.");
Chia-I Wu8925efd2016-04-13 15:13:21 +080087}
88
Chia-I Wu5beb2ac2016-05-04 16:37:23 +080089VKAPI_ATTR VkResult disabledGetSwapchainImagesKHR(VkDevice device, VkSwapchainKHR, uint32_t*, VkImage*) {
90 driver::Logger(device).Err(device, "VK_KHR_swapchain not enabled. Exported vkGetSwapchainImagesKHR not executed.");
Chia-I Wu8925efd2016-04-13 15:13:21 +080091 return VK_SUCCESS;
92}
93
Chia-I Wu5beb2ac2016-05-04 16:37:23 +080094VKAPI_ATTR VkResult disabledAcquireNextImageKHR(VkDevice device, VkSwapchainKHR, uint64_t, VkSemaphore, VkFence, uint32_t*) {
95 driver::Logger(device).Err(device, "VK_KHR_swapchain not enabled. Exported vkAcquireNextImageKHR not executed.");
Chia-I Wu8925efd2016-04-13 15:13:21 +080096 return VK_SUCCESS;
97}
98
Chia-I Wu5beb2ac2016-05-04 16:37:23 +080099VKAPI_ATTR VkResult disabledQueuePresentKHR(VkQueue queue, const VkPresentInfoKHR*) {
100 driver::Logger(queue).Err(queue, "VK_KHR_swapchain not enabled. Exported vkQueuePresentKHR not executed.");
Chia-I Wu8925efd2016-04-13 15:13:21 +0800101 return VK_SUCCESS;
102}
103
Chia-I Wu5beb2ac2016-05-04 16:37:23 +0800104VKAPI_ATTR VkResult disabledCreateAndroidSurfaceKHR(VkInstance instance, const VkAndroidSurfaceCreateInfoKHR*, const VkAllocationCallbacks*, VkSurfaceKHR*) {
105 driver::Logger(instance).Err(instance, "VK_KHR_android_surface not enabled. Exported vkCreateAndroidSurfaceKHR not executed.");
Chia-I Wu8925efd2016-04-13 15:13:21 +0800106 return VK_SUCCESS;
107}
108
109// clang-format on
110
111} // anonymous
112
113bool InitDispatchTable(
114 VkInstance instance,
115 PFN_vkGetInstanceProcAddr get_proc,
116 const std::bitset<driver::ProcHook::EXTENSION_COUNT>& extensions) {
Chia-I Wu0c203242016-03-15 13:44:51 +0800117 auto& data = GetData(instance);
118 bool success = true;
119
120 // clang-format off
121 INIT_PROC(instance, DestroyInstance);
122 INIT_PROC(instance, EnumeratePhysicalDevices);
123 INIT_PROC(instance, GetInstanceProcAddr);
124 INIT_PROC(instance, GetPhysicalDeviceProperties);
125 INIT_PROC(instance, GetPhysicalDeviceQueueFamilyProperties);
126 INIT_PROC(instance, GetPhysicalDeviceMemoryProperties);
127 INIT_PROC(instance, GetPhysicalDeviceFeatures);
128 INIT_PROC(instance, GetPhysicalDeviceFormatProperties);
129 INIT_PROC(instance, GetPhysicalDeviceImageFormatProperties);
130 INIT_PROC(instance, CreateDevice);
131 INIT_PROC(instance, EnumerateDeviceLayerProperties);
132 INIT_PROC(instance, EnumerateDeviceExtensionProperties);
133 INIT_PROC(instance, GetPhysicalDeviceSparseImageFormatProperties);
134 INIT_PROC_EXT(KHR_surface, instance, DestroySurfaceKHR);
135 INIT_PROC_EXT(KHR_surface, instance, GetPhysicalDeviceSurfaceSupportKHR);
136 INIT_PROC_EXT(KHR_surface, instance, GetPhysicalDeviceSurfaceCapabilitiesKHR);
137 INIT_PROC_EXT(KHR_surface, instance, GetPhysicalDeviceSurfaceFormatsKHR);
138 INIT_PROC_EXT(KHR_surface, instance, GetPhysicalDeviceSurfacePresentModesKHR);
139 INIT_PROC_EXT(KHR_android_surface, instance, CreateAndroidSurfaceKHR);
140 // clang-format on
141
142 return success;
143}
144
Chia-I Wu8925efd2016-04-13 15:13:21 +0800145bool InitDispatchTable(
146 VkDevice dev,
147 PFN_vkGetDeviceProcAddr get_proc,
148 const std::bitset<driver::ProcHook::EXTENSION_COUNT>& extensions) {
Chia-I Wu0c203242016-03-15 13:44:51 +0800149 auto& data = GetData(dev);
150 bool success = true;
151
152 // clang-format off
153 INIT_PROC(dev, GetDeviceProcAddr);
154 INIT_PROC(dev, DestroyDevice);
155 INIT_PROC(dev, GetDeviceQueue);
156 INIT_PROC(dev, QueueSubmit);
157 INIT_PROC(dev, QueueWaitIdle);
158 INIT_PROC(dev, DeviceWaitIdle);
159 INIT_PROC(dev, AllocateMemory);
160 INIT_PROC(dev, FreeMemory);
161 INIT_PROC(dev, MapMemory);
162 INIT_PROC(dev, UnmapMemory);
163 INIT_PROC(dev, FlushMappedMemoryRanges);
164 INIT_PROC(dev, InvalidateMappedMemoryRanges);
165 INIT_PROC(dev, GetDeviceMemoryCommitment);
166 INIT_PROC(dev, GetBufferMemoryRequirements);
167 INIT_PROC(dev, BindBufferMemory);
168 INIT_PROC(dev, GetImageMemoryRequirements);
169 INIT_PROC(dev, BindImageMemory);
170 INIT_PROC(dev, GetImageSparseMemoryRequirements);
171 INIT_PROC(dev, QueueBindSparse);
172 INIT_PROC(dev, CreateFence);
173 INIT_PROC(dev, DestroyFence);
174 INIT_PROC(dev, ResetFences);
175 INIT_PROC(dev, GetFenceStatus);
176 INIT_PROC(dev, WaitForFences);
177 INIT_PROC(dev, CreateSemaphore);
178 INIT_PROC(dev, DestroySemaphore);
179 INIT_PROC(dev, CreateEvent);
180 INIT_PROC(dev, DestroyEvent);
181 INIT_PROC(dev, GetEventStatus);
182 INIT_PROC(dev, SetEvent);
183 INIT_PROC(dev, ResetEvent);
184 INIT_PROC(dev, CreateQueryPool);
185 INIT_PROC(dev, DestroyQueryPool);
186 INIT_PROC(dev, GetQueryPoolResults);
187 INIT_PROC(dev, CreateBuffer);
188 INIT_PROC(dev, DestroyBuffer);
189 INIT_PROC(dev, CreateBufferView);
190 INIT_PROC(dev, DestroyBufferView);
191 INIT_PROC(dev, CreateImage);
192 INIT_PROC(dev, DestroyImage);
193 INIT_PROC(dev, GetImageSubresourceLayout);
194 INIT_PROC(dev, CreateImageView);
195 INIT_PROC(dev, DestroyImageView);
196 INIT_PROC(dev, CreateShaderModule);
197 INIT_PROC(dev, DestroyShaderModule);
198 INIT_PROC(dev, CreatePipelineCache);
199 INIT_PROC(dev, DestroyPipelineCache);
200 INIT_PROC(dev, GetPipelineCacheData);
201 INIT_PROC(dev, MergePipelineCaches);
202 INIT_PROC(dev, CreateGraphicsPipelines);
203 INIT_PROC(dev, CreateComputePipelines);
204 INIT_PROC(dev, DestroyPipeline);
205 INIT_PROC(dev, CreatePipelineLayout);
206 INIT_PROC(dev, DestroyPipelineLayout);
207 INIT_PROC(dev, CreateSampler);
208 INIT_PROC(dev, DestroySampler);
209 INIT_PROC(dev, CreateDescriptorSetLayout);
210 INIT_PROC(dev, DestroyDescriptorSetLayout);
211 INIT_PROC(dev, CreateDescriptorPool);
212 INIT_PROC(dev, DestroyDescriptorPool);
213 INIT_PROC(dev, ResetDescriptorPool);
214 INIT_PROC(dev, AllocateDescriptorSets);
215 INIT_PROC(dev, FreeDescriptorSets);
216 INIT_PROC(dev, UpdateDescriptorSets);
217 INIT_PROC(dev, CreateFramebuffer);
218 INIT_PROC(dev, DestroyFramebuffer);
219 INIT_PROC(dev, CreateRenderPass);
220 INIT_PROC(dev, DestroyRenderPass);
221 INIT_PROC(dev, GetRenderAreaGranularity);
222 INIT_PROC(dev, CreateCommandPool);
223 INIT_PROC(dev, DestroyCommandPool);
224 INIT_PROC(dev, ResetCommandPool);
225 INIT_PROC(dev, AllocateCommandBuffers);
226 INIT_PROC(dev, FreeCommandBuffers);
227 INIT_PROC(dev, BeginCommandBuffer);
228 INIT_PROC(dev, EndCommandBuffer);
229 INIT_PROC(dev, ResetCommandBuffer);
230 INIT_PROC(dev, CmdBindPipeline);
231 INIT_PROC(dev, CmdSetViewport);
232 INIT_PROC(dev, CmdSetScissor);
233 INIT_PROC(dev, CmdSetLineWidth);
234 INIT_PROC(dev, CmdSetDepthBias);
235 INIT_PROC(dev, CmdSetBlendConstants);
236 INIT_PROC(dev, CmdSetDepthBounds);
237 INIT_PROC(dev, CmdSetStencilCompareMask);
238 INIT_PROC(dev, CmdSetStencilWriteMask);
239 INIT_PROC(dev, CmdSetStencilReference);
240 INIT_PROC(dev, CmdBindDescriptorSets);
241 INIT_PROC(dev, CmdBindIndexBuffer);
242 INIT_PROC(dev, CmdBindVertexBuffers);
243 INIT_PROC(dev, CmdDraw);
244 INIT_PROC(dev, CmdDrawIndexed);
245 INIT_PROC(dev, CmdDrawIndirect);
246 INIT_PROC(dev, CmdDrawIndexedIndirect);
247 INIT_PROC(dev, CmdDispatch);
248 INIT_PROC(dev, CmdDispatchIndirect);
249 INIT_PROC(dev, CmdCopyBuffer);
250 INIT_PROC(dev, CmdCopyImage);
251 INIT_PROC(dev, CmdBlitImage);
252 INIT_PROC(dev, CmdCopyBufferToImage);
253 INIT_PROC(dev, CmdCopyImageToBuffer);
254 INIT_PROC(dev, CmdUpdateBuffer);
255 INIT_PROC(dev, CmdFillBuffer);
256 INIT_PROC(dev, CmdClearColorImage);
257 INIT_PROC(dev, CmdClearDepthStencilImage);
258 INIT_PROC(dev, CmdClearAttachments);
259 INIT_PROC(dev, CmdResolveImage);
260 INIT_PROC(dev, CmdSetEvent);
261 INIT_PROC(dev, CmdResetEvent);
262 INIT_PROC(dev, CmdWaitEvents);
263 INIT_PROC(dev, CmdPipelineBarrier);
264 INIT_PROC(dev, CmdBeginQuery);
265 INIT_PROC(dev, CmdEndQuery);
266 INIT_PROC(dev, CmdResetQueryPool);
267 INIT_PROC(dev, CmdWriteTimestamp);
268 INIT_PROC(dev, CmdCopyQueryPoolResults);
269 INIT_PROC(dev, CmdPushConstants);
270 INIT_PROC(dev, CmdBeginRenderPass);
271 INIT_PROC(dev, CmdNextSubpass);
272 INIT_PROC(dev, CmdEndRenderPass);
273 INIT_PROC(dev, CmdExecuteCommands);
274 INIT_PROC_EXT(KHR_swapchain, dev, CreateSwapchainKHR);
275 INIT_PROC_EXT(KHR_swapchain, dev, DestroySwapchainKHR);
276 INIT_PROC_EXT(KHR_swapchain, dev, GetSwapchainImagesKHR);
277 INIT_PROC_EXT(KHR_swapchain, dev, AcquireNextImageKHR);
278 INIT_PROC_EXT(KHR_swapchain, dev, QueuePresentKHR);
279 // clang-format on
280
281 return success;
282}
283
Chia-I Wu0c203242016-03-15 13:44:51 +0800284// clang-format off
285
Chia-I Wu3e654dc2016-05-20 16:15:06 +0800286namespace {
287
288// forward declarations needed by GetInstanceProcAddr and GetDeviceProcAddr
289VKAPI_ATTR VkResult EnumeratePhysicalDevices(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
290VKAPI_ATTR PFN_vkVoidFunction GetDeviceProcAddr(VkDevice device, const char* pName);
291VKAPI_ATTR PFN_vkVoidFunction GetInstanceProcAddr(VkInstance instance, const char* pName);
292VKAPI_ATTR void GetPhysicalDeviceProperties(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties);
293VKAPI_ATTR void GetPhysicalDeviceQueueFamilyProperties(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties);
294VKAPI_ATTR void GetPhysicalDeviceMemoryProperties(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties);
295VKAPI_ATTR void GetPhysicalDeviceFeatures(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
296VKAPI_ATTR void GetPhysicalDeviceFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties);
297VKAPI_ATTR VkResult GetPhysicalDeviceImageFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties);
298VKAPI_ATTR void GetDeviceQueue(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue);
299VKAPI_ATTR VkResult QueueSubmit(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence);
300VKAPI_ATTR VkResult QueueWaitIdle(VkQueue queue);
301VKAPI_ATTR VkResult DeviceWaitIdle(VkDevice device);
302VKAPI_ATTR VkResult AllocateMemory(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory);
303VKAPI_ATTR void FreeMemory(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator);
304VKAPI_ATTR VkResult MapMemory(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData);
305VKAPI_ATTR void UnmapMemory(VkDevice device, VkDeviceMemory memory);
306VKAPI_ATTR VkResult FlushMappedMemoryRanges(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
307VKAPI_ATTR VkResult InvalidateMappedMemoryRanges(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
308VKAPI_ATTR void GetDeviceMemoryCommitment(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes);
309VKAPI_ATTR void GetBufferMemoryRequirements(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements);
310VKAPI_ATTR VkResult BindBufferMemory(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset);
311VKAPI_ATTR void GetImageMemoryRequirements(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements);
312VKAPI_ATTR VkResult BindImageMemory(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset);
313VKAPI_ATTR void GetImageSparseMemoryRequirements(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
314VKAPI_ATTR void GetPhysicalDeviceSparseImageFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties);
315VKAPI_ATTR VkResult QueueBindSparse(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence);
316VKAPI_ATTR VkResult CreateFence(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
317VKAPI_ATTR void DestroyFence(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator);
318VKAPI_ATTR VkResult ResetFences(VkDevice device, uint32_t fenceCount, const VkFence* pFences);
319VKAPI_ATTR VkResult GetFenceStatus(VkDevice device, VkFence fence);
320VKAPI_ATTR VkResult WaitForFences(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout);
321VKAPI_ATTR VkResult CreateSemaphore(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore);
322VKAPI_ATTR void DestroySemaphore(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator);
323VKAPI_ATTR VkResult CreateEvent(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent);
324VKAPI_ATTR void DestroyEvent(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator);
325VKAPI_ATTR VkResult GetEventStatus(VkDevice device, VkEvent event);
326VKAPI_ATTR VkResult SetEvent(VkDevice device, VkEvent event);
327VKAPI_ATTR VkResult ResetEvent(VkDevice device, VkEvent event);
328VKAPI_ATTR VkResult CreateQueryPool(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool);
329VKAPI_ATTR void DestroyQueryPool(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator);
330VKAPI_ATTR VkResult GetQueryPoolResults(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags);
331VKAPI_ATTR VkResult CreateBuffer(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer);
332VKAPI_ATTR void DestroyBuffer(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator);
333VKAPI_ATTR VkResult CreateBufferView(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView);
334VKAPI_ATTR void DestroyBufferView(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator);
335VKAPI_ATTR VkResult CreateImage(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage);
336VKAPI_ATTR void DestroyImage(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator);
337VKAPI_ATTR void GetImageSubresourceLayout(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout);
338VKAPI_ATTR VkResult CreateImageView(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView);
339VKAPI_ATTR void DestroyImageView(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator);
340VKAPI_ATTR VkResult CreateShaderModule(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule);
341VKAPI_ATTR void DestroyShaderModule(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator);
342VKAPI_ATTR VkResult CreatePipelineCache(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache);
343VKAPI_ATTR void DestroyPipelineCache(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator);
344VKAPI_ATTR VkResult GetPipelineCacheData(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData);
345VKAPI_ATTR VkResult MergePipelineCaches(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches);
346VKAPI_ATTR VkResult CreateGraphicsPipelines(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
347VKAPI_ATTR VkResult CreateComputePipelines(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
348VKAPI_ATTR void DestroyPipeline(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator);
349VKAPI_ATTR VkResult CreatePipelineLayout(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout);
350VKAPI_ATTR void DestroyPipelineLayout(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator);
351VKAPI_ATTR VkResult CreateSampler(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler);
352VKAPI_ATTR void DestroySampler(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator);
353VKAPI_ATTR VkResult CreateDescriptorSetLayout(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout);
354VKAPI_ATTR void DestroyDescriptorSetLayout(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator);
355VKAPI_ATTR VkResult CreateDescriptorPool(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool);
356VKAPI_ATTR void DestroyDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator);
357VKAPI_ATTR VkResult ResetDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
358VKAPI_ATTR VkResult AllocateDescriptorSets(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets);
359VKAPI_ATTR VkResult FreeDescriptorSets(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets);
360VKAPI_ATTR void UpdateDescriptorSets(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies);
361VKAPI_ATTR VkResult CreateFramebuffer(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer);
362VKAPI_ATTR void DestroyFramebuffer(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator);
363VKAPI_ATTR VkResult CreateRenderPass(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
364VKAPI_ATTR void DestroyRenderPass(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator);
365VKAPI_ATTR void GetRenderAreaGranularity(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity);
366VKAPI_ATTR VkResult CreateCommandPool(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool);
367VKAPI_ATTR void DestroyCommandPool(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator);
368VKAPI_ATTR VkResult ResetCommandPool(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags);
369VKAPI_ATTR VkResult AllocateCommandBuffers(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers);
370VKAPI_ATTR void FreeCommandBuffers(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
371VKAPI_ATTR VkResult BeginCommandBuffer(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo);
372VKAPI_ATTR VkResult EndCommandBuffer(VkCommandBuffer commandBuffer);
373VKAPI_ATTR VkResult ResetCommandBuffer(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags);
374VKAPI_ATTR void CmdBindPipeline(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
375VKAPI_ATTR void CmdSetViewport(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports);
376VKAPI_ATTR void CmdSetScissor(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors);
377VKAPI_ATTR void CmdSetLineWidth(VkCommandBuffer commandBuffer, float lineWidth);
378VKAPI_ATTR void CmdSetDepthBias(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor);
379VKAPI_ATTR void CmdSetBlendConstants(VkCommandBuffer commandBuffer, const float blendConstants[4]);
380VKAPI_ATTR void CmdSetDepthBounds(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds);
381VKAPI_ATTR void CmdSetStencilCompareMask(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask);
382VKAPI_ATTR void CmdSetStencilWriteMask(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask);
383VKAPI_ATTR void CmdSetStencilReference(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference);
384VKAPI_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);
385VKAPI_ATTR void CmdBindIndexBuffer(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
386VKAPI_ATTR void CmdBindVertexBuffers(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets);
387VKAPI_ATTR void CmdDraw(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance);
388VKAPI_ATTR void CmdDrawIndexed(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance);
389VKAPI_ATTR void CmdDrawIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
390VKAPI_ATTR void CmdDrawIndexedIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
391VKAPI_ATTR void CmdDispatch(VkCommandBuffer commandBuffer, uint32_t x, uint32_t y, uint32_t z);
392VKAPI_ATTR void CmdDispatchIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
393VKAPI_ATTR void CmdCopyBuffer(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions);
394VKAPI_ATTR void CmdCopyImage(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions);
395VKAPI_ATTR void CmdBlitImage(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter);
396VKAPI_ATTR void CmdCopyBufferToImage(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions);
397VKAPI_ATTR void CmdCopyImageToBuffer(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions);
398VKAPI_ATTR void CmdUpdateBuffer(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const uint32_t* pData);
399VKAPI_ATTR void CmdFillBuffer(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data);
400VKAPI_ATTR void CmdClearColorImage(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
401VKAPI_ATTR void CmdClearDepthStencilImage(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
402VKAPI_ATTR void CmdClearAttachments(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects);
403VKAPI_ATTR void CmdResolveImage(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions);
404VKAPI_ATTR void CmdSetEvent(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
405VKAPI_ATTR void CmdResetEvent(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
406VKAPI_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);
407VKAPI_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);
408VKAPI_ATTR void CmdBeginQuery(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags);
409VKAPI_ATTR void CmdEndQuery(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query);
410VKAPI_ATTR void CmdResetQueryPool(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
411VKAPI_ATTR void CmdWriteTimestamp(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query);
412VKAPI_ATTR void CmdCopyQueryPoolResults(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags);
413VKAPI_ATTR void CmdPushConstants(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues);
414VKAPI_ATTR void CmdBeginRenderPass(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents);
415VKAPI_ATTR void CmdNextSubpass(VkCommandBuffer commandBuffer, VkSubpassContents contents);
416VKAPI_ATTR void CmdEndRenderPass(VkCommandBuffer commandBuffer);
417VKAPI_ATTR void CmdExecuteCommands(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
418VKAPI_ATTR void DestroySurfaceKHR(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator);
419VKAPI_ATTR VkResult GetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported);
420VKAPI_ATTR VkResult GetPhysicalDeviceSurfaceCapabilitiesKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
421VKAPI_ATTR VkResult GetPhysicalDeviceSurfaceFormatsKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats);
422VKAPI_ATTR VkResult GetPhysicalDeviceSurfacePresentModesKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes);
423VKAPI_ATTR VkResult CreateSwapchainKHR(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain);
424VKAPI_ATTR void DestroySwapchainKHR(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator);
425VKAPI_ATTR VkResult GetSwapchainImagesKHR(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages);
426VKAPI_ATTR VkResult AcquireNextImageKHR(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex);
427VKAPI_ATTR VkResult QueuePresentKHR(VkQueue queue, const VkPresentInfoKHR* pPresentInfo);
428VKAPI_ATTR VkResult CreateAndroidSurfaceKHR(VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
429
430VKAPI_ATTR VkResult EnumeratePhysicalDevices(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices) {
431 return GetData(instance).dispatch.EnumeratePhysicalDevices(instance, pPhysicalDeviceCount, pPhysicalDevices);
Chia-I Wu0c203242016-03-15 13:44:51 +0800432}
433
Chia-I Wu3e654dc2016-05-20 16:15:06 +0800434VKAPI_ATTR PFN_vkVoidFunction GetDeviceProcAddr(VkDevice device, const char* pName) {
Chia-I Wu0c203242016-03-15 13:44:51 +0800435 if (device == VK_NULL_HANDLE) {
Chia-I Wu5beb2ac2016-05-04 16:37:23 +0800436 ALOGE("invalid vkGetDeviceProcAddr(VK_NULL_HANDLE, ...) call");
Chia-I Wu0c203242016-03-15 13:44:51 +0800437 return nullptr;
438 }
439
440 static const char* const known_non_device_names[] = {
441 "vkCreateAndroidSurfaceKHR",
442 "vkCreateDebugReportCallbackEXT",
443 "vkCreateDevice",
444 "vkCreateInstance",
445 "vkDebugReportMessageEXT",
446 "vkDestroyDebugReportCallbackEXT",
447 "vkDestroyInstance",
448 "vkDestroySurfaceKHR",
449 "vkEnumerateDeviceExtensionProperties",
450 "vkEnumerateDeviceLayerProperties",
451 "vkEnumerateInstanceExtensionProperties",
452 "vkEnumerateInstanceLayerProperties",
453 "vkEnumeratePhysicalDevices",
454 "vkGetInstanceProcAddr",
455 "vkGetPhysicalDeviceFeatures",
456 "vkGetPhysicalDeviceFormatProperties",
457 "vkGetPhysicalDeviceImageFormatProperties",
458 "vkGetPhysicalDeviceMemoryProperties",
459 "vkGetPhysicalDeviceProperties",
460 "vkGetPhysicalDeviceQueueFamilyProperties",
461 "vkGetPhysicalDeviceSparseImageFormatProperties",
462 "vkGetPhysicalDeviceSurfaceCapabilitiesKHR",
463 "vkGetPhysicalDeviceSurfaceFormatsKHR",
464 "vkGetPhysicalDeviceSurfacePresentModesKHR",
465 "vkGetPhysicalDeviceSurfaceSupportKHR",
466 };
467 // clang-format on
468 constexpr size_t count =
469 sizeof(known_non_device_names) / sizeof(known_non_device_names[0]);
470 if (!pName ||
471 std::binary_search(
472 known_non_device_names, known_non_device_names + count, pName,
473 [](const char* a, const char* b) { return (strcmp(a, b) < 0); })) {
Chia-I Wu5beb2ac2016-05-04 16:37:23 +0800474 vulkan::driver::Logger(device).Err(
475 device, "invalid vkGetDeviceProcAddr(%p, \"%s\") call", device,
476 (pName) ? pName : "(null)");
Chia-I Wu0c203242016-03-15 13:44:51 +0800477 return nullptr;
478 }
479 // clang-format off
480
Chia-I Wu3e654dc2016-05-20 16:15:06 +0800481 if (strcmp(pName, "vkGetDeviceProcAddr") == 0) return reinterpret_cast<PFN_vkVoidFunction>(GetDeviceProcAddr);
482 if (strcmp(pName, "vkDestroyDevice") == 0) return reinterpret_cast<PFN_vkVoidFunction>(DestroyDevice);
Chia-I Wuc56603e2016-04-12 11:16:17 +0800483
Chia-I Wu3e654dc2016-05-20 16:15:06 +0800484 return GetData(device).dispatch.GetDeviceProcAddr(device, pName);
Chia-I Wu0c203242016-03-15 13:44:51 +0800485}
486
Chia-I Wu3e654dc2016-05-20 16:15:06 +0800487VKAPI_ATTR PFN_vkVoidFunction GetInstanceProcAddr(VkInstance instance, const char* pName) {
Chia-I Wu0c203242016-03-15 13:44:51 +0800488 // global functions
Chia-I Wu5beb2ac2016-05-04 16:37:23 +0800489 if (instance == VK_NULL_HANDLE) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +0800490 if (strcmp(pName, "vkCreateInstance") == 0) return reinterpret_cast<PFN_vkVoidFunction>(CreateInstance);
491 if (strcmp(pName, "vkEnumerateInstanceLayerProperties") == 0) return reinterpret_cast<PFN_vkVoidFunction>(EnumerateInstanceLayerProperties);
492 if (strcmp(pName, "vkEnumerateInstanceExtensionProperties") == 0) return reinterpret_cast<PFN_vkVoidFunction>(EnumerateInstanceExtensionProperties);
Chia-I Wu0c203242016-03-15 13:44:51 +0800493
Chia-I Wu5beb2ac2016-05-04 16:37:23 +0800494 ALOGE("invalid vkGetInstanceProcAddr(VK_NULL_HANDLE, \"%s\") call", pName);
Chia-I Wu0c203242016-03-15 13:44:51 +0800495 return nullptr;
496 }
497
498 static const struct Hook {
499 const char* name;
500 PFN_vkVoidFunction proc;
501 } hooks[] = {
Chia-I Wu3e654dc2016-05-20 16:15:06 +0800502 { "vkAcquireNextImageKHR", reinterpret_cast<PFN_vkVoidFunction>(AcquireNextImageKHR) },
503 { "vkAllocateCommandBuffers", reinterpret_cast<PFN_vkVoidFunction>(AllocateCommandBuffers) },
504 { "vkAllocateDescriptorSets", reinterpret_cast<PFN_vkVoidFunction>(AllocateDescriptorSets) },
505 { "vkAllocateMemory", reinterpret_cast<PFN_vkVoidFunction>(AllocateMemory) },
506 { "vkBeginCommandBuffer", reinterpret_cast<PFN_vkVoidFunction>(BeginCommandBuffer) },
507 { "vkBindBufferMemory", reinterpret_cast<PFN_vkVoidFunction>(BindBufferMemory) },
508 { "vkBindImageMemory", reinterpret_cast<PFN_vkVoidFunction>(BindImageMemory) },
509 { "vkCmdBeginQuery", reinterpret_cast<PFN_vkVoidFunction>(CmdBeginQuery) },
510 { "vkCmdBeginRenderPass", reinterpret_cast<PFN_vkVoidFunction>(CmdBeginRenderPass) },
511 { "vkCmdBindDescriptorSets", reinterpret_cast<PFN_vkVoidFunction>(CmdBindDescriptorSets) },
512 { "vkCmdBindIndexBuffer", reinterpret_cast<PFN_vkVoidFunction>(CmdBindIndexBuffer) },
513 { "vkCmdBindPipeline", reinterpret_cast<PFN_vkVoidFunction>(CmdBindPipeline) },
514 { "vkCmdBindVertexBuffers", reinterpret_cast<PFN_vkVoidFunction>(CmdBindVertexBuffers) },
515 { "vkCmdBlitImage", reinterpret_cast<PFN_vkVoidFunction>(CmdBlitImage) },
516 { "vkCmdClearAttachments", reinterpret_cast<PFN_vkVoidFunction>(CmdClearAttachments) },
517 { "vkCmdClearColorImage", reinterpret_cast<PFN_vkVoidFunction>(CmdClearColorImage) },
518 { "vkCmdClearDepthStencilImage", reinterpret_cast<PFN_vkVoidFunction>(CmdClearDepthStencilImage) },
519 { "vkCmdCopyBuffer", reinterpret_cast<PFN_vkVoidFunction>(CmdCopyBuffer) },
520 { "vkCmdCopyBufferToImage", reinterpret_cast<PFN_vkVoidFunction>(CmdCopyBufferToImage) },
521 { "vkCmdCopyImage", reinterpret_cast<PFN_vkVoidFunction>(CmdCopyImage) },
522 { "vkCmdCopyImageToBuffer", reinterpret_cast<PFN_vkVoidFunction>(CmdCopyImageToBuffer) },
523 { "vkCmdCopyQueryPoolResults", reinterpret_cast<PFN_vkVoidFunction>(CmdCopyQueryPoolResults) },
524 { "vkCmdDispatch", reinterpret_cast<PFN_vkVoidFunction>(CmdDispatch) },
525 { "vkCmdDispatchIndirect", reinterpret_cast<PFN_vkVoidFunction>(CmdDispatchIndirect) },
526 { "vkCmdDraw", reinterpret_cast<PFN_vkVoidFunction>(CmdDraw) },
527 { "vkCmdDrawIndexed", reinterpret_cast<PFN_vkVoidFunction>(CmdDrawIndexed) },
528 { "vkCmdDrawIndexedIndirect", reinterpret_cast<PFN_vkVoidFunction>(CmdDrawIndexedIndirect) },
529 { "vkCmdDrawIndirect", reinterpret_cast<PFN_vkVoidFunction>(CmdDrawIndirect) },
530 { "vkCmdEndQuery", reinterpret_cast<PFN_vkVoidFunction>(CmdEndQuery) },
531 { "vkCmdEndRenderPass", reinterpret_cast<PFN_vkVoidFunction>(CmdEndRenderPass) },
532 { "vkCmdExecuteCommands", reinterpret_cast<PFN_vkVoidFunction>(CmdExecuteCommands) },
533 { "vkCmdFillBuffer", reinterpret_cast<PFN_vkVoidFunction>(CmdFillBuffer) },
534 { "vkCmdNextSubpass", reinterpret_cast<PFN_vkVoidFunction>(CmdNextSubpass) },
535 { "vkCmdPipelineBarrier", reinterpret_cast<PFN_vkVoidFunction>(CmdPipelineBarrier) },
536 { "vkCmdPushConstants", reinterpret_cast<PFN_vkVoidFunction>(CmdPushConstants) },
537 { "vkCmdResetEvent", reinterpret_cast<PFN_vkVoidFunction>(CmdResetEvent) },
538 { "vkCmdResetQueryPool", reinterpret_cast<PFN_vkVoidFunction>(CmdResetQueryPool) },
539 { "vkCmdResolveImage", reinterpret_cast<PFN_vkVoidFunction>(CmdResolveImage) },
540 { "vkCmdSetBlendConstants", reinterpret_cast<PFN_vkVoidFunction>(CmdSetBlendConstants) },
541 { "vkCmdSetDepthBias", reinterpret_cast<PFN_vkVoidFunction>(CmdSetDepthBias) },
542 { "vkCmdSetDepthBounds", reinterpret_cast<PFN_vkVoidFunction>(CmdSetDepthBounds) },
543 { "vkCmdSetEvent", reinterpret_cast<PFN_vkVoidFunction>(CmdSetEvent) },
544 { "vkCmdSetLineWidth", reinterpret_cast<PFN_vkVoidFunction>(CmdSetLineWidth) },
545 { "vkCmdSetScissor", reinterpret_cast<PFN_vkVoidFunction>(CmdSetScissor) },
546 { "vkCmdSetStencilCompareMask", reinterpret_cast<PFN_vkVoidFunction>(CmdSetStencilCompareMask) },
547 { "vkCmdSetStencilReference", reinterpret_cast<PFN_vkVoidFunction>(CmdSetStencilReference) },
548 { "vkCmdSetStencilWriteMask", reinterpret_cast<PFN_vkVoidFunction>(CmdSetStencilWriteMask) },
549 { "vkCmdSetViewport", reinterpret_cast<PFN_vkVoidFunction>(CmdSetViewport) },
550 { "vkCmdUpdateBuffer", reinterpret_cast<PFN_vkVoidFunction>(CmdUpdateBuffer) },
551 { "vkCmdWaitEvents", reinterpret_cast<PFN_vkVoidFunction>(CmdWaitEvents) },
552 { "vkCmdWriteTimestamp", reinterpret_cast<PFN_vkVoidFunction>(CmdWriteTimestamp) },
553 { "vkCreateBuffer", reinterpret_cast<PFN_vkVoidFunction>(CreateBuffer) },
554 { "vkCreateBufferView", reinterpret_cast<PFN_vkVoidFunction>(CreateBufferView) },
555 { "vkCreateCommandPool", reinterpret_cast<PFN_vkVoidFunction>(CreateCommandPool) },
556 { "vkCreateComputePipelines", reinterpret_cast<PFN_vkVoidFunction>(CreateComputePipelines) },
557 { "vkCreateDescriptorPool", reinterpret_cast<PFN_vkVoidFunction>(CreateDescriptorPool) },
558 { "vkCreateDescriptorSetLayout", reinterpret_cast<PFN_vkVoidFunction>(CreateDescriptorSetLayout) },
559 { "vkCreateDevice", reinterpret_cast<PFN_vkVoidFunction>(CreateDevice) },
560 { "vkCreateEvent", reinterpret_cast<PFN_vkVoidFunction>(CreateEvent) },
561 { "vkCreateFence", reinterpret_cast<PFN_vkVoidFunction>(CreateFence) },
562 { "vkCreateFramebuffer", reinterpret_cast<PFN_vkVoidFunction>(CreateFramebuffer) },
563 { "vkCreateGraphicsPipelines", reinterpret_cast<PFN_vkVoidFunction>(CreateGraphicsPipelines) },
564 { "vkCreateImage", reinterpret_cast<PFN_vkVoidFunction>(CreateImage) },
565 { "vkCreateImageView", reinterpret_cast<PFN_vkVoidFunction>(CreateImageView) },
Chia-I Wu0c203242016-03-15 13:44:51 +0800566 { "vkCreateInstance", nullptr },
Chia-I Wu3e654dc2016-05-20 16:15:06 +0800567 { "vkCreatePipelineCache", reinterpret_cast<PFN_vkVoidFunction>(CreatePipelineCache) },
568 { "vkCreatePipelineLayout", reinterpret_cast<PFN_vkVoidFunction>(CreatePipelineLayout) },
569 { "vkCreateQueryPool", reinterpret_cast<PFN_vkVoidFunction>(CreateQueryPool) },
570 { "vkCreateRenderPass", reinterpret_cast<PFN_vkVoidFunction>(CreateRenderPass) },
571 { "vkCreateSampler", reinterpret_cast<PFN_vkVoidFunction>(CreateSampler) },
572 { "vkCreateSemaphore", reinterpret_cast<PFN_vkVoidFunction>(CreateSemaphore) },
573 { "vkCreateShaderModule", reinterpret_cast<PFN_vkVoidFunction>(CreateShaderModule) },
574 { "vkCreateSwapchainKHR", reinterpret_cast<PFN_vkVoidFunction>(CreateSwapchainKHR) },
575 { "vkDestroyBuffer", reinterpret_cast<PFN_vkVoidFunction>(DestroyBuffer) },
576 { "vkDestroyBufferView", reinterpret_cast<PFN_vkVoidFunction>(DestroyBufferView) },
577 { "vkDestroyCommandPool", reinterpret_cast<PFN_vkVoidFunction>(DestroyCommandPool) },
578 { "vkDestroyDescriptorPool", reinterpret_cast<PFN_vkVoidFunction>(DestroyDescriptorPool) },
579 { "vkDestroyDescriptorSetLayout", reinterpret_cast<PFN_vkVoidFunction>(DestroyDescriptorSetLayout) },
580 { "vkDestroyDevice", reinterpret_cast<PFN_vkVoidFunction>(DestroyDevice) },
581 { "vkDestroyEvent", reinterpret_cast<PFN_vkVoidFunction>(DestroyEvent) },
582 { "vkDestroyFence", reinterpret_cast<PFN_vkVoidFunction>(DestroyFence) },
583 { "vkDestroyFramebuffer", reinterpret_cast<PFN_vkVoidFunction>(DestroyFramebuffer) },
584 { "vkDestroyImage", reinterpret_cast<PFN_vkVoidFunction>(DestroyImage) },
585 { "vkDestroyImageView", reinterpret_cast<PFN_vkVoidFunction>(DestroyImageView) },
586 { "vkDestroyInstance", reinterpret_cast<PFN_vkVoidFunction>(DestroyInstance) },
587 { "vkDestroyPipeline", reinterpret_cast<PFN_vkVoidFunction>(DestroyPipeline) },
588 { "vkDestroyPipelineCache", reinterpret_cast<PFN_vkVoidFunction>(DestroyPipelineCache) },
589 { "vkDestroyPipelineLayout", reinterpret_cast<PFN_vkVoidFunction>(DestroyPipelineLayout) },
590 { "vkDestroyQueryPool", reinterpret_cast<PFN_vkVoidFunction>(DestroyQueryPool) },
591 { "vkDestroyRenderPass", reinterpret_cast<PFN_vkVoidFunction>(DestroyRenderPass) },
592 { "vkDestroySampler", reinterpret_cast<PFN_vkVoidFunction>(DestroySampler) },
593 { "vkDestroySemaphore", reinterpret_cast<PFN_vkVoidFunction>(DestroySemaphore) },
594 { "vkDestroyShaderModule", reinterpret_cast<PFN_vkVoidFunction>(DestroyShaderModule) },
595 { "vkDestroySwapchainKHR", reinterpret_cast<PFN_vkVoidFunction>(DestroySwapchainKHR) },
596 { "vkDeviceWaitIdle", reinterpret_cast<PFN_vkVoidFunction>(DeviceWaitIdle) },
597 { "vkEndCommandBuffer", reinterpret_cast<PFN_vkVoidFunction>(EndCommandBuffer) },
598 { "vkEnumerateDeviceExtensionProperties", reinterpret_cast<PFN_vkVoidFunction>(EnumerateDeviceExtensionProperties) },
599 { "vkEnumerateDeviceLayerProperties", reinterpret_cast<PFN_vkVoidFunction>(EnumerateDeviceLayerProperties) },
Chia-I Wu0c203242016-03-15 13:44:51 +0800600 { "vkEnumerateInstanceExtensionProperties", nullptr },
601 { "vkEnumerateInstanceLayerProperties", nullptr },
Chia-I Wu3e654dc2016-05-20 16:15:06 +0800602 { "vkFlushMappedMemoryRanges", reinterpret_cast<PFN_vkVoidFunction>(FlushMappedMemoryRanges) },
603 { "vkFreeCommandBuffers", reinterpret_cast<PFN_vkVoidFunction>(FreeCommandBuffers) },
604 { "vkFreeDescriptorSets", reinterpret_cast<PFN_vkVoidFunction>(FreeDescriptorSets) },
605 { "vkFreeMemory", reinterpret_cast<PFN_vkVoidFunction>(FreeMemory) },
606 { "vkGetBufferMemoryRequirements", reinterpret_cast<PFN_vkVoidFunction>(GetBufferMemoryRequirements) },
607 { "vkGetDeviceMemoryCommitment", reinterpret_cast<PFN_vkVoidFunction>(GetDeviceMemoryCommitment) },
608 { "vkGetDeviceProcAddr", reinterpret_cast<PFN_vkVoidFunction>(GetDeviceProcAddr) },
609 { "vkGetDeviceQueue", reinterpret_cast<PFN_vkVoidFunction>(GetDeviceQueue) },
610 { "vkGetEventStatus", reinterpret_cast<PFN_vkVoidFunction>(GetEventStatus) },
611 { "vkGetFenceStatus", reinterpret_cast<PFN_vkVoidFunction>(GetFenceStatus) },
612 { "vkGetImageMemoryRequirements", reinterpret_cast<PFN_vkVoidFunction>(GetImageMemoryRequirements) },
613 { "vkGetImageSparseMemoryRequirements", reinterpret_cast<PFN_vkVoidFunction>(GetImageSparseMemoryRequirements) },
614 { "vkGetImageSubresourceLayout", reinterpret_cast<PFN_vkVoidFunction>(GetImageSubresourceLayout) },
615 { "vkGetInstanceProcAddr", reinterpret_cast<PFN_vkVoidFunction>(GetInstanceProcAddr) },
616 { "vkGetPipelineCacheData", reinterpret_cast<PFN_vkVoidFunction>(GetPipelineCacheData) },
617 { "vkGetQueryPoolResults", reinterpret_cast<PFN_vkVoidFunction>(GetQueryPoolResults) },
618 { "vkGetRenderAreaGranularity", reinterpret_cast<PFN_vkVoidFunction>(GetRenderAreaGranularity) },
619 { "vkGetSwapchainImagesKHR", reinterpret_cast<PFN_vkVoidFunction>(GetSwapchainImagesKHR) },
620 { "vkInvalidateMappedMemoryRanges", reinterpret_cast<PFN_vkVoidFunction>(InvalidateMappedMemoryRanges) },
621 { "vkMapMemory", reinterpret_cast<PFN_vkVoidFunction>(MapMemory) },
622 { "vkMergePipelineCaches", reinterpret_cast<PFN_vkVoidFunction>(MergePipelineCaches) },
623 { "vkQueueBindSparse", reinterpret_cast<PFN_vkVoidFunction>(QueueBindSparse) },
624 { "vkQueuePresentKHR", reinterpret_cast<PFN_vkVoidFunction>(QueuePresentKHR) },
625 { "vkQueueSubmit", reinterpret_cast<PFN_vkVoidFunction>(QueueSubmit) },
626 { "vkQueueWaitIdle", reinterpret_cast<PFN_vkVoidFunction>(QueueWaitIdle) },
627 { "vkResetCommandBuffer", reinterpret_cast<PFN_vkVoidFunction>(ResetCommandBuffer) },
628 { "vkResetCommandPool", reinterpret_cast<PFN_vkVoidFunction>(ResetCommandPool) },
629 { "vkResetDescriptorPool", reinterpret_cast<PFN_vkVoidFunction>(ResetDescriptorPool) },
630 { "vkResetEvent", reinterpret_cast<PFN_vkVoidFunction>(ResetEvent) },
631 { "vkResetFences", reinterpret_cast<PFN_vkVoidFunction>(ResetFences) },
632 { "vkSetEvent", reinterpret_cast<PFN_vkVoidFunction>(SetEvent) },
633 { "vkUnmapMemory", reinterpret_cast<PFN_vkVoidFunction>(UnmapMemory) },
634 { "vkUpdateDescriptorSets", reinterpret_cast<PFN_vkVoidFunction>(UpdateDescriptorSets) },
635 { "vkWaitForFences", reinterpret_cast<PFN_vkVoidFunction>(WaitForFences) },
Chia-I Wu0c203242016-03-15 13:44:51 +0800636 };
637 // clang-format on
638 constexpr size_t count = sizeof(hooks) / sizeof(hooks[0]);
639 auto hook = std::lower_bound(
640 hooks, hooks + count, pName,
641 [](const Hook& h, const char* n) { return strcmp(h.name, n) < 0; });
642 if (hook < hooks + count && strcmp(hook->name, pName) == 0) {
Chia-I Wu5beb2ac2016-05-04 16:37:23 +0800643 if (!hook->proc) {
644 vulkan::driver::Logger(instance).Err(
645 instance, "invalid vkGetInstanceProcAddr(%p, \"%s\") call",
646 instance, pName);
647 }
Chia-I Wu0c203242016-03-15 13:44:51 +0800648 return hook->proc;
649 }
650 // clang-format off
651
Chia-I Wu3e654dc2016-05-20 16:15:06 +0800652 return GetData(instance).dispatch.GetInstanceProcAddr(instance, pName);
653}
654
655VKAPI_ATTR void GetPhysicalDeviceProperties(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties) {
656 GetData(physicalDevice).dispatch.GetPhysicalDeviceProperties(physicalDevice, pProperties);
657}
658
659VKAPI_ATTR void GetPhysicalDeviceQueueFamilyProperties(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties) {
660 GetData(physicalDevice).dispatch.GetPhysicalDeviceQueueFamilyProperties(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties);
661}
662
663VKAPI_ATTR void GetPhysicalDeviceMemoryProperties(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties) {
664 GetData(physicalDevice).dispatch.GetPhysicalDeviceMemoryProperties(physicalDevice, pMemoryProperties);
665}
666
667VKAPI_ATTR void GetPhysicalDeviceFeatures(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures) {
668 GetData(physicalDevice).dispatch.GetPhysicalDeviceFeatures(physicalDevice, pFeatures);
669}
670
671VKAPI_ATTR void GetPhysicalDeviceFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties) {
672 GetData(physicalDevice).dispatch.GetPhysicalDeviceFormatProperties(physicalDevice, format, pFormatProperties);
673}
674
675VKAPI_ATTR VkResult GetPhysicalDeviceImageFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties) {
676 return GetData(physicalDevice).dispatch.GetPhysicalDeviceImageFormatProperties(physicalDevice, format, type, tiling, usage, flags, pImageFormatProperties);
677}
678
679VKAPI_ATTR void GetDeviceQueue(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue) {
680 GetData(device).dispatch.GetDeviceQueue(device, queueFamilyIndex, queueIndex, pQueue);
681}
682
683VKAPI_ATTR VkResult QueueSubmit(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence) {
684 return GetData(queue).dispatch.QueueSubmit(queue, submitCount, pSubmits, fence);
685}
686
687VKAPI_ATTR VkResult QueueWaitIdle(VkQueue queue) {
688 return GetData(queue).dispatch.QueueWaitIdle(queue);
689}
690
691VKAPI_ATTR VkResult DeviceWaitIdle(VkDevice device) {
692 return GetData(device).dispatch.DeviceWaitIdle(device);
693}
694
695VKAPI_ATTR VkResult AllocateMemory(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory) {
696 return GetData(device).dispatch.AllocateMemory(device, pAllocateInfo, pAllocator, pMemory);
697}
698
699VKAPI_ATTR void FreeMemory(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator) {
700 GetData(device).dispatch.FreeMemory(device, memory, pAllocator);
701}
702
703VKAPI_ATTR VkResult MapMemory(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData) {
704 return GetData(device).dispatch.MapMemory(device, memory, offset, size, flags, ppData);
705}
706
707VKAPI_ATTR void UnmapMemory(VkDevice device, VkDeviceMemory memory) {
708 GetData(device).dispatch.UnmapMemory(device, memory);
709}
710
711VKAPI_ATTR VkResult FlushMappedMemoryRanges(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges) {
712 return GetData(device).dispatch.FlushMappedMemoryRanges(device, memoryRangeCount, pMemoryRanges);
713}
714
715VKAPI_ATTR VkResult InvalidateMappedMemoryRanges(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges) {
716 return GetData(device).dispatch.InvalidateMappedMemoryRanges(device, memoryRangeCount, pMemoryRanges);
717}
718
719VKAPI_ATTR void GetDeviceMemoryCommitment(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes) {
720 GetData(device).dispatch.GetDeviceMemoryCommitment(device, memory, pCommittedMemoryInBytes);
721}
722
723VKAPI_ATTR void GetBufferMemoryRequirements(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements) {
724 GetData(device).dispatch.GetBufferMemoryRequirements(device, buffer, pMemoryRequirements);
725}
726
727VKAPI_ATTR VkResult BindBufferMemory(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset) {
728 return GetData(device).dispatch.BindBufferMemory(device, buffer, memory, memoryOffset);
729}
730
731VKAPI_ATTR void GetImageMemoryRequirements(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements) {
732 GetData(device).dispatch.GetImageMemoryRequirements(device, image, pMemoryRequirements);
733}
734
735VKAPI_ATTR VkResult BindImageMemory(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset) {
736 return GetData(device).dispatch.BindImageMemory(device, image, memory, memoryOffset);
737}
738
739VKAPI_ATTR void GetImageSparseMemoryRequirements(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements) {
740 GetData(device).dispatch.GetImageSparseMemoryRequirements(device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
741}
742
743VKAPI_ATTR void GetPhysicalDeviceSparseImageFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties) {
744 GetData(physicalDevice).dispatch.GetPhysicalDeviceSparseImageFormatProperties(physicalDevice, format, type, samples, usage, tiling, pPropertyCount, pProperties);
745}
746
747VKAPI_ATTR VkResult QueueBindSparse(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence) {
748 return GetData(queue).dispatch.QueueBindSparse(queue, bindInfoCount, pBindInfo, fence);
749}
750
751VKAPI_ATTR VkResult CreateFence(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence) {
752 return GetData(device).dispatch.CreateFence(device, pCreateInfo, pAllocator, pFence);
753}
754
755VKAPI_ATTR void DestroyFence(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator) {
756 GetData(device).dispatch.DestroyFence(device, fence, pAllocator);
757}
758
759VKAPI_ATTR VkResult ResetFences(VkDevice device, uint32_t fenceCount, const VkFence* pFences) {
760 return GetData(device).dispatch.ResetFences(device, fenceCount, pFences);
761}
762
763VKAPI_ATTR VkResult GetFenceStatus(VkDevice device, VkFence fence) {
764 return GetData(device).dispatch.GetFenceStatus(device, fence);
765}
766
767VKAPI_ATTR VkResult WaitForFences(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout) {
768 return GetData(device).dispatch.WaitForFences(device, fenceCount, pFences, waitAll, timeout);
769}
770
771VKAPI_ATTR VkResult CreateSemaphore(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore) {
772 return GetData(device).dispatch.CreateSemaphore(device, pCreateInfo, pAllocator, pSemaphore);
773}
774
775VKAPI_ATTR void DestroySemaphore(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator) {
776 GetData(device).dispatch.DestroySemaphore(device, semaphore, pAllocator);
777}
778
779VKAPI_ATTR VkResult CreateEvent(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent) {
780 return GetData(device).dispatch.CreateEvent(device, pCreateInfo, pAllocator, pEvent);
781}
782
783VKAPI_ATTR void DestroyEvent(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator) {
784 GetData(device).dispatch.DestroyEvent(device, event, pAllocator);
785}
786
787VKAPI_ATTR VkResult GetEventStatus(VkDevice device, VkEvent event) {
788 return GetData(device).dispatch.GetEventStatus(device, event);
789}
790
791VKAPI_ATTR VkResult SetEvent(VkDevice device, VkEvent event) {
792 return GetData(device).dispatch.SetEvent(device, event);
793}
794
795VKAPI_ATTR VkResult ResetEvent(VkDevice device, VkEvent event) {
796 return GetData(device).dispatch.ResetEvent(device, event);
797}
798
799VKAPI_ATTR VkResult CreateQueryPool(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool) {
800 return GetData(device).dispatch.CreateQueryPool(device, pCreateInfo, pAllocator, pQueryPool);
801}
802
803VKAPI_ATTR void DestroyQueryPool(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator) {
804 GetData(device).dispatch.DestroyQueryPool(device, queryPool, pAllocator);
805}
806
807VKAPI_ATTR VkResult GetQueryPoolResults(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags) {
808 return GetData(device).dispatch.GetQueryPoolResults(device, queryPool, firstQuery, queryCount, dataSize, pData, stride, flags);
809}
810
811VKAPI_ATTR VkResult CreateBuffer(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer) {
812 return GetData(device).dispatch.CreateBuffer(device, pCreateInfo, pAllocator, pBuffer);
813}
814
815VKAPI_ATTR void DestroyBuffer(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator) {
816 GetData(device).dispatch.DestroyBuffer(device, buffer, pAllocator);
817}
818
819VKAPI_ATTR VkResult CreateBufferView(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView) {
820 return GetData(device).dispatch.CreateBufferView(device, pCreateInfo, pAllocator, pView);
821}
822
823VKAPI_ATTR void DestroyBufferView(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator) {
824 GetData(device).dispatch.DestroyBufferView(device, bufferView, pAllocator);
825}
826
827VKAPI_ATTR VkResult CreateImage(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage) {
828 return GetData(device).dispatch.CreateImage(device, pCreateInfo, pAllocator, pImage);
829}
830
831VKAPI_ATTR void DestroyImage(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator) {
832 GetData(device).dispatch.DestroyImage(device, image, pAllocator);
833}
834
835VKAPI_ATTR void GetImageSubresourceLayout(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout) {
836 GetData(device).dispatch.GetImageSubresourceLayout(device, image, pSubresource, pLayout);
837}
838
839VKAPI_ATTR VkResult CreateImageView(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView) {
840 return GetData(device).dispatch.CreateImageView(device, pCreateInfo, pAllocator, pView);
841}
842
843VKAPI_ATTR void DestroyImageView(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator) {
844 GetData(device).dispatch.DestroyImageView(device, imageView, pAllocator);
845}
846
847VKAPI_ATTR VkResult CreateShaderModule(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule) {
848 return GetData(device).dispatch.CreateShaderModule(device, pCreateInfo, pAllocator, pShaderModule);
849}
850
851VKAPI_ATTR void DestroyShaderModule(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator) {
852 GetData(device).dispatch.DestroyShaderModule(device, shaderModule, pAllocator);
853}
854
855VKAPI_ATTR VkResult CreatePipelineCache(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache) {
856 return GetData(device).dispatch.CreatePipelineCache(device, pCreateInfo, pAllocator, pPipelineCache);
857}
858
859VKAPI_ATTR void DestroyPipelineCache(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator) {
860 GetData(device).dispatch.DestroyPipelineCache(device, pipelineCache, pAllocator);
861}
862
863VKAPI_ATTR VkResult GetPipelineCacheData(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData) {
864 return GetData(device).dispatch.GetPipelineCacheData(device, pipelineCache, pDataSize, pData);
865}
866
867VKAPI_ATTR VkResult MergePipelineCaches(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches) {
868 return GetData(device).dispatch.MergePipelineCaches(device, dstCache, srcCacheCount, pSrcCaches);
869}
870
871VKAPI_ATTR VkResult CreateGraphicsPipelines(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) {
872 return GetData(device).dispatch.CreateGraphicsPipelines(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
873}
874
875VKAPI_ATTR VkResult CreateComputePipelines(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) {
876 return GetData(device).dispatch.CreateComputePipelines(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
877}
878
879VKAPI_ATTR void DestroyPipeline(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator) {
880 GetData(device).dispatch.DestroyPipeline(device, pipeline, pAllocator);
881}
882
883VKAPI_ATTR VkResult CreatePipelineLayout(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout) {
884 return GetData(device).dispatch.CreatePipelineLayout(device, pCreateInfo, pAllocator, pPipelineLayout);
885}
886
887VKAPI_ATTR void DestroyPipelineLayout(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator) {
888 GetData(device).dispatch.DestroyPipelineLayout(device, pipelineLayout, pAllocator);
889}
890
891VKAPI_ATTR VkResult CreateSampler(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler) {
892 return GetData(device).dispatch.CreateSampler(device, pCreateInfo, pAllocator, pSampler);
893}
894
895VKAPI_ATTR void DestroySampler(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator) {
896 GetData(device).dispatch.DestroySampler(device, sampler, pAllocator);
897}
898
899VKAPI_ATTR VkResult CreateDescriptorSetLayout(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout) {
900 return GetData(device).dispatch.CreateDescriptorSetLayout(device, pCreateInfo, pAllocator, pSetLayout);
901}
902
903VKAPI_ATTR void DestroyDescriptorSetLayout(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator) {
904 GetData(device).dispatch.DestroyDescriptorSetLayout(device, descriptorSetLayout, pAllocator);
905}
906
907VKAPI_ATTR VkResult CreateDescriptorPool(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool) {
908 return GetData(device).dispatch.CreateDescriptorPool(device, pCreateInfo, pAllocator, pDescriptorPool);
909}
910
911VKAPI_ATTR void DestroyDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator) {
912 GetData(device).dispatch.DestroyDescriptorPool(device, descriptorPool, pAllocator);
913}
914
915VKAPI_ATTR VkResult ResetDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags) {
916 return GetData(device).dispatch.ResetDescriptorPool(device, descriptorPool, flags);
917}
918
919VKAPI_ATTR VkResult AllocateDescriptorSets(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets) {
920 return GetData(device).dispatch.AllocateDescriptorSets(device, pAllocateInfo, pDescriptorSets);
921}
922
923VKAPI_ATTR VkResult FreeDescriptorSets(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets) {
924 return GetData(device).dispatch.FreeDescriptorSets(device, descriptorPool, descriptorSetCount, pDescriptorSets);
925}
926
927VKAPI_ATTR void UpdateDescriptorSets(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies) {
928 GetData(device).dispatch.UpdateDescriptorSets(device, descriptorWriteCount, pDescriptorWrites, descriptorCopyCount, pDescriptorCopies);
929}
930
931VKAPI_ATTR VkResult CreateFramebuffer(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer) {
932 return GetData(device).dispatch.CreateFramebuffer(device, pCreateInfo, pAllocator, pFramebuffer);
933}
934
935VKAPI_ATTR void DestroyFramebuffer(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator) {
936 GetData(device).dispatch.DestroyFramebuffer(device, framebuffer, pAllocator);
937}
938
939VKAPI_ATTR VkResult CreateRenderPass(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass) {
940 return GetData(device).dispatch.CreateRenderPass(device, pCreateInfo, pAllocator, pRenderPass);
941}
942
943VKAPI_ATTR void DestroyRenderPass(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator) {
944 GetData(device).dispatch.DestroyRenderPass(device, renderPass, pAllocator);
945}
946
947VKAPI_ATTR void GetRenderAreaGranularity(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity) {
948 GetData(device).dispatch.GetRenderAreaGranularity(device, renderPass, pGranularity);
949}
950
951VKAPI_ATTR VkResult CreateCommandPool(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool) {
952 return GetData(device).dispatch.CreateCommandPool(device, pCreateInfo, pAllocator, pCommandPool);
953}
954
955VKAPI_ATTR void DestroyCommandPool(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator) {
956 GetData(device).dispatch.DestroyCommandPool(device, commandPool, pAllocator);
957}
958
959VKAPI_ATTR VkResult ResetCommandPool(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags) {
960 return GetData(device).dispatch.ResetCommandPool(device, commandPool, flags);
961}
962
963VKAPI_ATTR VkResult AllocateCommandBuffers(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers) {
964 return GetData(device).dispatch.AllocateCommandBuffers(device, pAllocateInfo, pCommandBuffers);
965}
966
967VKAPI_ATTR void FreeCommandBuffers(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers) {
968 GetData(device).dispatch.FreeCommandBuffers(device, commandPool, commandBufferCount, pCommandBuffers);
969}
970
971VKAPI_ATTR VkResult BeginCommandBuffer(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo) {
972 return GetData(commandBuffer).dispatch.BeginCommandBuffer(commandBuffer, pBeginInfo);
973}
974
975VKAPI_ATTR VkResult EndCommandBuffer(VkCommandBuffer commandBuffer) {
976 return GetData(commandBuffer).dispatch.EndCommandBuffer(commandBuffer);
977}
978
979VKAPI_ATTR VkResult ResetCommandBuffer(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags) {
980 return GetData(commandBuffer).dispatch.ResetCommandBuffer(commandBuffer, flags);
981}
982
983VKAPI_ATTR void CmdBindPipeline(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline) {
984 GetData(commandBuffer).dispatch.CmdBindPipeline(commandBuffer, pipelineBindPoint, pipeline);
985}
986
987VKAPI_ATTR void CmdSetViewport(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports) {
988 GetData(commandBuffer).dispatch.CmdSetViewport(commandBuffer, firstViewport, viewportCount, pViewports);
989}
990
991VKAPI_ATTR void CmdSetScissor(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors) {
992 GetData(commandBuffer).dispatch.CmdSetScissor(commandBuffer, firstScissor, scissorCount, pScissors);
993}
994
995VKAPI_ATTR void CmdSetLineWidth(VkCommandBuffer commandBuffer, float lineWidth) {
996 GetData(commandBuffer).dispatch.CmdSetLineWidth(commandBuffer, lineWidth);
997}
998
999VKAPI_ATTR void CmdSetDepthBias(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor) {
1000 GetData(commandBuffer).dispatch.CmdSetDepthBias(commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor);
1001}
1002
1003VKAPI_ATTR void CmdSetBlendConstants(VkCommandBuffer commandBuffer, const float blendConstants[4]) {
1004 GetData(commandBuffer).dispatch.CmdSetBlendConstants(commandBuffer, blendConstants);
1005}
1006
1007VKAPI_ATTR void CmdSetDepthBounds(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds) {
1008 GetData(commandBuffer).dispatch.CmdSetDepthBounds(commandBuffer, minDepthBounds, maxDepthBounds);
1009}
1010
1011VKAPI_ATTR void CmdSetStencilCompareMask(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask) {
1012 GetData(commandBuffer).dispatch.CmdSetStencilCompareMask(commandBuffer, faceMask, compareMask);
1013}
1014
1015VKAPI_ATTR void CmdSetStencilWriteMask(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask) {
1016 GetData(commandBuffer).dispatch.CmdSetStencilWriteMask(commandBuffer, faceMask, writeMask);
1017}
1018
1019VKAPI_ATTR void CmdSetStencilReference(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference) {
1020 GetData(commandBuffer).dispatch.CmdSetStencilReference(commandBuffer, faceMask, reference);
1021}
1022
1023VKAPI_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) {
1024 GetData(commandBuffer).dispatch.CmdBindDescriptorSets(commandBuffer, pipelineBindPoint, layout, firstSet, descriptorSetCount, pDescriptorSets, dynamicOffsetCount, pDynamicOffsets);
1025}
1026
1027VKAPI_ATTR void CmdBindIndexBuffer(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType) {
1028 GetData(commandBuffer).dispatch.CmdBindIndexBuffer(commandBuffer, buffer, offset, indexType);
1029}
1030
1031VKAPI_ATTR void CmdBindVertexBuffers(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets) {
1032 GetData(commandBuffer).dispatch.CmdBindVertexBuffers(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets);
1033}
1034
1035VKAPI_ATTR void CmdDraw(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance) {
1036 GetData(commandBuffer).dispatch.CmdDraw(commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance);
1037}
1038
1039VKAPI_ATTR void CmdDrawIndexed(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance) {
1040 GetData(commandBuffer).dispatch.CmdDrawIndexed(commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance);
1041}
1042
1043VKAPI_ATTR void CmdDrawIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride) {
1044 GetData(commandBuffer).dispatch.CmdDrawIndirect(commandBuffer, buffer, offset, drawCount, stride);
1045}
1046
1047VKAPI_ATTR void CmdDrawIndexedIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride) {
1048 GetData(commandBuffer).dispatch.CmdDrawIndexedIndirect(commandBuffer, buffer, offset, drawCount, stride);
1049}
1050
1051VKAPI_ATTR void CmdDispatch(VkCommandBuffer commandBuffer, uint32_t x, uint32_t y, uint32_t z) {
1052 GetData(commandBuffer).dispatch.CmdDispatch(commandBuffer, x, y, z);
1053}
1054
1055VKAPI_ATTR void CmdDispatchIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset) {
1056 GetData(commandBuffer).dispatch.CmdDispatchIndirect(commandBuffer, buffer, offset);
1057}
1058
1059VKAPI_ATTR void CmdCopyBuffer(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions) {
1060 GetData(commandBuffer).dispatch.CmdCopyBuffer(commandBuffer, srcBuffer, dstBuffer, regionCount, pRegions);
1061}
1062
1063VKAPI_ATTR void CmdCopyImage(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions) {
1064 GetData(commandBuffer).dispatch.CmdCopyImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions);
1065}
1066
1067VKAPI_ATTR void CmdBlitImage(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter) {
1068 GetData(commandBuffer).dispatch.CmdBlitImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter);
1069}
1070
1071VKAPI_ATTR void CmdCopyBufferToImage(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions) {
1072 GetData(commandBuffer).dispatch.CmdCopyBufferToImage(commandBuffer, srcBuffer, dstImage, dstImageLayout, regionCount, pRegions);
1073}
1074
1075VKAPI_ATTR void CmdCopyImageToBuffer(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions) {
1076 GetData(commandBuffer).dispatch.CmdCopyImageToBuffer(commandBuffer, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions);
1077}
1078
1079VKAPI_ATTR void CmdUpdateBuffer(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const uint32_t* pData) {
1080 GetData(commandBuffer).dispatch.CmdUpdateBuffer(commandBuffer, dstBuffer, dstOffset, dataSize, pData);
1081}
1082
1083VKAPI_ATTR void CmdFillBuffer(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data) {
1084 GetData(commandBuffer).dispatch.CmdFillBuffer(commandBuffer, dstBuffer, dstOffset, size, data);
1085}
1086
1087VKAPI_ATTR void CmdClearColorImage(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges) {
1088 GetData(commandBuffer).dispatch.CmdClearColorImage(commandBuffer, image, imageLayout, pColor, rangeCount, pRanges);
1089}
1090
1091VKAPI_ATTR void CmdClearDepthStencilImage(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges) {
1092 GetData(commandBuffer).dispatch.CmdClearDepthStencilImage(commandBuffer, image, imageLayout, pDepthStencil, rangeCount, pRanges);
1093}
1094
1095VKAPI_ATTR void CmdClearAttachments(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects) {
1096 GetData(commandBuffer).dispatch.CmdClearAttachments(commandBuffer, attachmentCount, pAttachments, rectCount, pRects);
1097}
1098
1099VKAPI_ATTR void CmdResolveImage(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions) {
1100 GetData(commandBuffer).dispatch.CmdResolveImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions);
1101}
1102
1103VKAPI_ATTR void CmdSetEvent(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask) {
1104 GetData(commandBuffer).dispatch.CmdSetEvent(commandBuffer, event, stageMask);
1105}
1106
1107VKAPI_ATTR void CmdResetEvent(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask) {
1108 GetData(commandBuffer).dispatch.CmdResetEvent(commandBuffer, event, stageMask);
1109}
1110
1111VKAPI_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) {
1112 GetData(commandBuffer).dispatch.CmdWaitEvents(commandBuffer, eventCount, pEvents, srcStageMask, dstStageMask, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers);
1113}
1114
1115VKAPI_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) {
1116 GetData(commandBuffer).dispatch.CmdPipelineBarrier(commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers);
1117}
1118
1119VKAPI_ATTR void CmdBeginQuery(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags) {
1120 GetData(commandBuffer).dispatch.CmdBeginQuery(commandBuffer, queryPool, query, flags);
1121}
1122
1123VKAPI_ATTR void CmdEndQuery(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query) {
1124 GetData(commandBuffer).dispatch.CmdEndQuery(commandBuffer, queryPool, query);
1125}
1126
1127VKAPI_ATTR void CmdResetQueryPool(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount) {
1128 GetData(commandBuffer).dispatch.CmdResetQueryPool(commandBuffer, queryPool, firstQuery, queryCount);
1129}
1130
1131VKAPI_ATTR void CmdWriteTimestamp(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query) {
1132 GetData(commandBuffer).dispatch.CmdWriteTimestamp(commandBuffer, pipelineStage, queryPool, query);
1133}
1134
1135VKAPI_ATTR void CmdCopyQueryPoolResults(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags) {
1136 GetData(commandBuffer).dispatch.CmdCopyQueryPoolResults(commandBuffer, queryPool, firstQuery, queryCount, dstBuffer, dstOffset, stride, flags);
1137}
1138
1139VKAPI_ATTR void CmdPushConstants(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues) {
1140 GetData(commandBuffer).dispatch.CmdPushConstants(commandBuffer, layout, stageFlags, offset, size, pValues);
1141}
1142
1143VKAPI_ATTR void CmdBeginRenderPass(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents) {
1144 GetData(commandBuffer).dispatch.CmdBeginRenderPass(commandBuffer, pRenderPassBegin, contents);
1145}
1146
1147VKAPI_ATTR void CmdNextSubpass(VkCommandBuffer commandBuffer, VkSubpassContents contents) {
1148 GetData(commandBuffer).dispatch.CmdNextSubpass(commandBuffer, contents);
1149}
1150
1151VKAPI_ATTR void CmdEndRenderPass(VkCommandBuffer commandBuffer) {
1152 GetData(commandBuffer).dispatch.CmdEndRenderPass(commandBuffer);
1153}
1154
1155VKAPI_ATTR void CmdExecuteCommands(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers) {
1156 GetData(commandBuffer).dispatch.CmdExecuteCommands(commandBuffer, commandBufferCount, pCommandBuffers);
1157}
1158
1159VKAPI_ATTR void DestroySurfaceKHR(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator) {
1160 GetData(instance).dispatch.DestroySurfaceKHR(instance, surface, pAllocator);
1161}
1162
1163VKAPI_ATTR VkResult GetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported) {
1164 return GetData(physicalDevice).dispatch.GetPhysicalDeviceSurfaceSupportKHR(physicalDevice, queueFamilyIndex, surface, pSupported);
1165}
1166
1167VKAPI_ATTR VkResult GetPhysicalDeviceSurfaceCapabilitiesKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities) {
1168 return GetData(physicalDevice).dispatch.GetPhysicalDeviceSurfaceCapabilitiesKHR(physicalDevice, surface, pSurfaceCapabilities);
1169}
1170
1171VKAPI_ATTR VkResult GetPhysicalDeviceSurfaceFormatsKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats) {
1172 return GetData(physicalDevice).dispatch.GetPhysicalDeviceSurfaceFormatsKHR(physicalDevice, surface, pSurfaceFormatCount, pSurfaceFormats);
1173}
1174
1175VKAPI_ATTR VkResult GetPhysicalDeviceSurfacePresentModesKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes) {
1176 return GetData(physicalDevice).dispatch.GetPhysicalDeviceSurfacePresentModesKHR(physicalDevice, surface, pPresentModeCount, pPresentModes);
1177}
1178
1179VKAPI_ATTR VkResult CreateSwapchainKHR(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain) {
1180 return GetData(device).dispatch.CreateSwapchainKHR(device, pCreateInfo, pAllocator, pSwapchain);
1181}
1182
1183VKAPI_ATTR void DestroySwapchainKHR(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator) {
1184 GetData(device).dispatch.DestroySwapchainKHR(device, swapchain, pAllocator);
1185}
1186
1187VKAPI_ATTR VkResult GetSwapchainImagesKHR(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages) {
1188 return GetData(device).dispatch.GetSwapchainImagesKHR(device, swapchain, pSwapchainImageCount, pSwapchainImages);
1189}
1190
1191VKAPI_ATTR VkResult AcquireNextImageKHR(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex) {
1192 return GetData(device).dispatch.AcquireNextImageKHR(device, swapchain, timeout, semaphore, fence, pImageIndex);
1193}
1194
1195VKAPI_ATTR VkResult QueuePresentKHR(VkQueue queue, const VkPresentInfoKHR* pPresentInfo) {
1196 return GetData(queue).dispatch.QueuePresentKHR(queue, pPresentInfo);
1197}
1198
1199VKAPI_ATTR VkResult CreateAndroidSurfaceKHR(VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) {
1200 return GetData(instance).dispatch.CreateAndroidSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
1201}
1202
1203
1204} // anonymous namespace
1205
1206// clang-format on
1207
1208} // namespace api
1209} // namespace vulkan
1210
1211// clang-format off
1212
1213__attribute__((visibility("default")))
1214VKAPI_ATTR VkResult vkCreateInstance(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance) {
1215 return vulkan::api::CreateInstance(pCreateInfo, pAllocator, pInstance);
1216}
1217
1218__attribute__((visibility("default")))
1219VKAPI_ATTR void vkDestroyInstance(VkInstance instance, const VkAllocationCallbacks* pAllocator) {
1220 vulkan::api::DestroyInstance(instance, pAllocator);
1221}
1222
1223__attribute__((visibility("default")))
1224VKAPI_ATTR VkResult vkEnumeratePhysicalDevices(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices) {
1225 return vulkan::api::EnumeratePhysicalDevices(instance, pPhysicalDeviceCount, pPhysicalDevices);
1226}
1227
1228__attribute__((visibility("default")))
1229VKAPI_ATTR PFN_vkVoidFunction vkGetDeviceProcAddr(VkDevice device, const char* pName) {
1230 return vulkan::api::GetDeviceProcAddr(device, pName);
1231}
1232
1233__attribute__((visibility("default")))
1234VKAPI_ATTR PFN_vkVoidFunction vkGetInstanceProcAddr(VkInstance instance, const char* pName) {
1235 return vulkan::api::GetInstanceProcAddr(instance, pName);
Chia-I Wu0c203242016-03-15 13:44:51 +08001236}
1237
1238__attribute__((visibility("default")))
1239VKAPI_ATTR void vkGetPhysicalDeviceProperties(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001240 vulkan::api::GetPhysicalDeviceProperties(physicalDevice, pProperties);
Chia-I Wu0c203242016-03-15 13:44:51 +08001241}
1242
1243__attribute__((visibility("default")))
1244VKAPI_ATTR void vkGetPhysicalDeviceQueueFamilyProperties(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001245 vulkan::api::GetPhysicalDeviceQueueFamilyProperties(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties);
Chia-I Wu0c203242016-03-15 13:44:51 +08001246}
1247
1248__attribute__((visibility("default")))
1249VKAPI_ATTR void vkGetPhysicalDeviceMemoryProperties(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001250 vulkan::api::GetPhysicalDeviceMemoryProperties(physicalDevice, pMemoryProperties);
Chia-I Wu0c203242016-03-15 13:44:51 +08001251}
1252
1253__attribute__((visibility("default")))
1254VKAPI_ATTR void vkGetPhysicalDeviceFeatures(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001255 vulkan::api::GetPhysicalDeviceFeatures(physicalDevice, pFeatures);
Chia-I Wu0c203242016-03-15 13:44:51 +08001256}
1257
1258__attribute__((visibility("default")))
1259VKAPI_ATTR void vkGetPhysicalDeviceFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001260 vulkan::api::GetPhysicalDeviceFormatProperties(physicalDevice, format, pFormatProperties);
Chia-I Wu0c203242016-03-15 13:44:51 +08001261}
1262
1263__attribute__((visibility("default")))
1264VKAPI_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 +08001265 return vulkan::api::GetPhysicalDeviceImageFormatProperties(physicalDevice, format, type, tiling, usage, flags, pImageFormatProperties);
Chia-I Wu0c203242016-03-15 13:44:51 +08001266}
1267
1268__attribute__((visibility("default")))
1269VKAPI_ATTR VkResult vkCreateDevice(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice) {
Chia-I Wu0c203242016-03-15 13:44:51 +08001270 return vulkan::api::CreateDevice(physicalDevice, pCreateInfo, pAllocator, pDevice);
1271}
1272
1273__attribute__((visibility("default")))
1274VKAPI_ATTR void vkDestroyDevice(VkDevice device, const VkAllocationCallbacks* pAllocator) {
Chia-I Wu0c203242016-03-15 13:44:51 +08001275 vulkan::api::DestroyDevice(device, pAllocator);
1276}
1277
1278__attribute__((visibility("default")))
1279VKAPI_ATTR VkResult vkEnumerateInstanceLayerProperties(uint32_t* pPropertyCount, VkLayerProperties* pProperties) {
Chia-I Wu0c203242016-03-15 13:44:51 +08001280 return vulkan::api::EnumerateInstanceLayerProperties(pPropertyCount, pProperties);
1281}
1282
1283__attribute__((visibility("default")))
1284VKAPI_ATTR VkResult vkEnumerateInstanceExtensionProperties(const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties) {
Chia-I Wu0c203242016-03-15 13:44:51 +08001285 return vulkan::api::EnumerateInstanceExtensionProperties(pLayerName, pPropertyCount, pProperties);
1286}
1287
1288__attribute__((visibility("default")))
1289VKAPI_ATTR VkResult vkEnumerateDeviceLayerProperties(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties) {
Chia-I Wu0c203242016-03-15 13:44:51 +08001290 return vulkan::api::EnumerateDeviceLayerProperties(physicalDevice, pPropertyCount, pProperties);
1291}
1292
1293__attribute__((visibility("default")))
1294VKAPI_ATTR VkResult vkEnumerateDeviceExtensionProperties(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties) {
Chia-I Wu0c203242016-03-15 13:44:51 +08001295 return vulkan::api::EnumerateDeviceExtensionProperties(physicalDevice, pLayerName, pPropertyCount, pProperties);
1296}
1297
1298__attribute__((visibility("default")))
1299VKAPI_ATTR void vkGetDeviceQueue(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001300 vulkan::api::GetDeviceQueue(device, queueFamilyIndex, queueIndex, pQueue);
Chia-I Wu0c203242016-03-15 13:44:51 +08001301}
1302
1303__attribute__((visibility("default")))
1304VKAPI_ATTR VkResult vkQueueSubmit(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001305 return vulkan::api::QueueSubmit(queue, submitCount, pSubmits, fence);
Chia-I Wu0c203242016-03-15 13:44:51 +08001306}
1307
1308__attribute__((visibility("default")))
1309VKAPI_ATTR VkResult vkQueueWaitIdle(VkQueue queue) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001310 return vulkan::api::QueueWaitIdle(queue);
Chia-I Wu0c203242016-03-15 13:44:51 +08001311}
1312
1313__attribute__((visibility("default")))
1314VKAPI_ATTR VkResult vkDeviceWaitIdle(VkDevice device) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001315 return vulkan::api::DeviceWaitIdle(device);
Chia-I Wu0c203242016-03-15 13:44:51 +08001316}
1317
1318__attribute__((visibility("default")))
1319VKAPI_ATTR VkResult vkAllocateMemory(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001320 return vulkan::api::AllocateMemory(device, pAllocateInfo, pAllocator, pMemory);
Chia-I Wu0c203242016-03-15 13:44:51 +08001321}
1322
1323__attribute__((visibility("default")))
1324VKAPI_ATTR void vkFreeMemory(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001325 vulkan::api::FreeMemory(device, memory, pAllocator);
Chia-I Wu0c203242016-03-15 13:44:51 +08001326}
1327
1328__attribute__((visibility("default")))
1329VKAPI_ATTR VkResult vkMapMemory(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001330 return vulkan::api::MapMemory(device, memory, offset, size, flags, ppData);
Chia-I Wu0c203242016-03-15 13:44:51 +08001331}
1332
1333__attribute__((visibility("default")))
1334VKAPI_ATTR void vkUnmapMemory(VkDevice device, VkDeviceMemory memory) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001335 vulkan::api::UnmapMemory(device, memory);
Chia-I Wu0c203242016-03-15 13:44:51 +08001336}
1337
1338__attribute__((visibility("default")))
1339VKAPI_ATTR VkResult vkFlushMappedMemoryRanges(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001340 return vulkan::api::FlushMappedMemoryRanges(device, memoryRangeCount, pMemoryRanges);
Chia-I Wu0c203242016-03-15 13:44:51 +08001341}
1342
1343__attribute__((visibility("default")))
1344VKAPI_ATTR VkResult vkInvalidateMappedMemoryRanges(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001345 return vulkan::api::InvalidateMappedMemoryRanges(device, memoryRangeCount, pMemoryRanges);
Chia-I Wu0c203242016-03-15 13:44:51 +08001346}
1347
1348__attribute__((visibility("default")))
1349VKAPI_ATTR void vkGetDeviceMemoryCommitment(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001350 vulkan::api::GetDeviceMemoryCommitment(device, memory, pCommittedMemoryInBytes);
Chia-I Wu0c203242016-03-15 13:44:51 +08001351}
1352
1353__attribute__((visibility("default")))
1354VKAPI_ATTR void vkGetBufferMemoryRequirements(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001355 vulkan::api::GetBufferMemoryRequirements(device, buffer, pMemoryRequirements);
Chia-I Wu0c203242016-03-15 13:44:51 +08001356}
1357
1358__attribute__((visibility("default")))
1359VKAPI_ATTR VkResult vkBindBufferMemory(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001360 return vulkan::api::BindBufferMemory(device, buffer, memory, memoryOffset);
Chia-I Wu0c203242016-03-15 13:44:51 +08001361}
1362
1363__attribute__((visibility("default")))
1364VKAPI_ATTR void vkGetImageMemoryRequirements(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001365 vulkan::api::GetImageMemoryRequirements(device, image, pMemoryRequirements);
Chia-I Wu0c203242016-03-15 13:44:51 +08001366}
1367
1368__attribute__((visibility("default")))
1369VKAPI_ATTR VkResult vkBindImageMemory(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001370 return vulkan::api::BindImageMemory(device, image, memory, memoryOffset);
Chia-I Wu0c203242016-03-15 13:44:51 +08001371}
1372
1373__attribute__((visibility("default")))
1374VKAPI_ATTR void vkGetImageSparseMemoryRequirements(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001375 vulkan::api::GetImageSparseMemoryRequirements(device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
Chia-I Wu0c203242016-03-15 13:44:51 +08001376}
1377
1378__attribute__((visibility("default")))
1379VKAPI_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 +08001380 vulkan::api::GetPhysicalDeviceSparseImageFormatProperties(physicalDevice, format, type, samples, usage, tiling, pPropertyCount, pProperties);
Chia-I Wu0c203242016-03-15 13:44:51 +08001381}
1382
1383__attribute__((visibility("default")))
1384VKAPI_ATTR VkResult vkQueueBindSparse(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001385 return vulkan::api::QueueBindSparse(queue, bindInfoCount, pBindInfo, fence);
Chia-I Wu0c203242016-03-15 13:44:51 +08001386}
1387
1388__attribute__((visibility("default")))
1389VKAPI_ATTR VkResult vkCreateFence(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001390 return vulkan::api::CreateFence(device, pCreateInfo, pAllocator, pFence);
Chia-I Wu0c203242016-03-15 13:44:51 +08001391}
1392
1393__attribute__((visibility("default")))
1394VKAPI_ATTR void vkDestroyFence(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001395 vulkan::api::DestroyFence(device, fence, pAllocator);
Chia-I Wu0c203242016-03-15 13:44:51 +08001396}
1397
1398__attribute__((visibility("default")))
1399VKAPI_ATTR VkResult vkResetFences(VkDevice device, uint32_t fenceCount, const VkFence* pFences) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001400 return vulkan::api::ResetFences(device, fenceCount, pFences);
Chia-I Wu0c203242016-03-15 13:44:51 +08001401}
1402
1403__attribute__((visibility("default")))
1404VKAPI_ATTR VkResult vkGetFenceStatus(VkDevice device, VkFence fence) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001405 return vulkan::api::GetFenceStatus(device, fence);
Chia-I Wu0c203242016-03-15 13:44:51 +08001406}
1407
1408__attribute__((visibility("default")))
1409VKAPI_ATTR VkResult vkWaitForFences(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001410 return vulkan::api::WaitForFences(device, fenceCount, pFences, waitAll, timeout);
Chia-I Wu0c203242016-03-15 13:44:51 +08001411}
1412
1413__attribute__((visibility("default")))
1414VKAPI_ATTR VkResult vkCreateSemaphore(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001415 return vulkan::api::CreateSemaphore(device, pCreateInfo, pAllocator, pSemaphore);
Chia-I Wu0c203242016-03-15 13:44:51 +08001416}
1417
1418__attribute__((visibility("default")))
1419VKAPI_ATTR void vkDestroySemaphore(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001420 vulkan::api::DestroySemaphore(device, semaphore, pAllocator);
Chia-I Wu0c203242016-03-15 13:44:51 +08001421}
1422
1423__attribute__((visibility("default")))
1424VKAPI_ATTR VkResult vkCreateEvent(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001425 return vulkan::api::CreateEvent(device, pCreateInfo, pAllocator, pEvent);
Chia-I Wu0c203242016-03-15 13:44:51 +08001426}
1427
1428__attribute__((visibility("default")))
1429VKAPI_ATTR void vkDestroyEvent(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001430 vulkan::api::DestroyEvent(device, event, pAllocator);
Chia-I Wu0c203242016-03-15 13:44:51 +08001431}
1432
1433__attribute__((visibility("default")))
1434VKAPI_ATTR VkResult vkGetEventStatus(VkDevice device, VkEvent event) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001435 return vulkan::api::GetEventStatus(device, event);
Chia-I Wu0c203242016-03-15 13:44:51 +08001436}
1437
1438__attribute__((visibility("default")))
1439VKAPI_ATTR VkResult vkSetEvent(VkDevice device, VkEvent event) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001440 return vulkan::api::SetEvent(device, event);
Chia-I Wu0c203242016-03-15 13:44:51 +08001441}
1442
1443__attribute__((visibility("default")))
1444VKAPI_ATTR VkResult vkResetEvent(VkDevice device, VkEvent event) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001445 return vulkan::api::ResetEvent(device, event);
Chia-I Wu0c203242016-03-15 13:44:51 +08001446}
1447
1448__attribute__((visibility("default")))
1449VKAPI_ATTR VkResult vkCreateQueryPool(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001450 return vulkan::api::CreateQueryPool(device, pCreateInfo, pAllocator, pQueryPool);
Chia-I Wu0c203242016-03-15 13:44:51 +08001451}
1452
1453__attribute__((visibility("default")))
1454VKAPI_ATTR void vkDestroyQueryPool(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001455 vulkan::api::DestroyQueryPool(device, queryPool, pAllocator);
Chia-I Wu0c203242016-03-15 13:44:51 +08001456}
1457
1458__attribute__((visibility("default")))
1459VKAPI_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 +08001460 return vulkan::api::GetQueryPoolResults(device, queryPool, firstQuery, queryCount, dataSize, pData, stride, flags);
Chia-I Wu0c203242016-03-15 13:44:51 +08001461}
1462
1463__attribute__((visibility("default")))
1464VKAPI_ATTR VkResult vkCreateBuffer(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001465 return vulkan::api::CreateBuffer(device, pCreateInfo, pAllocator, pBuffer);
Chia-I Wu0c203242016-03-15 13:44:51 +08001466}
1467
1468__attribute__((visibility("default")))
1469VKAPI_ATTR void vkDestroyBuffer(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001470 vulkan::api::DestroyBuffer(device, buffer, pAllocator);
Chia-I Wu0c203242016-03-15 13:44:51 +08001471}
1472
1473__attribute__((visibility("default")))
1474VKAPI_ATTR VkResult vkCreateBufferView(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001475 return vulkan::api::CreateBufferView(device, pCreateInfo, pAllocator, pView);
Chia-I Wu0c203242016-03-15 13:44:51 +08001476}
1477
1478__attribute__((visibility("default")))
1479VKAPI_ATTR void vkDestroyBufferView(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001480 vulkan::api::DestroyBufferView(device, bufferView, pAllocator);
Chia-I Wu0c203242016-03-15 13:44:51 +08001481}
1482
1483__attribute__((visibility("default")))
1484VKAPI_ATTR VkResult vkCreateImage(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001485 return vulkan::api::CreateImage(device, pCreateInfo, pAllocator, pImage);
Chia-I Wu0c203242016-03-15 13:44:51 +08001486}
1487
1488__attribute__((visibility("default")))
1489VKAPI_ATTR void vkDestroyImage(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001490 vulkan::api::DestroyImage(device, image, pAllocator);
Chia-I Wu0c203242016-03-15 13:44:51 +08001491}
1492
1493__attribute__((visibility("default")))
1494VKAPI_ATTR void vkGetImageSubresourceLayout(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001495 vulkan::api::GetImageSubresourceLayout(device, image, pSubresource, pLayout);
Chia-I Wu0c203242016-03-15 13:44:51 +08001496}
1497
1498__attribute__((visibility("default")))
1499VKAPI_ATTR VkResult vkCreateImageView(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001500 return vulkan::api::CreateImageView(device, pCreateInfo, pAllocator, pView);
Chia-I Wu0c203242016-03-15 13:44:51 +08001501}
1502
1503__attribute__((visibility("default")))
1504VKAPI_ATTR void vkDestroyImageView(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001505 vulkan::api::DestroyImageView(device, imageView, pAllocator);
Chia-I Wu0c203242016-03-15 13:44:51 +08001506}
1507
1508__attribute__((visibility("default")))
1509VKAPI_ATTR VkResult vkCreateShaderModule(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001510 return vulkan::api::CreateShaderModule(device, pCreateInfo, pAllocator, pShaderModule);
Chia-I Wu0c203242016-03-15 13:44:51 +08001511}
1512
1513__attribute__((visibility("default")))
1514VKAPI_ATTR void vkDestroyShaderModule(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001515 vulkan::api::DestroyShaderModule(device, shaderModule, pAllocator);
Chia-I Wu0c203242016-03-15 13:44:51 +08001516}
1517
1518__attribute__((visibility("default")))
1519VKAPI_ATTR VkResult vkCreatePipelineCache(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001520 return vulkan::api::CreatePipelineCache(device, pCreateInfo, pAllocator, pPipelineCache);
Chia-I Wu0c203242016-03-15 13:44:51 +08001521}
1522
1523__attribute__((visibility("default")))
1524VKAPI_ATTR void vkDestroyPipelineCache(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001525 vulkan::api::DestroyPipelineCache(device, pipelineCache, pAllocator);
Chia-I Wu0c203242016-03-15 13:44:51 +08001526}
1527
1528__attribute__((visibility("default")))
1529VKAPI_ATTR VkResult vkGetPipelineCacheData(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001530 return vulkan::api::GetPipelineCacheData(device, pipelineCache, pDataSize, pData);
Chia-I Wu0c203242016-03-15 13:44:51 +08001531}
1532
1533__attribute__((visibility("default")))
1534VKAPI_ATTR VkResult vkMergePipelineCaches(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001535 return vulkan::api::MergePipelineCaches(device, dstCache, srcCacheCount, pSrcCaches);
Chia-I Wu0c203242016-03-15 13:44:51 +08001536}
1537
1538__attribute__((visibility("default")))
1539VKAPI_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 +08001540 return vulkan::api::CreateGraphicsPipelines(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
Chia-I Wu0c203242016-03-15 13:44:51 +08001541}
1542
1543__attribute__((visibility("default")))
1544VKAPI_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 +08001545 return vulkan::api::CreateComputePipelines(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
Chia-I Wu0c203242016-03-15 13:44:51 +08001546}
1547
1548__attribute__((visibility("default")))
1549VKAPI_ATTR void vkDestroyPipeline(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001550 vulkan::api::DestroyPipeline(device, pipeline, pAllocator);
Chia-I Wu0c203242016-03-15 13:44:51 +08001551}
1552
1553__attribute__((visibility("default")))
1554VKAPI_ATTR VkResult vkCreatePipelineLayout(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001555 return vulkan::api::CreatePipelineLayout(device, pCreateInfo, pAllocator, pPipelineLayout);
Chia-I Wu0c203242016-03-15 13:44:51 +08001556}
1557
1558__attribute__((visibility("default")))
1559VKAPI_ATTR void vkDestroyPipelineLayout(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001560 vulkan::api::DestroyPipelineLayout(device, pipelineLayout, pAllocator);
Chia-I Wu0c203242016-03-15 13:44:51 +08001561}
1562
1563__attribute__((visibility("default")))
1564VKAPI_ATTR VkResult vkCreateSampler(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001565 return vulkan::api::CreateSampler(device, pCreateInfo, pAllocator, pSampler);
Chia-I Wu0c203242016-03-15 13:44:51 +08001566}
1567
1568__attribute__((visibility("default")))
1569VKAPI_ATTR void vkDestroySampler(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001570 vulkan::api::DestroySampler(device, sampler, pAllocator);
Chia-I Wu0c203242016-03-15 13:44:51 +08001571}
1572
1573__attribute__((visibility("default")))
1574VKAPI_ATTR VkResult vkCreateDescriptorSetLayout(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001575 return vulkan::api::CreateDescriptorSetLayout(device, pCreateInfo, pAllocator, pSetLayout);
Chia-I Wu0c203242016-03-15 13:44:51 +08001576}
1577
1578__attribute__((visibility("default")))
1579VKAPI_ATTR void vkDestroyDescriptorSetLayout(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001580 vulkan::api::DestroyDescriptorSetLayout(device, descriptorSetLayout, pAllocator);
Chia-I Wu0c203242016-03-15 13:44:51 +08001581}
1582
1583__attribute__((visibility("default")))
1584VKAPI_ATTR VkResult vkCreateDescriptorPool(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001585 return vulkan::api::CreateDescriptorPool(device, pCreateInfo, pAllocator, pDescriptorPool);
Chia-I Wu0c203242016-03-15 13:44:51 +08001586}
1587
1588__attribute__((visibility("default")))
1589VKAPI_ATTR void vkDestroyDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001590 vulkan::api::DestroyDescriptorPool(device, descriptorPool, pAllocator);
Chia-I Wu0c203242016-03-15 13:44:51 +08001591}
1592
1593__attribute__((visibility("default")))
1594VKAPI_ATTR VkResult vkResetDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001595 return vulkan::api::ResetDescriptorPool(device, descriptorPool, flags);
Chia-I Wu0c203242016-03-15 13:44:51 +08001596}
1597
1598__attribute__((visibility("default")))
1599VKAPI_ATTR VkResult vkAllocateDescriptorSets(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001600 return vulkan::api::AllocateDescriptorSets(device, pAllocateInfo, pDescriptorSets);
Chia-I Wu0c203242016-03-15 13:44:51 +08001601}
1602
1603__attribute__((visibility("default")))
1604VKAPI_ATTR VkResult vkFreeDescriptorSets(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001605 return vulkan::api::FreeDescriptorSets(device, descriptorPool, descriptorSetCount, pDescriptorSets);
Chia-I Wu0c203242016-03-15 13:44:51 +08001606}
1607
1608__attribute__((visibility("default")))
1609VKAPI_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 +08001610 vulkan::api::UpdateDescriptorSets(device, descriptorWriteCount, pDescriptorWrites, descriptorCopyCount, pDescriptorCopies);
Chia-I Wu0c203242016-03-15 13:44:51 +08001611}
1612
1613__attribute__((visibility("default")))
1614VKAPI_ATTR VkResult vkCreateFramebuffer(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001615 return vulkan::api::CreateFramebuffer(device, pCreateInfo, pAllocator, pFramebuffer);
Chia-I Wu0c203242016-03-15 13:44:51 +08001616}
1617
1618__attribute__((visibility("default")))
1619VKAPI_ATTR void vkDestroyFramebuffer(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001620 vulkan::api::DestroyFramebuffer(device, framebuffer, pAllocator);
Chia-I Wu0c203242016-03-15 13:44:51 +08001621}
1622
1623__attribute__((visibility("default")))
1624VKAPI_ATTR VkResult vkCreateRenderPass(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001625 return vulkan::api::CreateRenderPass(device, pCreateInfo, pAllocator, pRenderPass);
Chia-I Wu0c203242016-03-15 13:44:51 +08001626}
1627
1628__attribute__((visibility("default")))
1629VKAPI_ATTR void vkDestroyRenderPass(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001630 vulkan::api::DestroyRenderPass(device, renderPass, pAllocator);
Chia-I Wu0c203242016-03-15 13:44:51 +08001631}
1632
1633__attribute__((visibility("default")))
1634VKAPI_ATTR void vkGetRenderAreaGranularity(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001635 vulkan::api::GetRenderAreaGranularity(device, renderPass, pGranularity);
Chia-I Wu0c203242016-03-15 13:44:51 +08001636}
1637
1638__attribute__((visibility("default")))
1639VKAPI_ATTR VkResult vkCreateCommandPool(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001640 return vulkan::api::CreateCommandPool(device, pCreateInfo, pAllocator, pCommandPool);
Chia-I Wu0c203242016-03-15 13:44:51 +08001641}
1642
1643__attribute__((visibility("default")))
1644VKAPI_ATTR void vkDestroyCommandPool(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001645 vulkan::api::DestroyCommandPool(device, commandPool, pAllocator);
Chia-I Wu0c203242016-03-15 13:44:51 +08001646}
1647
1648__attribute__((visibility("default")))
1649VKAPI_ATTR VkResult vkResetCommandPool(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001650 return vulkan::api::ResetCommandPool(device, commandPool, flags);
Chia-I Wu0c203242016-03-15 13:44:51 +08001651}
1652
1653__attribute__((visibility("default")))
1654VKAPI_ATTR VkResult vkAllocateCommandBuffers(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001655 return vulkan::api::AllocateCommandBuffers(device, pAllocateInfo, pCommandBuffers);
Chia-I Wu0c203242016-03-15 13:44:51 +08001656}
1657
1658__attribute__((visibility("default")))
1659VKAPI_ATTR void vkFreeCommandBuffers(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001660 vulkan::api::FreeCommandBuffers(device, commandPool, commandBufferCount, pCommandBuffers);
Chia-I Wu0c203242016-03-15 13:44:51 +08001661}
1662
1663__attribute__((visibility("default")))
1664VKAPI_ATTR VkResult vkBeginCommandBuffer(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001665 return vulkan::api::BeginCommandBuffer(commandBuffer, pBeginInfo);
Chia-I Wu0c203242016-03-15 13:44:51 +08001666}
1667
1668__attribute__((visibility("default")))
1669VKAPI_ATTR VkResult vkEndCommandBuffer(VkCommandBuffer commandBuffer) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001670 return vulkan::api::EndCommandBuffer(commandBuffer);
Chia-I Wu0c203242016-03-15 13:44:51 +08001671}
1672
1673__attribute__((visibility("default")))
1674VKAPI_ATTR VkResult vkResetCommandBuffer(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001675 return vulkan::api::ResetCommandBuffer(commandBuffer, flags);
Chia-I Wu0c203242016-03-15 13:44:51 +08001676}
1677
1678__attribute__((visibility("default")))
1679VKAPI_ATTR void vkCmdBindPipeline(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001680 vulkan::api::CmdBindPipeline(commandBuffer, pipelineBindPoint, pipeline);
Chia-I Wu0c203242016-03-15 13:44:51 +08001681}
1682
1683__attribute__((visibility("default")))
1684VKAPI_ATTR void vkCmdSetViewport(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001685 vulkan::api::CmdSetViewport(commandBuffer, firstViewport, viewportCount, pViewports);
Chia-I Wu0c203242016-03-15 13:44:51 +08001686}
1687
1688__attribute__((visibility("default")))
1689VKAPI_ATTR void vkCmdSetScissor(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001690 vulkan::api::CmdSetScissor(commandBuffer, firstScissor, scissorCount, pScissors);
Chia-I Wu0c203242016-03-15 13:44:51 +08001691}
1692
1693__attribute__((visibility("default")))
1694VKAPI_ATTR void vkCmdSetLineWidth(VkCommandBuffer commandBuffer, float lineWidth) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001695 vulkan::api::CmdSetLineWidth(commandBuffer, lineWidth);
Chia-I Wu0c203242016-03-15 13:44:51 +08001696}
1697
1698__attribute__((visibility("default")))
1699VKAPI_ATTR void vkCmdSetDepthBias(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001700 vulkan::api::CmdSetDepthBias(commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor);
Chia-I Wu0c203242016-03-15 13:44:51 +08001701}
1702
1703__attribute__((visibility("default")))
1704VKAPI_ATTR void vkCmdSetBlendConstants(VkCommandBuffer commandBuffer, const float blendConstants[4]) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001705 vulkan::api::CmdSetBlendConstants(commandBuffer, blendConstants);
Chia-I Wu0c203242016-03-15 13:44:51 +08001706}
1707
1708__attribute__((visibility("default")))
1709VKAPI_ATTR void vkCmdSetDepthBounds(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001710 vulkan::api::CmdSetDepthBounds(commandBuffer, minDepthBounds, maxDepthBounds);
Chia-I Wu0c203242016-03-15 13:44:51 +08001711}
1712
1713__attribute__((visibility("default")))
1714VKAPI_ATTR void vkCmdSetStencilCompareMask(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001715 vulkan::api::CmdSetStencilCompareMask(commandBuffer, faceMask, compareMask);
Chia-I Wu0c203242016-03-15 13:44:51 +08001716}
1717
1718__attribute__((visibility("default")))
1719VKAPI_ATTR void vkCmdSetStencilWriteMask(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001720 vulkan::api::CmdSetStencilWriteMask(commandBuffer, faceMask, writeMask);
Chia-I Wu0c203242016-03-15 13:44:51 +08001721}
1722
1723__attribute__((visibility("default")))
1724VKAPI_ATTR void vkCmdSetStencilReference(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001725 vulkan::api::CmdSetStencilReference(commandBuffer, faceMask, reference);
Chia-I Wu0c203242016-03-15 13:44:51 +08001726}
1727
1728__attribute__((visibility("default")))
1729VKAPI_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 +08001730 vulkan::api::CmdBindDescriptorSets(commandBuffer, pipelineBindPoint, layout, firstSet, descriptorSetCount, pDescriptorSets, dynamicOffsetCount, pDynamicOffsets);
Chia-I Wu0c203242016-03-15 13:44:51 +08001731}
1732
1733__attribute__((visibility("default")))
1734VKAPI_ATTR void vkCmdBindIndexBuffer(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001735 vulkan::api::CmdBindIndexBuffer(commandBuffer, buffer, offset, indexType);
Chia-I Wu0c203242016-03-15 13:44:51 +08001736}
1737
1738__attribute__((visibility("default")))
1739VKAPI_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 +08001740 vulkan::api::CmdBindVertexBuffers(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets);
Chia-I Wu0c203242016-03-15 13:44:51 +08001741}
1742
1743__attribute__((visibility("default")))
1744VKAPI_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 +08001745 vulkan::api::CmdDraw(commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance);
Chia-I Wu0c203242016-03-15 13:44:51 +08001746}
1747
1748__attribute__((visibility("default")))
1749VKAPI_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 +08001750 vulkan::api::CmdDrawIndexed(commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance);
Chia-I Wu0c203242016-03-15 13:44:51 +08001751}
1752
1753__attribute__((visibility("default")))
1754VKAPI_ATTR void vkCmdDrawIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001755 vulkan::api::CmdDrawIndirect(commandBuffer, buffer, offset, drawCount, stride);
Chia-I Wu0c203242016-03-15 13:44:51 +08001756}
1757
1758__attribute__((visibility("default")))
1759VKAPI_ATTR void vkCmdDrawIndexedIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001760 vulkan::api::CmdDrawIndexedIndirect(commandBuffer, buffer, offset, drawCount, stride);
Chia-I Wu0c203242016-03-15 13:44:51 +08001761}
1762
1763__attribute__((visibility("default")))
1764VKAPI_ATTR void vkCmdDispatch(VkCommandBuffer commandBuffer, uint32_t x, uint32_t y, uint32_t z) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001765 vulkan::api::CmdDispatch(commandBuffer, x, y, z);
Chia-I Wu0c203242016-03-15 13:44:51 +08001766}
1767
1768__attribute__((visibility("default")))
1769VKAPI_ATTR void vkCmdDispatchIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001770 vulkan::api::CmdDispatchIndirect(commandBuffer, buffer, offset);
Chia-I Wu0c203242016-03-15 13:44:51 +08001771}
1772
1773__attribute__((visibility("default")))
1774VKAPI_ATTR void vkCmdCopyBuffer(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001775 vulkan::api::CmdCopyBuffer(commandBuffer, srcBuffer, dstBuffer, regionCount, pRegions);
Chia-I Wu0c203242016-03-15 13:44:51 +08001776}
1777
1778__attribute__((visibility("default")))
1779VKAPI_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 +08001780 vulkan::api::CmdCopyImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions);
Chia-I Wu0c203242016-03-15 13:44:51 +08001781}
1782
1783__attribute__((visibility("default")))
1784VKAPI_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 +08001785 vulkan::api::CmdBlitImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter);
Chia-I Wu0c203242016-03-15 13:44:51 +08001786}
1787
1788__attribute__((visibility("default")))
1789VKAPI_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 +08001790 vulkan::api::CmdCopyBufferToImage(commandBuffer, srcBuffer, dstImage, dstImageLayout, regionCount, pRegions);
Chia-I Wu0c203242016-03-15 13:44:51 +08001791}
1792
1793__attribute__((visibility("default")))
1794VKAPI_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 +08001795 vulkan::api::CmdCopyImageToBuffer(commandBuffer, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions);
Chia-I Wu0c203242016-03-15 13:44:51 +08001796}
1797
1798__attribute__((visibility("default")))
1799VKAPI_ATTR void vkCmdUpdateBuffer(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const uint32_t* pData) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001800 vulkan::api::CmdUpdateBuffer(commandBuffer, dstBuffer, dstOffset, dataSize, pData);
Chia-I Wu0c203242016-03-15 13:44:51 +08001801}
1802
1803__attribute__((visibility("default")))
1804VKAPI_ATTR void vkCmdFillBuffer(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001805 vulkan::api::CmdFillBuffer(commandBuffer, dstBuffer, dstOffset, size, data);
Chia-I Wu0c203242016-03-15 13:44:51 +08001806}
1807
1808__attribute__((visibility("default")))
1809VKAPI_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 +08001810 vulkan::api::CmdClearColorImage(commandBuffer, image, imageLayout, pColor, rangeCount, pRanges);
Chia-I Wu0c203242016-03-15 13:44:51 +08001811}
1812
1813__attribute__((visibility("default")))
1814VKAPI_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 +08001815 vulkan::api::CmdClearDepthStencilImage(commandBuffer, image, imageLayout, pDepthStencil, rangeCount, pRanges);
Chia-I Wu0c203242016-03-15 13:44:51 +08001816}
1817
1818__attribute__((visibility("default")))
1819VKAPI_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 +08001820 vulkan::api::CmdClearAttachments(commandBuffer, attachmentCount, pAttachments, rectCount, pRects);
Chia-I Wu0c203242016-03-15 13:44:51 +08001821}
1822
1823__attribute__((visibility("default")))
1824VKAPI_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 +08001825 vulkan::api::CmdResolveImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions);
Chia-I Wu0c203242016-03-15 13:44:51 +08001826}
1827
1828__attribute__((visibility("default")))
1829VKAPI_ATTR void vkCmdSetEvent(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001830 vulkan::api::CmdSetEvent(commandBuffer, event, stageMask);
Chia-I Wu0c203242016-03-15 13:44:51 +08001831}
1832
1833__attribute__((visibility("default")))
1834VKAPI_ATTR void vkCmdResetEvent(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001835 vulkan::api::CmdResetEvent(commandBuffer, event, stageMask);
Chia-I Wu0c203242016-03-15 13:44:51 +08001836}
1837
1838__attribute__((visibility("default")))
1839VKAPI_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 +08001840 vulkan::api::CmdWaitEvents(commandBuffer, eventCount, pEvents, srcStageMask, dstStageMask, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers);
Chia-I Wu0c203242016-03-15 13:44:51 +08001841}
1842
1843__attribute__((visibility("default")))
1844VKAPI_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 +08001845 vulkan::api::CmdPipelineBarrier(commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers);
Chia-I Wu0c203242016-03-15 13:44:51 +08001846}
1847
1848__attribute__((visibility("default")))
1849VKAPI_ATTR void vkCmdBeginQuery(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001850 vulkan::api::CmdBeginQuery(commandBuffer, queryPool, query, flags);
Chia-I Wu0c203242016-03-15 13:44:51 +08001851}
1852
1853__attribute__((visibility("default")))
1854VKAPI_ATTR void vkCmdEndQuery(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001855 vulkan::api::CmdEndQuery(commandBuffer, queryPool, query);
Chia-I Wu0c203242016-03-15 13:44:51 +08001856}
1857
1858__attribute__((visibility("default")))
1859VKAPI_ATTR void vkCmdResetQueryPool(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001860 vulkan::api::CmdResetQueryPool(commandBuffer, queryPool, firstQuery, queryCount);
Chia-I Wu0c203242016-03-15 13:44:51 +08001861}
1862
1863__attribute__((visibility("default")))
1864VKAPI_ATTR void vkCmdWriteTimestamp(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001865 vulkan::api::CmdWriteTimestamp(commandBuffer, pipelineStage, queryPool, query);
Chia-I Wu0c203242016-03-15 13:44:51 +08001866}
1867
1868__attribute__((visibility("default")))
1869VKAPI_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 +08001870 vulkan::api::CmdCopyQueryPoolResults(commandBuffer, queryPool, firstQuery, queryCount, dstBuffer, dstOffset, stride, flags);
Chia-I Wu0c203242016-03-15 13:44:51 +08001871}
1872
1873__attribute__((visibility("default")))
1874VKAPI_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 +08001875 vulkan::api::CmdPushConstants(commandBuffer, layout, stageFlags, offset, size, pValues);
Chia-I Wu0c203242016-03-15 13:44:51 +08001876}
1877
1878__attribute__((visibility("default")))
1879VKAPI_ATTR void vkCmdBeginRenderPass(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001880 vulkan::api::CmdBeginRenderPass(commandBuffer, pRenderPassBegin, contents);
Chia-I Wu0c203242016-03-15 13:44:51 +08001881}
1882
1883__attribute__((visibility("default")))
1884VKAPI_ATTR void vkCmdNextSubpass(VkCommandBuffer commandBuffer, VkSubpassContents contents) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001885 vulkan::api::CmdNextSubpass(commandBuffer, contents);
Chia-I Wu0c203242016-03-15 13:44:51 +08001886}
1887
1888__attribute__((visibility("default")))
1889VKAPI_ATTR void vkCmdEndRenderPass(VkCommandBuffer commandBuffer) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001890 vulkan::api::CmdEndRenderPass(commandBuffer);
Chia-I Wu0c203242016-03-15 13:44:51 +08001891}
1892
1893__attribute__((visibility("default")))
1894VKAPI_ATTR void vkCmdExecuteCommands(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001895 vulkan::api::CmdExecuteCommands(commandBuffer, commandBufferCount, pCommandBuffers);
Chia-I Wu0c203242016-03-15 13:44:51 +08001896}
1897
1898__attribute__((visibility("default")))
1899VKAPI_ATTR void vkDestroySurfaceKHR(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001900 vulkan::api::DestroySurfaceKHR(instance, surface, pAllocator);
Chia-I Wu0c203242016-03-15 13:44:51 +08001901}
1902
1903__attribute__((visibility("default")))
1904VKAPI_ATTR VkResult vkGetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001905 return vulkan::api::GetPhysicalDeviceSurfaceSupportKHR(physicalDevice, queueFamilyIndex, surface, pSupported);
Chia-I Wu0c203242016-03-15 13:44:51 +08001906}
1907
1908__attribute__((visibility("default")))
1909VKAPI_ATTR VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001910 return vulkan::api::GetPhysicalDeviceSurfaceCapabilitiesKHR(physicalDevice, surface, pSurfaceCapabilities);
Chia-I Wu0c203242016-03-15 13:44:51 +08001911}
1912
1913__attribute__((visibility("default")))
1914VKAPI_ATTR VkResult vkGetPhysicalDeviceSurfaceFormatsKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001915 return vulkan::api::GetPhysicalDeviceSurfaceFormatsKHR(physicalDevice, surface, pSurfaceFormatCount, pSurfaceFormats);
Chia-I Wu0c203242016-03-15 13:44:51 +08001916}
1917
1918__attribute__((visibility("default")))
1919VKAPI_ATTR VkResult vkGetPhysicalDeviceSurfacePresentModesKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001920 return vulkan::api::GetPhysicalDeviceSurfacePresentModesKHR(physicalDevice, surface, pPresentModeCount, pPresentModes);
Chia-I Wu0c203242016-03-15 13:44:51 +08001921}
1922
1923__attribute__((visibility("default")))
1924VKAPI_ATTR VkResult vkCreateSwapchainKHR(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001925 return vulkan::api::CreateSwapchainKHR(device, pCreateInfo, pAllocator, pSwapchain);
Chia-I Wu0c203242016-03-15 13:44:51 +08001926}
1927
1928__attribute__((visibility("default")))
1929VKAPI_ATTR void vkDestroySwapchainKHR(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001930 vulkan::api::DestroySwapchainKHR(device, swapchain, pAllocator);
Chia-I Wu0c203242016-03-15 13:44:51 +08001931}
1932
1933__attribute__((visibility("default")))
1934VKAPI_ATTR VkResult vkGetSwapchainImagesKHR(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001935 return vulkan::api::GetSwapchainImagesKHR(device, swapchain, pSwapchainImageCount, pSwapchainImages);
Chia-I Wu0c203242016-03-15 13:44:51 +08001936}
1937
1938__attribute__((visibility("default")))
1939VKAPI_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 +08001940 return vulkan::api::AcquireNextImageKHR(device, swapchain, timeout, semaphore, fence, pImageIndex);
Chia-I Wu0c203242016-03-15 13:44:51 +08001941}
1942
1943__attribute__((visibility("default")))
1944VKAPI_ATTR VkResult vkQueuePresentKHR(VkQueue queue, const VkPresentInfoKHR* pPresentInfo) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001945 return vulkan::api::QueuePresentKHR(queue, pPresentInfo);
Chia-I Wu0c203242016-03-15 13:44:51 +08001946}
1947
1948__attribute__((visibility("default")))
1949VKAPI_ATTR VkResult vkCreateAndroidSurfaceKHR(VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) {
Chia-I Wu3e654dc2016-05-20 16:15:06 +08001950 return vulkan::api::CreateAndroidSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
Chia-I Wu0c203242016-03-15 13:44:51 +08001951}
1952
1953// clang-format on