10c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu/*
20c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu * Copyright 2016 The Android Open Source Project
30c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu *
40c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu * Licensed under the Apache License, Version 2.0 (the "License");
50c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu * you may not use this file except in compliance with the License.
60c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu * You may obtain a copy of the License at
70c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu *
80c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu *      http://www.apache.org/licenses/LICENSE-2.0
90c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu *
100c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu * Unless required by applicable law or agreed to in writing, software
110c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu * distributed under the License is distributed on an "AS IS" BASIS,
120c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
130c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu * See the License for the specific language governing permissions and
140c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu * limitations under the License.
150c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu */
160c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
170c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu// WARNING: This file is generated. See ../README.md for instructions.
180c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
190c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu#include <string.h>
20a5e161b1207ef447a51e99856097d69d4a6111e1Mark Salyzyn
210c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu#include <algorithm>
22a5e161b1207ef447a51e99856097d69d4a6111e1Mark Salyzyn
237823e124e00576e20e47ec717cbe8bc89f0f2bf2Mark Salyzyn#include <log/log.h>
240c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
253e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu// to catch mismatches between vulkan.h and this file
263e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu#undef VK_NO_PROTOTYPES
270c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu#include "api.h"
280c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
290c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wunamespace vulkan {
300c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wunamespace api {
310c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
320c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu#define UNLIKELY(expr) __builtin_expect((expr), 0)
330c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
345948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes#define INIT_PROC(required, obj, proc)                                 \
350c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu    do {                                                               \
360c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu        data.dispatch.proc =                                           \
370c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu            reinterpret_cast<PFN_vk##proc>(get_proc(obj, "vk" #proc)); \
385948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes        if (UNLIKELY(required && !data.dispatch.proc)) {               \
390c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu            ALOGE("missing " #obj " proc: vk" #proc);                  \
400c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu            success = false;                                           \
410c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu        }                                                              \
420c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu    } while (0)
430c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
448925efd0a87d96885834a00f3bdef220edf6d8eaChia-I Wu// Exported extension functions may be invoked even when their extensions
458925efd0a87d96885834a00f3bdef220edf6d8eaChia-I Wu// are disabled.  Dispatch to stubs when that happens.
465948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes#define INIT_PROC_EXT(ext, required, obj, proc)  \
478925efd0a87d96885834a00f3bdef220edf6d8eaChia-I Wu    do {                                         \
488925efd0a87d96885834a00f3bdef220edf6d8eaChia-I Wu        if (extensions[driver::ProcHook::ext])   \
495948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes            INIT_PROC(required, obj, proc);      \
508925efd0a87d96885834a00f3bdef220edf6d8eaChia-I Wu        else                                     \
518925efd0a87d96885834a00f3bdef220edf6d8eaChia-I Wu            data.dispatch.proc = disabled##proc; \
520c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu    } while (0)
530c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
548925efd0a87d96885834a00f3bdef220edf6d8eaChia-I Wunamespace {
558925efd0a87d96885834a00f3bdef220edf6d8eaChia-I Wu
568925efd0a87d96885834a00f3bdef220edf6d8eaChia-I Wu// clang-format off
578925efd0a87d96885834a00f3bdef220edf6d8eaChia-I Wu
585beb2ac5e0b676e55be9f0b768ba3fd3697f3216Chia-I WuVKAPI_ATTR void disabledDestroySurfaceKHR(VkInstance instance, VkSurfaceKHR, const VkAllocationCallbacks*) {
595beb2ac5e0b676e55be9f0b768ba3fd3697f3216Chia-I Wu    driver::Logger(instance).Err(instance, "VK_KHR_surface not enabled. Exported vkDestroySurfaceKHR not executed.");
608925efd0a87d96885834a00f3bdef220edf6d8eaChia-I Wu}
618925efd0a87d96885834a00f3bdef220edf6d8eaChia-I Wu
625beb2ac5e0b676e55be9f0b768ba3fd3697f3216Chia-I WuVKAPI_ATTR VkResult disabledGetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice physicalDevice, uint32_t, VkSurfaceKHR, VkBool32*) {
635beb2ac5e0b676e55be9f0b768ba3fd3697f3216Chia-I Wu    driver::Logger(physicalDevice).Err(physicalDevice, "VK_KHR_surface not enabled. Exported vkGetPhysicalDeviceSurfaceSupportKHR not executed.");
648925efd0a87d96885834a00f3bdef220edf6d8eaChia-I Wu    return VK_SUCCESS;
658925efd0a87d96885834a00f3bdef220edf6d8eaChia-I Wu}
668925efd0a87d96885834a00f3bdef220edf6d8eaChia-I Wu
675beb2ac5e0b676e55be9f0b768ba3fd3697f3216Chia-I WuVKAPI_ATTR VkResult disabledGetPhysicalDeviceSurfaceCapabilitiesKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR, VkSurfaceCapabilitiesKHR*) {
685beb2ac5e0b676e55be9f0b768ba3fd3697f3216Chia-I Wu    driver::Logger(physicalDevice).Err(physicalDevice, "VK_KHR_surface not enabled. Exported vkGetPhysicalDeviceSurfaceCapabilitiesKHR not executed.");
698925efd0a87d96885834a00f3bdef220edf6d8eaChia-I Wu    return VK_SUCCESS;
708925efd0a87d96885834a00f3bdef220edf6d8eaChia-I Wu}
718925efd0a87d96885834a00f3bdef220edf6d8eaChia-I Wu
725beb2ac5e0b676e55be9f0b768ba3fd3697f3216Chia-I WuVKAPI_ATTR VkResult disabledGetPhysicalDeviceSurfaceFormatsKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR, uint32_t*, VkSurfaceFormatKHR*) {
735beb2ac5e0b676e55be9f0b768ba3fd3697f3216Chia-I Wu    driver::Logger(physicalDevice).Err(physicalDevice, "VK_KHR_surface not enabled. Exported vkGetPhysicalDeviceSurfaceFormatsKHR not executed.");
748925efd0a87d96885834a00f3bdef220edf6d8eaChia-I Wu    return VK_SUCCESS;
758925efd0a87d96885834a00f3bdef220edf6d8eaChia-I Wu}
768925efd0a87d96885834a00f3bdef220edf6d8eaChia-I Wu
775beb2ac5e0b676e55be9f0b768ba3fd3697f3216Chia-I WuVKAPI_ATTR VkResult disabledGetPhysicalDeviceSurfacePresentModesKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR, uint32_t*, VkPresentModeKHR*) {
785beb2ac5e0b676e55be9f0b768ba3fd3697f3216Chia-I Wu    driver::Logger(physicalDevice).Err(physicalDevice, "VK_KHR_surface not enabled. Exported vkGetPhysicalDeviceSurfacePresentModesKHR not executed.");
798925efd0a87d96885834a00f3bdef220edf6d8eaChia-I Wu    return VK_SUCCESS;
808925efd0a87d96885834a00f3bdef220edf6d8eaChia-I Wu}
818925efd0a87d96885834a00f3bdef220edf6d8eaChia-I Wu
825beb2ac5e0b676e55be9f0b768ba3fd3697f3216Chia-I WuVKAPI_ATTR VkResult disabledCreateSwapchainKHR(VkDevice device, const VkSwapchainCreateInfoKHR*, const VkAllocationCallbacks*, VkSwapchainKHR*) {
835beb2ac5e0b676e55be9f0b768ba3fd3697f3216Chia-I Wu    driver::Logger(device).Err(device, "VK_KHR_swapchain not enabled. Exported vkCreateSwapchainKHR not executed.");
848925efd0a87d96885834a00f3bdef220edf6d8eaChia-I Wu    return VK_SUCCESS;
858925efd0a87d96885834a00f3bdef220edf6d8eaChia-I Wu}
868925efd0a87d96885834a00f3bdef220edf6d8eaChia-I Wu
875beb2ac5e0b676e55be9f0b768ba3fd3697f3216Chia-I WuVKAPI_ATTR void disabledDestroySwapchainKHR(VkDevice device, VkSwapchainKHR, const VkAllocationCallbacks*) {
885beb2ac5e0b676e55be9f0b768ba3fd3697f3216Chia-I Wu    driver::Logger(device).Err(device, "VK_KHR_swapchain not enabled. Exported vkDestroySwapchainKHR not executed.");
898925efd0a87d96885834a00f3bdef220edf6d8eaChia-I Wu}
908925efd0a87d96885834a00f3bdef220edf6d8eaChia-I Wu
915beb2ac5e0b676e55be9f0b768ba3fd3697f3216Chia-I WuVKAPI_ATTR VkResult disabledGetSwapchainImagesKHR(VkDevice device, VkSwapchainKHR, uint32_t*, VkImage*) {
925beb2ac5e0b676e55be9f0b768ba3fd3697f3216Chia-I Wu    driver::Logger(device).Err(device, "VK_KHR_swapchain not enabled. Exported vkGetSwapchainImagesKHR not executed.");
938925efd0a87d96885834a00f3bdef220edf6d8eaChia-I Wu    return VK_SUCCESS;
948925efd0a87d96885834a00f3bdef220edf6d8eaChia-I Wu}
958925efd0a87d96885834a00f3bdef220edf6d8eaChia-I Wu
965beb2ac5e0b676e55be9f0b768ba3fd3697f3216Chia-I WuVKAPI_ATTR VkResult disabledAcquireNextImageKHR(VkDevice device, VkSwapchainKHR, uint64_t, VkSemaphore, VkFence, uint32_t*) {
975beb2ac5e0b676e55be9f0b768ba3fd3697f3216Chia-I Wu    driver::Logger(device).Err(device, "VK_KHR_swapchain not enabled. Exported vkAcquireNextImageKHR not executed.");
988925efd0a87d96885834a00f3bdef220edf6d8eaChia-I Wu    return VK_SUCCESS;
998925efd0a87d96885834a00f3bdef220edf6d8eaChia-I Wu}
1008925efd0a87d96885834a00f3bdef220edf6d8eaChia-I Wu
1015beb2ac5e0b676e55be9f0b768ba3fd3697f3216Chia-I WuVKAPI_ATTR VkResult disabledQueuePresentKHR(VkQueue queue, const VkPresentInfoKHR*) {
1025beb2ac5e0b676e55be9f0b768ba3fd3697f3216Chia-I Wu    driver::Logger(queue).Err(queue, "VK_KHR_swapchain not enabled. Exported vkQueuePresentKHR not executed.");
1038925efd0a87d96885834a00f3bdef220edf6d8eaChia-I Wu    return VK_SUCCESS;
1048925efd0a87d96885834a00f3bdef220edf6d8eaChia-I Wu}
1058925efd0a87d96885834a00f3bdef220edf6d8eaChia-I Wu
1065beb2ac5e0b676e55be9f0b768ba3fd3697f3216Chia-I WuVKAPI_ATTR VkResult disabledCreateAndroidSurfaceKHR(VkInstance instance, const VkAndroidSurfaceCreateInfoKHR*, const VkAllocationCallbacks*, VkSurfaceKHR*) {
1075beb2ac5e0b676e55be9f0b768ba3fd3697f3216Chia-I Wu    driver::Logger(instance).Err(instance, "VK_KHR_android_surface not enabled. Exported vkCreateAndroidSurfaceKHR not executed.");
1088925efd0a87d96885834a00f3bdef220edf6d8eaChia-I Wu    return VK_SUCCESS;
1098925efd0a87d96885834a00f3bdef220edf6d8eaChia-I Wu}
1108925efd0a87d96885834a00f3bdef220edf6d8eaChia-I Wu
1118925efd0a87d96885834a00f3bdef220edf6d8eaChia-I Wu// clang-format on
1128925efd0a87d96885834a00f3bdef220edf6d8eaChia-I Wu
113e2d3ee180a2521c8db03a9702cb2669735f239acChris Forbes}  // namespace
1148925efd0a87d96885834a00f3bdef220edf6d8eaChia-I Wu
1158925efd0a87d96885834a00f3bdef220edf6d8eaChia-I Wubool InitDispatchTable(
1168925efd0a87d96885834a00f3bdef220edf6d8eaChia-I Wu    VkInstance instance,
1178925efd0a87d96885834a00f3bdef220edf6d8eaChia-I Wu    PFN_vkGetInstanceProcAddr get_proc,
1188925efd0a87d96885834a00f3bdef220edf6d8eaChia-I Wu    const std::bitset<driver::ProcHook::EXTENSION_COUNT>& extensions) {
1190c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu    auto& data = GetData(instance);
1200c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu    bool success = true;
1210c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
1220c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu    // clang-format off
1235948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, instance, DestroyInstance);
1245948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, instance, EnumeratePhysicalDevices);
1255948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, instance, GetInstanceProcAddr);
1265948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, instance, GetPhysicalDeviceProperties);
1275948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, instance, GetPhysicalDeviceQueueFamilyProperties);
1285948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, instance, GetPhysicalDeviceMemoryProperties);
1295948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, instance, GetPhysicalDeviceFeatures);
1305948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, instance, GetPhysicalDeviceFormatProperties);
1315948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, instance, GetPhysicalDeviceImageFormatProperties);
1325948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, instance, CreateDevice);
1335948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, instance, EnumerateDeviceExtensionProperties);
1345948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, instance, GetPhysicalDeviceSparseImageFormatProperties);
1355948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC_EXT(KHR_surface, true, instance, DestroySurfaceKHR);
1365948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC_EXT(KHR_surface, true, instance, GetPhysicalDeviceSurfaceSupportKHR);
1375948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC_EXT(KHR_surface, true, instance, GetPhysicalDeviceSurfaceCapabilitiesKHR);
1385948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC_EXT(KHR_surface, true, instance, GetPhysicalDeviceSurfaceFormatsKHR);
1395948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC_EXT(KHR_surface, true, instance, GetPhysicalDeviceSurfacePresentModesKHR);
1405948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC_EXT(KHR_android_surface, true, instance, CreateAndroidSurfaceKHR);
1410c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu    // clang-format on
1420c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
1430c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu    return success;
1440c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
1450c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
1468925efd0a87d96885834a00f3bdef220edf6d8eaChia-I Wubool InitDispatchTable(
1478925efd0a87d96885834a00f3bdef220edf6d8eaChia-I Wu    VkDevice dev,
1488925efd0a87d96885834a00f3bdef220edf6d8eaChia-I Wu    PFN_vkGetDeviceProcAddr get_proc,
1498925efd0a87d96885834a00f3bdef220edf6d8eaChia-I Wu    const std::bitset<driver::ProcHook::EXTENSION_COUNT>& extensions) {
1500c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu    auto& data = GetData(dev);
1510c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu    bool success = true;
1520c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
1530c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu    // clang-format off
1545948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, GetDeviceProcAddr);
1555948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, DestroyDevice);
1565948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, GetDeviceQueue);
1575948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, QueueSubmit);
1585948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, QueueWaitIdle);
1595948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, DeviceWaitIdle);
1605948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, AllocateMemory);
1615948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, FreeMemory);
1625948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, MapMemory);
1635948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, UnmapMemory);
1645948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, FlushMappedMemoryRanges);
1655948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, InvalidateMappedMemoryRanges);
1665948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, GetDeviceMemoryCommitment);
1675948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, GetBufferMemoryRequirements);
1685948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, BindBufferMemory);
1695948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, GetImageMemoryRequirements);
1705948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, BindImageMemory);
1715948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, GetImageSparseMemoryRequirements);
1725948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, QueueBindSparse);
1735948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CreateFence);
1745948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, DestroyFence);
1755948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, ResetFences);
1765948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, GetFenceStatus);
1775948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, WaitForFences);
1785948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CreateSemaphore);
1795948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, DestroySemaphore);
1805948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CreateEvent);
1815948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, DestroyEvent);
1825948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, GetEventStatus);
1835948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, SetEvent);
1845948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, ResetEvent);
1855948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CreateQueryPool);
1865948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, DestroyQueryPool);
1875948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, GetQueryPoolResults);
1885948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CreateBuffer);
1895948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, DestroyBuffer);
1905948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CreateBufferView);
1915948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, DestroyBufferView);
1925948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CreateImage);
1935948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, DestroyImage);
1945948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, GetImageSubresourceLayout);
1955948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CreateImageView);
1965948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, DestroyImageView);
1975948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CreateShaderModule);
1985948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, DestroyShaderModule);
1995948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CreatePipelineCache);
2005948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, DestroyPipelineCache);
2015948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, GetPipelineCacheData);
2025948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, MergePipelineCaches);
2035948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CreateGraphicsPipelines);
2045948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CreateComputePipelines);
2055948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, DestroyPipeline);
2065948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CreatePipelineLayout);
2075948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, DestroyPipelineLayout);
2085948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CreateSampler);
2095948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, DestroySampler);
2105948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CreateDescriptorSetLayout);
2115948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, DestroyDescriptorSetLayout);
2125948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CreateDescriptorPool);
2135948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, DestroyDescriptorPool);
2145948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, ResetDescriptorPool);
2155948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, AllocateDescriptorSets);
2165948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, FreeDescriptorSets);
2175948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, UpdateDescriptorSets);
2185948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CreateFramebuffer);
2195948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, DestroyFramebuffer);
2205948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CreateRenderPass);
2215948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, DestroyRenderPass);
2225948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, GetRenderAreaGranularity);
2235948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CreateCommandPool);
2245948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, DestroyCommandPool);
2255948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, ResetCommandPool);
2265948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, AllocateCommandBuffers);
2275948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, FreeCommandBuffers);
2285948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, BeginCommandBuffer);
2295948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, EndCommandBuffer);
2305948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, ResetCommandBuffer);
2315948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CmdBindPipeline);
2325948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CmdSetViewport);
2335948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CmdSetScissor);
2345948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CmdSetLineWidth);
2355948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CmdSetDepthBias);
2365948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CmdSetBlendConstants);
2375948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CmdSetDepthBounds);
2385948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CmdSetStencilCompareMask);
2395948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CmdSetStencilWriteMask);
2405948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CmdSetStencilReference);
2415948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CmdBindDescriptorSets);
2425948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CmdBindIndexBuffer);
2435948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CmdBindVertexBuffers);
2445948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CmdDraw);
2455948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CmdDrawIndexed);
2465948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CmdDrawIndirect);
2475948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CmdDrawIndexedIndirect);
2485948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CmdDispatch);
2495948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CmdDispatchIndirect);
2505948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CmdCopyBuffer);
2515948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CmdCopyImage);
2525948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CmdBlitImage);
2535948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CmdCopyBufferToImage);
2545948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CmdCopyImageToBuffer);
2555948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CmdUpdateBuffer);
2565948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CmdFillBuffer);
2575948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CmdClearColorImage);
2585948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CmdClearDepthStencilImage);
2595948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CmdClearAttachments);
2605948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CmdResolveImage);
2615948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CmdSetEvent);
2625948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CmdResetEvent);
2635948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CmdWaitEvents);
2645948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CmdPipelineBarrier);
2655948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CmdBeginQuery);
2665948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CmdEndQuery);
2675948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CmdResetQueryPool);
2685948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CmdWriteTimestamp);
2695948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CmdCopyQueryPoolResults);
2705948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CmdPushConstants);
2715948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CmdBeginRenderPass);
2725948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CmdNextSubpass);
2735948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CmdEndRenderPass);
2745948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC(true, dev, CmdExecuteCommands);
2755948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC_EXT(KHR_swapchain, true, dev, CreateSwapchainKHR);
2765948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC_EXT(KHR_swapchain, true, dev, DestroySwapchainKHR);
2775948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC_EXT(KHR_swapchain, true, dev, GetSwapchainImagesKHR);
2785948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC_EXT(KHR_swapchain, true, dev, AcquireNextImageKHR);
2795948b3eae87af490b7cec36d043b5a9bca6de8c0Chris Forbes    INIT_PROC_EXT(KHR_swapchain, true, dev, QueuePresentKHR);
2800c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu    // clang-format on
2810c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
2820c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu    return success;
2830c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
2840c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
2850c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu// clang-format off
2860c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
2873e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wunamespace {
2880c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
2893e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu// forward declarations needed by GetInstanceProcAddr and GetDeviceProcAddr
2903e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult EnumeratePhysicalDevices(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
2913e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR PFN_vkVoidFunction GetDeviceProcAddr(VkDevice device, const char* pName);
2923e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR PFN_vkVoidFunction GetInstanceProcAddr(VkInstance instance, const char* pName);
2933e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void GetPhysicalDeviceProperties(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties);
2943e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void GetPhysicalDeviceQueueFamilyProperties(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties);
2953e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void GetPhysicalDeviceMemoryProperties(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties);
2963e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void GetPhysicalDeviceFeatures(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
2973e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void GetPhysicalDeviceFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties);
2983e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult GetPhysicalDeviceImageFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties);
2993e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void GetDeviceQueue(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue);
3003e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult QueueSubmit(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence);
3013e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult QueueWaitIdle(VkQueue queue);
3023e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult DeviceWaitIdle(VkDevice device);
3033e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult AllocateMemory(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory);
3043e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void FreeMemory(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator);
3053e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult MapMemory(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData);
3063e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void UnmapMemory(VkDevice device, VkDeviceMemory memory);
3073e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult FlushMappedMemoryRanges(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
3083e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult InvalidateMappedMemoryRanges(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
3093e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void GetDeviceMemoryCommitment(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes);
3103e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void GetBufferMemoryRequirements(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements);
3113e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult BindBufferMemory(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset);
3123e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void GetImageMemoryRequirements(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements);
3133e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult BindImageMemory(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset);
3143e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void GetImageSparseMemoryRequirements(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
3153e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void GetPhysicalDeviceSparseImageFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties);
3163e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult QueueBindSparse(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence);
3173e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult CreateFence(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
3183e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void DestroyFence(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator);
3193e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult ResetFences(VkDevice device, uint32_t fenceCount, const VkFence* pFences);
3203e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult GetFenceStatus(VkDevice device, VkFence fence);
3213e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult WaitForFences(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout);
3223e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult CreateSemaphore(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore);
3233e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void DestroySemaphore(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator);
3243e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult CreateEvent(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent);
3253e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void DestroyEvent(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator);
3263e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult GetEventStatus(VkDevice device, VkEvent event);
3273e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult SetEvent(VkDevice device, VkEvent event);
3283e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult ResetEvent(VkDevice device, VkEvent event);
3293e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult CreateQueryPool(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool);
3303e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void DestroyQueryPool(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator);
3313e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult GetQueryPoolResults(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags);
3323e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult CreateBuffer(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer);
3333e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void DestroyBuffer(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator);
3343e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult CreateBufferView(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView);
3353e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void DestroyBufferView(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator);
3363e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult CreateImage(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage);
3373e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void DestroyImage(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator);
3383e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void GetImageSubresourceLayout(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout);
3393e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult CreateImageView(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView);
3403e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void DestroyImageView(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator);
3413e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult CreateShaderModule(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule);
3423e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void DestroyShaderModule(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator);
3433e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult CreatePipelineCache(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache);
3443e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void DestroyPipelineCache(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator);
3453e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult GetPipelineCacheData(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData);
3463e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult MergePipelineCaches(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches);
3473e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult CreateGraphicsPipelines(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
3483e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult CreateComputePipelines(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
3493e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void DestroyPipeline(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator);
3503e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult CreatePipelineLayout(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout);
3513e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void DestroyPipelineLayout(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator);
3523e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult CreateSampler(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler);
3533e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void DestroySampler(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator);
3543e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult CreateDescriptorSetLayout(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout);
3553e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void DestroyDescriptorSetLayout(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator);
3563e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult CreateDescriptorPool(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool);
3573e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void DestroyDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator);
3583e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult ResetDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
3593e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult AllocateDescriptorSets(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets);
3603e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult FreeDescriptorSets(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets);
3613e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void UpdateDescriptorSets(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies);
3623e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult CreateFramebuffer(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer);
3633e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void DestroyFramebuffer(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator);
3643e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult CreateRenderPass(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
3653e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void DestroyRenderPass(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator);
3663e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void GetRenderAreaGranularity(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity);
3673e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult CreateCommandPool(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool);
3683e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void DestroyCommandPool(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator);
3693e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult ResetCommandPool(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags);
3703e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult AllocateCommandBuffers(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers);
3713e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void FreeCommandBuffers(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
3723e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult BeginCommandBuffer(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo);
3733e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult EndCommandBuffer(VkCommandBuffer commandBuffer);
3743e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult ResetCommandBuffer(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags);
3753e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdBindPipeline(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
3763e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdSetViewport(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports);
3773e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdSetScissor(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors);
3783e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdSetLineWidth(VkCommandBuffer commandBuffer, float lineWidth);
3793e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdSetDepthBias(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor);
3803e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdSetBlendConstants(VkCommandBuffer commandBuffer, const float blendConstants[4]);
3813e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdSetDepthBounds(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds);
3823e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdSetStencilCompareMask(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask);
3833e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdSetStencilWriteMask(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask);
3843e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdSetStencilReference(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference);
3853e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_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);
3863e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdBindIndexBuffer(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
3873e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdBindVertexBuffers(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets);
3883e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdDraw(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance);
3893e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdDrawIndexed(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance);
3903e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdDrawIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
3913e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdDrawIndexedIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
392ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR void CmdDispatch(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
3933e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdDispatchIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
3943e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdCopyBuffer(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions);
3953e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdCopyImage(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions);
3963e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdBlitImage(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter);
3973e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdCopyBufferToImage(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions);
3983e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdCopyImageToBuffer(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions);
39956d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse HallVKAPI_ATTR void CmdUpdateBuffer(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData);
4003e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdFillBuffer(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data);
4013e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdClearColorImage(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
4023e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdClearDepthStencilImage(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
4033e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdClearAttachments(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects);
4043e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdResolveImage(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions);
4053e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdSetEvent(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
4063e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdResetEvent(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
4073e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_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);
4083e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_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);
4093e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdBeginQuery(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags);
4103e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdEndQuery(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query);
4113e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdResetQueryPool(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
4123e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdWriteTimestamp(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query);
4133e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdCopyQueryPoolResults(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags);
4143e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdPushConstants(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues);
4153e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdBeginRenderPass(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents);
4163e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdNextSubpass(VkCommandBuffer commandBuffer, VkSubpassContents contents);
4173e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdEndRenderPass(VkCommandBuffer commandBuffer);
4183e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdExecuteCommands(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
4193e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void DestroySurfaceKHR(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator);
4203e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult GetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported);
4213e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult GetPhysicalDeviceSurfaceCapabilitiesKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
4223e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult GetPhysicalDeviceSurfaceFormatsKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats);
4233e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult GetPhysicalDeviceSurfacePresentModesKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes);
4243e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult CreateSwapchainKHR(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain);
4253e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void DestroySwapchainKHR(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator);
4263e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult GetSwapchainImagesKHR(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages);
4273e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult AcquireNextImageKHR(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex);
4283e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult QueuePresentKHR(VkQueue queue, const VkPresentInfoKHR* pPresentInfo);
4293e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult CreateAndroidSurfaceKHR(VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
4303e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
4313e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult EnumeratePhysicalDevices(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices) {
4323e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(instance).dispatch.EnumeratePhysicalDevices(instance, pPhysicalDeviceCount, pPhysicalDevices);
4333e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
4343e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
4353e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR PFN_vkVoidFunction GetDeviceProcAddr(VkDevice device, const char* pName) {
4360c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu    if (device == VK_NULL_HANDLE) {
4375beb2ac5e0b676e55be9f0b768ba3fd3697f3216Chia-I Wu        ALOGE("invalid vkGetDeviceProcAddr(VK_NULL_HANDLE, ...) call");
4380c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu        return nullptr;
4390c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu    }
4400c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
4410c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu    static const char* const known_non_device_names[] = {
4420c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu        "vkCreateAndroidSurfaceKHR",
4430c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu        "vkCreateDebugReportCallbackEXT",
4440c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu        "vkCreateDevice",
4450c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu        "vkCreateInstance",
4460c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu        "vkDebugReportMessageEXT",
4470c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu        "vkDestroyDebugReportCallbackEXT",
4480c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu        "vkDestroyInstance",
4490c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu        "vkDestroySurfaceKHR",
4500c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu        "vkEnumerateDeviceExtensionProperties",
4510c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu        "vkEnumerateDeviceLayerProperties",
4520c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu        "vkEnumerateInstanceExtensionProperties",
4530c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu        "vkEnumerateInstanceLayerProperties",
454ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall        "vkEnumeratePhysicalDeviceGroupsKHX",
4550c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu        "vkEnumeratePhysicalDevices",
4560c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu        "vkGetInstanceProcAddr",
457ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall        "vkGetPhysicalDeviceExternalBufferPropertiesKHX",
458289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes        "vkGetPhysicalDeviceExternalImageFormatPropertiesNV",
459ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall        "vkGetPhysicalDeviceExternalSemaphorePropertiesKHX",
4600c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu        "vkGetPhysicalDeviceFeatures",
4611194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes        "vkGetPhysicalDeviceFeatures2KHR",
4620c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu        "vkGetPhysicalDeviceFormatProperties",
4631194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes        "vkGetPhysicalDeviceFormatProperties2KHR",
464289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes        "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX",
4650c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu        "vkGetPhysicalDeviceImageFormatProperties",
4661194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes        "vkGetPhysicalDeviceImageFormatProperties2KHR",
4670c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu        "vkGetPhysicalDeviceMemoryProperties",
4681194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes        "vkGetPhysicalDeviceMemoryProperties2KHR",
469ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall        "vkGetPhysicalDevicePresentRectanglesKHX",
4700c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu        "vkGetPhysicalDeviceProperties",
4711194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes        "vkGetPhysicalDeviceProperties2KHR",
4720c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu        "vkGetPhysicalDeviceQueueFamilyProperties",
4731194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes        "vkGetPhysicalDeviceQueueFamilyProperties2KHR",
4740c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu        "vkGetPhysicalDeviceSparseImageFormatProperties",
4751194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes        "vkGetPhysicalDeviceSparseImageFormatProperties2KHR",
476e2d3ee180a2521c8db03a9702cb2669735f239acChris Forbes        "vkGetPhysicalDeviceSurfaceCapabilities2KHR",
4770c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu        "vkGetPhysicalDeviceSurfaceCapabilitiesKHR",
478e2d3ee180a2521c8db03a9702cb2669735f239acChris Forbes        "vkGetPhysicalDeviceSurfaceFormats2KHR",
4790c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu        "vkGetPhysicalDeviceSurfaceFormatsKHR",
4800c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu        "vkGetPhysicalDeviceSurfacePresentModesKHR",
4810c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu        "vkGetPhysicalDeviceSurfaceSupportKHR",
4820c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu    };
4830c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu    // clang-format on
4840c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu    constexpr size_t count =
4850c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu        sizeof(known_non_device_names) / sizeof(known_non_device_names[0]);
4860c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu    if (!pName ||
4870c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu        std::binary_search(
4880c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu            known_non_device_names, known_non_device_names + count, pName,
4890c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu            [](const char* a, const char* b) { return (strcmp(a, b) < 0); })) {
4905beb2ac5e0b676e55be9f0b768ba3fd3697f3216Chia-I Wu        vulkan::driver::Logger(device).Err(
4915beb2ac5e0b676e55be9f0b768ba3fd3697f3216Chia-I Wu            device, "invalid vkGetDeviceProcAddr(%p, \"%s\") call", device,
4925beb2ac5e0b676e55be9f0b768ba3fd3697f3216Chia-I Wu            (pName) ? pName : "(null)");
4930c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu        return nullptr;
4940c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu    }
4950c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu    // clang-format off
4960c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
4973e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    if (strcmp(pName, "vkGetDeviceProcAddr") == 0) return reinterpret_cast<PFN_vkVoidFunction>(GetDeviceProcAddr);
4983e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    if (strcmp(pName, "vkDestroyDevice") == 0) return reinterpret_cast<PFN_vkVoidFunction>(DestroyDevice);
499c56603e0b35e31c5f1cd134d6b916a16ff710504Chia-I Wu
5003e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(device).dispatch.GetDeviceProcAddr(device, pName);
5010c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
5020c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
5033e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR PFN_vkVoidFunction GetInstanceProcAddr(VkInstance instance, const char* pName) {
5040c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu    // global functions
5055beb2ac5e0b676e55be9f0b768ba3fd3697f3216Chia-I Wu    if (instance == VK_NULL_HANDLE) {
5063e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        if (strcmp(pName, "vkCreateInstance") == 0) return reinterpret_cast<PFN_vkVoidFunction>(CreateInstance);
5073e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        if (strcmp(pName, "vkEnumerateInstanceLayerProperties") == 0) return reinterpret_cast<PFN_vkVoidFunction>(EnumerateInstanceLayerProperties);
5083e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        if (strcmp(pName, "vkEnumerateInstanceExtensionProperties") == 0) return reinterpret_cast<PFN_vkVoidFunction>(EnumerateInstanceExtensionProperties);
5090c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
5105beb2ac5e0b676e55be9f0b768ba3fd3697f3216Chia-I Wu        ALOGE("invalid vkGetInstanceProcAddr(VK_NULL_HANDLE, \"%s\") call", pName);
5110c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu        return nullptr;
5120c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu    }
5130c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
5140c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu    static const struct Hook {
5150c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu        const char* name;
5160c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu        PFN_vkVoidFunction proc;
5170c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu    } hooks[] = {
5183e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkAcquireNextImageKHR", reinterpret_cast<PFN_vkVoidFunction>(AcquireNextImageKHR) },
5193e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkAllocateCommandBuffers", reinterpret_cast<PFN_vkVoidFunction>(AllocateCommandBuffers) },
5203e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkAllocateDescriptorSets", reinterpret_cast<PFN_vkVoidFunction>(AllocateDescriptorSets) },
5213e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkAllocateMemory", reinterpret_cast<PFN_vkVoidFunction>(AllocateMemory) },
5223e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkBeginCommandBuffer", reinterpret_cast<PFN_vkVoidFunction>(BeginCommandBuffer) },
5233e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkBindBufferMemory", reinterpret_cast<PFN_vkVoidFunction>(BindBufferMemory) },
5243e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkBindImageMemory", reinterpret_cast<PFN_vkVoidFunction>(BindImageMemory) },
5253e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCmdBeginQuery", reinterpret_cast<PFN_vkVoidFunction>(CmdBeginQuery) },
5263e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCmdBeginRenderPass", reinterpret_cast<PFN_vkVoidFunction>(CmdBeginRenderPass) },
5273e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCmdBindDescriptorSets", reinterpret_cast<PFN_vkVoidFunction>(CmdBindDescriptorSets) },
5283e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCmdBindIndexBuffer", reinterpret_cast<PFN_vkVoidFunction>(CmdBindIndexBuffer) },
5293e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCmdBindPipeline", reinterpret_cast<PFN_vkVoidFunction>(CmdBindPipeline) },
5303e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCmdBindVertexBuffers", reinterpret_cast<PFN_vkVoidFunction>(CmdBindVertexBuffers) },
5313e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCmdBlitImage", reinterpret_cast<PFN_vkVoidFunction>(CmdBlitImage) },
5323e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCmdClearAttachments", reinterpret_cast<PFN_vkVoidFunction>(CmdClearAttachments) },
5333e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCmdClearColorImage", reinterpret_cast<PFN_vkVoidFunction>(CmdClearColorImage) },
5343e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCmdClearDepthStencilImage", reinterpret_cast<PFN_vkVoidFunction>(CmdClearDepthStencilImage) },
5353e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCmdCopyBuffer", reinterpret_cast<PFN_vkVoidFunction>(CmdCopyBuffer) },
5363e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCmdCopyBufferToImage", reinterpret_cast<PFN_vkVoidFunction>(CmdCopyBufferToImage) },
5373e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCmdCopyImage", reinterpret_cast<PFN_vkVoidFunction>(CmdCopyImage) },
5383e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCmdCopyImageToBuffer", reinterpret_cast<PFN_vkVoidFunction>(CmdCopyImageToBuffer) },
5393e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCmdCopyQueryPoolResults", reinterpret_cast<PFN_vkVoidFunction>(CmdCopyQueryPoolResults) },
5403e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCmdDispatch", reinterpret_cast<PFN_vkVoidFunction>(CmdDispatch) },
5413e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCmdDispatchIndirect", reinterpret_cast<PFN_vkVoidFunction>(CmdDispatchIndirect) },
5423e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCmdDraw", reinterpret_cast<PFN_vkVoidFunction>(CmdDraw) },
5433e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCmdDrawIndexed", reinterpret_cast<PFN_vkVoidFunction>(CmdDrawIndexed) },
5443e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCmdDrawIndexedIndirect", reinterpret_cast<PFN_vkVoidFunction>(CmdDrawIndexedIndirect) },
5453e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCmdDrawIndirect", reinterpret_cast<PFN_vkVoidFunction>(CmdDrawIndirect) },
5463e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCmdEndQuery", reinterpret_cast<PFN_vkVoidFunction>(CmdEndQuery) },
5473e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCmdEndRenderPass", reinterpret_cast<PFN_vkVoidFunction>(CmdEndRenderPass) },
5483e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCmdExecuteCommands", reinterpret_cast<PFN_vkVoidFunction>(CmdExecuteCommands) },
5493e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCmdFillBuffer", reinterpret_cast<PFN_vkVoidFunction>(CmdFillBuffer) },
5503e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCmdNextSubpass", reinterpret_cast<PFN_vkVoidFunction>(CmdNextSubpass) },
5513e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCmdPipelineBarrier", reinterpret_cast<PFN_vkVoidFunction>(CmdPipelineBarrier) },
5523e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCmdPushConstants", reinterpret_cast<PFN_vkVoidFunction>(CmdPushConstants) },
5533e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCmdResetEvent", reinterpret_cast<PFN_vkVoidFunction>(CmdResetEvent) },
5543e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCmdResetQueryPool", reinterpret_cast<PFN_vkVoidFunction>(CmdResetQueryPool) },
5553e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCmdResolveImage", reinterpret_cast<PFN_vkVoidFunction>(CmdResolveImage) },
5563e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCmdSetBlendConstants", reinterpret_cast<PFN_vkVoidFunction>(CmdSetBlendConstants) },
5573e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCmdSetDepthBias", reinterpret_cast<PFN_vkVoidFunction>(CmdSetDepthBias) },
5583e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCmdSetDepthBounds", reinterpret_cast<PFN_vkVoidFunction>(CmdSetDepthBounds) },
5593e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCmdSetEvent", reinterpret_cast<PFN_vkVoidFunction>(CmdSetEvent) },
5603e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCmdSetLineWidth", reinterpret_cast<PFN_vkVoidFunction>(CmdSetLineWidth) },
5613e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCmdSetScissor", reinterpret_cast<PFN_vkVoidFunction>(CmdSetScissor) },
5623e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCmdSetStencilCompareMask", reinterpret_cast<PFN_vkVoidFunction>(CmdSetStencilCompareMask) },
5633e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCmdSetStencilReference", reinterpret_cast<PFN_vkVoidFunction>(CmdSetStencilReference) },
5643e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCmdSetStencilWriteMask", reinterpret_cast<PFN_vkVoidFunction>(CmdSetStencilWriteMask) },
5653e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCmdSetViewport", reinterpret_cast<PFN_vkVoidFunction>(CmdSetViewport) },
5663e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCmdUpdateBuffer", reinterpret_cast<PFN_vkVoidFunction>(CmdUpdateBuffer) },
5673e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCmdWaitEvents", reinterpret_cast<PFN_vkVoidFunction>(CmdWaitEvents) },
5683e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCmdWriteTimestamp", reinterpret_cast<PFN_vkVoidFunction>(CmdWriteTimestamp) },
5693e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCreateBuffer", reinterpret_cast<PFN_vkVoidFunction>(CreateBuffer) },
5703e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCreateBufferView", reinterpret_cast<PFN_vkVoidFunction>(CreateBufferView) },
5713e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCreateCommandPool", reinterpret_cast<PFN_vkVoidFunction>(CreateCommandPool) },
5723e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCreateComputePipelines", reinterpret_cast<PFN_vkVoidFunction>(CreateComputePipelines) },
5733e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCreateDescriptorPool", reinterpret_cast<PFN_vkVoidFunction>(CreateDescriptorPool) },
5743e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCreateDescriptorSetLayout", reinterpret_cast<PFN_vkVoidFunction>(CreateDescriptorSetLayout) },
5753e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCreateDevice", reinterpret_cast<PFN_vkVoidFunction>(CreateDevice) },
5763e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCreateEvent", reinterpret_cast<PFN_vkVoidFunction>(CreateEvent) },
5773e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCreateFence", reinterpret_cast<PFN_vkVoidFunction>(CreateFence) },
5783e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCreateFramebuffer", reinterpret_cast<PFN_vkVoidFunction>(CreateFramebuffer) },
5793e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCreateGraphicsPipelines", reinterpret_cast<PFN_vkVoidFunction>(CreateGraphicsPipelines) },
5803e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCreateImage", reinterpret_cast<PFN_vkVoidFunction>(CreateImage) },
5813e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCreateImageView", reinterpret_cast<PFN_vkVoidFunction>(CreateImageView) },
5820c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu        { "vkCreateInstance", nullptr },
5833e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCreatePipelineCache", reinterpret_cast<PFN_vkVoidFunction>(CreatePipelineCache) },
5843e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCreatePipelineLayout", reinterpret_cast<PFN_vkVoidFunction>(CreatePipelineLayout) },
5853e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCreateQueryPool", reinterpret_cast<PFN_vkVoidFunction>(CreateQueryPool) },
5863e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCreateRenderPass", reinterpret_cast<PFN_vkVoidFunction>(CreateRenderPass) },
5873e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCreateSampler", reinterpret_cast<PFN_vkVoidFunction>(CreateSampler) },
5883e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCreateSemaphore", reinterpret_cast<PFN_vkVoidFunction>(CreateSemaphore) },
5893e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCreateShaderModule", reinterpret_cast<PFN_vkVoidFunction>(CreateShaderModule) },
5903e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkCreateSwapchainKHR", reinterpret_cast<PFN_vkVoidFunction>(CreateSwapchainKHR) },
5913e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkDestroyBuffer", reinterpret_cast<PFN_vkVoidFunction>(DestroyBuffer) },
5923e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkDestroyBufferView", reinterpret_cast<PFN_vkVoidFunction>(DestroyBufferView) },
5933e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkDestroyCommandPool", reinterpret_cast<PFN_vkVoidFunction>(DestroyCommandPool) },
5943e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkDestroyDescriptorPool", reinterpret_cast<PFN_vkVoidFunction>(DestroyDescriptorPool) },
5953e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkDestroyDescriptorSetLayout", reinterpret_cast<PFN_vkVoidFunction>(DestroyDescriptorSetLayout) },
5963e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkDestroyDevice", reinterpret_cast<PFN_vkVoidFunction>(DestroyDevice) },
5973e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkDestroyEvent", reinterpret_cast<PFN_vkVoidFunction>(DestroyEvent) },
5983e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkDestroyFence", reinterpret_cast<PFN_vkVoidFunction>(DestroyFence) },
5993e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkDestroyFramebuffer", reinterpret_cast<PFN_vkVoidFunction>(DestroyFramebuffer) },
6003e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkDestroyImage", reinterpret_cast<PFN_vkVoidFunction>(DestroyImage) },
6013e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkDestroyImageView", reinterpret_cast<PFN_vkVoidFunction>(DestroyImageView) },
6023e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkDestroyInstance", reinterpret_cast<PFN_vkVoidFunction>(DestroyInstance) },
6033e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkDestroyPipeline", reinterpret_cast<PFN_vkVoidFunction>(DestroyPipeline) },
6043e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkDestroyPipelineCache", reinterpret_cast<PFN_vkVoidFunction>(DestroyPipelineCache) },
6053e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkDestroyPipelineLayout", reinterpret_cast<PFN_vkVoidFunction>(DestroyPipelineLayout) },
6063e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkDestroyQueryPool", reinterpret_cast<PFN_vkVoidFunction>(DestroyQueryPool) },
6073e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkDestroyRenderPass", reinterpret_cast<PFN_vkVoidFunction>(DestroyRenderPass) },
6083e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkDestroySampler", reinterpret_cast<PFN_vkVoidFunction>(DestroySampler) },
6093e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkDestroySemaphore", reinterpret_cast<PFN_vkVoidFunction>(DestroySemaphore) },
6103e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkDestroyShaderModule", reinterpret_cast<PFN_vkVoidFunction>(DestroyShaderModule) },
6113e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkDestroySwapchainKHR", reinterpret_cast<PFN_vkVoidFunction>(DestroySwapchainKHR) },
6123e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkDeviceWaitIdle", reinterpret_cast<PFN_vkVoidFunction>(DeviceWaitIdle) },
6133e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkEndCommandBuffer", reinterpret_cast<PFN_vkVoidFunction>(EndCommandBuffer) },
6143e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkEnumerateDeviceExtensionProperties", reinterpret_cast<PFN_vkVoidFunction>(EnumerateDeviceExtensionProperties) },
6153e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkEnumerateDeviceLayerProperties", reinterpret_cast<PFN_vkVoidFunction>(EnumerateDeviceLayerProperties) },
6160c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu        { "vkEnumerateInstanceExtensionProperties", nullptr },
6170c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu        { "vkEnumerateInstanceLayerProperties", nullptr },
6183e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkFlushMappedMemoryRanges", reinterpret_cast<PFN_vkVoidFunction>(FlushMappedMemoryRanges) },
6193e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkFreeCommandBuffers", reinterpret_cast<PFN_vkVoidFunction>(FreeCommandBuffers) },
6203e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkFreeDescriptorSets", reinterpret_cast<PFN_vkVoidFunction>(FreeDescriptorSets) },
6213e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkFreeMemory", reinterpret_cast<PFN_vkVoidFunction>(FreeMemory) },
6223e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkGetBufferMemoryRequirements", reinterpret_cast<PFN_vkVoidFunction>(GetBufferMemoryRequirements) },
6233e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkGetDeviceMemoryCommitment", reinterpret_cast<PFN_vkVoidFunction>(GetDeviceMemoryCommitment) },
6243e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkGetDeviceProcAddr", reinterpret_cast<PFN_vkVoidFunction>(GetDeviceProcAddr) },
6253e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkGetDeviceQueue", reinterpret_cast<PFN_vkVoidFunction>(GetDeviceQueue) },
6263e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkGetEventStatus", reinterpret_cast<PFN_vkVoidFunction>(GetEventStatus) },
6273e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkGetFenceStatus", reinterpret_cast<PFN_vkVoidFunction>(GetFenceStatus) },
6283e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkGetImageMemoryRequirements", reinterpret_cast<PFN_vkVoidFunction>(GetImageMemoryRequirements) },
6293e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkGetImageSparseMemoryRequirements", reinterpret_cast<PFN_vkVoidFunction>(GetImageSparseMemoryRequirements) },
6303e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkGetImageSubresourceLayout", reinterpret_cast<PFN_vkVoidFunction>(GetImageSubresourceLayout) },
6313e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkGetInstanceProcAddr", reinterpret_cast<PFN_vkVoidFunction>(GetInstanceProcAddr) },
6323e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkGetPipelineCacheData", reinterpret_cast<PFN_vkVoidFunction>(GetPipelineCacheData) },
6333e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkGetQueryPoolResults", reinterpret_cast<PFN_vkVoidFunction>(GetQueryPoolResults) },
6343e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkGetRenderAreaGranularity", reinterpret_cast<PFN_vkVoidFunction>(GetRenderAreaGranularity) },
6353e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkGetSwapchainImagesKHR", reinterpret_cast<PFN_vkVoidFunction>(GetSwapchainImagesKHR) },
6363e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkInvalidateMappedMemoryRanges", reinterpret_cast<PFN_vkVoidFunction>(InvalidateMappedMemoryRanges) },
6373e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkMapMemory", reinterpret_cast<PFN_vkVoidFunction>(MapMemory) },
6383e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkMergePipelineCaches", reinterpret_cast<PFN_vkVoidFunction>(MergePipelineCaches) },
6393e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkQueueBindSparse", reinterpret_cast<PFN_vkVoidFunction>(QueueBindSparse) },
6403e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkQueuePresentKHR", reinterpret_cast<PFN_vkVoidFunction>(QueuePresentKHR) },
6413e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkQueueSubmit", reinterpret_cast<PFN_vkVoidFunction>(QueueSubmit) },
6423e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkQueueWaitIdle", reinterpret_cast<PFN_vkVoidFunction>(QueueWaitIdle) },
6433e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkResetCommandBuffer", reinterpret_cast<PFN_vkVoidFunction>(ResetCommandBuffer) },
6443e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkResetCommandPool", reinterpret_cast<PFN_vkVoidFunction>(ResetCommandPool) },
6453e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkResetDescriptorPool", reinterpret_cast<PFN_vkVoidFunction>(ResetDescriptorPool) },
6463e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkResetEvent", reinterpret_cast<PFN_vkVoidFunction>(ResetEvent) },
6473e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkResetFences", reinterpret_cast<PFN_vkVoidFunction>(ResetFences) },
6483e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkSetEvent", reinterpret_cast<PFN_vkVoidFunction>(SetEvent) },
6493e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkUnmapMemory", reinterpret_cast<PFN_vkVoidFunction>(UnmapMemory) },
6503e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkUpdateDescriptorSets", reinterpret_cast<PFN_vkVoidFunction>(UpdateDescriptorSets) },
6513e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu        { "vkWaitForFences", reinterpret_cast<PFN_vkVoidFunction>(WaitForFences) },
6520c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu    };
6530c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu    // clang-format on
6540c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu    constexpr size_t count = sizeof(hooks) / sizeof(hooks[0]);
6550c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu    auto hook = std::lower_bound(
6560c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu        hooks, hooks + count, pName,
6570c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu        [](const Hook& h, const char* n) { return strcmp(h.name, n) < 0; });
6580c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu    if (hook < hooks + count && strcmp(hook->name, pName) == 0) {
6595beb2ac5e0b676e55be9f0b768ba3fd3697f3216Chia-I Wu        if (!hook->proc) {
6605beb2ac5e0b676e55be9f0b768ba3fd3697f3216Chia-I Wu            vulkan::driver::Logger(instance).Err(
6615beb2ac5e0b676e55be9f0b768ba3fd3697f3216Chia-I Wu                instance, "invalid vkGetInstanceProcAddr(%p, \"%s\") call",
6625beb2ac5e0b676e55be9f0b768ba3fd3697f3216Chia-I Wu                instance, pName);
6635beb2ac5e0b676e55be9f0b768ba3fd3697f3216Chia-I Wu        }
6640c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu        return hook->proc;
6650c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu    }
6660c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu    // clang-format off
6670c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
6683e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(instance).dispatch.GetInstanceProcAddr(instance, pName);
6693e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
6703e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
6713e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void GetPhysicalDeviceProperties(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties) {
6723e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(physicalDevice).dispatch.GetPhysicalDeviceProperties(physicalDevice, pProperties);
6733e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
6743e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
6753e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void GetPhysicalDeviceQueueFamilyProperties(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties) {
6763e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(physicalDevice).dispatch.GetPhysicalDeviceQueueFamilyProperties(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties);
6773e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
6783e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
6793e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void GetPhysicalDeviceMemoryProperties(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties) {
6803e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(physicalDevice).dispatch.GetPhysicalDeviceMemoryProperties(physicalDevice, pMemoryProperties);
6813e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
6823e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
6833e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void GetPhysicalDeviceFeatures(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures) {
6843e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(physicalDevice).dispatch.GetPhysicalDeviceFeatures(physicalDevice, pFeatures);
6853e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
6863e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
6873e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void GetPhysicalDeviceFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties) {
6883e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(physicalDevice).dispatch.GetPhysicalDeviceFormatProperties(physicalDevice, format, pFormatProperties);
6893e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
6903e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
6913e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult GetPhysicalDeviceImageFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties) {
6923e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(physicalDevice).dispatch.GetPhysicalDeviceImageFormatProperties(physicalDevice, format, type, tiling, usage, flags, pImageFormatProperties);
6933e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
6943e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
6953e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void GetDeviceQueue(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue) {
6963e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(device).dispatch.GetDeviceQueue(device, queueFamilyIndex, queueIndex, pQueue);
6973e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
6983e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
6993e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult QueueSubmit(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence) {
7003e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(queue).dispatch.QueueSubmit(queue, submitCount, pSubmits, fence);
7013e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
7023e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
7033e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult QueueWaitIdle(VkQueue queue) {
7043e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(queue).dispatch.QueueWaitIdle(queue);
7053e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
7063e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
7073e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult DeviceWaitIdle(VkDevice device) {
7083e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(device).dispatch.DeviceWaitIdle(device);
7093e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
7103e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
7113e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult AllocateMemory(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory) {
7123e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(device).dispatch.AllocateMemory(device, pAllocateInfo, pAllocator, pMemory);
7133e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
7143e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
7153e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void FreeMemory(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator) {
7163e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(device).dispatch.FreeMemory(device, memory, pAllocator);
7173e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
7183e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
7193e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult MapMemory(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData) {
7203e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(device).dispatch.MapMemory(device, memory, offset, size, flags, ppData);
7213e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
7223e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
7233e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void UnmapMemory(VkDevice device, VkDeviceMemory memory) {
7243e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(device).dispatch.UnmapMemory(device, memory);
7253e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
7263e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
7273e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult FlushMappedMemoryRanges(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges) {
7283e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(device).dispatch.FlushMappedMemoryRanges(device, memoryRangeCount, pMemoryRanges);
7293e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
7303e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
7313e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult InvalidateMappedMemoryRanges(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges) {
7323e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(device).dispatch.InvalidateMappedMemoryRanges(device, memoryRangeCount, pMemoryRanges);
7333e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
7343e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
7353e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void GetDeviceMemoryCommitment(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes) {
7363e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(device).dispatch.GetDeviceMemoryCommitment(device, memory, pCommittedMemoryInBytes);
7373e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
7383e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
7393e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void GetBufferMemoryRequirements(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements) {
7403e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(device).dispatch.GetBufferMemoryRequirements(device, buffer, pMemoryRequirements);
7413e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
7423e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
7433e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult BindBufferMemory(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset) {
7443e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(device).dispatch.BindBufferMemory(device, buffer, memory, memoryOffset);
7453e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
7463e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
7473e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void GetImageMemoryRequirements(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements) {
7483e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(device).dispatch.GetImageMemoryRequirements(device, image, pMemoryRequirements);
7493e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
7503e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
7513e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult BindImageMemory(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset) {
7523e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(device).dispatch.BindImageMemory(device, image, memory, memoryOffset);
7533e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
7543e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
7553e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void GetImageSparseMemoryRequirements(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements) {
7563e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(device).dispatch.GetImageSparseMemoryRequirements(device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
7573e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
7583e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
7593e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void GetPhysicalDeviceSparseImageFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties) {
7603e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(physicalDevice).dispatch.GetPhysicalDeviceSparseImageFormatProperties(physicalDevice, format, type, samples, usage, tiling, pPropertyCount, pProperties);
7613e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
7623e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
7633e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult QueueBindSparse(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence) {
7643e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(queue).dispatch.QueueBindSparse(queue, bindInfoCount, pBindInfo, fence);
7653e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
7663e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
7673e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult CreateFence(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence) {
7683e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(device).dispatch.CreateFence(device, pCreateInfo, pAllocator, pFence);
7693e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
7703e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
7713e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void DestroyFence(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator) {
7723e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(device).dispatch.DestroyFence(device, fence, pAllocator);
7733e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
7743e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
7753e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult ResetFences(VkDevice device, uint32_t fenceCount, const VkFence* pFences) {
7763e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(device).dispatch.ResetFences(device, fenceCount, pFences);
7773e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
7783e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
7793e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult GetFenceStatus(VkDevice device, VkFence fence) {
7803e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(device).dispatch.GetFenceStatus(device, fence);
7813e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
7823e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
7833e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult WaitForFences(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout) {
7843e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(device).dispatch.WaitForFences(device, fenceCount, pFences, waitAll, timeout);
7853e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
7863e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
7873e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult CreateSemaphore(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore) {
7883e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(device).dispatch.CreateSemaphore(device, pCreateInfo, pAllocator, pSemaphore);
7893e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
7903e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
7913e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void DestroySemaphore(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator) {
7923e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(device).dispatch.DestroySemaphore(device, semaphore, pAllocator);
7933e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
7943e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
7953e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult CreateEvent(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent) {
7963e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(device).dispatch.CreateEvent(device, pCreateInfo, pAllocator, pEvent);
7973e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
7983e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
7993e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void DestroyEvent(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator) {
8003e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(device).dispatch.DestroyEvent(device, event, pAllocator);
8013e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
8023e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
8033e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult GetEventStatus(VkDevice device, VkEvent event) {
8043e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(device).dispatch.GetEventStatus(device, event);
8053e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
8063e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
8073e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult SetEvent(VkDevice device, VkEvent event) {
8083e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(device).dispatch.SetEvent(device, event);
8093e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
8103e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
8113e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult ResetEvent(VkDevice device, VkEvent event) {
8123e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(device).dispatch.ResetEvent(device, event);
8133e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
8143e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
8153e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult CreateQueryPool(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool) {
8163e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(device).dispatch.CreateQueryPool(device, pCreateInfo, pAllocator, pQueryPool);
8173e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
8183e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
8193e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void DestroyQueryPool(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator) {
8203e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(device).dispatch.DestroyQueryPool(device, queryPool, pAllocator);
8213e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
8223e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
8233e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult GetQueryPoolResults(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags) {
8243e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(device).dispatch.GetQueryPoolResults(device, queryPool, firstQuery, queryCount, dataSize, pData, stride, flags);
8253e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
8263e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
8273e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult CreateBuffer(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer) {
8283e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(device).dispatch.CreateBuffer(device, pCreateInfo, pAllocator, pBuffer);
8293e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
8303e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
8313e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void DestroyBuffer(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator) {
8323e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(device).dispatch.DestroyBuffer(device, buffer, pAllocator);
8333e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
8343e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
8353e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult CreateBufferView(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView) {
8363e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(device).dispatch.CreateBufferView(device, pCreateInfo, pAllocator, pView);
8373e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
8383e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
8393e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void DestroyBufferView(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator) {
8403e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(device).dispatch.DestroyBufferView(device, bufferView, pAllocator);
8413e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
8423e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
8433e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult CreateImage(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage) {
8443e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(device).dispatch.CreateImage(device, pCreateInfo, pAllocator, pImage);
8453e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
8463e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
8473e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void DestroyImage(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator) {
8483e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(device).dispatch.DestroyImage(device, image, pAllocator);
8493e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
8503e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
8513e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void GetImageSubresourceLayout(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout) {
8523e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(device).dispatch.GetImageSubresourceLayout(device, image, pSubresource, pLayout);
8533e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
8543e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
8553e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult CreateImageView(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView) {
8563e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(device).dispatch.CreateImageView(device, pCreateInfo, pAllocator, pView);
8573e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
8583e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
8593e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void DestroyImageView(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator) {
8603e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(device).dispatch.DestroyImageView(device, imageView, pAllocator);
8613e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
8623e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
8633e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult CreateShaderModule(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule) {
8643e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(device).dispatch.CreateShaderModule(device, pCreateInfo, pAllocator, pShaderModule);
8653e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
8663e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
8673e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void DestroyShaderModule(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator) {
8683e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(device).dispatch.DestroyShaderModule(device, shaderModule, pAllocator);
8693e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
8703e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
8713e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult CreatePipelineCache(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache) {
8723e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(device).dispatch.CreatePipelineCache(device, pCreateInfo, pAllocator, pPipelineCache);
8733e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
8743e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
8753e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void DestroyPipelineCache(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator) {
8763e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(device).dispatch.DestroyPipelineCache(device, pipelineCache, pAllocator);
8773e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
8783e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
8793e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult GetPipelineCacheData(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData) {
8803e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(device).dispatch.GetPipelineCacheData(device, pipelineCache, pDataSize, pData);
8813e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
8823e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
8833e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult MergePipelineCaches(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches) {
8843e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(device).dispatch.MergePipelineCaches(device, dstCache, srcCacheCount, pSrcCaches);
8853e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
8863e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
8873e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult CreateGraphicsPipelines(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) {
8883e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(device).dispatch.CreateGraphicsPipelines(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
8893e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
8903e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
8913e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult CreateComputePipelines(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) {
8923e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(device).dispatch.CreateComputePipelines(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
8933e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
8943e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
8953e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void DestroyPipeline(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator) {
8963e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(device).dispatch.DestroyPipeline(device, pipeline, pAllocator);
8973e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
8983e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
8993e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult CreatePipelineLayout(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout) {
9003e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(device).dispatch.CreatePipelineLayout(device, pCreateInfo, pAllocator, pPipelineLayout);
9013e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
9023e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
9033e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void DestroyPipelineLayout(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator) {
9043e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(device).dispatch.DestroyPipelineLayout(device, pipelineLayout, pAllocator);
9053e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
9063e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
9073e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult CreateSampler(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler) {
9083e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(device).dispatch.CreateSampler(device, pCreateInfo, pAllocator, pSampler);
9093e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
9103e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
9113e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void DestroySampler(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator) {
9123e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(device).dispatch.DestroySampler(device, sampler, pAllocator);
9133e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
9143e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
9153e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult CreateDescriptorSetLayout(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout) {
9163e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(device).dispatch.CreateDescriptorSetLayout(device, pCreateInfo, pAllocator, pSetLayout);
9173e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
9183e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
9193e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void DestroyDescriptorSetLayout(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator) {
9203e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(device).dispatch.DestroyDescriptorSetLayout(device, descriptorSetLayout, pAllocator);
9213e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
9223e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
9233e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult CreateDescriptorPool(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool) {
9243e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(device).dispatch.CreateDescriptorPool(device, pCreateInfo, pAllocator, pDescriptorPool);
9253e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
9263e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
9273e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void DestroyDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator) {
9283e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(device).dispatch.DestroyDescriptorPool(device, descriptorPool, pAllocator);
9293e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
9303e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
9313e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult ResetDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags) {
9323e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(device).dispatch.ResetDescriptorPool(device, descriptorPool, flags);
9333e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
9343e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
9353e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult AllocateDescriptorSets(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets) {
9363e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(device).dispatch.AllocateDescriptorSets(device, pAllocateInfo, pDescriptorSets);
9373e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
9383e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
9393e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult FreeDescriptorSets(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets) {
9403e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(device).dispatch.FreeDescriptorSets(device, descriptorPool, descriptorSetCount, pDescriptorSets);
9413e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
9423e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
9433e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void UpdateDescriptorSets(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies) {
9443e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(device).dispatch.UpdateDescriptorSets(device, descriptorWriteCount, pDescriptorWrites, descriptorCopyCount, pDescriptorCopies);
9453e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
9463e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
9473e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult CreateFramebuffer(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer) {
9483e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(device).dispatch.CreateFramebuffer(device, pCreateInfo, pAllocator, pFramebuffer);
9493e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
9503e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
9513e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void DestroyFramebuffer(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator) {
9523e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(device).dispatch.DestroyFramebuffer(device, framebuffer, pAllocator);
9533e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
9543e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
9553e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult CreateRenderPass(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass) {
9563e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(device).dispatch.CreateRenderPass(device, pCreateInfo, pAllocator, pRenderPass);
9573e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
9583e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
9593e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void DestroyRenderPass(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator) {
9603e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(device).dispatch.DestroyRenderPass(device, renderPass, pAllocator);
9613e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
9623e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
9633e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void GetRenderAreaGranularity(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity) {
9643e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(device).dispatch.GetRenderAreaGranularity(device, renderPass, pGranularity);
9653e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
9663e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
9673e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult CreateCommandPool(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool) {
9683e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(device).dispatch.CreateCommandPool(device, pCreateInfo, pAllocator, pCommandPool);
9693e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
9703e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
9713e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void DestroyCommandPool(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator) {
9723e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(device).dispatch.DestroyCommandPool(device, commandPool, pAllocator);
9733e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
9743e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
9753e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult ResetCommandPool(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags) {
9763e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(device).dispatch.ResetCommandPool(device, commandPool, flags);
9773e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
9783e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
9793e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult AllocateCommandBuffers(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers) {
9803e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(device).dispatch.AllocateCommandBuffers(device, pAllocateInfo, pCommandBuffers);
9813e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
9823e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
9833e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void FreeCommandBuffers(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers) {
9843e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(device).dispatch.FreeCommandBuffers(device, commandPool, commandBufferCount, pCommandBuffers);
9853e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
9863e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
9873e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult BeginCommandBuffer(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo) {
9883e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(commandBuffer).dispatch.BeginCommandBuffer(commandBuffer, pBeginInfo);
9893e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
9903e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
9913e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult EndCommandBuffer(VkCommandBuffer commandBuffer) {
9923e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(commandBuffer).dispatch.EndCommandBuffer(commandBuffer);
9933e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
9943e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
9953e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult ResetCommandBuffer(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags) {
9963e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(commandBuffer).dispatch.ResetCommandBuffer(commandBuffer, flags);
9973e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
9983e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
9993e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdBindPipeline(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline) {
10003e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(commandBuffer).dispatch.CmdBindPipeline(commandBuffer, pipelineBindPoint, pipeline);
10013e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
10023e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
10033e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdSetViewport(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports) {
10043e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(commandBuffer).dispatch.CmdSetViewport(commandBuffer, firstViewport, viewportCount, pViewports);
10053e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
10063e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
10073e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdSetScissor(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors) {
10083e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(commandBuffer).dispatch.CmdSetScissor(commandBuffer, firstScissor, scissorCount, pScissors);
10093e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
10103e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
10113e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdSetLineWidth(VkCommandBuffer commandBuffer, float lineWidth) {
10123e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(commandBuffer).dispatch.CmdSetLineWidth(commandBuffer, lineWidth);
10133e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
10143e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
10153e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdSetDepthBias(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor) {
10163e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(commandBuffer).dispatch.CmdSetDepthBias(commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor);
10173e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
10183e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
10193e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdSetBlendConstants(VkCommandBuffer commandBuffer, const float blendConstants[4]) {
10203e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(commandBuffer).dispatch.CmdSetBlendConstants(commandBuffer, blendConstants);
10213e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
10223e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
10233e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdSetDepthBounds(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds) {
10243e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(commandBuffer).dispatch.CmdSetDepthBounds(commandBuffer, minDepthBounds, maxDepthBounds);
10253e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
10263e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
10273e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdSetStencilCompareMask(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask) {
10283e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(commandBuffer).dispatch.CmdSetStencilCompareMask(commandBuffer, faceMask, compareMask);
10293e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
10303e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
10313e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdSetStencilWriteMask(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask) {
10323e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(commandBuffer).dispatch.CmdSetStencilWriteMask(commandBuffer, faceMask, writeMask);
10333e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
10343e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
10353e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdSetStencilReference(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference) {
10363e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(commandBuffer).dispatch.CmdSetStencilReference(commandBuffer, faceMask, reference);
10373e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
10383e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
10393e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_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) {
10403e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(commandBuffer).dispatch.CmdBindDescriptorSets(commandBuffer, pipelineBindPoint, layout, firstSet, descriptorSetCount, pDescriptorSets, dynamicOffsetCount, pDynamicOffsets);
10413e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
10423e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
10433e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdBindIndexBuffer(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType) {
10443e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(commandBuffer).dispatch.CmdBindIndexBuffer(commandBuffer, buffer, offset, indexType);
10453e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
10463e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
10473e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdBindVertexBuffers(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets) {
10483e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(commandBuffer).dispatch.CmdBindVertexBuffers(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets);
10493e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
10503e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
10513e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdDraw(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance) {
10523e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(commandBuffer).dispatch.CmdDraw(commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance);
10533e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
10543e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
10553e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdDrawIndexed(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance) {
10563e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(commandBuffer).dispatch.CmdDrawIndexed(commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance);
10573e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
10583e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
10593e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdDrawIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride) {
10603e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(commandBuffer).dispatch.CmdDrawIndirect(commandBuffer, buffer, offset, drawCount, stride);
10613e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
10623e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
10633e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdDrawIndexedIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride) {
10643e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(commandBuffer).dispatch.CmdDrawIndexedIndirect(commandBuffer, buffer, offset, drawCount, stride);
10653e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
10663e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
1067ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR void CmdDispatch(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ) {
1068ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    GetData(commandBuffer).dispatch.CmdDispatch(commandBuffer, groupCountX, groupCountY, groupCountZ);
10693e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
10703e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
10713e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdDispatchIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset) {
10723e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(commandBuffer).dispatch.CmdDispatchIndirect(commandBuffer, buffer, offset);
10733e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
10743e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
10753e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdCopyBuffer(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions) {
10763e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(commandBuffer).dispatch.CmdCopyBuffer(commandBuffer, srcBuffer, dstBuffer, regionCount, pRegions);
10773e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
10783e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
10793e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdCopyImage(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions) {
10803e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(commandBuffer).dispatch.CmdCopyImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions);
10813e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
10823e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
10833e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdBlitImage(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter) {
10843e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(commandBuffer).dispatch.CmdBlitImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter);
10853e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
10863e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
10873e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdCopyBufferToImage(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions) {
10883e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(commandBuffer).dispatch.CmdCopyBufferToImage(commandBuffer, srcBuffer, dstImage, dstImageLayout, regionCount, pRegions);
10893e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
10903e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
10913e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdCopyImageToBuffer(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions) {
10923e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(commandBuffer).dispatch.CmdCopyImageToBuffer(commandBuffer, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions);
10933e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
10943e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
109556d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse HallVKAPI_ATTR void CmdUpdateBuffer(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData) {
10963e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(commandBuffer).dispatch.CmdUpdateBuffer(commandBuffer, dstBuffer, dstOffset, dataSize, pData);
10973e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
10983e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
10993e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdFillBuffer(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data) {
11003e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(commandBuffer).dispatch.CmdFillBuffer(commandBuffer, dstBuffer, dstOffset, size, data);
11013e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
11023e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
11033e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdClearColorImage(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges) {
11043e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(commandBuffer).dispatch.CmdClearColorImage(commandBuffer, image, imageLayout, pColor, rangeCount, pRanges);
11053e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
11063e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
11073e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdClearDepthStencilImage(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges) {
11083e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(commandBuffer).dispatch.CmdClearDepthStencilImage(commandBuffer, image, imageLayout, pDepthStencil, rangeCount, pRanges);
11093e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
11103e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
11113e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdClearAttachments(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects) {
11123e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(commandBuffer).dispatch.CmdClearAttachments(commandBuffer, attachmentCount, pAttachments, rectCount, pRects);
11133e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
11143e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
11153e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdResolveImage(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions) {
11163e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(commandBuffer).dispatch.CmdResolveImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions);
11173e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
11183e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
11193e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdSetEvent(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask) {
11203e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(commandBuffer).dispatch.CmdSetEvent(commandBuffer, event, stageMask);
11213e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
11223e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
11233e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdResetEvent(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask) {
11243e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(commandBuffer).dispatch.CmdResetEvent(commandBuffer, event, stageMask);
11253e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
11263e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
11273e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_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) {
11283e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(commandBuffer).dispatch.CmdWaitEvents(commandBuffer, eventCount, pEvents, srcStageMask, dstStageMask, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers);
11293e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
11303e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
11313e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_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) {
11323e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(commandBuffer).dispatch.CmdPipelineBarrier(commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers);
11333e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
11343e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
11353e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdBeginQuery(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags) {
11363e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(commandBuffer).dispatch.CmdBeginQuery(commandBuffer, queryPool, query, flags);
11373e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
11383e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
11393e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdEndQuery(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query) {
11403e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(commandBuffer).dispatch.CmdEndQuery(commandBuffer, queryPool, query);
11413e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
11423e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
11433e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdResetQueryPool(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount) {
11443e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(commandBuffer).dispatch.CmdResetQueryPool(commandBuffer, queryPool, firstQuery, queryCount);
11453e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
11463e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
11473e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdWriteTimestamp(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query) {
11483e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(commandBuffer).dispatch.CmdWriteTimestamp(commandBuffer, pipelineStage, queryPool, query);
11493e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
11503e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
11513e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdCopyQueryPoolResults(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags) {
11523e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(commandBuffer).dispatch.CmdCopyQueryPoolResults(commandBuffer, queryPool, firstQuery, queryCount, dstBuffer, dstOffset, stride, flags);
11533e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
11543e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
11553e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdPushConstants(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues) {
11563e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(commandBuffer).dispatch.CmdPushConstants(commandBuffer, layout, stageFlags, offset, size, pValues);
11573e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
11583e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
11593e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdBeginRenderPass(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents) {
11603e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(commandBuffer).dispatch.CmdBeginRenderPass(commandBuffer, pRenderPassBegin, contents);
11613e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
11623e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
11633e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdNextSubpass(VkCommandBuffer commandBuffer, VkSubpassContents contents) {
11643e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(commandBuffer).dispatch.CmdNextSubpass(commandBuffer, contents);
11653e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
11663e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
11673e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdEndRenderPass(VkCommandBuffer commandBuffer) {
11683e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(commandBuffer).dispatch.CmdEndRenderPass(commandBuffer);
11693e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
11703e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
11713e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void CmdExecuteCommands(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers) {
11723e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(commandBuffer).dispatch.CmdExecuteCommands(commandBuffer, commandBufferCount, pCommandBuffers);
11733e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
11743e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
11753e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void DestroySurfaceKHR(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator) {
11763e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(instance).dispatch.DestroySurfaceKHR(instance, surface, pAllocator);
11773e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
11783e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
11793e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult GetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported) {
11803e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(physicalDevice).dispatch.GetPhysicalDeviceSurfaceSupportKHR(physicalDevice, queueFamilyIndex, surface, pSupported);
11813e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
11823e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
11833e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult GetPhysicalDeviceSurfaceCapabilitiesKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities) {
11843e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(physicalDevice).dispatch.GetPhysicalDeviceSurfaceCapabilitiesKHR(physicalDevice, surface, pSurfaceCapabilities);
11853e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
11863e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
11873e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult GetPhysicalDeviceSurfaceFormatsKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats) {
11883e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(physicalDevice).dispatch.GetPhysicalDeviceSurfaceFormatsKHR(physicalDevice, surface, pSurfaceFormatCount, pSurfaceFormats);
11893e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
11903e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
11913e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult GetPhysicalDeviceSurfacePresentModesKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes) {
11923e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(physicalDevice).dispatch.GetPhysicalDeviceSurfacePresentModesKHR(physicalDevice, surface, pPresentModeCount, pPresentModes);
11933e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
11943e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
11953e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult CreateSwapchainKHR(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain) {
11963e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(device).dispatch.CreateSwapchainKHR(device, pCreateInfo, pAllocator, pSwapchain);
11973e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
11983e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
11993e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void DestroySwapchainKHR(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator) {
12003e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    GetData(device).dispatch.DestroySwapchainKHR(device, swapchain, pAllocator);
12013e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
12023e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
12033e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult GetSwapchainImagesKHR(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages) {
12043e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(device).dispatch.GetSwapchainImagesKHR(device, swapchain, pSwapchainImageCount, pSwapchainImages);
12053e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
12063e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
12073e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult AcquireNextImageKHR(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex) {
12083e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(device).dispatch.AcquireNextImageKHR(device, swapchain, timeout, semaphore, fence, pImageIndex);
12093e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
12103e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
12113e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult QueuePresentKHR(VkQueue queue, const VkPresentInfoKHR* pPresentInfo) {
12123e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(queue).dispatch.QueuePresentKHR(queue, pPresentInfo);
12133e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
12143e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
12153e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult CreateAndroidSurfaceKHR(VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) {
12163e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return GetData(instance).dispatch.CreateAndroidSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
12173e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
12183e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
12193e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
12203e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}  // anonymous namespace
12213e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
12223e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu// clang-format on
12233e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
12243e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}  // namespace api
12253e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}  // namespace vulkan
12263e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
12273e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu// clang-format off
12283e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
12293e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu__attribute__((visibility("default")))
12303e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult vkCreateInstance(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance) {
12313e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::CreateInstance(pCreateInfo, pAllocator, pInstance);
12323e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
12333e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
12343e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu__attribute__((visibility("default")))
12353e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR void vkDestroyInstance(VkInstance instance, const VkAllocationCallbacks* pAllocator) {
12363e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::DestroyInstance(instance, pAllocator);
12373e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
12383e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
12393e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu__attribute__((visibility("default")))
12403e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR VkResult vkEnumeratePhysicalDevices(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices) {
12413e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::EnumeratePhysicalDevices(instance, pPhysicalDeviceCount, pPhysicalDevices);
12423e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
12433e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
12443e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu__attribute__((visibility("default")))
12453e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR PFN_vkVoidFunction vkGetDeviceProcAddr(VkDevice device, const char* pName) {
12463e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::GetDeviceProcAddr(device, pName);
12473e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu}
12483e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu
12493e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu__attribute__((visibility("default")))
12503e654dc68a954b150c141c4a2e96418883bd7c9bChia-I WuVKAPI_ATTR PFN_vkVoidFunction vkGetInstanceProcAddr(VkInstance instance, const char* pName) {
12513e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::GetInstanceProcAddr(instance, pName);
12520c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
12530c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
12540c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
12550c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkGetPhysicalDeviceProperties(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties) {
12563e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::GetPhysicalDeviceProperties(physicalDevice, pProperties);
12570c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
12580c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
12590c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
12600c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkGetPhysicalDeviceQueueFamilyProperties(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties) {
12613e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::GetPhysicalDeviceQueueFamilyProperties(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties);
12620c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
12630c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
12640c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
12650c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkGetPhysicalDeviceMemoryProperties(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties) {
12663e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::GetPhysicalDeviceMemoryProperties(physicalDevice, pMemoryProperties);
12670c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
12680c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
12690c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
12700c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkGetPhysicalDeviceFeatures(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures) {
12713e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::GetPhysicalDeviceFeatures(physicalDevice, pFeatures);
12720c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
12730c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
12740c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
12750c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkGetPhysicalDeviceFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties) {
12763e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::GetPhysicalDeviceFormatProperties(physicalDevice, format, pFormatProperties);
12770c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
12780c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
12790c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
12800c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkGetPhysicalDeviceImageFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties) {
12813e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::GetPhysicalDeviceImageFormatProperties(physicalDevice, format, type, tiling, usage, flags, pImageFormatProperties);
12820c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
12830c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
12840c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
12850c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkCreateDevice(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice) {
12860c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu    return vulkan::api::CreateDevice(physicalDevice, pCreateInfo, pAllocator, pDevice);
12870c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
12880c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
12890c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
12900c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkDestroyDevice(VkDevice device, const VkAllocationCallbacks* pAllocator) {
12910c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu    vulkan::api::DestroyDevice(device, pAllocator);
12920c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
12930c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
12940c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
12950c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkEnumerateInstanceLayerProperties(uint32_t* pPropertyCount, VkLayerProperties* pProperties) {
12960c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu    return vulkan::api::EnumerateInstanceLayerProperties(pPropertyCount, pProperties);
12970c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
12980c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
12990c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
13000c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkEnumerateInstanceExtensionProperties(const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties) {
13010c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu    return vulkan::api::EnumerateInstanceExtensionProperties(pLayerName, pPropertyCount, pProperties);
13020c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
13030c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
13040c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
13050c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkEnumerateDeviceLayerProperties(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties) {
13060c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu    return vulkan::api::EnumerateDeviceLayerProperties(physicalDevice, pPropertyCount, pProperties);
13070c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
13080c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
13090c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
13100c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkEnumerateDeviceExtensionProperties(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties) {
13110c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu    return vulkan::api::EnumerateDeviceExtensionProperties(physicalDevice, pLayerName, pPropertyCount, pProperties);
13120c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
13130c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
13140c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
13150c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkGetDeviceQueue(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue) {
13163e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::GetDeviceQueue(device, queueFamilyIndex, queueIndex, pQueue);
13170c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
13180c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
13190c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
13200c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkQueueSubmit(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence) {
13213e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::QueueSubmit(queue, submitCount, pSubmits, fence);
13220c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
13230c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
13240c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
13250c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkQueueWaitIdle(VkQueue queue) {
13263e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::QueueWaitIdle(queue);
13270c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
13280c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
13290c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
13300c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkDeviceWaitIdle(VkDevice device) {
13313e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::DeviceWaitIdle(device);
13320c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
13330c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
13340c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
13350c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkAllocateMemory(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory) {
13363e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::AllocateMemory(device, pAllocateInfo, pAllocator, pMemory);
13370c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
13380c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
13390c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
13400c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkFreeMemory(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator) {
13413e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::FreeMemory(device, memory, pAllocator);
13420c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
13430c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
13440c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
13450c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkMapMemory(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData) {
13463e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::MapMemory(device, memory, offset, size, flags, ppData);
13470c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
13480c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
13490c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
13500c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkUnmapMemory(VkDevice device, VkDeviceMemory memory) {
13513e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::UnmapMemory(device, memory);
13520c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
13530c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
13540c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
13550c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkFlushMappedMemoryRanges(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges) {
13563e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::FlushMappedMemoryRanges(device, memoryRangeCount, pMemoryRanges);
13570c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
13580c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
13590c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
13600c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkInvalidateMappedMemoryRanges(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges) {
13613e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::InvalidateMappedMemoryRanges(device, memoryRangeCount, pMemoryRanges);
13620c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
13630c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
13640c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
13650c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkGetDeviceMemoryCommitment(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes) {
13663e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::GetDeviceMemoryCommitment(device, memory, pCommittedMemoryInBytes);
13670c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
13680c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
13690c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
13700c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkGetBufferMemoryRequirements(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements) {
13713e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::GetBufferMemoryRequirements(device, buffer, pMemoryRequirements);
13720c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
13730c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
13740c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
13750c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkBindBufferMemory(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset) {
13763e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::BindBufferMemory(device, buffer, memory, memoryOffset);
13770c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
13780c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
13790c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
13800c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkGetImageMemoryRequirements(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements) {
13813e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::GetImageMemoryRequirements(device, image, pMemoryRequirements);
13820c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
13830c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
13840c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
13850c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkBindImageMemory(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset) {
13863e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::BindImageMemory(device, image, memory, memoryOffset);
13870c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
13880c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
13890c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
13900c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkGetImageSparseMemoryRequirements(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements) {
13913e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::GetImageSparseMemoryRequirements(device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
13920c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
13930c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
13940c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
13950c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkGetPhysicalDeviceSparseImageFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties) {
13963e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::GetPhysicalDeviceSparseImageFormatProperties(physicalDevice, format, type, samples, usage, tiling, pPropertyCount, pProperties);
13970c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
13980c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
13990c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
14000c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkQueueBindSparse(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence) {
14013e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::QueueBindSparse(queue, bindInfoCount, pBindInfo, fence);
14020c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
14030c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
14040c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
14050c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkCreateFence(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence) {
14063e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::CreateFence(device, pCreateInfo, pAllocator, pFence);
14070c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
14080c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
14090c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
14100c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkDestroyFence(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator) {
14113e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::DestroyFence(device, fence, pAllocator);
14120c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
14130c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
14140c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
14150c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkResetFences(VkDevice device, uint32_t fenceCount, const VkFence* pFences) {
14163e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::ResetFences(device, fenceCount, pFences);
14170c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
14180c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
14190c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
14200c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkGetFenceStatus(VkDevice device, VkFence fence) {
14213e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::GetFenceStatus(device, fence);
14220c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
14230c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
14240c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
14250c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkWaitForFences(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout) {
14263e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::WaitForFences(device, fenceCount, pFences, waitAll, timeout);
14270c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
14280c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
14290c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
14300c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkCreateSemaphore(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore) {
14313e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::CreateSemaphore(device, pCreateInfo, pAllocator, pSemaphore);
14320c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
14330c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
14340c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
14350c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkDestroySemaphore(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator) {
14363e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::DestroySemaphore(device, semaphore, pAllocator);
14370c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
14380c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
14390c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
14400c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkCreateEvent(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent) {
14413e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::CreateEvent(device, pCreateInfo, pAllocator, pEvent);
14420c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
14430c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
14440c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
14450c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkDestroyEvent(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator) {
14463e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::DestroyEvent(device, event, pAllocator);
14470c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
14480c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
14490c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
14500c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkGetEventStatus(VkDevice device, VkEvent event) {
14513e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::GetEventStatus(device, event);
14520c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
14530c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
14540c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
14550c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkSetEvent(VkDevice device, VkEvent event) {
14563e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::SetEvent(device, event);
14570c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
14580c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
14590c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
14600c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkResetEvent(VkDevice device, VkEvent event) {
14613e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::ResetEvent(device, event);
14620c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
14630c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
14640c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
14650c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkCreateQueryPool(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool) {
14663e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::CreateQueryPool(device, pCreateInfo, pAllocator, pQueryPool);
14670c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
14680c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
14690c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
14700c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkDestroyQueryPool(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator) {
14713e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::DestroyQueryPool(device, queryPool, pAllocator);
14720c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
14730c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
14740c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
14750c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkGetQueryPoolResults(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags) {
14763e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::GetQueryPoolResults(device, queryPool, firstQuery, queryCount, dataSize, pData, stride, flags);
14770c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
14780c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
14790c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
14800c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkCreateBuffer(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer) {
14813e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::CreateBuffer(device, pCreateInfo, pAllocator, pBuffer);
14820c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
14830c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
14840c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
14850c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkDestroyBuffer(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator) {
14863e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::DestroyBuffer(device, buffer, pAllocator);
14870c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
14880c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
14890c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
14900c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkCreateBufferView(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView) {
14913e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::CreateBufferView(device, pCreateInfo, pAllocator, pView);
14920c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
14930c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
14940c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
14950c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkDestroyBufferView(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator) {
14963e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::DestroyBufferView(device, bufferView, pAllocator);
14970c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
14980c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
14990c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
15000c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkCreateImage(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage) {
15013e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::CreateImage(device, pCreateInfo, pAllocator, pImage);
15020c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
15030c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
15040c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
15050c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkDestroyImage(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator) {
15063e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::DestroyImage(device, image, pAllocator);
15070c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
15080c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
15090c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
15100c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkGetImageSubresourceLayout(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout) {
15113e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::GetImageSubresourceLayout(device, image, pSubresource, pLayout);
15120c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
15130c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
15140c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
15150c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkCreateImageView(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView) {
15163e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::CreateImageView(device, pCreateInfo, pAllocator, pView);
15170c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
15180c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
15190c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
15200c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkDestroyImageView(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator) {
15213e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::DestroyImageView(device, imageView, pAllocator);
15220c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
15230c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
15240c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
15250c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkCreateShaderModule(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule) {
15263e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::CreateShaderModule(device, pCreateInfo, pAllocator, pShaderModule);
15270c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
15280c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
15290c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
15300c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkDestroyShaderModule(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator) {
15313e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::DestroyShaderModule(device, shaderModule, pAllocator);
15320c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
15330c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
15340c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
15350c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkCreatePipelineCache(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache) {
15363e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::CreatePipelineCache(device, pCreateInfo, pAllocator, pPipelineCache);
15370c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
15380c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
15390c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
15400c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkDestroyPipelineCache(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator) {
15413e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::DestroyPipelineCache(device, pipelineCache, pAllocator);
15420c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
15430c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
15440c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
15450c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkGetPipelineCacheData(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData) {
15463e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::GetPipelineCacheData(device, pipelineCache, pDataSize, pData);
15470c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
15480c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
15490c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
15500c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkMergePipelineCaches(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches) {
15513e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::MergePipelineCaches(device, dstCache, srcCacheCount, pSrcCaches);
15520c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
15530c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
15540c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
15550c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkCreateGraphicsPipelines(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) {
15563e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::CreateGraphicsPipelines(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
15570c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
15580c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
15590c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
15600c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkCreateComputePipelines(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) {
15613e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::CreateComputePipelines(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
15620c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
15630c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
15640c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
15650c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkDestroyPipeline(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator) {
15663e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::DestroyPipeline(device, pipeline, pAllocator);
15670c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
15680c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
15690c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
15700c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkCreatePipelineLayout(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout) {
15713e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::CreatePipelineLayout(device, pCreateInfo, pAllocator, pPipelineLayout);
15720c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
15730c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
15740c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
15750c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkDestroyPipelineLayout(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator) {
15763e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::DestroyPipelineLayout(device, pipelineLayout, pAllocator);
15770c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
15780c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
15790c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
15800c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkCreateSampler(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler) {
15813e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::CreateSampler(device, pCreateInfo, pAllocator, pSampler);
15820c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
15830c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
15840c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
15850c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkDestroySampler(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator) {
15863e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::DestroySampler(device, sampler, pAllocator);
15870c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
15880c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
15890c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
15900c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkCreateDescriptorSetLayout(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout) {
15913e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::CreateDescriptorSetLayout(device, pCreateInfo, pAllocator, pSetLayout);
15920c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
15930c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
15940c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
15950c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkDestroyDescriptorSetLayout(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator) {
15963e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::DestroyDescriptorSetLayout(device, descriptorSetLayout, pAllocator);
15970c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
15980c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
15990c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
16000c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkCreateDescriptorPool(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool) {
16013e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::CreateDescriptorPool(device, pCreateInfo, pAllocator, pDescriptorPool);
16020c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
16030c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
16040c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
16050c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkDestroyDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator) {
16063e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::DestroyDescriptorPool(device, descriptorPool, pAllocator);
16070c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
16080c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
16090c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
16100c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkResetDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags) {
16113e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::ResetDescriptorPool(device, descriptorPool, flags);
16120c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
16130c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
16140c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
16150c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkAllocateDescriptorSets(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets) {
16163e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::AllocateDescriptorSets(device, pAllocateInfo, pDescriptorSets);
16170c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
16180c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
16190c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
16200c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkFreeDescriptorSets(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets) {
16213e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::FreeDescriptorSets(device, descriptorPool, descriptorSetCount, pDescriptorSets);
16220c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
16230c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
16240c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
16250c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkUpdateDescriptorSets(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies) {
16263e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::UpdateDescriptorSets(device, descriptorWriteCount, pDescriptorWrites, descriptorCopyCount, pDescriptorCopies);
16270c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
16280c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
16290c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
16300c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkCreateFramebuffer(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer) {
16313e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::CreateFramebuffer(device, pCreateInfo, pAllocator, pFramebuffer);
16320c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
16330c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
16340c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
16350c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkDestroyFramebuffer(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator) {
16363e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::DestroyFramebuffer(device, framebuffer, pAllocator);
16370c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
16380c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
16390c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
16400c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkCreateRenderPass(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass) {
16413e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::CreateRenderPass(device, pCreateInfo, pAllocator, pRenderPass);
16420c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
16430c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
16440c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
16450c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkDestroyRenderPass(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator) {
16463e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::DestroyRenderPass(device, renderPass, pAllocator);
16470c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
16480c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
16490c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
16500c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkGetRenderAreaGranularity(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity) {
16513e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::GetRenderAreaGranularity(device, renderPass, pGranularity);
16520c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
16530c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
16540c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
16550c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkCreateCommandPool(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool) {
16563e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::CreateCommandPool(device, pCreateInfo, pAllocator, pCommandPool);
16570c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
16580c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
16590c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
16600c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkDestroyCommandPool(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator) {
16613e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::DestroyCommandPool(device, commandPool, pAllocator);
16620c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
16630c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
16640c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
16650c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkResetCommandPool(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags) {
16663e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::ResetCommandPool(device, commandPool, flags);
16670c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
16680c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
16690c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
16700c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkAllocateCommandBuffers(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers) {
16713e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::AllocateCommandBuffers(device, pAllocateInfo, pCommandBuffers);
16720c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
16730c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
16740c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
16750c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkFreeCommandBuffers(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers) {
16763e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::FreeCommandBuffers(device, commandPool, commandBufferCount, pCommandBuffers);
16770c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
16780c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
16790c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
16800c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkBeginCommandBuffer(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo) {
16813e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::BeginCommandBuffer(commandBuffer, pBeginInfo);
16820c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
16830c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
16840c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
16850c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkEndCommandBuffer(VkCommandBuffer commandBuffer) {
16863e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::EndCommandBuffer(commandBuffer);
16870c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
16880c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
16890c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
16900c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkResetCommandBuffer(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags) {
16913e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::ResetCommandBuffer(commandBuffer, flags);
16920c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
16930c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
16940c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
16950c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkCmdBindPipeline(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline) {
16963e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::CmdBindPipeline(commandBuffer, pipelineBindPoint, pipeline);
16970c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
16980c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
16990c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
17000c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkCmdSetViewport(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports) {
17013e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::CmdSetViewport(commandBuffer, firstViewport, viewportCount, pViewports);
17020c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
17030c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
17040c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
17050c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkCmdSetScissor(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors) {
17063e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::CmdSetScissor(commandBuffer, firstScissor, scissorCount, pScissors);
17070c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
17080c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
17090c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
17100c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkCmdSetLineWidth(VkCommandBuffer commandBuffer, float lineWidth) {
17113e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::CmdSetLineWidth(commandBuffer, lineWidth);
17120c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
17130c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
17140c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
17150c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkCmdSetDepthBias(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor) {
17163e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::CmdSetDepthBias(commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor);
17170c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
17180c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
17190c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
17200c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkCmdSetBlendConstants(VkCommandBuffer commandBuffer, const float blendConstants[4]) {
17213e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::CmdSetBlendConstants(commandBuffer, blendConstants);
17220c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
17230c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
17240c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
17250c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkCmdSetDepthBounds(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds) {
17263e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::CmdSetDepthBounds(commandBuffer, minDepthBounds, maxDepthBounds);
17270c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
17280c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
17290c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
17300c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkCmdSetStencilCompareMask(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask) {
17313e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::CmdSetStencilCompareMask(commandBuffer, faceMask, compareMask);
17320c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
17330c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
17340c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
17350c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkCmdSetStencilWriteMask(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask) {
17363e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::CmdSetStencilWriteMask(commandBuffer, faceMask, writeMask);
17370c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
17380c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
17390c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
17400c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkCmdSetStencilReference(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference) {
17413e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::CmdSetStencilReference(commandBuffer, faceMask, reference);
17420c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
17430c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
17440c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
17450c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_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) {
17463e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::CmdBindDescriptorSets(commandBuffer, pipelineBindPoint, layout, firstSet, descriptorSetCount, pDescriptorSets, dynamicOffsetCount, pDynamicOffsets);
17470c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
17480c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
17490c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
17500c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkCmdBindIndexBuffer(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType) {
17513e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::CmdBindIndexBuffer(commandBuffer, buffer, offset, indexType);
17520c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
17530c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
17540c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
17550c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkCmdBindVertexBuffers(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets) {
17563e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::CmdBindVertexBuffers(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets);
17570c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
17580c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
17590c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
17600c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkCmdDraw(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance) {
17613e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::CmdDraw(commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance);
17620c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
17630c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
17640c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
17650c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkCmdDrawIndexed(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance) {
17663e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::CmdDrawIndexed(commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance);
17670c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
17680c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
17690c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
17700c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkCmdDrawIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride) {
17713e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::CmdDrawIndirect(commandBuffer, buffer, offset, drawCount, stride);
17720c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
17730c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
17740c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
17750c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkCmdDrawIndexedIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride) {
17763e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::CmdDrawIndexedIndirect(commandBuffer, buffer, offset, drawCount, stride);
17770c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
17780c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
17790c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
1780ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR void vkCmdDispatch(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ) {
1781ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    vulkan::api::CmdDispatch(commandBuffer, groupCountX, groupCountY, groupCountZ);
17820c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
17830c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
17840c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
17850c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkCmdDispatchIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset) {
17863e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::CmdDispatchIndirect(commandBuffer, buffer, offset);
17870c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
17880c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
17890c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
17900c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkCmdCopyBuffer(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions) {
17913e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::CmdCopyBuffer(commandBuffer, srcBuffer, dstBuffer, regionCount, pRegions);
17920c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
17930c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
17940c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
17950c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkCmdCopyImage(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions) {
17963e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::CmdCopyImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions);
17970c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
17980c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
17990c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
18000c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkCmdBlitImage(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter) {
18013e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::CmdBlitImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter);
18020c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
18030c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
18040c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
18050c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkCmdCopyBufferToImage(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions) {
18063e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::CmdCopyBufferToImage(commandBuffer, srcBuffer, dstImage, dstImageLayout, regionCount, pRegions);
18070c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
18080c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
18090c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
18100c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkCmdCopyImageToBuffer(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions) {
18113e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::CmdCopyImageToBuffer(commandBuffer, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions);
18120c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
18130c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
18140c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
181556d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse HallVKAPI_ATTR void vkCmdUpdateBuffer(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData) {
18163e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::CmdUpdateBuffer(commandBuffer, dstBuffer, dstOffset, dataSize, pData);
18170c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
18180c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
18190c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
18200c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkCmdFillBuffer(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data) {
18213e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::CmdFillBuffer(commandBuffer, dstBuffer, dstOffset, size, data);
18220c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
18230c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
18240c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
18250c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkCmdClearColorImage(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges) {
18263e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::CmdClearColorImage(commandBuffer, image, imageLayout, pColor, rangeCount, pRanges);
18270c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
18280c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
18290c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
18300c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkCmdClearDepthStencilImage(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges) {
18313e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::CmdClearDepthStencilImage(commandBuffer, image, imageLayout, pDepthStencil, rangeCount, pRanges);
18320c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
18330c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
18340c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
18350c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkCmdClearAttachments(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects) {
18363e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::CmdClearAttachments(commandBuffer, attachmentCount, pAttachments, rectCount, pRects);
18370c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
18380c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
18390c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
18400c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkCmdResolveImage(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions) {
18413e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::CmdResolveImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions);
18420c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
18430c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
18440c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
18450c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkCmdSetEvent(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask) {
18463e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::CmdSetEvent(commandBuffer, event, stageMask);
18470c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
18480c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
18490c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
18500c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkCmdResetEvent(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask) {
18513e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::CmdResetEvent(commandBuffer, event, stageMask);
18520c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
18530c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
18540c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
18550c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_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) {
18563e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::CmdWaitEvents(commandBuffer, eventCount, pEvents, srcStageMask, dstStageMask, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers);
18570c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
18580c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
18590c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
18600c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_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) {
18613e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::CmdPipelineBarrier(commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers);
18620c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
18630c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
18640c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
18650c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkCmdBeginQuery(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags) {
18663e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::CmdBeginQuery(commandBuffer, queryPool, query, flags);
18670c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
18680c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
18690c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
18700c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkCmdEndQuery(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query) {
18713e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::CmdEndQuery(commandBuffer, queryPool, query);
18720c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
18730c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
18740c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
18750c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkCmdResetQueryPool(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount) {
18763e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::CmdResetQueryPool(commandBuffer, queryPool, firstQuery, queryCount);
18770c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
18780c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
18790c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
18800c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkCmdWriteTimestamp(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query) {
18813e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::CmdWriteTimestamp(commandBuffer, pipelineStage, queryPool, query);
18820c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
18830c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
18840c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
18850c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkCmdCopyQueryPoolResults(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags) {
18863e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::CmdCopyQueryPoolResults(commandBuffer, queryPool, firstQuery, queryCount, dstBuffer, dstOffset, stride, flags);
18870c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
18880c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
18890c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
18900c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkCmdPushConstants(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues) {
18913e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::CmdPushConstants(commandBuffer, layout, stageFlags, offset, size, pValues);
18920c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
18930c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
18940c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
18950c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkCmdBeginRenderPass(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents) {
18963e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::CmdBeginRenderPass(commandBuffer, pRenderPassBegin, contents);
18970c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
18980c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
18990c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
19000c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkCmdNextSubpass(VkCommandBuffer commandBuffer, VkSubpassContents contents) {
19013e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::CmdNextSubpass(commandBuffer, contents);
19020c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
19030c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
19040c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
19050c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkCmdEndRenderPass(VkCommandBuffer commandBuffer) {
19063e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::CmdEndRenderPass(commandBuffer);
19070c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
19080c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
19090c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
19100c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkCmdExecuteCommands(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers) {
19113e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::CmdExecuteCommands(commandBuffer, commandBufferCount, pCommandBuffers);
19120c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
19130c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
19140c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
19150c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkDestroySurfaceKHR(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator) {
19163e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::DestroySurfaceKHR(instance, surface, pAllocator);
19170c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
19180c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
19190c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
19200c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkGetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported) {
19213e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::GetPhysicalDeviceSurfaceSupportKHR(physicalDevice, queueFamilyIndex, surface, pSupported);
19220c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
19230c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
19240c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
19250c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities) {
19263e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::GetPhysicalDeviceSurfaceCapabilitiesKHR(physicalDevice, surface, pSurfaceCapabilities);
19270c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
19280c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
19290c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
19300c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkGetPhysicalDeviceSurfaceFormatsKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats) {
19313e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::GetPhysicalDeviceSurfaceFormatsKHR(physicalDevice, surface, pSurfaceFormatCount, pSurfaceFormats);
19320c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
19330c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
19340c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
19350c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkGetPhysicalDeviceSurfacePresentModesKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes) {
19363e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::GetPhysicalDeviceSurfacePresentModesKHR(physicalDevice, surface, pPresentModeCount, pPresentModes);
19370c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
19380c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
19390c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
19400c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkCreateSwapchainKHR(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain) {
19413e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::CreateSwapchainKHR(device, pCreateInfo, pAllocator, pSwapchain);
19420c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
19430c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
19440c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
19450c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR void vkDestroySwapchainKHR(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator) {
19463e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    vulkan::api::DestroySwapchainKHR(device, swapchain, pAllocator);
19470c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
19480c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
19490c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
19500c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkGetSwapchainImagesKHR(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages) {
19513e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::GetSwapchainImagesKHR(device, swapchain, pSwapchainImageCount, pSwapchainImages);
19520c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
19530c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
19540c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
19550c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkAcquireNextImageKHR(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex) {
19563e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::AcquireNextImageKHR(device, swapchain, timeout, semaphore, fence, pImageIndex);
19570c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
19580c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
19590c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
19600c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkQueuePresentKHR(VkQueue queue, const VkPresentInfoKHR* pPresentInfo) {
19613e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::QueuePresentKHR(queue, pPresentInfo);
19620c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
19630c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
19640c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu__attribute__((visibility("default")))
19650c2032490b80178ec823bf22a7f5d08398851cc3Chia-I WuVKAPI_ATTR VkResult vkCreateAndroidSurfaceKHR(VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) {
19663e654dc68a954b150c141c4a2e96418883bd7c9bChia-I Wu    return vulkan::api::CreateAndroidSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
19670c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu}
19680c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu
19690c2032490b80178ec823bf22a7f5d08398851cc3Chia-I Wu// clang-format on
1970