1/* 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 21#include <algorithm> 22 23#include <log/log.h> 24 25// to catch mismatches between vulkan.h and this file 26#undef VK_NO_PROTOTYPES 27#include "api.h" 28 29namespace vulkan { 30namespace api { 31 32#define UNLIKELY(expr) __builtin_expect((expr), 0) 33 34#define INIT_PROC(required, obj, proc) \ 35 do { \ 36 data.dispatch.proc = \ 37 reinterpret_cast<PFN_vk##proc>(get_proc(obj, "vk" #proc)); \ 38 if (UNLIKELY(required && !data.dispatch.proc)) { \ 39 ALOGE("missing " #obj " proc: vk" #proc); \ 40 success = false; \ 41 } \ 42 } while (0) 43 44// Exported extension functions may be invoked even when their extensions 45// are disabled. Dispatch to stubs when that happens. 46#define INIT_PROC_EXT(ext, required, obj, proc) \ 47 do { \ 48 if (extensions[driver::ProcHook::ext]) \ 49 INIT_PROC(required, obj, proc); \ 50 else \ 51 data.dispatch.proc = disabled##proc; \ 52 } while (0) 53 54namespace { 55 56// clang-format off 57 58VKAPI_ATTR void disabledDestroySurfaceKHR(VkInstance instance, VkSurfaceKHR, const VkAllocationCallbacks*) { 59 driver::Logger(instance).Err(instance, "VK_KHR_surface not enabled. Exported vkDestroySurfaceKHR not executed."); 60} 61 62VKAPI_ATTR VkResult disabledGetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice physicalDevice, uint32_t, VkSurfaceKHR, VkBool32*) { 63 driver::Logger(physicalDevice).Err(physicalDevice, "VK_KHR_surface not enabled. Exported vkGetPhysicalDeviceSurfaceSupportKHR not executed."); 64 return VK_SUCCESS; 65} 66 67VKAPI_ATTR VkResult disabledGetPhysicalDeviceSurfaceCapabilitiesKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR, VkSurfaceCapabilitiesKHR*) { 68 driver::Logger(physicalDevice).Err(physicalDevice, "VK_KHR_surface not enabled. Exported vkGetPhysicalDeviceSurfaceCapabilitiesKHR not executed."); 69 return VK_SUCCESS; 70} 71 72VKAPI_ATTR VkResult disabledGetPhysicalDeviceSurfaceFormatsKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR, uint32_t*, VkSurfaceFormatKHR*) { 73 driver::Logger(physicalDevice).Err(physicalDevice, "VK_KHR_surface not enabled. Exported vkGetPhysicalDeviceSurfaceFormatsKHR not executed."); 74 return VK_SUCCESS; 75} 76 77VKAPI_ATTR VkResult disabledGetPhysicalDeviceSurfacePresentModesKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR, uint32_t*, VkPresentModeKHR*) { 78 driver::Logger(physicalDevice).Err(physicalDevice, "VK_KHR_surface not enabled. Exported vkGetPhysicalDeviceSurfacePresentModesKHR not executed."); 79 return VK_SUCCESS; 80} 81 82VKAPI_ATTR VkResult disabledCreateSwapchainKHR(VkDevice device, const VkSwapchainCreateInfoKHR*, const VkAllocationCallbacks*, VkSwapchainKHR*) { 83 driver::Logger(device).Err(device, "VK_KHR_swapchain not enabled. Exported vkCreateSwapchainKHR not executed."); 84 return VK_SUCCESS; 85} 86 87VKAPI_ATTR void disabledDestroySwapchainKHR(VkDevice device, VkSwapchainKHR, const VkAllocationCallbacks*) { 88 driver::Logger(device).Err(device, "VK_KHR_swapchain not enabled. Exported vkDestroySwapchainKHR not executed."); 89} 90 91VKAPI_ATTR VkResult disabledGetSwapchainImagesKHR(VkDevice device, VkSwapchainKHR, uint32_t*, VkImage*) { 92 driver::Logger(device).Err(device, "VK_KHR_swapchain not enabled. Exported vkGetSwapchainImagesKHR not executed."); 93 return VK_SUCCESS; 94} 95 96VKAPI_ATTR VkResult disabledAcquireNextImageKHR(VkDevice device, VkSwapchainKHR, uint64_t, VkSemaphore, VkFence, uint32_t*) { 97 driver::Logger(device).Err(device, "VK_KHR_swapchain not enabled. Exported vkAcquireNextImageKHR not executed."); 98 return VK_SUCCESS; 99} 100 101VKAPI_ATTR VkResult disabledQueuePresentKHR(VkQueue queue, const VkPresentInfoKHR*) { 102 driver::Logger(queue).Err(queue, "VK_KHR_swapchain not enabled. Exported vkQueuePresentKHR not executed."); 103 return VK_SUCCESS; 104} 105 106VKAPI_ATTR VkResult disabledCreateAndroidSurfaceKHR(VkInstance instance, const VkAndroidSurfaceCreateInfoKHR*, const VkAllocationCallbacks*, VkSurfaceKHR*) { 107 driver::Logger(instance).Err(instance, "VK_KHR_android_surface not enabled. Exported vkCreateAndroidSurfaceKHR not executed."); 108 return VK_SUCCESS; 109} 110 111// clang-format on 112 113} // namespace 114 115bool InitDispatchTable( 116 VkInstance instance, 117 PFN_vkGetInstanceProcAddr get_proc, 118 const std::bitset<driver::ProcHook::EXTENSION_COUNT>& extensions) { 119 auto& data = GetData(instance); 120 bool success = true; 121 122 // clang-format off 123 INIT_PROC(true, instance, DestroyInstance); 124 INIT_PROC(true, instance, EnumeratePhysicalDevices); 125 INIT_PROC(true, instance, GetInstanceProcAddr); 126 INIT_PROC(true, instance, GetPhysicalDeviceProperties); 127 INIT_PROC(true, instance, GetPhysicalDeviceQueueFamilyProperties); 128 INIT_PROC(true, instance, GetPhysicalDeviceMemoryProperties); 129 INIT_PROC(true, instance, GetPhysicalDeviceFeatures); 130 INIT_PROC(true, instance, GetPhysicalDeviceFormatProperties); 131 INIT_PROC(true, instance, GetPhysicalDeviceImageFormatProperties); 132 INIT_PROC(true, instance, CreateDevice); 133 INIT_PROC(true, instance, EnumerateDeviceExtensionProperties); 134 INIT_PROC(true, instance, GetPhysicalDeviceSparseImageFormatProperties); 135 INIT_PROC_EXT(KHR_surface, true, instance, DestroySurfaceKHR); 136 INIT_PROC_EXT(KHR_surface, true, instance, GetPhysicalDeviceSurfaceSupportKHR); 137 INIT_PROC_EXT(KHR_surface, true, instance, GetPhysicalDeviceSurfaceCapabilitiesKHR); 138 INIT_PROC_EXT(KHR_surface, true, instance, GetPhysicalDeviceSurfaceFormatsKHR); 139 INIT_PROC_EXT(KHR_surface, true, instance, GetPhysicalDeviceSurfacePresentModesKHR); 140 INIT_PROC_EXT(KHR_android_surface, true, instance, CreateAndroidSurfaceKHR); 141 // clang-format on 142 143 return success; 144} 145 146bool InitDispatchTable( 147 VkDevice dev, 148 PFN_vkGetDeviceProcAddr get_proc, 149 const std::bitset<driver::ProcHook::EXTENSION_COUNT>& extensions) { 150 auto& data = GetData(dev); 151 bool success = true; 152 153 // clang-format off 154 INIT_PROC(true, dev, GetDeviceProcAddr); 155 INIT_PROC(true, dev, DestroyDevice); 156 INIT_PROC(true, dev, GetDeviceQueue); 157 INIT_PROC(true, dev, QueueSubmit); 158 INIT_PROC(true, dev, QueueWaitIdle); 159 INIT_PROC(true, dev, DeviceWaitIdle); 160 INIT_PROC(true, dev, AllocateMemory); 161 INIT_PROC(true, dev, FreeMemory); 162 INIT_PROC(true, dev, MapMemory); 163 INIT_PROC(true, dev, UnmapMemory); 164 INIT_PROC(true, dev, FlushMappedMemoryRanges); 165 INIT_PROC(true, dev, InvalidateMappedMemoryRanges); 166 INIT_PROC(true, dev, GetDeviceMemoryCommitment); 167 INIT_PROC(true, dev, GetBufferMemoryRequirements); 168 INIT_PROC(true, dev, BindBufferMemory); 169 INIT_PROC(true, dev, GetImageMemoryRequirements); 170 INIT_PROC(true, dev, BindImageMemory); 171 INIT_PROC(true, dev, GetImageSparseMemoryRequirements); 172 INIT_PROC(true, dev, QueueBindSparse); 173 INIT_PROC(true, dev, CreateFence); 174 INIT_PROC(true, dev, DestroyFence); 175 INIT_PROC(true, dev, ResetFences); 176 INIT_PROC(true, dev, GetFenceStatus); 177 INIT_PROC(true, dev, WaitForFences); 178 INIT_PROC(true, dev, CreateSemaphore); 179 INIT_PROC(true, dev, DestroySemaphore); 180 INIT_PROC(true, dev, CreateEvent); 181 INIT_PROC(true, dev, DestroyEvent); 182 INIT_PROC(true, dev, GetEventStatus); 183 INIT_PROC(true, dev, SetEvent); 184 INIT_PROC(true, dev, ResetEvent); 185 INIT_PROC(true, dev, CreateQueryPool); 186 INIT_PROC(true, dev, DestroyQueryPool); 187 INIT_PROC(true, dev, GetQueryPoolResults); 188 INIT_PROC(true, dev, CreateBuffer); 189 INIT_PROC(true, dev, DestroyBuffer); 190 INIT_PROC(true, dev, CreateBufferView); 191 INIT_PROC(true, dev, DestroyBufferView); 192 INIT_PROC(true, dev, CreateImage); 193 INIT_PROC(true, dev, DestroyImage); 194 INIT_PROC(true, dev, GetImageSubresourceLayout); 195 INIT_PROC(true, dev, CreateImageView); 196 INIT_PROC(true, dev, DestroyImageView); 197 INIT_PROC(true, dev, CreateShaderModule); 198 INIT_PROC(true, dev, DestroyShaderModule); 199 INIT_PROC(true, dev, CreatePipelineCache); 200 INIT_PROC(true, dev, DestroyPipelineCache); 201 INIT_PROC(true, dev, GetPipelineCacheData); 202 INIT_PROC(true, dev, MergePipelineCaches); 203 INIT_PROC(true, dev, CreateGraphicsPipelines); 204 INIT_PROC(true, dev, CreateComputePipelines); 205 INIT_PROC(true, dev, DestroyPipeline); 206 INIT_PROC(true, dev, CreatePipelineLayout); 207 INIT_PROC(true, dev, DestroyPipelineLayout); 208 INIT_PROC(true, dev, CreateSampler); 209 INIT_PROC(true, dev, DestroySampler); 210 INIT_PROC(true, dev, CreateDescriptorSetLayout); 211 INIT_PROC(true, dev, DestroyDescriptorSetLayout); 212 INIT_PROC(true, dev, CreateDescriptorPool); 213 INIT_PROC(true, dev, DestroyDescriptorPool); 214 INIT_PROC(true, dev, ResetDescriptorPool); 215 INIT_PROC(true, dev, AllocateDescriptorSets); 216 INIT_PROC(true, dev, FreeDescriptorSets); 217 INIT_PROC(true, dev, UpdateDescriptorSets); 218 INIT_PROC(true, dev, CreateFramebuffer); 219 INIT_PROC(true, dev, DestroyFramebuffer); 220 INIT_PROC(true, dev, CreateRenderPass); 221 INIT_PROC(true, dev, DestroyRenderPass); 222 INIT_PROC(true, dev, GetRenderAreaGranularity); 223 INIT_PROC(true, dev, CreateCommandPool); 224 INIT_PROC(true, dev, DestroyCommandPool); 225 INIT_PROC(true, dev, ResetCommandPool); 226 INIT_PROC(true, dev, AllocateCommandBuffers); 227 INIT_PROC(true, dev, FreeCommandBuffers); 228 INIT_PROC(true, dev, BeginCommandBuffer); 229 INIT_PROC(true, dev, EndCommandBuffer); 230 INIT_PROC(true, dev, ResetCommandBuffer); 231 INIT_PROC(true, dev, CmdBindPipeline); 232 INIT_PROC(true, dev, CmdSetViewport); 233 INIT_PROC(true, dev, CmdSetScissor); 234 INIT_PROC(true, dev, CmdSetLineWidth); 235 INIT_PROC(true, dev, CmdSetDepthBias); 236 INIT_PROC(true, dev, CmdSetBlendConstants); 237 INIT_PROC(true, dev, CmdSetDepthBounds); 238 INIT_PROC(true, dev, CmdSetStencilCompareMask); 239 INIT_PROC(true, dev, CmdSetStencilWriteMask); 240 INIT_PROC(true, dev, CmdSetStencilReference); 241 INIT_PROC(true, dev, CmdBindDescriptorSets); 242 INIT_PROC(true, dev, CmdBindIndexBuffer); 243 INIT_PROC(true, dev, CmdBindVertexBuffers); 244 INIT_PROC(true, dev, CmdDraw); 245 INIT_PROC(true, dev, CmdDrawIndexed); 246 INIT_PROC(true, dev, CmdDrawIndirect); 247 INIT_PROC(true, dev, CmdDrawIndexedIndirect); 248 INIT_PROC(true, dev, CmdDispatch); 249 INIT_PROC(true, dev, CmdDispatchIndirect); 250 INIT_PROC(true, dev, CmdCopyBuffer); 251 INIT_PROC(true, dev, CmdCopyImage); 252 INIT_PROC(true, dev, CmdBlitImage); 253 INIT_PROC(true, dev, CmdCopyBufferToImage); 254 INIT_PROC(true, dev, CmdCopyImageToBuffer); 255 INIT_PROC(true, dev, CmdUpdateBuffer); 256 INIT_PROC(true, dev, CmdFillBuffer); 257 INIT_PROC(true, dev, CmdClearColorImage); 258 INIT_PROC(true, dev, CmdClearDepthStencilImage); 259 INIT_PROC(true, dev, CmdClearAttachments); 260 INIT_PROC(true, dev, CmdResolveImage); 261 INIT_PROC(true, dev, CmdSetEvent); 262 INIT_PROC(true, dev, CmdResetEvent); 263 INIT_PROC(true, dev, CmdWaitEvents); 264 INIT_PROC(true, dev, CmdPipelineBarrier); 265 INIT_PROC(true, dev, CmdBeginQuery); 266 INIT_PROC(true, dev, CmdEndQuery); 267 INIT_PROC(true, dev, CmdResetQueryPool); 268 INIT_PROC(true, dev, CmdWriteTimestamp); 269 INIT_PROC(true, dev, CmdCopyQueryPoolResults); 270 INIT_PROC(true, dev, CmdPushConstants); 271 INIT_PROC(true, dev, CmdBeginRenderPass); 272 INIT_PROC(true, dev, CmdNextSubpass); 273 INIT_PROC(true, dev, CmdEndRenderPass); 274 INIT_PROC(true, dev, CmdExecuteCommands); 275 INIT_PROC_EXT(KHR_swapchain, true, dev, CreateSwapchainKHR); 276 INIT_PROC_EXT(KHR_swapchain, true, dev, DestroySwapchainKHR); 277 INIT_PROC_EXT(KHR_swapchain, true, dev, GetSwapchainImagesKHR); 278 INIT_PROC_EXT(KHR_swapchain, true, dev, AcquireNextImageKHR); 279 INIT_PROC_EXT(KHR_swapchain, true, dev, QueuePresentKHR); 280 // clang-format on 281 282 return success; 283} 284 285// clang-format off 286 287namespace { 288 289// forward declarations needed by GetInstanceProcAddr and GetDeviceProcAddr 290VKAPI_ATTR VkResult EnumeratePhysicalDevices(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices); 291VKAPI_ATTR PFN_vkVoidFunction GetDeviceProcAddr(VkDevice device, const char* pName); 292VKAPI_ATTR PFN_vkVoidFunction GetInstanceProcAddr(VkInstance instance, const char* pName); 293VKAPI_ATTR void GetPhysicalDeviceProperties(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties); 294VKAPI_ATTR void GetPhysicalDeviceQueueFamilyProperties(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties); 295VKAPI_ATTR void GetPhysicalDeviceMemoryProperties(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties); 296VKAPI_ATTR void GetPhysicalDeviceFeatures(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures); 297VKAPI_ATTR void GetPhysicalDeviceFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties); 298VKAPI_ATTR VkResult GetPhysicalDeviceImageFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties); 299VKAPI_ATTR void GetDeviceQueue(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue); 300VKAPI_ATTR VkResult QueueSubmit(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence); 301VKAPI_ATTR VkResult QueueWaitIdle(VkQueue queue); 302VKAPI_ATTR VkResult DeviceWaitIdle(VkDevice device); 303VKAPI_ATTR VkResult AllocateMemory(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory); 304VKAPI_ATTR void FreeMemory(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator); 305VKAPI_ATTR VkResult MapMemory(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData); 306VKAPI_ATTR void UnmapMemory(VkDevice device, VkDeviceMemory memory); 307VKAPI_ATTR VkResult FlushMappedMemoryRanges(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges); 308VKAPI_ATTR VkResult InvalidateMappedMemoryRanges(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges); 309VKAPI_ATTR void GetDeviceMemoryCommitment(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes); 310VKAPI_ATTR void GetBufferMemoryRequirements(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements); 311VKAPI_ATTR VkResult BindBufferMemory(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset); 312VKAPI_ATTR void GetImageMemoryRequirements(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements); 313VKAPI_ATTR VkResult BindImageMemory(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset); 314VKAPI_ATTR void GetImageSparseMemoryRequirements(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements); 315VKAPI_ATTR void GetPhysicalDeviceSparseImageFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties); 316VKAPI_ATTR VkResult QueueBindSparse(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence); 317VKAPI_ATTR VkResult CreateFence(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence); 318VKAPI_ATTR void DestroyFence(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator); 319VKAPI_ATTR VkResult ResetFences(VkDevice device, uint32_t fenceCount, const VkFence* pFences); 320VKAPI_ATTR VkResult GetFenceStatus(VkDevice device, VkFence fence); 321VKAPI_ATTR VkResult WaitForFences(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout); 322VKAPI_ATTR VkResult CreateSemaphore(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore); 323VKAPI_ATTR void DestroySemaphore(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator); 324VKAPI_ATTR VkResult CreateEvent(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent); 325VKAPI_ATTR void DestroyEvent(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator); 326VKAPI_ATTR VkResult GetEventStatus(VkDevice device, VkEvent event); 327VKAPI_ATTR VkResult SetEvent(VkDevice device, VkEvent event); 328VKAPI_ATTR VkResult ResetEvent(VkDevice device, VkEvent event); 329VKAPI_ATTR VkResult CreateQueryPool(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool); 330VKAPI_ATTR void DestroyQueryPool(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator); 331VKAPI_ATTR VkResult GetQueryPoolResults(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags); 332VKAPI_ATTR VkResult CreateBuffer(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer); 333VKAPI_ATTR void DestroyBuffer(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator); 334VKAPI_ATTR VkResult CreateBufferView(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView); 335VKAPI_ATTR void DestroyBufferView(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator); 336VKAPI_ATTR VkResult CreateImage(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage); 337VKAPI_ATTR void DestroyImage(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator); 338VKAPI_ATTR void GetImageSubresourceLayout(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout); 339VKAPI_ATTR VkResult CreateImageView(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView); 340VKAPI_ATTR void DestroyImageView(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator); 341VKAPI_ATTR VkResult CreateShaderModule(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule); 342VKAPI_ATTR void DestroyShaderModule(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator); 343VKAPI_ATTR VkResult CreatePipelineCache(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache); 344VKAPI_ATTR void DestroyPipelineCache(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator); 345VKAPI_ATTR VkResult GetPipelineCacheData(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData); 346VKAPI_ATTR VkResult MergePipelineCaches(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches); 347VKAPI_ATTR VkResult CreateGraphicsPipelines(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines); 348VKAPI_ATTR VkResult CreateComputePipelines(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines); 349VKAPI_ATTR void DestroyPipeline(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator); 350VKAPI_ATTR VkResult CreatePipelineLayout(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout); 351VKAPI_ATTR void DestroyPipelineLayout(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator); 352VKAPI_ATTR VkResult CreateSampler(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler); 353VKAPI_ATTR void DestroySampler(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator); 354VKAPI_ATTR VkResult CreateDescriptorSetLayout(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout); 355VKAPI_ATTR void DestroyDescriptorSetLayout(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator); 356VKAPI_ATTR VkResult CreateDescriptorPool(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool); 357VKAPI_ATTR void DestroyDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator); 358VKAPI_ATTR VkResult ResetDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags); 359VKAPI_ATTR VkResult AllocateDescriptorSets(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets); 360VKAPI_ATTR VkResult FreeDescriptorSets(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets); 361VKAPI_ATTR void UpdateDescriptorSets(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies); 362VKAPI_ATTR VkResult CreateFramebuffer(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer); 363VKAPI_ATTR void DestroyFramebuffer(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator); 364VKAPI_ATTR VkResult CreateRenderPass(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass); 365VKAPI_ATTR void DestroyRenderPass(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator); 366VKAPI_ATTR void GetRenderAreaGranularity(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity); 367VKAPI_ATTR VkResult CreateCommandPool(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool); 368VKAPI_ATTR void DestroyCommandPool(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator); 369VKAPI_ATTR VkResult ResetCommandPool(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags); 370VKAPI_ATTR VkResult AllocateCommandBuffers(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers); 371VKAPI_ATTR void FreeCommandBuffers(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers); 372VKAPI_ATTR VkResult BeginCommandBuffer(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo); 373VKAPI_ATTR VkResult EndCommandBuffer(VkCommandBuffer commandBuffer); 374VKAPI_ATTR VkResult ResetCommandBuffer(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags); 375VKAPI_ATTR void CmdBindPipeline(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline); 376VKAPI_ATTR void CmdSetViewport(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports); 377VKAPI_ATTR void CmdSetScissor(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors); 378VKAPI_ATTR void CmdSetLineWidth(VkCommandBuffer commandBuffer, float lineWidth); 379VKAPI_ATTR void CmdSetDepthBias(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor); 380VKAPI_ATTR void CmdSetBlendConstants(VkCommandBuffer commandBuffer, const float blendConstants[4]); 381VKAPI_ATTR void CmdSetDepthBounds(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds); 382VKAPI_ATTR void CmdSetStencilCompareMask(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask); 383VKAPI_ATTR void CmdSetStencilWriteMask(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask); 384VKAPI_ATTR void CmdSetStencilReference(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference); 385VKAPI_ATTR void CmdBindDescriptorSets(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets); 386VKAPI_ATTR void CmdBindIndexBuffer(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType); 387VKAPI_ATTR void CmdBindVertexBuffers(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets); 388VKAPI_ATTR void CmdDraw(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance); 389VKAPI_ATTR void CmdDrawIndexed(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance); 390VKAPI_ATTR void CmdDrawIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride); 391VKAPI_ATTR void CmdDrawIndexedIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride); 392VKAPI_ATTR void CmdDispatch(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ); 393VKAPI_ATTR void CmdDispatchIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset); 394VKAPI_ATTR void CmdCopyBuffer(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions); 395VKAPI_ATTR void CmdCopyImage(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions); 396VKAPI_ATTR void CmdBlitImage(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter); 397VKAPI_ATTR void CmdCopyBufferToImage(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions); 398VKAPI_ATTR void CmdCopyImageToBuffer(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions); 399VKAPI_ATTR void CmdUpdateBuffer(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData); 400VKAPI_ATTR void CmdFillBuffer(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data); 401VKAPI_ATTR void CmdClearColorImage(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges); 402VKAPI_ATTR void CmdClearDepthStencilImage(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges); 403VKAPI_ATTR void CmdClearAttachments(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects); 404VKAPI_ATTR void CmdResolveImage(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions); 405VKAPI_ATTR void CmdSetEvent(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask); 406VKAPI_ATTR void CmdResetEvent(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask); 407VKAPI_ATTR void CmdWaitEvents(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers); 408VKAPI_ATTR void CmdPipelineBarrier(VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers); 409VKAPI_ATTR void CmdBeginQuery(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags); 410VKAPI_ATTR void CmdEndQuery(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query); 411VKAPI_ATTR void CmdResetQueryPool(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount); 412VKAPI_ATTR void CmdWriteTimestamp(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query); 413VKAPI_ATTR void CmdCopyQueryPoolResults(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags); 414VKAPI_ATTR void CmdPushConstants(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues); 415VKAPI_ATTR void CmdBeginRenderPass(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents); 416VKAPI_ATTR void CmdNextSubpass(VkCommandBuffer commandBuffer, VkSubpassContents contents); 417VKAPI_ATTR void CmdEndRenderPass(VkCommandBuffer commandBuffer); 418VKAPI_ATTR void CmdExecuteCommands(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers); 419VKAPI_ATTR void DestroySurfaceKHR(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator); 420VKAPI_ATTR VkResult GetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported); 421VKAPI_ATTR VkResult GetPhysicalDeviceSurfaceCapabilitiesKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities); 422VKAPI_ATTR VkResult GetPhysicalDeviceSurfaceFormatsKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats); 423VKAPI_ATTR VkResult GetPhysicalDeviceSurfacePresentModesKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes); 424VKAPI_ATTR VkResult CreateSwapchainKHR(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain); 425VKAPI_ATTR void DestroySwapchainKHR(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator); 426VKAPI_ATTR VkResult GetSwapchainImagesKHR(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages); 427VKAPI_ATTR VkResult AcquireNextImageKHR(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex); 428VKAPI_ATTR VkResult QueuePresentKHR(VkQueue queue, const VkPresentInfoKHR* pPresentInfo); 429VKAPI_ATTR VkResult CreateAndroidSurfaceKHR(VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); 430 431VKAPI_ATTR VkResult EnumeratePhysicalDevices(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices) { 432 return GetData(instance).dispatch.EnumeratePhysicalDevices(instance, pPhysicalDeviceCount, pPhysicalDevices); 433} 434 435VKAPI_ATTR PFN_vkVoidFunction GetDeviceProcAddr(VkDevice device, const char* pName) { 436 if (device == VK_NULL_HANDLE) { 437 ALOGE("invalid vkGetDeviceProcAddr(VK_NULL_HANDLE, ...) call"); 438 return nullptr; 439 } 440 441 static const char* const known_non_device_names[] = { 442 "vkCreateAndroidSurfaceKHR", 443 "vkCreateDebugReportCallbackEXT", 444 "vkCreateDevice", 445 "vkCreateInstance", 446 "vkDebugReportMessageEXT", 447 "vkDestroyDebugReportCallbackEXT", 448 "vkDestroyInstance", 449 "vkDestroySurfaceKHR", 450 "vkEnumerateDeviceExtensionProperties", 451 "vkEnumerateDeviceLayerProperties", 452 "vkEnumerateInstanceExtensionProperties", 453 "vkEnumerateInstanceLayerProperties", 454 "vkEnumeratePhysicalDeviceGroupsKHX", 455 "vkEnumeratePhysicalDevices", 456 "vkGetInstanceProcAddr", 457 "vkGetPhysicalDeviceExternalBufferPropertiesKHX", 458 "vkGetPhysicalDeviceExternalImageFormatPropertiesNV", 459 "vkGetPhysicalDeviceExternalSemaphorePropertiesKHX", 460 "vkGetPhysicalDeviceFeatures", 461 "vkGetPhysicalDeviceFeatures2KHR", 462 "vkGetPhysicalDeviceFormatProperties", 463 "vkGetPhysicalDeviceFormatProperties2KHR", 464 "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX", 465 "vkGetPhysicalDeviceImageFormatProperties", 466 "vkGetPhysicalDeviceImageFormatProperties2KHR", 467 "vkGetPhysicalDeviceMemoryProperties", 468 "vkGetPhysicalDeviceMemoryProperties2KHR", 469 "vkGetPhysicalDevicePresentRectanglesKHX", 470 "vkGetPhysicalDeviceProperties", 471 "vkGetPhysicalDeviceProperties2KHR", 472 "vkGetPhysicalDeviceQueueFamilyProperties", 473 "vkGetPhysicalDeviceQueueFamilyProperties2KHR", 474 "vkGetPhysicalDeviceSparseImageFormatProperties", 475 "vkGetPhysicalDeviceSparseImageFormatProperties2KHR", 476 "vkGetPhysicalDeviceSurfaceCapabilities2KHR", 477 "vkGetPhysicalDeviceSurfaceCapabilitiesKHR", 478 "vkGetPhysicalDeviceSurfaceFormats2KHR", 479 "vkGetPhysicalDeviceSurfaceFormatsKHR", 480 "vkGetPhysicalDeviceSurfacePresentModesKHR", 481 "vkGetPhysicalDeviceSurfaceSupportKHR", 482 }; 483 // clang-format on 484 constexpr size_t count = 485 sizeof(known_non_device_names) / sizeof(known_non_device_names[0]); 486 if (!pName || 487 std::binary_search( 488 known_non_device_names, known_non_device_names + count, pName, 489 [](const char* a, const char* b) { return (strcmp(a, b) < 0); })) { 490 vulkan::driver::Logger(device).Err( 491 device, "invalid vkGetDeviceProcAddr(%p, \"%s\") call", device, 492 (pName) ? pName : "(null)"); 493 return nullptr; 494 } 495 // clang-format off 496 497 if (strcmp(pName, "vkGetDeviceProcAddr") == 0) return reinterpret_cast<PFN_vkVoidFunction>(GetDeviceProcAddr); 498 if (strcmp(pName, "vkDestroyDevice") == 0) return reinterpret_cast<PFN_vkVoidFunction>(DestroyDevice); 499 500 return GetData(device).dispatch.GetDeviceProcAddr(device, pName); 501} 502 503VKAPI_ATTR PFN_vkVoidFunction GetInstanceProcAddr(VkInstance instance, const char* pName) { 504 // global functions 505 if (instance == VK_NULL_HANDLE) { 506 if (strcmp(pName, "vkCreateInstance") == 0) return reinterpret_cast<PFN_vkVoidFunction>(CreateInstance); 507 if (strcmp(pName, "vkEnumerateInstanceLayerProperties") == 0) return reinterpret_cast<PFN_vkVoidFunction>(EnumerateInstanceLayerProperties); 508 if (strcmp(pName, "vkEnumerateInstanceExtensionProperties") == 0) return reinterpret_cast<PFN_vkVoidFunction>(EnumerateInstanceExtensionProperties); 509 510 ALOGE("invalid vkGetInstanceProcAddr(VK_NULL_HANDLE, \"%s\") call", pName); 511 return nullptr; 512 } 513 514 static const struct Hook { 515 const char* name; 516 PFN_vkVoidFunction proc; 517 } hooks[] = { 518 { "vkAcquireNextImageKHR", reinterpret_cast<PFN_vkVoidFunction>(AcquireNextImageKHR) }, 519 { "vkAllocateCommandBuffers", reinterpret_cast<PFN_vkVoidFunction>(AllocateCommandBuffers) }, 520 { "vkAllocateDescriptorSets", reinterpret_cast<PFN_vkVoidFunction>(AllocateDescriptorSets) }, 521 { "vkAllocateMemory", reinterpret_cast<PFN_vkVoidFunction>(AllocateMemory) }, 522 { "vkBeginCommandBuffer", reinterpret_cast<PFN_vkVoidFunction>(BeginCommandBuffer) }, 523 { "vkBindBufferMemory", reinterpret_cast<PFN_vkVoidFunction>(BindBufferMemory) }, 524 { "vkBindImageMemory", reinterpret_cast<PFN_vkVoidFunction>(BindImageMemory) }, 525 { "vkCmdBeginQuery", reinterpret_cast<PFN_vkVoidFunction>(CmdBeginQuery) }, 526 { "vkCmdBeginRenderPass", reinterpret_cast<PFN_vkVoidFunction>(CmdBeginRenderPass) }, 527 { "vkCmdBindDescriptorSets", reinterpret_cast<PFN_vkVoidFunction>(CmdBindDescriptorSets) }, 528 { "vkCmdBindIndexBuffer", reinterpret_cast<PFN_vkVoidFunction>(CmdBindIndexBuffer) }, 529 { "vkCmdBindPipeline", reinterpret_cast<PFN_vkVoidFunction>(CmdBindPipeline) }, 530 { "vkCmdBindVertexBuffers", reinterpret_cast<PFN_vkVoidFunction>(CmdBindVertexBuffers) }, 531 { "vkCmdBlitImage", reinterpret_cast<PFN_vkVoidFunction>(CmdBlitImage) }, 532 { "vkCmdClearAttachments", reinterpret_cast<PFN_vkVoidFunction>(CmdClearAttachments) }, 533 { "vkCmdClearColorImage", reinterpret_cast<PFN_vkVoidFunction>(CmdClearColorImage) }, 534 { "vkCmdClearDepthStencilImage", reinterpret_cast<PFN_vkVoidFunction>(CmdClearDepthStencilImage) }, 535 { "vkCmdCopyBuffer", reinterpret_cast<PFN_vkVoidFunction>(CmdCopyBuffer) }, 536 { "vkCmdCopyBufferToImage", reinterpret_cast<PFN_vkVoidFunction>(CmdCopyBufferToImage) }, 537 { "vkCmdCopyImage", reinterpret_cast<PFN_vkVoidFunction>(CmdCopyImage) }, 538 { "vkCmdCopyImageToBuffer", reinterpret_cast<PFN_vkVoidFunction>(CmdCopyImageToBuffer) }, 539 { "vkCmdCopyQueryPoolResults", reinterpret_cast<PFN_vkVoidFunction>(CmdCopyQueryPoolResults) }, 540 { "vkCmdDispatch", reinterpret_cast<PFN_vkVoidFunction>(CmdDispatch) }, 541 { "vkCmdDispatchIndirect", reinterpret_cast<PFN_vkVoidFunction>(CmdDispatchIndirect) }, 542 { "vkCmdDraw", reinterpret_cast<PFN_vkVoidFunction>(CmdDraw) }, 543 { "vkCmdDrawIndexed", reinterpret_cast<PFN_vkVoidFunction>(CmdDrawIndexed) }, 544 { "vkCmdDrawIndexedIndirect", reinterpret_cast<PFN_vkVoidFunction>(CmdDrawIndexedIndirect) }, 545 { "vkCmdDrawIndirect", reinterpret_cast<PFN_vkVoidFunction>(CmdDrawIndirect) }, 546 { "vkCmdEndQuery", reinterpret_cast<PFN_vkVoidFunction>(CmdEndQuery) }, 547 { "vkCmdEndRenderPass", reinterpret_cast<PFN_vkVoidFunction>(CmdEndRenderPass) }, 548 { "vkCmdExecuteCommands", reinterpret_cast<PFN_vkVoidFunction>(CmdExecuteCommands) }, 549 { "vkCmdFillBuffer", reinterpret_cast<PFN_vkVoidFunction>(CmdFillBuffer) }, 550 { "vkCmdNextSubpass", reinterpret_cast<PFN_vkVoidFunction>(CmdNextSubpass) }, 551 { "vkCmdPipelineBarrier", reinterpret_cast<PFN_vkVoidFunction>(CmdPipelineBarrier) }, 552 { "vkCmdPushConstants", reinterpret_cast<PFN_vkVoidFunction>(CmdPushConstants) }, 553 { "vkCmdResetEvent", reinterpret_cast<PFN_vkVoidFunction>(CmdResetEvent) }, 554 { "vkCmdResetQueryPool", reinterpret_cast<PFN_vkVoidFunction>(CmdResetQueryPool) }, 555 { "vkCmdResolveImage", reinterpret_cast<PFN_vkVoidFunction>(CmdResolveImage) }, 556 { "vkCmdSetBlendConstants", reinterpret_cast<PFN_vkVoidFunction>(CmdSetBlendConstants) }, 557 { "vkCmdSetDepthBias", reinterpret_cast<PFN_vkVoidFunction>(CmdSetDepthBias) }, 558 { "vkCmdSetDepthBounds", reinterpret_cast<PFN_vkVoidFunction>(CmdSetDepthBounds) }, 559 { "vkCmdSetEvent", reinterpret_cast<PFN_vkVoidFunction>(CmdSetEvent) }, 560 { "vkCmdSetLineWidth", reinterpret_cast<PFN_vkVoidFunction>(CmdSetLineWidth) }, 561 { "vkCmdSetScissor", reinterpret_cast<PFN_vkVoidFunction>(CmdSetScissor) }, 562 { "vkCmdSetStencilCompareMask", reinterpret_cast<PFN_vkVoidFunction>(CmdSetStencilCompareMask) }, 563 { "vkCmdSetStencilReference", reinterpret_cast<PFN_vkVoidFunction>(CmdSetStencilReference) }, 564 { "vkCmdSetStencilWriteMask", reinterpret_cast<PFN_vkVoidFunction>(CmdSetStencilWriteMask) }, 565 { "vkCmdSetViewport", reinterpret_cast<PFN_vkVoidFunction>(CmdSetViewport) }, 566 { "vkCmdUpdateBuffer", reinterpret_cast<PFN_vkVoidFunction>(CmdUpdateBuffer) }, 567 { "vkCmdWaitEvents", reinterpret_cast<PFN_vkVoidFunction>(CmdWaitEvents) }, 568 { "vkCmdWriteTimestamp", reinterpret_cast<PFN_vkVoidFunction>(CmdWriteTimestamp) }, 569 { "vkCreateBuffer", reinterpret_cast<PFN_vkVoidFunction>(CreateBuffer) }, 570 { "vkCreateBufferView", reinterpret_cast<PFN_vkVoidFunction>(CreateBufferView) }, 571 { "vkCreateCommandPool", reinterpret_cast<PFN_vkVoidFunction>(CreateCommandPool) }, 572 { "vkCreateComputePipelines", reinterpret_cast<PFN_vkVoidFunction>(CreateComputePipelines) }, 573 { "vkCreateDescriptorPool", reinterpret_cast<PFN_vkVoidFunction>(CreateDescriptorPool) }, 574 { "vkCreateDescriptorSetLayout", reinterpret_cast<PFN_vkVoidFunction>(CreateDescriptorSetLayout) }, 575 { "vkCreateDevice", reinterpret_cast<PFN_vkVoidFunction>(CreateDevice) }, 576 { "vkCreateEvent", reinterpret_cast<PFN_vkVoidFunction>(CreateEvent) }, 577 { "vkCreateFence", reinterpret_cast<PFN_vkVoidFunction>(CreateFence) }, 578 { "vkCreateFramebuffer", reinterpret_cast<PFN_vkVoidFunction>(CreateFramebuffer) }, 579 { "vkCreateGraphicsPipelines", reinterpret_cast<PFN_vkVoidFunction>(CreateGraphicsPipelines) }, 580 { "vkCreateImage", reinterpret_cast<PFN_vkVoidFunction>(CreateImage) }, 581 { "vkCreateImageView", reinterpret_cast<PFN_vkVoidFunction>(CreateImageView) }, 582 { "vkCreateInstance", nullptr }, 583 { "vkCreatePipelineCache", reinterpret_cast<PFN_vkVoidFunction>(CreatePipelineCache) }, 584 { "vkCreatePipelineLayout", reinterpret_cast<PFN_vkVoidFunction>(CreatePipelineLayout) }, 585 { "vkCreateQueryPool", reinterpret_cast<PFN_vkVoidFunction>(CreateQueryPool) }, 586 { "vkCreateRenderPass", reinterpret_cast<PFN_vkVoidFunction>(CreateRenderPass) }, 587 { "vkCreateSampler", reinterpret_cast<PFN_vkVoidFunction>(CreateSampler) }, 588 { "vkCreateSemaphore", reinterpret_cast<PFN_vkVoidFunction>(CreateSemaphore) }, 589 { "vkCreateShaderModule", reinterpret_cast<PFN_vkVoidFunction>(CreateShaderModule) }, 590 { "vkCreateSwapchainKHR", reinterpret_cast<PFN_vkVoidFunction>(CreateSwapchainKHR) }, 591 { "vkDestroyBuffer", reinterpret_cast<PFN_vkVoidFunction>(DestroyBuffer) }, 592 { "vkDestroyBufferView", reinterpret_cast<PFN_vkVoidFunction>(DestroyBufferView) }, 593 { "vkDestroyCommandPool", reinterpret_cast<PFN_vkVoidFunction>(DestroyCommandPool) }, 594 { "vkDestroyDescriptorPool", reinterpret_cast<PFN_vkVoidFunction>(DestroyDescriptorPool) }, 595 { "vkDestroyDescriptorSetLayout", reinterpret_cast<PFN_vkVoidFunction>(DestroyDescriptorSetLayout) }, 596 { "vkDestroyDevice", reinterpret_cast<PFN_vkVoidFunction>(DestroyDevice) }, 597 { "vkDestroyEvent", reinterpret_cast<PFN_vkVoidFunction>(DestroyEvent) }, 598 { "vkDestroyFence", reinterpret_cast<PFN_vkVoidFunction>(DestroyFence) }, 599 { "vkDestroyFramebuffer", reinterpret_cast<PFN_vkVoidFunction>(DestroyFramebuffer) }, 600 { "vkDestroyImage", reinterpret_cast<PFN_vkVoidFunction>(DestroyImage) }, 601 { "vkDestroyImageView", reinterpret_cast<PFN_vkVoidFunction>(DestroyImageView) }, 602 { "vkDestroyInstance", reinterpret_cast<PFN_vkVoidFunction>(DestroyInstance) }, 603 { "vkDestroyPipeline", reinterpret_cast<PFN_vkVoidFunction>(DestroyPipeline) }, 604 { "vkDestroyPipelineCache", reinterpret_cast<PFN_vkVoidFunction>(DestroyPipelineCache) }, 605 { "vkDestroyPipelineLayout", reinterpret_cast<PFN_vkVoidFunction>(DestroyPipelineLayout) }, 606 { "vkDestroyQueryPool", reinterpret_cast<PFN_vkVoidFunction>(DestroyQueryPool) }, 607 { "vkDestroyRenderPass", reinterpret_cast<PFN_vkVoidFunction>(DestroyRenderPass) }, 608 { "vkDestroySampler", reinterpret_cast<PFN_vkVoidFunction>(DestroySampler) }, 609 { "vkDestroySemaphore", reinterpret_cast<PFN_vkVoidFunction>(DestroySemaphore) }, 610 { "vkDestroyShaderModule", reinterpret_cast<PFN_vkVoidFunction>(DestroyShaderModule) }, 611 { "vkDestroySwapchainKHR", reinterpret_cast<PFN_vkVoidFunction>(DestroySwapchainKHR) }, 612 { "vkDeviceWaitIdle", reinterpret_cast<PFN_vkVoidFunction>(DeviceWaitIdle) }, 613 { "vkEndCommandBuffer", reinterpret_cast<PFN_vkVoidFunction>(EndCommandBuffer) }, 614 { "vkEnumerateDeviceExtensionProperties", reinterpret_cast<PFN_vkVoidFunction>(EnumerateDeviceExtensionProperties) }, 615 { "vkEnumerateDeviceLayerProperties", reinterpret_cast<PFN_vkVoidFunction>(EnumerateDeviceLayerProperties) }, 616 { "vkEnumerateInstanceExtensionProperties", nullptr }, 617 { "vkEnumerateInstanceLayerProperties", nullptr }, 618 { "vkFlushMappedMemoryRanges", reinterpret_cast<PFN_vkVoidFunction>(FlushMappedMemoryRanges) }, 619 { "vkFreeCommandBuffers", reinterpret_cast<PFN_vkVoidFunction>(FreeCommandBuffers) }, 620 { "vkFreeDescriptorSets", reinterpret_cast<PFN_vkVoidFunction>(FreeDescriptorSets) }, 621 { "vkFreeMemory", reinterpret_cast<PFN_vkVoidFunction>(FreeMemory) }, 622 { "vkGetBufferMemoryRequirements", reinterpret_cast<PFN_vkVoidFunction>(GetBufferMemoryRequirements) }, 623 { "vkGetDeviceMemoryCommitment", reinterpret_cast<PFN_vkVoidFunction>(GetDeviceMemoryCommitment) }, 624 { "vkGetDeviceProcAddr", reinterpret_cast<PFN_vkVoidFunction>(GetDeviceProcAddr) }, 625 { "vkGetDeviceQueue", reinterpret_cast<PFN_vkVoidFunction>(GetDeviceQueue) }, 626 { "vkGetEventStatus", reinterpret_cast<PFN_vkVoidFunction>(GetEventStatus) }, 627 { "vkGetFenceStatus", reinterpret_cast<PFN_vkVoidFunction>(GetFenceStatus) }, 628 { "vkGetImageMemoryRequirements", reinterpret_cast<PFN_vkVoidFunction>(GetImageMemoryRequirements) }, 629 { "vkGetImageSparseMemoryRequirements", reinterpret_cast<PFN_vkVoidFunction>(GetImageSparseMemoryRequirements) }, 630 { "vkGetImageSubresourceLayout", reinterpret_cast<PFN_vkVoidFunction>(GetImageSubresourceLayout) }, 631 { "vkGetInstanceProcAddr", reinterpret_cast<PFN_vkVoidFunction>(GetInstanceProcAddr) }, 632 { "vkGetPipelineCacheData", reinterpret_cast<PFN_vkVoidFunction>(GetPipelineCacheData) }, 633 { "vkGetQueryPoolResults", reinterpret_cast<PFN_vkVoidFunction>(GetQueryPoolResults) }, 634 { "vkGetRenderAreaGranularity", reinterpret_cast<PFN_vkVoidFunction>(GetRenderAreaGranularity) }, 635 { "vkGetSwapchainImagesKHR", reinterpret_cast<PFN_vkVoidFunction>(GetSwapchainImagesKHR) }, 636 { "vkInvalidateMappedMemoryRanges", reinterpret_cast<PFN_vkVoidFunction>(InvalidateMappedMemoryRanges) }, 637 { "vkMapMemory", reinterpret_cast<PFN_vkVoidFunction>(MapMemory) }, 638 { "vkMergePipelineCaches", reinterpret_cast<PFN_vkVoidFunction>(MergePipelineCaches) }, 639 { "vkQueueBindSparse", reinterpret_cast<PFN_vkVoidFunction>(QueueBindSparse) }, 640 { "vkQueuePresentKHR", reinterpret_cast<PFN_vkVoidFunction>(QueuePresentKHR) }, 641 { "vkQueueSubmit", reinterpret_cast<PFN_vkVoidFunction>(QueueSubmit) }, 642 { "vkQueueWaitIdle", reinterpret_cast<PFN_vkVoidFunction>(QueueWaitIdle) }, 643 { "vkResetCommandBuffer", reinterpret_cast<PFN_vkVoidFunction>(ResetCommandBuffer) }, 644 { "vkResetCommandPool", reinterpret_cast<PFN_vkVoidFunction>(ResetCommandPool) }, 645 { "vkResetDescriptorPool", reinterpret_cast<PFN_vkVoidFunction>(ResetDescriptorPool) }, 646 { "vkResetEvent", reinterpret_cast<PFN_vkVoidFunction>(ResetEvent) }, 647 { "vkResetFences", reinterpret_cast<PFN_vkVoidFunction>(ResetFences) }, 648 { "vkSetEvent", reinterpret_cast<PFN_vkVoidFunction>(SetEvent) }, 649 { "vkUnmapMemory", reinterpret_cast<PFN_vkVoidFunction>(UnmapMemory) }, 650 { "vkUpdateDescriptorSets", reinterpret_cast<PFN_vkVoidFunction>(UpdateDescriptorSets) }, 651 { "vkWaitForFences", reinterpret_cast<PFN_vkVoidFunction>(WaitForFences) }, 652 }; 653 // clang-format on 654 constexpr size_t count = sizeof(hooks) / sizeof(hooks[0]); 655 auto hook = std::lower_bound( 656 hooks, hooks + count, pName, 657 [](const Hook& h, const char* n) { return strcmp(h.name, n) < 0; }); 658 if (hook < hooks + count && strcmp(hook->name, pName) == 0) { 659 if (!hook->proc) { 660 vulkan::driver::Logger(instance).Err( 661 instance, "invalid vkGetInstanceProcAddr(%p, \"%s\") call", 662 instance, pName); 663 } 664 return hook->proc; 665 } 666 // clang-format off 667 668 return GetData(instance).dispatch.GetInstanceProcAddr(instance, pName); 669} 670 671VKAPI_ATTR void GetPhysicalDeviceProperties(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties) { 672 GetData(physicalDevice).dispatch.GetPhysicalDeviceProperties(physicalDevice, pProperties); 673} 674 675VKAPI_ATTR void GetPhysicalDeviceQueueFamilyProperties(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties) { 676 GetData(physicalDevice).dispatch.GetPhysicalDeviceQueueFamilyProperties(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties); 677} 678 679VKAPI_ATTR void GetPhysicalDeviceMemoryProperties(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties) { 680 GetData(physicalDevice).dispatch.GetPhysicalDeviceMemoryProperties(physicalDevice, pMemoryProperties); 681} 682 683VKAPI_ATTR void GetPhysicalDeviceFeatures(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures) { 684 GetData(physicalDevice).dispatch.GetPhysicalDeviceFeatures(physicalDevice, pFeatures); 685} 686 687VKAPI_ATTR void GetPhysicalDeviceFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties) { 688 GetData(physicalDevice).dispatch.GetPhysicalDeviceFormatProperties(physicalDevice, format, pFormatProperties); 689} 690 691VKAPI_ATTR VkResult GetPhysicalDeviceImageFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties) { 692 return GetData(physicalDevice).dispatch.GetPhysicalDeviceImageFormatProperties(physicalDevice, format, type, tiling, usage, flags, pImageFormatProperties); 693} 694 695VKAPI_ATTR void GetDeviceQueue(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue) { 696 GetData(device).dispatch.GetDeviceQueue(device, queueFamilyIndex, queueIndex, pQueue); 697} 698 699VKAPI_ATTR VkResult QueueSubmit(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence) { 700 return GetData(queue).dispatch.QueueSubmit(queue, submitCount, pSubmits, fence); 701} 702 703VKAPI_ATTR VkResult QueueWaitIdle(VkQueue queue) { 704 return GetData(queue).dispatch.QueueWaitIdle(queue); 705} 706 707VKAPI_ATTR VkResult DeviceWaitIdle(VkDevice device) { 708 return GetData(device).dispatch.DeviceWaitIdle(device); 709} 710 711VKAPI_ATTR VkResult AllocateMemory(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory) { 712 return GetData(device).dispatch.AllocateMemory(device, pAllocateInfo, pAllocator, pMemory); 713} 714 715VKAPI_ATTR void FreeMemory(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator) { 716 GetData(device).dispatch.FreeMemory(device, memory, pAllocator); 717} 718 719VKAPI_ATTR VkResult MapMemory(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData) { 720 return GetData(device).dispatch.MapMemory(device, memory, offset, size, flags, ppData); 721} 722 723VKAPI_ATTR void UnmapMemory(VkDevice device, VkDeviceMemory memory) { 724 GetData(device).dispatch.UnmapMemory(device, memory); 725} 726 727VKAPI_ATTR VkResult FlushMappedMemoryRanges(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges) { 728 return GetData(device).dispatch.FlushMappedMemoryRanges(device, memoryRangeCount, pMemoryRanges); 729} 730 731VKAPI_ATTR VkResult InvalidateMappedMemoryRanges(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges) { 732 return GetData(device).dispatch.InvalidateMappedMemoryRanges(device, memoryRangeCount, pMemoryRanges); 733} 734 735VKAPI_ATTR void GetDeviceMemoryCommitment(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes) { 736 GetData(device).dispatch.GetDeviceMemoryCommitment(device, memory, pCommittedMemoryInBytes); 737} 738 739VKAPI_ATTR void GetBufferMemoryRequirements(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements) { 740 GetData(device).dispatch.GetBufferMemoryRequirements(device, buffer, pMemoryRequirements); 741} 742 743VKAPI_ATTR VkResult BindBufferMemory(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset) { 744 return GetData(device).dispatch.BindBufferMemory(device, buffer, memory, memoryOffset); 745} 746 747VKAPI_ATTR void GetImageMemoryRequirements(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements) { 748 GetData(device).dispatch.GetImageMemoryRequirements(device, image, pMemoryRequirements); 749} 750 751VKAPI_ATTR VkResult BindImageMemory(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset) { 752 return GetData(device).dispatch.BindImageMemory(device, image, memory, memoryOffset); 753} 754 755VKAPI_ATTR void GetImageSparseMemoryRequirements(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements) { 756 GetData(device).dispatch.GetImageSparseMemoryRequirements(device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements); 757} 758 759VKAPI_ATTR void GetPhysicalDeviceSparseImageFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties) { 760 GetData(physicalDevice).dispatch.GetPhysicalDeviceSparseImageFormatProperties(physicalDevice, format, type, samples, usage, tiling, pPropertyCount, pProperties); 761} 762 763VKAPI_ATTR VkResult QueueBindSparse(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence) { 764 return GetData(queue).dispatch.QueueBindSparse(queue, bindInfoCount, pBindInfo, fence); 765} 766 767VKAPI_ATTR VkResult CreateFence(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence) { 768 return GetData(device).dispatch.CreateFence(device, pCreateInfo, pAllocator, pFence); 769} 770 771VKAPI_ATTR void DestroyFence(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator) { 772 GetData(device).dispatch.DestroyFence(device, fence, pAllocator); 773} 774 775VKAPI_ATTR VkResult ResetFences(VkDevice device, uint32_t fenceCount, const VkFence* pFences) { 776 return GetData(device).dispatch.ResetFences(device, fenceCount, pFences); 777} 778 779VKAPI_ATTR VkResult GetFenceStatus(VkDevice device, VkFence fence) { 780 return GetData(device).dispatch.GetFenceStatus(device, fence); 781} 782 783VKAPI_ATTR VkResult WaitForFences(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout) { 784 return GetData(device).dispatch.WaitForFences(device, fenceCount, pFences, waitAll, timeout); 785} 786 787VKAPI_ATTR VkResult CreateSemaphore(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore) { 788 return GetData(device).dispatch.CreateSemaphore(device, pCreateInfo, pAllocator, pSemaphore); 789} 790 791VKAPI_ATTR void DestroySemaphore(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator) { 792 GetData(device).dispatch.DestroySemaphore(device, semaphore, pAllocator); 793} 794 795VKAPI_ATTR VkResult CreateEvent(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent) { 796 return GetData(device).dispatch.CreateEvent(device, pCreateInfo, pAllocator, pEvent); 797} 798 799VKAPI_ATTR void DestroyEvent(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator) { 800 GetData(device).dispatch.DestroyEvent(device, event, pAllocator); 801} 802 803VKAPI_ATTR VkResult GetEventStatus(VkDevice device, VkEvent event) { 804 return GetData(device).dispatch.GetEventStatus(device, event); 805} 806 807VKAPI_ATTR VkResult SetEvent(VkDevice device, VkEvent event) { 808 return GetData(device).dispatch.SetEvent(device, event); 809} 810 811VKAPI_ATTR VkResult ResetEvent(VkDevice device, VkEvent event) { 812 return GetData(device).dispatch.ResetEvent(device, event); 813} 814 815VKAPI_ATTR VkResult CreateQueryPool(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool) { 816 return GetData(device).dispatch.CreateQueryPool(device, pCreateInfo, pAllocator, pQueryPool); 817} 818 819VKAPI_ATTR void DestroyQueryPool(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator) { 820 GetData(device).dispatch.DestroyQueryPool(device, queryPool, pAllocator); 821} 822 823VKAPI_ATTR VkResult GetQueryPoolResults(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags) { 824 return GetData(device).dispatch.GetQueryPoolResults(device, queryPool, firstQuery, queryCount, dataSize, pData, stride, flags); 825} 826 827VKAPI_ATTR VkResult CreateBuffer(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer) { 828 return GetData(device).dispatch.CreateBuffer(device, pCreateInfo, pAllocator, pBuffer); 829} 830 831VKAPI_ATTR void DestroyBuffer(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator) { 832 GetData(device).dispatch.DestroyBuffer(device, buffer, pAllocator); 833} 834 835VKAPI_ATTR VkResult CreateBufferView(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView) { 836 return GetData(device).dispatch.CreateBufferView(device, pCreateInfo, pAllocator, pView); 837} 838 839VKAPI_ATTR void DestroyBufferView(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator) { 840 GetData(device).dispatch.DestroyBufferView(device, bufferView, pAllocator); 841} 842 843VKAPI_ATTR VkResult CreateImage(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage) { 844 return GetData(device).dispatch.CreateImage(device, pCreateInfo, pAllocator, pImage); 845} 846 847VKAPI_ATTR void DestroyImage(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator) { 848 GetData(device).dispatch.DestroyImage(device, image, pAllocator); 849} 850 851VKAPI_ATTR void GetImageSubresourceLayout(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout) { 852 GetData(device).dispatch.GetImageSubresourceLayout(device, image, pSubresource, pLayout); 853} 854 855VKAPI_ATTR VkResult CreateImageView(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView) { 856 return GetData(device).dispatch.CreateImageView(device, pCreateInfo, pAllocator, pView); 857} 858 859VKAPI_ATTR void DestroyImageView(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator) { 860 GetData(device).dispatch.DestroyImageView(device, imageView, pAllocator); 861} 862 863VKAPI_ATTR VkResult CreateShaderModule(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule) { 864 return GetData(device).dispatch.CreateShaderModule(device, pCreateInfo, pAllocator, pShaderModule); 865} 866 867VKAPI_ATTR void DestroyShaderModule(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator) { 868 GetData(device).dispatch.DestroyShaderModule(device, shaderModule, pAllocator); 869} 870 871VKAPI_ATTR VkResult CreatePipelineCache(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache) { 872 return GetData(device).dispatch.CreatePipelineCache(device, pCreateInfo, pAllocator, pPipelineCache); 873} 874 875VKAPI_ATTR void DestroyPipelineCache(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator) { 876 GetData(device).dispatch.DestroyPipelineCache(device, pipelineCache, pAllocator); 877} 878 879VKAPI_ATTR VkResult GetPipelineCacheData(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData) { 880 return GetData(device).dispatch.GetPipelineCacheData(device, pipelineCache, pDataSize, pData); 881} 882 883VKAPI_ATTR VkResult MergePipelineCaches(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches) { 884 return GetData(device).dispatch.MergePipelineCaches(device, dstCache, srcCacheCount, pSrcCaches); 885} 886 887VKAPI_ATTR VkResult CreateGraphicsPipelines(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) { 888 return GetData(device).dispatch.CreateGraphicsPipelines(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines); 889} 890 891VKAPI_ATTR VkResult CreateComputePipelines(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) { 892 return GetData(device).dispatch.CreateComputePipelines(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines); 893} 894 895VKAPI_ATTR void DestroyPipeline(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator) { 896 GetData(device).dispatch.DestroyPipeline(device, pipeline, pAllocator); 897} 898 899VKAPI_ATTR VkResult CreatePipelineLayout(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout) { 900 return GetData(device).dispatch.CreatePipelineLayout(device, pCreateInfo, pAllocator, pPipelineLayout); 901} 902 903VKAPI_ATTR void DestroyPipelineLayout(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator) { 904 GetData(device).dispatch.DestroyPipelineLayout(device, pipelineLayout, pAllocator); 905} 906 907VKAPI_ATTR VkResult CreateSampler(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler) { 908 return GetData(device).dispatch.CreateSampler(device, pCreateInfo, pAllocator, pSampler); 909} 910 911VKAPI_ATTR void DestroySampler(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator) { 912 GetData(device).dispatch.DestroySampler(device, sampler, pAllocator); 913} 914 915VKAPI_ATTR VkResult CreateDescriptorSetLayout(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout) { 916 return GetData(device).dispatch.CreateDescriptorSetLayout(device, pCreateInfo, pAllocator, pSetLayout); 917} 918 919VKAPI_ATTR void DestroyDescriptorSetLayout(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator) { 920 GetData(device).dispatch.DestroyDescriptorSetLayout(device, descriptorSetLayout, pAllocator); 921} 922 923VKAPI_ATTR VkResult CreateDescriptorPool(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool) { 924 return GetData(device).dispatch.CreateDescriptorPool(device, pCreateInfo, pAllocator, pDescriptorPool); 925} 926 927VKAPI_ATTR void DestroyDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator) { 928 GetData(device).dispatch.DestroyDescriptorPool(device, descriptorPool, pAllocator); 929} 930 931VKAPI_ATTR VkResult ResetDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags) { 932 return GetData(device).dispatch.ResetDescriptorPool(device, descriptorPool, flags); 933} 934 935VKAPI_ATTR VkResult AllocateDescriptorSets(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets) { 936 return GetData(device).dispatch.AllocateDescriptorSets(device, pAllocateInfo, pDescriptorSets); 937} 938 939VKAPI_ATTR VkResult FreeDescriptorSets(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets) { 940 return GetData(device).dispatch.FreeDescriptorSets(device, descriptorPool, descriptorSetCount, pDescriptorSets); 941} 942 943VKAPI_ATTR void UpdateDescriptorSets(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies) { 944 GetData(device).dispatch.UpdateDescriptorSets(device, descriptorWriteCount, pDescriptorWrites, descriptorCopyCount, pDescriptorCopies); 945} 946 947VKAPI_ATTR VkResult CreateFramebuffer(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer) { 948 return GetData(device).dispatch.CreateFramebuffer(device, pCreateInfo, pAllocator, pFramebuffer); 949} 950 951VKAPI_ATTR void DestroyFramebuffer(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator) { 952 GetData(device).dispatch.DestroyFramebuffer(device, framebuffer, pAllocator); 953} 954 955VKAPI_ATTR VkResult CreateRenderPass(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass) { 956 return GetData(device).dispatch.CreateRenderPass(device, pCreateInfo, pAllocator, pRenderPass); 957} 958 959VKAPI_ATTR void DestroyRenderPass(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator) { 960 GetData(device).dispatch.DestroyRenderPass(device, renderPass, pAllocator); 961} 962 963VKAPI_ATTR void GetRenderAreaGranularity(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity) { 964 GetData(device).dispatch.GetRenderAreaGranularity(device, renderPass, pGranularity); 965} 966 967VKAPI_ATTR VkResult CreateCommandPool(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool) { 968 return GetData(device).dispatch.CreateCommandPool(device, pCreateInfo, pAllocator, pCommandPool); 969} 970 971VKAPI_ATTR void DestroyCommandPool(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator) { 972 GetData(device).dispatch.DestroyCommandPool(device, commandPool, pAllocator); 973} 974 975VKAPI_ATTR VkResult ResetCommandPool(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags) { 976 return GetData(device).dispatch.ResetCommandPool(device, commandPool, flags); 977} 978 979VKAPI_ATTR VkResult AllocateCommandBuffers(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers) { 980 return GetData(device).dispatch.AllocateCommandBuffers(device, pAllocateInfo, pCommandBuffers); 981} 982 983VKAPI_ATTR void FreeCommandBuffers(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers) { 984 GetData(device).dispatch.FreeCommandBuffers(device, commandPool, commandBufferCount, pCommandBuffers); 985} 986 987VKAPI_ATTR VkResult BeginCommandBuffer(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo) { 988 return GetData(commandBuffer).dispatch.BeginCommandBuffer(commandBuffer, pBeginInfo); 989} 990 991VKAPI_ATTR VkResult EndCommandBuffer(VkCommandBuffer commandBuffer) { 992 return GetData(commandBuffer).dispatch.EndCommandBuffer(commandBuffer); 993} 994 995VKAPI_ATTR VkResult ResetCommandBuffer(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags) { 996 return GetData(commandBuffer).dispatch.ResetCommandBuffer(commandBuffer, flags); 997} 998 999VKAPI_ATTR void CmdBindPipeline(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline) { 1000 GetData(commandBuffer).dispatch.CmdBindPipeline(commandBuffer, pipelineBindPoint, pipeline); 1001} 1002 1003VKAPI_ATTR void CmdSetViewport(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports) { 1004 GetData(commandBuffer).dispatch.CmdSetViewport(commandBuffer, firstViewport, viewportCount, pViewports); 1005} 1006 1007VKAPI_ATTR void CmdSetScissor(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors) { 1008 GetData(commandBuffer).dispatch.CmdSetScissor(commandBuffer, firstScissor, scissorCount, pScissors); 1009} 1010 1011VKAPI_ATTR void CmdSetLineWidth(VkCommandBuffer commandBuffer, float lineWidth) { 1012 GetData(commandBuffer).dispatch.CmdSetLineWidth(commandBuffer, lineWidth); 1013} 1014 1015VKAPI_ATTR void CmdSetDepthBias(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor) { 1016 GetData(commandBuffer).dispatch.CmdSetDepthBias(commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor); 1017} 1018 1019VKAPI_ATTR void CmdSetBlendConstants(VkCommandBuffer commandBuffer, const float blendConstants[4]) { 1020 GetData(commandBuffer).dispatch.CmdSetBlendConstants(commandBuffer, blendConstants); 1021} 1022 1023VKAPI_ATTR void CmdSetDepthBounds(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds) { 1024 GetData(commandBuffer).dispatch.CmdSetDepthBounds(commandBuffer, minDepthBounds, maxDepthBounds); 1025} 1026 1027VKAPI_ATTR void CmdSetStencilCompareMask(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask) { 1028 GetData(commandBuffer).dispatch.CmdSetStencilCompareMask(commandBuffer, faceMask, compareMask); 1029} 1030 1031VKAPI_ATTR void CmdSetStencilWriteMask(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask) { 1032 GetData(commandBuffer).dispatch.CmdSetStencilWriteMask(commandBuffer, faceMask, writeMask); 1033} 1034 1035VKAPI_ATTR void CmdSetStencilReference(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference) { 1036 GetData(commandBuffer).dispatch.CmdSetStencilReference(commandBuffer, faceMask, reference); 1037} 1038 1039VKAPI_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) { 1040 GetData(commandBuffer).dispatch.CmdBindDescriptorSets(commandBuffer, pipelineBindPoint, layout, firstSet, descriptorSetCount, pDescriptorSets, dynamicOffsetCount, pDynamicOffsets); 1041} 1042 1043VKAPI_ATTR void CmdBindIndexBuffer(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType) { 1044 GetData(commandBuffer).dispatch.CmdBindIndexBuffer(commandBuffer, buffer, offset, indexType); 1045} 1046 1047VKAPI_ATTR void CmdBindVertexBuffers(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets) { 1048 GetData(commandBuffer).dispatch.CmdBindVertexBuffers(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets); 1049} 1050 1051VKAPI_ATTR void CmdDraw(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance) { 1052 GetData(commandBuffer).dispatch.CmdDraw(commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance); 1053} 1054 1055VKAPI_ATTR void CmdDrawIndexed(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance) { 1056 GetData(commandBuffer).dispatch.CmdDrawIndexed(commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance); 1057} 1058 1059VKAPI_ATTR void CmdDrawIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride) { 1060 GetData(commandBuffer).dispatch.CmdDrawIndirect(commandBuffer, buffer, offset, drawCount, stride); 1061} 1062 1063VKAPI_ATTR void CmdDrawIndexedIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride) { 1064 GetData(commandBuffer).dispatch.CmdDrawIndexedIndirect(commandBuffer, buffer, offset, drawCount, stride); 1065} 1066 1067VKAPI_ATTR void CmdDispatch(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ) { 1068 GetData(commandBuffer).dispatch.CmdDispatch(commandBuffer, groupCountX, groupCountY, groupCountZ); 1069} 1070 1071VKAPI_ATTR void CmdDispatchIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset) { 1072 GetData(commandBuffer).dispatch.CmdDispatchIndirect(commandBuffer, buffer, offset); 1073} 1074 1075VKAPI_ATTR void CmdCopyBuffer(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions) { 1076 GetData(commandBuffer).dispatch.CmdCopyBuffer(commandBuffer, srcBuffer, dstBuffer, regionCount, pRegions); 1077} 1078 1079VKAPI_ATTR void CmdCopyImage(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions) { 1080 GetData(commandBuffer).dispatch.CmdCopyImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions); 1081} 1082 1083VKAPI_ATTR void CmdBlitImage(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter) { 1084 GetData(commandBuffer).dispatch.CmdBlitImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter); 1085} 1086 1087VKAPI_ATTR void CmdCopyBufferToImage(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions) { 1088 GetData(commandBuffer).dispatch.CmdCopyBufferToImage(commandBuffer, srcBuffer, dstImage, dstImageLayout, regionCount, pRegions); 1089} 1090 1091VKAPI_ATTR void CmdCopyImageToBuffer(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions) { 1092 GetData(commandBuffer).dispatch.CmdCopyImageToBuffer(commandBuffer, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions); 1093} 1094 1095VKAPI_ATTR void CmdUpdateBuffer(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData) { 1096 GetData(commandBuffer).dispatch.CmdUpdateBuffer(commandBuffer, dstBuffer, dstOffset, dataSize, pData); 1097} 1098 1099VKAPI_ATTR void CmdFillBuffer(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data) { 1100 GetData(commandBuffer).dispatch.CmdFillBuffer(commandBuffer, dstBuffer, dstOffset, size, data); 1101} 1102 1103VKAPI_ATTR void CmdClearColorImage(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges) { 1104 GetData(commandBuffer).dispatch.CmdClearColorImage(commandBuffer, image, imageLayout, pColor, rangeCount, pRanges); 1105} 1106 1107VKAPI_ATTR void CmdClearDepthStencilImage(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges) { 1108 GetData(commandBuffer).dispatch.CmdClearDepthStencilImage(commandBuffer, image, imageLayout, pDepthStencil, rangeCount, pRanges); 1109} 1110 1111VKAPI_ATTR void CmdClearAttachments(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects) { 1112 GetData(commandBuffer).dispatch.CmdClearAttachments(commandBuffer, attachmentCount, pAttachments, rectCount, pRects); 1113} 1114 1115VKAPI_ATTR void CmdResolveImage(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions) { 1116 GetData(commandBuffer).dispatch.CmdResolveImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions); 1117} 1118 1119VKAPI_ATTR void CmdSetEvent(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask) { 1120 GetData(commandBuffer).dispatch.CmdSetEvent(commandBuffer, event, stageMask); 1121} 1122 1123VKAPI_ATTR void CmdResetEvent(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask) { 1124 GetData(commandBuffer).dispatch.CmdResetEvent(commandBuffer, event, stageMask); 1125} 1126 1127VKAPI_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) { 1128 GetData(commandBuffer).dispatch.CmdWaitEvents(commandBuffer, eventCount, pEvents, srcStageMask, dstStageMask, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers); 1129} 1130 1131VKAPI_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) { 1132 GetData(commandBuffer).dispatch.CmdPipelineBarrier(commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers); 1133} 1134 1135VKAPI_ATTR void CmdBeginQuery(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags) { 1136 GetData(commandBuffer).dispatch.CmdBeginQuery(commandBuffer, queryPool, query, flags); 1137} 1138 1139VKAPI_ATTR void CmdEndQuery(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query) { 1140 GetData(commandBuffer).dispatch.CmdEndQuery(commandBuffer, queryPool, query); 1141} 1142 1143VKAPI_ATTR void CmdResetQueryPool(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount) { 1144 GetData(commandBuffer).dispatch.CmdResetQueryPool(commandBuffer, queryPool, firstQuery, queryCount); 1145} 1146 1147VKAPI_ATTR void CmdWriteTimestamp(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query) { 1148 GetData(commandBuffer).dispatch.CmdWriteTimestamp(commandBuffer, pipelineStage, queryPool, query); 1149} 1150 1151VKAPI_ATTR void CmdCopyQueryPoolResults(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags) { 1152 GetData(commandBuffer).dispatch.CmdCopyQueryPoolResults(commandBuffer, queryPool, firstQuery, queryCount, dstBuffer, dstOffset, stride, flags); 1153} 1154 1155VKAPI_ATTR void CmdPushConstants(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues) { 1156 GetData(commandBuffer).dispatch.CmdPushConstants(commandBuffer, layout, stageFlags, offset, size, pValues); 1157} 1158 1159VKAPI_ATTR void CmdBeginRenderPass(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents) { 1160 GetData(commandBuffer).dispatch.CmdBeginRenderPass(commandBuffer, pRenderPassBegin, contents); 1161} 1162 1163VKAPI_ATTR void CmdNextSubpass(VkCommandBuffer commandBuffer, VkSubpassContents contents) { 1164 GetData(commandBuffer).dispatch.CmdNextSubpass(commandBuffer, contents); 1165} 1166 1167VKAPI_ATTR void CmdEndRenderPass(VkCommandBuffer commandBuffer) { 1168 GetData(commandBuffer).dispatch.CmdEndRenderPass(commandBuffer); 1169} 1170 1171VKAPI_ATTR void CmdExecuteCommands(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers) { 1172 GetData(commandBuffer).dispatch.CmdExecuteCommands(commandBuffer, commandBufferCount, pCommandBuffers); 1173} 1174 1175VKAPI_ATTR void DestroySurfaceKHR(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator) { 1176 GetData(instance).dispatch.DestroySurfaceKHR(instance, surface, pAllocator); 1177} 1178 1179VKAPI_ATTR VkResult GetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported) { 1180 return GetData(physicalDevice).dispatch.GetPhysicalDeviceSurfaceSupportKHR(physicalDevice, queueFamilyIndex, surface, pSupported); 1181} 1182 1183VKAPI_ATTR VkResult GetPhysicalDeviceSurfaceCapabilitiesKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities) { 1184 return GetData(physicalDevice).dispatch.GetPhysicalDeviceSurfaceCapabilitiesKHR(physicalDevice, surface, pSurfaceCapabilities); 1185} 1186 1187VKAPI_ATTR VkResult GetPhysicalDeviceSurfaceFormatsKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats) { 1188 return GetData(physicalDevice).dispatch.GetPhysicalDeviceSurfaceFormatsKHR(physicalDevice, surface, pSurfaceFormatCount, pSurfaceFormats); 1189} 1190 1191VKAPI_ATTR VkResult GetPhysicalDeviceSurfacePresentModesKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes) { 1192 return GetData(physicalDevice).dispatch.GetPhysicalDeviceSurfacePresentModesKHR(physicalDevice, surface, pPresentModeCount, pPresentModes); 1193} 1194 1195VKAPI_ATTR VkResult CreateSwapchainKHR(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain) { 1196 return GetData(device).dispatch.CreateSwapchainKHR(device, pCreateInfo, pAllocator, pSwapchain); 1197} 1198 1199VKAPI_ATTR void DestroySwapchainKHR(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator) { 1200 GetData(device).dispatch.DestroySwapchainKHR(device, swapchain, pAllocator); 1201} 1202 1203VKAPI_ATTR VkResult GetSwapchainImagesKHR(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages) { 1204 return GetData(device).dispatch.GetSwapchainImagesKHR(device, swapchain, pSwapchainImageCount, pSwapchainImages); 1205} 1206 1207VKAPI_ATTR VkResult AcquireNextImageKHR(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex) { 1208 return GetData(device).dispatch.AcquireNextImageKHR(device, swapchain, timeout, semaphore, fence, pImageIndex); 1209} 1210 1211VKAPI_ATTR VkResult QueuePresentKHR(VkQueue queue, const VkPresentInfoKHR* pPresentInfo) { 1212 return GetData(queue).dispatch.QueuePresentKHR(queue, pPresentInfo); 1213} 1214 1215VKAPI_ATTR VkResult CreateAndroidSurfaceKHR(VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) { 1216 return GetData(instance).dispatch.CreateAndroidSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface); 1217} 1218 1219 1220} // anonymous namespace 1221 1222// clang-format on 1223 1224} // namespace api 1225} // namespace vulkan 1226 1227// clang-format off 1228 1229__attribute__((visibility("default"))) 1230VKAPI_ATTR VkResult vkCreateInstance(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance) { 1231 return vulkan::api::CreateInstance(pCreateInfo, pAllocator, pInstance); 1232} 1233 1234__attribute__((visibility("default"))) 1235VKAPI_ATTR void vkDestroyInstance(VkInstance instance, const VkAllocationCallbacks* pAllocator) { 1236 vulkan::api::DestroyInstance(instance, pAllocator); 1237} 1238 1239__attribute__((visibility("default"))) 1240VKAPI_ATTR VkResult vkEnumeratePhysicalDevices(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices) { 1241 return vulkan::api::EnumeratePhysicalDevices(instance, pPhysicalDeviceCount, pPhysicalDevices); 1242} 1243 1244__attribute__((visibility("default"))) 1245VKAPI_ATTR PFN_vkVoidFunction vkGetDeviceProcAddr(VkDevice device, const char* pName) { 1246 return vulkan::api::GetDeviceProcAddr(device, pName); 1247} 1248 1249__attribute__((visibility("default"))) 1250VKAPI_ATTR PFN_vkVoidFunction vkGetInstanceProcAddr(VkInstance instance, const char* pName) { 1251 return vulkan::api::GetInstanceProcAddr(instance, pName); 1252} 1253 1254__attribute__((visibility("default"))) 1255VKAPI_ATTR void vkGetPhysicalDeviceProperties(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties) { 1256 vulkan::api::GetPhysicalDeviceProperties(physicalDevice, pProperties); 1257} 1258 1259__attribute__((visibility("default"))) 1260VKAPI_ATTR void vkGetPhysicalDeviceQueueFamilyProperties(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties) { 1261 vulkan::api::GetPhysicalDeviceQueueFamilyProperties(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties); 1262} 1263 1264__attribute__((visibility("default"))) 1265VKAPI_ATTR void vkGetPhysicalDeviceMemoryProperties(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties) { 1266 vulkan::api::GetPhysicalDeviceMemoryProperties(physicalDevice, pMemoryProperties); 1267} 1268 1269__attribute__((visibility("default"))) 1270VKAPI_ATTR void vkGetPhysicalDeviceFeatures(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures) { 1271 vulkan::api::GetPhysicalDeviceFeatures(physicalDevice, pFeatures); 1272} 1273 1274__attribute__((visibility("default"))) 1275VKAPI_ATTR void vkGetPhysicalDeviceFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties) { 1276 vulkan::api::GetPhysicalDeviceFormatProperties(physicalDevice, format, pFormatProperties); 1277} 1278 1279__attribute__((visibility("default"))) 1280VKAPI_ATTR VkResult vkGetPhysicalDeviceImageFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties) { 1281 return vulkan::api::GetPhysicalDeviceImageFormatProperties(physicalDevice, format, type, tiling, usage, flags, pImageFormatProperties); 1282} 1283 1284__attribute__((visibility("default"))) 1285VKAPI_ATTR VkResult vkCreateDevice(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice) { 1286 return vulkan::api::CreateDevice(physicalDevice, pCreateInfo, pAllocator, pDevice); 1287} 1288 1289__attribute__((visibility("default"))) 1290VKAPI_ATTR void vkDestroyDevice(VkDevice device, const VkAllocationCallbacks* pAllocator) { 1291 vulkan::api::DestroyDevice(device, pAllocator); 1292} 1293 1294__attribute__((visibility("default"))) 1295VKAPI_ATTR VkResult vkEnumerateInstanceLayerProperties(uint32_t* pPropertyCount, VkLayerProperties* pProperties) { 1296 return vulkan::api::EnumerateInstanceLayerProperties(pPropertyCount, pProperties); 1297} 1298 1299__attribute__((visibility("default"))) 1300VKAPI_ATTR VkResult vkEnumerateInstanceExtensionProperties(const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties) { 1301 return vulkan::api::EnumerateInstanceExtensionProperties(pLayerName, pPropertyCount, pProperties); 1302} 1303 1304__attribute__((visibility("default"))) 1305VKAPI_ATTR VkResult vkEnumerateDeviceLayerProperties(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties) { 1306 return vulkan::api::EnumerateDeviceLayerProperties(physicalDevice, pPropertyCount, pProperties); 1307} 1308 1309__attribute__((visibility("default"))) 1310VKAPI_ATTR VkResult vkEnumerateDeviceExtensionProperties(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties) { 1311 return vulkan::api::EnumerateDeviceExtensionProperties(physicalDevice, pLayerName, pPropertyCount, pProperties); 1312} 1313 1314__attribute__((visibility("default"))) 1315VKAPI_ATTR void vkGetDeviceQueue(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue) { 1316 vulkan::api::GetDeviceQueue(device, queueFamilyIndex, queueIndex, pQueue); 1317} 1318 1319__attribute__((visibility("default"))) 1320VKAPI_ATTR VkResult vkQueueSubmit(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence) { 1321 return vulkan::api::QueueSubmit(queue, submitCount, pSubmits, fence); 1322} 1323 1324__attribute__((visibility("default"))) 1325VKAPI_ATTR VkResult vkQueueWaitIdle(VkQueue queue) { 1326 return vulkan::api::QueueWaitIdle(queue); 1327} 1328 1329__attribute__((visibility("default"))) 1330VKAPI_ATTR VkResult vkDeviceWaitIdle(VkDevice device) { 1331 return vulkan::api::DeviceWaitIdle(device); 1332} 1333 1334__attribute__((visibility("default"))) 1335VKAPI_ATTR VkResult vkAllocateMemory(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory) { 1336 return vulkan::api::AllocateMemory(device, pAllocateInfo, pAllocator, pMemory); 1337} 1338 1339__attribute__((visibility("default"))) 1340VKAPI_ATTR void vkFreeMemory(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator) { 1341 vulkan::api::FreeMemory(device, memory, pAllocator); 1342} 1343 1344__attribute__((visibility("default"))) 1345VKAPI_ATTR VkResult vkMapMemory(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData) { 1346 return vulkan::api::MapMemory(device, memory, offset, size, flags, ppData); 1347} 1348 1349__attribute__((visibility("default"))) 1350VKAPI_ATTR void vkUnmapMemory(VkDevice device, VkDeviceMemory memory) { 1351 vulkan::api::UnmapMemory(device, memory); 1352} 1353 1354__attribute__((visibility("default"))) 1355VKAPI_ATTR VkResult vkFlushMappedMemoryRanges(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges) { 1356 return vulkan::api::FlushMappedMemoryRanges(device, memoryRangeCount, pMemoryRanges); 1357} 1358 1359__attribute__((visibility("default"))) 1360VKAPI_ATTR VkResult vkInvalidateMappedMemoryRanges(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges) { 1361 return vulkan::api::InvalidateMappedMemoryRanges(device, memoryRangeCount, pMemoryRanges); 1362} 1363 1364__attribute__((visibility("default"))) 1365VKAPI_ATTR void vkGetDeviceMemoryCommitment(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes) { 1366 vulkan::api::GetDeviceMemoryCommitment(device, memory, pCommittedMemoryInBytes); 1367} 1368 1369__attribute__((visibility("default"))) 1370VKAPI_ATTR void vkGetBufferMemoryRequirements(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements) { 1371 vulkan::api::GetBufferMemoryRequirements(device, buffer, pMemoryRequirements); 1372} 1373 1374__attribute__((visibility("default"))) 1375VKAPI_ATTR VkResult vkBindBufferMemory(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset) { 1376 return vulkan::api::BindBufferMemory(device, buffer, memory, memoryOffset); 1377} 1378 1379__attribute__((visibility("default"))) 1380VKAPI_ATTR void vkGetImageMemoryRequirements(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements) { 1381 vulkan::api::GetImageMemoryRequirements(device, image, pMemoryRequirements); 1382} 1383 1384__attribute__((visibility("default"))) 1385VKAPI_ATTR VkResult vkBindImageMemory(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset) { 1386 return vulkan::api::BindImageMemory(device, image, memory, memoryOffset); 1387} 1388 1389__attribute__((visibility("default"))) 1390VKAPI_ATTR void vkGetImageSparseMemoryRequirements(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements) { 1391 vulkan::api::GetImageSparseMemoryRequirements(device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements); 1392} 1393 1394__attribute__((visibility("default"))) 1395VKAPI_ATTR void vkGetPhysicalDeviceSparseImageFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties) { 1396 vulkan::api::GetPhysicalDeviceSparseImageFormatProperties(physicalDevice, format, type, samples, usage, tiling, pPropertyCount, pProperties); 1397} 1398 1399__attribute__((visibility("default"))) 1400VKAPI_ATTR VkResult vkQueueBindSparse(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence) { 1401 return vulkan::api::QueueBindSparse(queue, bindInfoCount, pBindInfo, fence); 1402} 1403 1404__attribute__((visibility("default"))) 1405VKAPI_ATTR VkResult vkCreateFence(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence) { 1406 return vulkan::api::CreateFence(device, pCreateInfo, pAllocator, pFence); 1407} 1408 1409__attribute__((visibility("default"))) 1410VKAPI_ATTR void vkDestroyFence(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator) { 1411 vulkan::api::DestroyFence(device, fence, pAllocator); 1412} 1413 1414__attribute__((visibility("default"))) 1415VKAPI_ATTR VkResult vkResetFences(VkDevice device, uint32_t fenceCount, const VkFence* pFences) { 1416 return vulkan::api::ResetFences(device, fenceCount, pFences); 1417} 1418 1419__attribute__((visibility("default"))) 1420VKAPI_ATTR VkResult vkGetFenceStatus(VkDevice device, VkFence fence) { 1421 return vulkan::api::GetFenceStatus(device, fence); 1422} 1423 1424__attribute__((visibility("default"))) 1425VKAPI_ATTR VkResult vkWaitForFences(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout) { 1426 return vulkan::api::WaitForFences(device, fenceCount, pFences, waitAll, timeout); 1427} 1428 1429__attribute__((visibility("default"))) 1430VKAPI_ATTR VkResult vkCreateSemaphore(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore) { 1431 return vulkan::api::CreateSemaphore(device, pCreateInfo, pAllocator, pSemaphore); 1432} 1433 1434__attribute__((visibility("default"))) 1435VKAPI_ATTR void vkDestroySemaphore(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator) { 1436 vulkan::api::DestroySemaphore(device, semaphore, pAllocator); 1437} 1438 1439__attribute__((visibility("default"))) 1440VKAPI_ATTR VkResult vkCreateEvent(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent) { 1441 return vulkan::api::CreateEvent(device, pCreateInfo, pAllocator, pEvent); 1442} 1443 1444__attribute__((visibility("default"))) 1445VKAPI_ATTR void vkDestroyEvent(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator) { 1446 vulkan::api::DestroyEvent(device, event, pAllocator); 1447} 1448 1449__attribute__((visibility("default"))) 1450VKAPI_ATTR VkResult vkGetEventStatus(VkDevice device, VkEvent event) { 1451 return vulkan::api::GetEventStatus(device, event); 1452} 1453 1454__attribute__((visibility("default"))) 1455VKAPI_ATTR VkResult vkSetEvent(VkDevice device, VkEvent event) { 1456 return vulkan::api::SetEvent(device, event); 1457} 1458 1459__attribute__((visibility("default"))) 1460VKAPI_ATTR VkResult vkResetEvent(VkDevice device, VkEvent event) { 1461 return vulkan::api::ResetEvent(device, event); 1462} 1463 1464__attribute__((visibility("default"))) 1465VKAPI_ATTR VkResult vkCreateQueryPool(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool) { 1466 return vulkan::api::CreateQueryPool(device, pCreateInfo, pAllocator, pQueryPool); 1467} 1468 1469__attribute__((visibility("default"))) 1470VKAPI_ATTR void vkDestroyQueryPool(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator) { 1471 vulkan::api::DestroyQueryPool(device, queryPool, pAllocator); 1472} 1473 1474__attribute__((visibility("default"))) 1475VKAPI_ATTR VkResult vkGetQueryPoolResults(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags) { 1476 return vulkan::api::GetQueryPoolResults(device, queryPool, firstQuery, queryCount, dataSize, pData, stride, flags); 1477} 1478 1479__attribute__((visibility("default"))) 1480VKAPI_ATTR VkResult vkCreateBuffer(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer) { 1481 return vulkan::api::CreateBuffer(device, pCreateInfo, pAllocator, pBuffer); 1482} 1483 1484__attribute__((visibility("default"))) 1485VKAPI_ATTR void vkDestroyBuffer(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator) { 1486 vulkan::api::DestroyBuffer(device, buffer, pAllocator); 1487} 1488 1489__attribute__((visibility("default"))) 1490VKAPI_ATTR VkResult vkCreateBufferView(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView) { 1491 return vulkan::api::CreateBufferView(device, pCreateInfo, pAllocator, pView); 1492} 1493 1494__attribute__((visibility("default"))) 1495VKAPI_ATTR void vkDestroyBufferView(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator) { 1496 vulkan::api::DestroyBufferView(device, bufferView, pAllocator); 1497} 1498 1499__attribute__((visibility("default"))) 1500VKAPI_ATTR VkResult vkCreateImage(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage) { 1501 return vulkan::api::CreateImage(device, pCreateInfo, pAllocator, pImage); 1502} 1503 1504__attribute__((visibility("default"))) 1505VKAPI_ATTR void vkDestroyImage(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator) { 1506 vulkan::api::DestroyImage(device, image, pAllocator); 1507} 1508 1509__attribute__((visibility("default"))) 1510VKAPI_ATTR void vkGetImageSubresourceLayout(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout) { 1511 vulkan::api::GetImageSubresourceLayout(device, image, pSubresource, pLayout); 1512} 1513 1514__attribute__((visibility("default"))) 1515VKAPI_ATTR VkResult vkCreateImageView(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView) { 1516 return vulkan::api::CreateImageView(device, pCreateInfo, pAllocator, pView); 1517} 1518 1519__attribute__((visibility("default"))) 1520VKAPI_ATTR void vkDestroyImageView(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator) { 1521 vulkan::api::DestroyImageView(device, imageView, pAllocator); 1522} 1523 1524__attribute__((visibility("default"))) 1525VKAPI_ATTR VkResult vkCreateShaderModule(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule) { 1526 return vulkan::api::CreateShaderModule(device, pCreateInfo, pAllocator, pShaderModule); 1527} 1528 1529__attribute__((visibility("default"))) 1530VKAPI_ATTR void vkDestroyShaderModule(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator) { 1531 vulkan::api::DestroyShaderModule(device, shaderModule, pAllocator); 1532} 1533 1534__attribute__((visibility("default"))) 1535VKAPI_ATTR VkResult vkCreatePipelineCache(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache) { 1536 return vulkan::api::CreatePipelineCache(device, pCreateInfo, pAllocator, pPipelineCache); 1537} 1538 1539__attribute__((visibility("default"))) 1540VKAPI_ATTR void vkDestroyPipelineCache(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator) { 1541 vulkan::api::DestroyPipelineCache(device, pipelineCache, pAllocator); 1542} 1543 1544__attribute__((visibility("default"))) 1545VKAPI_ATTR VkResult vkGetPipelineCacheData(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData) { 1546 return vulkan::api::GetPipelineCacheData(device, pipelineCache, pDataSize, pData); 1547} 1548 1549__attribute__((visibility("default"))) 1550VKAPI_ATTR VkResult vkMergePipelineCaches(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches) { 1551 return vulkan::api::MergePipelineCaches(device, dstCache, srcCacheCount, pSrcCaches); 1552} 1553 1554__attribute__((visibility("default"))) 1555VKAPI_ATTR VkResult vkCreateGraphicsPipelines(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) { 1556 return vulkan::api::CreateGraphicsPipelines(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines); 1557} 1558 1559__attribute__((visibility("default"))) 1560VKAPI_ATTR VkResult vkCreateComputePipelines(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) { 1561 return vulkan::api::CreateComputePipelines(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines); 1562} 1563 1564__attribute__((visibility("default"))) 1565VKAPI_ATTR void vkDestroyPipeline(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator) { 1566 vulkan::api::DestroyPipeline(device, pipeline, pAllocator); 1567} 1568 1569__attribute__((visibility("default"))) 1570VKAPI_ATTR VkResult vkCreatePipelineLayout(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout) { 1571 return vulkan::api::CreatePipelineLayout(device, pCreateInfo, pAllocator, pPipelineLayout); 1572} 1573 1574__attribute__((visibility("default"))) 1575VKAPI_ATTR void vkDestroyPipelineLayout(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator) { 1576 vulkan::api::DestroyPipelineLayout(device, pipelineLayout, pAllocator); 1577} 1578 1579__attribute__((visibility("default"))) 1580VKAPI_ATTR VkResult vkCreateSampler(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler) { 1581 return vulkan::api::CreateSampler(device, pCreateInfo, pAllocator, pSampler); 1582} 1583 1584__attribute__((visibility("default"))) 1585VKAPI_ATTR void vkDestroySampler(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator) { 1586 vulkan::api::DestroySampler(device, sampler, pAllocator); 1587} 1588 1589__attribute__((visibility("default"))) 1590VKAPI_ATTR VkResult vkCreateDescriptorSetLayout(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout) { 1591 return vulkan::api::CreateDescriptorSetLayout(device, pCreateInfo, pAllocator, pSetLayout); 1592} 1593 1594__attribute__((visibility("default"))) 1595VKAPI_ATTR void vkDestroyDescriptorSetLayout(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator) { 1596 vulkan::api::DestroyDescriptorSetLayout(device, descriptorSetLayout, pAllocator); 1597} 1598 1599__attribute__((visibility("default"))) 1600VKAPI_ATTR VkResult vkCreateDescriptorPool(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool) { 1601 return vulkan::api::CreateDescriptorPool(device, pCreateInfo, pAllocator, pDescriptorPool); 1602} 1603 1604__attribute__((visibility("default"))) 1605VKAPI_ATTR void vkDestroyDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator) { 1606 vulkan::api::DestroyDescriptorPool(device, descriptorPool, pAllocator); 1607} 1608 1609__attribute__((visibility("default"))) 1610VKAPI_ATTR VkResult vkResetDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags) { 1611 return vulkan::api::ResetDescriptorPool(device, descriptorPool, flags); 1612} 1613 1614__attribute__((visibility("default"))) 1615VKAPI_ATTR VkResult vkAllocateDescriptorSets(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets) { 1616 return vulkan::api::AllocateDescriptorSets(device, pAllocateInfo, pDescriptorSets); 1617} 1618 1619__attribute__((visibility("default"))) 1620VKAPI_ATTR VkResult vkFreeDescriptorSets(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets) { 1621 return vulkan::api::FreeDescriptorSets(device, descriptorPool, descriptorSetCount, pDescriptorSets); 1622} 1623 1624__attribute__((visibility("default"))) 1625VKAPI_ATTR void vkUpdateDescriptorSets(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies) { 1626 vulkan::api::UpdateDescriptorSets(device, descriptorWriteCount, pDescriptorWrites, descriptorCopyCount, pDescriptorCopies); 1627} 1628 1629__attribute__((visibility("default"))) 1630VKAPI_ATTR VkResult vkCreateFramebuffer(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer) { 1631 return vulkan::api::CreateFramebuffer(device, pCreateInfo, pAllocator, pFramebuffer); 1632} 1633 1634__attribute__((visibility("default"))) 1635VKAPI_ATTR void vkDestroyFramebuffer(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator) { 1636 vulkan::api::DestroyFramebuffer(device, framebuffer, pAllocator); 1637} 1638 1639__attribute__((visibility("default"))) 1640VKAPI_ATTR VkResult vkCreateRenderPass(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass) { 1641 return vulkan::api::CreateRenderPass(device, pCreateInfo, pAllocator, pRenderPass); 1642} 1643 1644__attribute__((visibility("default"))) 1645VKAPI_ATTR void vkDestroyRenderPass(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator) { 1646 vulkan::api::DestroyRenderPass(device, renderPass, pAllocator); 1647} 1648 1649__attribute__((visibility("default"))) 1650VKAPI_ATTR void vkGetRenderAreaGranularity(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity) { 1651 vulkan::api::GetRenderAreaGranularity(device, renderPass, pGranularity); 1652} 1653 1654__attribute__((visibility("default"))) 1655VKAPI_ATTR VkResult vkCreateCommandPool(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool) { 1656 return vulkan::api::CreateCommandPool(device, pCreateInfo, pAllocator, pCommandPool); 1657} 1658 1659__attribute__((visibility("default"))) 1660VKAPI_ATTR void vkDestroyCommandPool(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator) { 1661 vulkan::api::DestroyCommandPool(device, commandPool, pAllocator); 1662} 1663 1664__attribute__((visibility("default"))) 1665VKAPI_ATTR VkResult vkResetCommandPool(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags) { 1666 return vulkan::api::ResetCommandPool(device, commandPool, flags); 1667} 1668 1669__attribute__((visibility("default"))) 1670VKAPI_ATTR VkResult vkAllocateCommandBuffers(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers) { 1671 return vulkan::api::AllocateCommandBuffers(device, pAllocateInfo, pCommandBuffers); 1672} 1673 1674__attribute__((visibility("default"))) 1675VKAPI_ATTR void vkFreeCommandBuffers(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers) { 1676 vulkan::api::FreeCommandBuffers(device, commandPool, commandBufferCount, pCommandBuffers); 1677} 1678 1679__attribute__((visibility("default"))) 1680VKAPI_ATTR VkResult vkBeginCommandBuffer(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo) { 1681 return vulkan::api::BeginCommandBuffer(commandBuffer, pBeginInfo); 1682} 1683 1684__attribute__((visibility("default"))) 1685VKAPI_ATTR VkResult vkEndCommandBuffer(VkCommandBuffer commandBuffer) { 1686 return vulkan::api::EndCommandBuffer(commandBuffer); 1687} 1688 1689__attribute__((visibility("default"))) 1690VKAPI_ATTR VkResult vkResetCommandBuffer(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags) { 1691 return vulkan::api::ResetCommandBuffer(commandBuffer, flags); 1692} 1693 1694__attribute__((visibility("default"))) 1695VKAPI_ATTR void vkCmdBindPipeline(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline) { 1696 vulkan::api::CmdBindPipeline(commandBuffer, pipelineBindPoint, pipeline); 1697} 1698 1699__attribute__((visibility("default"))) 1700VKAPI_ATTR void vkCmdSetViewport(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports) { 1701 vulkan::api::CmdSetViewport(commandBuffer, firstViewport, viewportCount, pViewports); 1702} 1703 1704__attribute__((visibility("default"))) 1705VKAPI_ATTR void vkCmdSetScissor(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors) { 1706 vulkan::api::CmdSetScissor(commandBuffer, firstScissor, scissorCount, pScissors); 1707} 1708 1709__attribute__((visibility("default"))) 1710VKAPI_ATTR void vkCmdSetLineWidth(VkCommandBuffer commandBuffer, float lineWidth) { 1711 vulkan::api::CmdSetLineWidth(commandBuffer, lineWidth); 1712} 1713 1714__attribute__((visibility("default"))) 1715VKAPI_ATTR void vkCmdSetDepthBias(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor) { 1716 vulkan::api::CmdSetDepthBias(commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor); 1717} 1718 1719__attribute__((visibility("default"))) 1720VKAPI_ATTR void vkCmdSetBlendConstants(VkCommandBuffer commandBuffer, const float blendConstants[4]) { 1721 vulkan::api::CmdSetBlendConstants(commandBuffer, blendConstants); 1722} 1723 1724__attribute__((visibility("default"))) 1725VKAPI_ATTR void vkCmdSetDepthBounds(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds) { 1726 vulkan::api::CmdSetDepthBounds(commandBuffer, minDepthBounds, maxDepthBounds); 1727} 1728 1729__attribute__((visibility("default"))) 1730VKAPI_ATTR void vkCmdSetStencilCompareMask(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask) { 1731 vulkan::api::CmdSetStencilCompareMask(commandBuffer, faceMask, compareMask); 1732} 1733 1734__attribute__((visibility("default"))) 1735VKAPI_ATTR void vkCmdSetStencilWriteMask(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask) { 1736 vulkan::api::CmdSetStencilWriteMask(commandBuffer, faceMask, writeMask); 1737} 1738 1739__attribute__((visibility("default"))) 1740VKAPI_ATTR void vkCmdSetStencilReference(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference) { 1741 vulkan::api::CmdSetStencilReference(commandBuffer, faceMask, reference); 1742} 1743 1744__attribute__((visibility("default"))) 1745VKAPI_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) { 1746 vulkan::api::CmdBindDescriptorSets(commandBuffer, pipelineBindPoint, layout, firstSet, descriptorSetCount, pDescriptorSets, dynamicOffsetCount, pDynamicOffsets); 1747} 1748 1749__attribute__((visibility("default"))) 1750VKAPI_ATTR void vkCmdBindIndexBuffer(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType) { 1751 vulkan::api::CmdBindIndexBuffer(commandBuffer, buffer, offset, indexType); 1752} 1753 1754__attribute__((visibility("default"))) 1755VKAPI_ATTR void vkCmdBindVertexBuffers(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets) { 1756 vulkan::api::CmdBindVertexBuffers(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets); 1757} 1758 1759__attribute__((visibility("default"))) 1760VKAPI_ATTR void vkCmdDraw(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance) { 1761 vulkan::api::CmdDraw(commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance); 1762} 1763 1764__attribute__((visibility("default"))) 1765VKAPI_ATTR void vkCmdDrawIndexed(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance) { 1766 vulkan::api::CmdDrawIndexed(commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance); 1767} 1768 1769__attribute__((visibility("default"))) 1770VKAPI_ATTR void vkCmdDrawIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride) { 1771 vulkan::api::CmdDrawIndirect(commandBuffer, buffer, offset, drawCount, stride); 1772} 1773 1774__attribute__((visibility("default"))) 1775VKAPI_ATTR void vkCmdDrawIndexedIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride) { 1776 vulkan::api::CmdDrawIndexedIndirect(commandBuffer, buffer, offset, drawCount, stride); 1777} 1778 1779__attribute__((visibility("default"))) 1780VKAPI_ATTR void vkCmdDispatch(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ) { 1781 vulkan::api::CmdDispatch(commandBuffer, groupCountX, groupCountY, groupCountZ); 1782} 1783 1784__attribute__((visibility("default"))) 1785VKAPI_ATTR void vkCmdDispatchIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset) { 1786 vulkan::api::CmdDispatchIndirect(commandBuffer, buffer, offset); 1787} 1788 1789__attribute__((visibility("default"))) 1790VKAPI_ATTR void vkCmdCopyBuffer(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions) { 1791 vulkan::api::CmdCopyBuffer(commandBuffer, srcBuffer, dstBuffer, regionCount, pRegions); 1792} 1793 1794__attribute__((visibility("default"))) 1795VKAPI_ATTR void vkCmdCopyImage(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions) { 1796 vulkan::api::CmdCopyImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions); 1797} 1798 1799__attribute__((visibility("default"))) 1800VKAPI_ATTR void vkCmdBlitImage(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter) { 1801 vulkan::api::CmdBlitImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter); 1802} 1803 1804__attribute__((visibility("default"))) 1805VKAPI_ATTR void vkCmdCopyBufferToImage(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions) { 1806 vulkan::api::CmdCopyBufferToImage(commandBuffer, srcBuffer, dstImage, dstImageLayout, regionCount, pRegions); 1807} 1808 1809__attribute__((visibility("default"))) 1810VKAPI_ATTR void vkCmdCopyImageToBuffer(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions) { 1811 vulkan::api::CmdCopyImageToBuffer(commandBuffer, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions); 1812} 1813 1814__attribute__((visibility("default"))) 1815VKAPI_ATTR void vkCmdUpdateBuffer(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData) { 1816 vulkan::api::CmdUpdateBuffer(commandBuffer, dstBuffer, dstOffset, dataSize, pData); 1817} 1818 1819__attribute__((visibility("default"))) 1820VKAPI_ATTR void vkCmdFillBuffer(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data) { 1821 vulkan::api::CmdFillBuffer(commandBuffer, dstBuffer, dstOffset, size, data); 1822} 1823 1824__attribute__((visibility("default"))) 1825VKAPI_ATTR void vkCmdClearColorImage(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges) { 1826 vulkan::api::CmdClearColorImage(commandBuffer, image, imageLayout, pColor, rangeCount, pRanges); 1827} 1828 1829__attribute__((visibility("default"))) 1830VKAPI_ATTR void vkCmdClearDepthStencilImage(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges) { 1831 vulkan::api::CmdClearDepthStencilImage(commandBuffer, image, imageLayout, pDepthStencil, rangeCount, pRanges); 1832} 1833 1834__attribute__((visibility("default"))) 1835VKAPI_ATTR void vkCmdClearAttachments(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects) { 1836 vulkan::api::CmdClearAttachments(commandBuffer, attachmentCount, pAttachments, rectCount, pRects); 1837} 1838 1839__attribute__((visibility("default"))) 1840VKAPI_ATTR void vkCmdResolveImage(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions) { 1841 vulkan::api::CmdResolveImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions); 1842} 1843 1844__attribute__((visibility("default"))) 1845VKAPI_ATTR void vkCmdSetEvent(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask) { 1846 vulkan::api::CmdSetEvent(commandBuffer, event, stageMask); 1847} 1848 1849__attribute__((visibility("default"))) 1850VKAPI_ATTR void vkCmdResetEvent(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask) { 1851 vulkan::api::CmdResetEvent(commandBuffer, event, stageMask); 1852} 1853 1854__attribute__((visibility("default"))) 1855VKAPI_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) { 1856 vulkan::api::CmdWaitEvents(commandBuffer, eventCount, pEvents, srcStageMask, dstStageMask, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers); 1857} 1858 1859__attribute__((visibility("default"))) 1860VKAPI_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) { 1861 vulkan::api::CmdPipelineBarrier(commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers); 1862} 1863 1864__attribute__((visibility("default"))) 1865VKAPI_ATTR void vkCmdBeginQuery(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags) { 1866 vulkan::api::CmdBeginQuery(commandBuffer, queryPool, query, flags); 1867} 1868 1869__attribute__((visibility("default"))) 1870VKAPI_ATTR void vkCmdEndQuery(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query) { 1871 vulkan::api::CmdEndQuery(commandBuffer, queryPool, query); 1872} 1873 1874__attribute__((visibility("default"))) 1875VKAPI_ATTR void vkCmdResetQueryPool(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount) { 1876 vulkan::api::CmdResetQueryPool(commandBuffer, queryPool, firstQuery, queryCount); 1877} 1878 1879__attribute__((visibility("default"))) 1880VKAPI_ATTR void vkCmdWriteTimestamp(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query) { 1881 vulkan::api::CmdWriteTimestamp(commandBuffer, pipelineStage, queryPool, query); 1882} 1883 1884__attribute__((visibility("default"))) 1885VKAPI_ATTR void vkCmdCopyQueryPoolResults(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags) { 1886 vulkan::api::CmdCopyQueryPoolResults(commandBuffer, queryPool, firstQuery, queryCount, dstBuffer, dstOffset, stride, flags); 1887} 1888 1889__attribute__((visibility("default"))) 1890VKAPI_ATTR void vkCmdPushConstants(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues) { 1891 vulkan::api::CmdPushConstants(commandBuffer, layout, stageFlags, offset, size, pValues); 1892} 1893 1894__attribute__((visibility("default"))) 1895VKAPI_ATTR void vkCmdBeginRenderPass(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents) { 1896 vulkan::api::CmdBeginRenderPass(commandBuffer, pRenderPassBegin, contents); 1897} 1898 1899__attribute__((visibility("default"))) 1900VKAPI_ATTR void vkCmdNextSubpass(VkCommandBuffer commandBuffer, VkSubpassContents contents) { 1901 vulkan::api::CmdNextSubpass(commandBuffer, contents); 1902} 1903 1904__attribute__((visibility("default"))) 1905VKAPI_ATTR void vkCmdEndRenderPass(VkCommandBuffer commandBuffer) { 1906 vulkan::api::CmdEndRenderPass(commandBuffer); 1907} 1908 1909__attribute__((visibility("default"))) 1910VKAPI_ATTR void vkCmdExecuteCommands(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers) { 1911 vulkan::api::CmdExecuteCommands(commandBuffer, commandBufferCount, pCommandBuffers); 1912} 1913 1914__attribute__((visibility("default"))) 1915VKAPI_ATTR void vkDestroySurfaceKHR(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator) { 1916 vulkan::api::DestroySurfaceKHR(instance, surface, pAllocator); 1917} 1918 1919__attribute__((visibility("default"))) 1920VKAPI_ATTR VkResult vkGetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported) { 1921 return vulkan::api::GetPhysicalDeviceSurfaceSupportKHR(physicalDevice, queueFamilyIndex, surface, pSupported); 1922} 1923 1924__attribute__((visibility("default"))) 1925VKAPI_ATTR VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities) { 1926 return vulkan::api::GetPhysicalDeviceSurfaceCapabilitiesKHR(physicalDevice, surface, pSurfaceCapabilities); 1927} 1928 1929__attribute__((visibility("default"))) 1930VKAPI_ATTR VkResult vkGetPhysicalDeviceSurfaceFormatsKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats) { 1931 return vulkan::api::GetPhysicalDeviceSurfaceFormatsKHR(physicalDevice, surface, pSurfaceFormatCount, pSurfaceFormats); 1932} 1933 1934__attribute__((visibility("default"))) 1935VKAPI_ATTR VkResult vkGetPhysicalDeviceSurfacePresentModesKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes) { 1936 return vulkan::api::GetPhysicalDeviceSurfacePresentModesKHR(physicalDevice, surface, pPresentModeCount, pPresentModes); 1937} 1938 1939__attribute__((visibility("default"))) 1940VKAPI_ATTR VkResult vkCreateSwapchainKHR(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain) { 1941 return vulkan::api::CreateSwapchainKHR(device, pCreateInfo, pAllocator, pSwapchain); 1942} 1943 1944__attribute__((visibility("default"))) 1945VKAPI_ATTR void vkDestroySwapchainKHR(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator) { 1946 vulkan::api::DestroySwapchainKHR(device, swapchain, pAllocator); 1947} 1948 1949__attribute__((visibility("default"))) 1950VKAPI_ATTR VkResult vkGetSwapchainImagesKHR(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages) { 1951 return vulkan::api::GetSwapchainImagesKHR(device, swapchain, pSwapchainImageCount, pSwapchainImages); 1952} 1953 1954__attribute__((visibility("default"))) 1955VKAPI_ATTR VkResult vkAcquireNextImageKHR(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex) { 1956 return vulkan::api::AcquireNextImageKHR(device, swapchain, timeout, semaphore, fence, pImageIndex); 1957} 1958 1959__attribute__((visibility("default"))) 1960VKAPI_ATTR VkResult vkQueuePresentKHR(VkQueue queue, const VkPresentInfoKHR* pPresentInfo) { 1961 return vulkan::api::QueuePresentKHR(queue, pPresentInfo); 1962} 1963 1964__attribute__((visibility("default"))) 1965VKAPI_ATTR VkResult vkCreateAndroidSurfaceKHR(VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) { 1966 return vulkan::api::CreateAndroidSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface); 1967} 1968 1969// clang-format on 1970