| // Copyright 2018 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| // |
| // This file is auto-generated from |
| // gpu/vulkan/generate_bindings.py |
| // It's formatted by clang-format using chromium coding style: |
| // clang-format -i -style=chromium filename |
| // DO NOT EDIT! |
| |
| #include "gpu/vulkan/vulkan_function_pointers.h" |
| |
| #include "base/check_op.h" |
| #include "base/compiler_specific.h" |
| #include "base/logging.h" |
| #include "base/no_destructor.h" |
| |
| namespace gpu { |
| |
| namespace { |
| NOINLINE void LogGetProcError(const char* funcName) { |
| LOG(WARNING) << "Failed to bind vulkan entrypoint: " << funcName; |
| } |
| } // namespace |
| |
| VulkanFunctionPointers* GetVulkanFunctionPointers() { |
| static base::NoDestructor<VulkanFunctionPointers> vulkan_function_pointers; |
| return vulkan_function_pointers.get(); |
| } |
| |
| VulkanFunctionPointers::VulkanFunctionPointers() = default; |
| VulkanFunctionPointers::~VulkanFunctionPointers() = default; |
| |
| bool VulkanFunctionPointers::BindUnassociatedFunctionPointersFromLoaderLib( |
| base::NativeLibrary lib) { |
| base::AutoLock lock(write_lock_); |
| loader_library_ = lib; |
| |
| // vkGetInstanceProcAddr must be handled specially since it gets its |
| // function pointer through base::GetFunctionPointerFromNativeLibrary(). |
| // Other Vulkan functions don't do this. |
| vkGetInstanceProcAddr = reinterpret_cast<PFN_vkGetInstanceProcAddr>( |
| base::GetFunctionPointerFromNativeLibrary(loader_library_, |
| "vkGetInstanceProcAddr")); |
| if (!vkGetInstanceProcAddr) { |
| LOG(WARNING) << "Failed to find vkGetInstanceProcAddr"; |
| return false; |
| } |
| return BindUnassociatedFunctionPointersCommon(); |
| } |
| |
| bool VulkanFunctionPointers::BindUnassociatedFunctionPointersFromGetProcAddr( |
| PFN_vkGetInstanceProcAddr proc) { |
| DCHECK(proc); |
| DCHECK(!loader_library_); |
| |
| base::AutoLock lock(write_lock_); |
| vkGetInstanceProcAddr = proc; |
| return BindUnassociatedFunctionPointersCommon(); |
| } |
| |
| bool VulkanFunctionPointers::BindUnassociatedFunctionPointersCommon() { |
| constexpr char kvkEnumerateInstanceVersion[] = "vkEnumerateInstanceVersion"; |
| vkEnumerateInstanceVersion = reinterpret_cast<PFN_vkEnumerateInstanceVersion>( |
| vkGetInstanceProcAddr(nullptr, kvkEnumerateInstanceVersion)); |
| if (!vkEnumerateInstanceVersion) { |
| LogGetProcError(kvkEnumerateInstanceVersion); |
| return false; |
| } |
| |
| constexpr char kvkCreateInstance[] = "vkCreateInstance"; |
| vkCreateInstance = reinterpret_cast<PFN_vkCreateInstance>( |
| vkGetInstanceProcAddr(nullptr, kvkCreateInstance)); |
| if (!vkCreateInstance) { |
| LogGetProcError(kvkCreateInstance); |
| return false; |
| } |
| |
| constexpr char kvkEnumerateInstanceExtensionProperties[] = |
| "vkEnumerateInstanceExtensionProperties"; |
| vkEnumerateInstanceExtensionProperties = |
| reinterpret_cast<PFN_vkEnumerateInstanceExtensionProperties>( |
| vkGetInstanceProcAddr(nullptr, |
| kvkEnumerateInstanceExtensionProperties)); |
| if (!vkEnumerateInstanceExtensionProperties) { |
| LogGetProcError(kvkEnumerateInstanceExtensionProperties); |
| return false; |
| } |
| |
| constexpr char kvkEnumerateInstanceLayerProperties[] = |
| "vkEnumerateInstanceLayerProperties"; |
| vkEnumerateInstanceLayerProperties = |
| reinterpret_cast<PFN_vkEnumerateInstanceLayerProperties>( |
| vkGetInstanceProcAddr(nullptr, kvkEnumerateInstanceLayerProperties)); |
| if (!vkEnumerateInstanceLayerProperties) { |
| LogGetProcError(kvkEnumerateInstanceLayerProperties); |
| return false; |
| } |
| |
| return true; |
| } |
| |
| bool VulkanFunctionPointers::BindInstanceFunctionPointers( |
| VkInstance vk_instance, |
| uint32_t api_version, |
| const gfx::ExtensionSet& enabled_extensions) { |
| DCHECK_GE(api_version, kVulkanRequiredApiVersion); |
| base::AutoLock lock(write_lock_); |
| constexpr char kvkCreateDevice[] = "vkCreateDevice"; |
| vkCreateDevice = reinterpret_cast<PFN_vkCreateDevice>( |
| vkGetInstanceProcAddr(vk_instance, kvkCreateDevice)); |
| if (!vkCreateDevice) { |
| LogGetProcError(kvkCreateDevice); |
| return false; |
| } |
| |
| constexpr char kvkDestroyInstance[] = "vkDestroyInstance"; |
| vkDestroyInstance = reinterpret_cast<PFN_vkDestroyInstance>( |
| vkGetInstanceProcAddr(vk_instance, kvkDestroyInstance)); |
| if (!vkDestroyInstance) { |
| LogGetProcError(kvkDestroyInstance); |
| return false; |
| } |
| |
| constexpr char kvkEnumerateDeviceExtensionProperties[] = |
| "vkEnumerateDeviceExtensionProperties"; |
| vkEnumerateDeviceExtensionProperties = |
| reinterpret_cast<PFN_vkEnumerateDeviceExtensionProperties>( |
| vkGetInstanceProcAddr(vk_instance, |
| kvkEnumerateDeviceExtensionProperties)); |
| if (!vkEnumerateDeviceExtensionProperties) { |
| LogGetProcError(kvkEnumerateDeviceExtensionProperties); |
| return false; |
| } |
| |
| constexpr char kvkEnumerateDeviceLayerProperties[] = |
| "vkEnumerateDeviceLayerProperties"; |
| vkEnumerateDeviceLayerProperties = |
| reinterpret_cast<PFN_vkEnumerateDeviceLayerProperties>( |
| vkGetInstanceProcAddr(vk_instance, |
| kvkEnumerateDeviceLayerProperties)); |
| if (!vkEnumerateDeviceLayerProperties) { |
| LogGetProcError(kvkEnumerateDeviceLayerProperties); |
| return false; |
| } |
| |
| constexpr char kvkEnumeratePhysicalDevices[] = "vkEnumeratePhysicalDevices"; |
| vkEnumeratePhysicalDevices = reinterpret_cast<PFN_vkEnumeratePhysicalDevices>( |
| vkGetInstanceProcAddr(vk_instance, kvkEnumeratePhysicalDevices)); |
| if (!vkEnumeratePhysicalDevices) { |
| LogGetProcError(kvkEnumeratePhysicalDevices); |
| return false; |
| } |
| |
| constexpr char kvkGetDeviceProcAddr[] = "vkGetDeviceProcAddr"; |
| vkGetDeviceProcAddr = reinterpret_cast<PFN_vkGetDeviceProcAddr>( |
| vkGetInstanceProcAddr(vk_instance, kvkGetDeviceProcAddr)); |
| if (!vkGetDeviceProcAddr) { |
| LogGetProcError(kvkGetDeviceProcAddr); |
| return false; |
| } |
| |
| constexpr char kvkGetPhysicalDeviceExternalSemaphoreProperties[] = |
| "vkGetPhysicalDeviceExternalSemaphoreProperties"; |
| vkGetPhysicalDeviceExternalSemaphoreProperties = |
| reinterpret_cast<PFN_vkGetPhysicalDeviceExternalSemaphoreProperties>( |
| vkGetInstanceProcAddr( |
| vk_instance, kvkGetPhysicalDeviceExternalSemaphoreProperties)); |
| if (!vkGetPhysicalDeviceExternalSemaphoreProperties) { |
| LogGetProcError(kvkGetPhysicalDeviceExternalSemaphoreProperties); |
| return false; |
| } |
| |
| constexpr char kvkGetPhysicalDeviceFeatures2[] = |
| "vkGetPhysicalDeviceFeatures2"; |
| vkGetPhysicalDeviceFeatures2 = |
| reinterpret_cast<PFN_vkGetPhysicalDeviceFeatures2>( |
| vkGetInstanceProcAddr(vk_instance, kvkGetPhysicalDeviceFeatures2)); |
| if (!vkGetPhysicalDeviceFeatures2) { |
| LogGetProcError(kvkGetPhysicalDeviceFeatures2); |
| return false; |
| } |
| |
| constexpr char kvkGetPhysicalDeviceFormatProperties[] = |
| "vkGetPhysicalDeviceFormatProperties"; |
| vkGetPhysicalDeviceFormatProperties = |
| reinterpret_cast<PFN_vkGetPhysicalDeviceFormatProperties>( |
| vkGetInstanceProcAddr(vk_instance, |
| kvkGetPhysicalDeviceFormatProperties)); |
| if (!vkGetPhysicalDeviceFormatProperties) { |
| LogGetProcError(kvkGetPhysicalDeviceFormatProperties); |
| return false; |
| } |
| |
| constexpr char kvkGetPhysicalDeviceFormatProperties2[] = |
| "vkGetPhysicalDeviceFormatProperties2"; |
| vkGetPhysicalDeviceFormatProperties2 = |
| reinterpret_cast<PFN_vkGetPhysicalDeviceFormatProperties2>( |
| vkGetInstanceProcAddr(vk_instance, |
| kvkGetPhysicalDeviceFormatProperties2)); |
| if (!vkGetPhysicalDeviceFormatProperties2) { |
| LogGetProcError(kvkGetPhysicalDeviceFormatProperties2); |
| return false; |
| } |
| |
| constexpr char kvkGetPhysicalDeviceImageFormatProperties2[] = |
| "vkGetPhysicalDeviceImageFormatProperties2"; |
| vkGetPhysicalDeviceImageFormatProperties2 = |
| reinterpret_cast<PFN_vkGetPhysicalDeviceImageFormatProperties2>( |
| vkGetInstanceProcAddr(vk_instance, |
| kvkGetPhysicalDeviceImageFormatProperties2)); |
| if (!vkGetPhysicalDeviceImageFormatProperties2) { |
| LogGetProcError(kvkGetPhysicalDeviceImageFormatProperties2); |
| return false; |
| } |
| |
| constexpr char kvkGetPhysicalDeviceMemoryProperties[] = |
| "vkGetPhysicalDeviceMemoryProperties"; |
| vkGetPhysicalDeviceMemoryProperties = |
| reinterpret_cast<PFN_vkGetPhysicalDeviceMemoryProperties>( |
| vkGetInstanceProcAddr(vk_instance, |
| kvkGetPhysicalDeviceMemoryProperties)); |
| if (!vkGetPhysicalDeviceMemoryProperties) { |
| LogGetProcError(kvkGetPhysicalDeviceMemoryProperties); |
| return false; |
| } |
| |
| constexpr char kvkGetPhysicalDeviceMemoryProperties2[] = |
| "vkGetPhysicalDeviceMemoryProperties2"; |
| vkGetPhysicalDeviceMemoryProperties2 = |
| reinterpret_cast<PFN_vkGetPhysicalDeviceMemoryProperties2>( |
| vkGetInstanceProcAddr(vk_instance, |
| kvkGetPhysicalDeviceMemoryProperties2)); |
| if (!vkGetPhysicalDeviceMemoryProperties2) { |
| LogGetProcError(kvkGetPhysicalDeviceMemoryProperties2); |
| return false; |
| } |
| |
| constexpr char kvkGetPhysicalDeviceProperties[] = |
| "vkGetPhysicalDeviceProperties"; |
| vkGetPhysicalDeviceProperties = |
| reinterpret_cast<PFN_vkGetPhysicalDeviceProperties>( |
| vkGetInstanceProcAddr(vk_instance, kvkGetPhysicalDeviceProperties)); |
| if (!vkGetPhysicalDeviceProperties) { |
| LogGetProcError(kvkGetPhysicalDeviceProperties); |
| return false; |
| } |
| |
| constexpr char kvkGetPhysicalDeviceProperties2[] = |
| "vkGetPhysicalDeviceProperties2"; |
| vkGetPhysicalDeviceProperties2 = |
| reinterpret_cast<PFN_vkGetPhysicalDeviceProperties2>( |
| vkGetInstanceProcAddr(vk_instance, kvkGetPhysicalDeviceProperties2)); |
| if (!vkGetPhysicalDeviceProperties2) { |
| LogGetProcError(kvkGetPhysicalDeviceProperties2); |
| return false; |
| } |
| |
| constexpr char kvkGetPhysicalDeviceQueueFamilyProperties[] = |
| "vkGetPhysicalDeviceQueueFamilyProperties"; |
| vkGetPhysicalDeviceQueueFamilyProperties = |
| reinterpret_cast<PFN_vkGetPhysicalDeviceQueueFamilyProperties>( |
| vkGetInstanceProcAddr(vk_instance, |
| kvkGetPhysicalDeviceQueueFamilyProperties)); |
| if (!vkGetPhysicalDeviceQueueFamilyProperties) { |
| LogGetProcError(kvkGetPhysicalDeviceQueueFamilyProperties); |
| return false; |
| } |
| |
| #if DCHECK_IS_ON() |
| if (gfx::HasExtension(enabled_extensions, |
| VK_EXT_DEBUG_REPORT_EXTENSION_NAME)) { |
| constexpr char kvkCreateDebugReportCallbackEXT[] = |
| "vkCreateDebugReportCallbackEXT"; |
| vkCreateDebugReportCallbackEXT = |
| reinterpret_cast<PFN_vkCreateDebugReportCallbackEXT>( |
| vkGetInstanceProcAddr(vk_instance, |
| kvkCreateDebugReportCallbackEXT)); |
| if (!vkCreateDebugReportCallbackEXT) { |
| LogGetProcError(kvkCreateDebugReportCallbackEXT); |
| return false; |
| } |
| |
| constexpr char kvkDestroyDebugReportCallbackEXT[] = |
| "vkDestroyDebugReportCallbackEXT"; |
| vkDestroyDebugReportCallbackEXT = |
| reinterpret_cast<PFN_vkDestroyDebugReportCallbackEXT>( |
| vkGetInstanceProcAddr(vk_instance, |
| kvkDestroyDebugReportCallbackEXT)); |
| if (!vkDestroyDebugReportCallbackEXT) { |
| LogGetProcError(kvkDestroyDebugReportCallbackEXT); |
| return false; |
| } |
| } |
| #endif // DCHECK_IS_ON() |
| |
| if (gfx::HasExtension(enabled_extensions, VK_KHR_SURFACE_EXTENSION_NAME)) { |
| constexpr char kvkDestroySurfaceKHR[] = "vkDestroySurfaceKHR"; |
| vkDestroySurfaceKHR = reinterpret_cast<PFN_vkDestroySurfaceKHR>( |
| vkGetInstanceProcAddr(vk_instance, kvkDestroySurfaceKHR)); |
| if (!vkDestroySurfaceKHR) { |
| LogGetProcError(kvkDestroySurfaceKHR); |
| return false; |
| } |
| |
| constexpr char kvkGetPhysicalDeviceSurfaceCapabilitiesKHR[] = |
| "vkGetPhysicalDeviceSurfaceCapabilitiesKHR"; |
| vkGetPhysicalDeviceSurfaceCapabilitiesKHR = |
| reinterpret_cast<PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR>( |
| vkGetInstanceProcAddr(vk_instance, |
| kvkGetPhysicalDeviceSurfaceCapabilitiesKHR)); |
| if (!vkGetPhysicalDeviceSurfaceCapabilitiesKHR) { |
| LogGetProcError(kvkGetPhysicalDeviceSurfaceCapabilitiesKHR); |
| return false; |
| } |
| |
| constexpr char kvkGetPhysicalDeviceSurfaceFormatsKHR[] = |
| "vkGetPhysicalDeviceSurfaceFormatsKHR"; |
| vkGetPhysicalDeviceSurfaceFormatsKHR = |
| reinterpret_cast<PFN_vkGetPhysicalDeviceSurfaceFormatsKHR>( |
| vkGetInstanceProcAddr(vk_instance, |
| kvkGetPhysicalDeviceSurfaceFormatsKHR)); |
| if (!vkGetPhysicalDeviceSurfaceFormatsKHR) { |
| LogGetProcError(kvkGetPhysicalDeviceSurfaceFormatsKHR); |
| return false; |
| } |
| |
| constexpr char kvkGetPhysicalDeviceSurfaceSupportKHR[] = |
| "vkGetPhysicalDeviceSurfaceSupportKHR"; |
| vkGetPhysicalDeviceSurfaceSupportKHR = |
| reinterpret_cast<PFN_vkGetPhysicalDeviceSurfaceSupportKHR>( |
| vkGetInstanceProcAddr(vk_instance, |
| kvkGetPhysicalDeviceSurfaceSupportKHR)); |
| if (!vkGetPhysicalDeviceSurfaceSupportKHR) { |
| LogGetProcError(kvkGetPhysicalDeviceSurfaceSupportKHR); |
| return false; |
| } |
| } |
| |
| if (gfx::HasExtension(enabled_extensions, |
| VK_EXT_HEADLESS_SURFACE_EXTENSION_NAME)) { |
| constexpr char kvkCreateHeadlessSurfaceEXT[] = "vkCreateHeadlessSurfaceEXT"; |
| vkCreateHeadlessSurfaceEXT = |
| reinterpret_cast<PFN_vkCreateHeadlessSurfaceEXT>( |
| vkGetInstanceProcAddr(vk_instance, kvkCreateHeadlessSurfaceEXT)); |
| if (!vkCreateHeadlessSurfaceEXT) { |
| LogGetProcError(kvkCreateHeadlessSurfaceEXT); |
| return false; |
| } |
| } |
| |
| #if defined(USE_VULKAN_XCB) |
| if (gfx::HasExtension(enabled_extensions, |
| VK_KHR_XCB_SURFACE_EXTENSION_NAME)) { |
| constexpr char kvkCreateXcbSurfaceKHR[] = "vkCreateXcbSurfaceKHR"; |
| vkCreateXcbSurfaceKHR = reinterpret_cast<PFN_vkCreateXcbSurfaceKHR>( |
| vkGetInstanceProcAddr(vk_instance, kvkCreateXcbSurfaceKHR)); |
| if (!vkCreateXcbSurfaceKHR) { |
| LogGetProcError(kvkCreateXcbSurfaceKHR); |
| return false; |
| } |
| |
| constexpr char kvkGetPhysicalDeviceXcbPresentationSupportKHR[] = |
| "vkGetPhysicalDeviceXcbPresentationSupportKHR"; |
| vkGetPhysicalDeviceXcbPresentationSupportKHR = |
| reinterpret_cast<PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR>( |
| vkGetInstanceProcAddr( |
| vk_instance, kvkGetPhysicalDeviceXcbPresentationSupportKHR)); |
| if (!vkGetPhysicalDeviceXcbPresentationSupportKHR) { |
| LogGetProcError(kvkGetPhysicalDeviceXcbPresentationSupportKHR); |
| return false; |
| } |
| } |
| #endif // defined(USE_VULKAN_XCB) |
| |
| #if BUILDFLAG(IS_WIN) |
| if (gfx::HasExtension(enabled_extensions, |
| VK_KHR_WIN32_SURFACE_EXTENSION_NAME)) { |
| constexpr char kvkCreateWin32SurfaceKHR[] = "vkCreateWin32SurfaceKHR"; |
| vkCreateWin32SurfaceKHR = reinterpret_cast<PFN_vkCreateWin32SurfaceKHR>( |
| vkGetInstanceProcAddr(vk_instance, kvkCreateWin32SurfaceKHR)); |
| if (!vkCreateWin32SurfaceKHR) { |
| LogGetProcError(kvkCreateWin32SurfaceKHR); |
| return false; |
| } |
| |
| constexpr char kvkGetPhysicalDeviceWin32PresentationSupportKHR[] = |
| "vkGetPhysicalDeviceWin32PresentationSupportKHR"; |
| vkGetPhysicalDeviceWin32PresentationSupportKHR = |
| reinterpret_cast<PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR>( |
| vkGetInstanceProcAddr( |
| vk_instance, kvkGetPhysicalDeviceWin32PresentationSupportKHR)); |
| if (!vkGetPhysicalDeviceWin32PresentationSupportKHR) { |
| LogGetProcError(kvkGetPhysicalDeviceWin32PresentationSupportKHR); |
| return false; |
| } |
| } |
| #endif // BUILDFLAG(IS_WIN) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| if (gfx::HasExtension(enabled_extensions, |
| VK_KHR_ANDROID_SURFACE_EXTENSION_NAME)) { |
| constexpr char kvkCreateAndroidSurfaceKHR[] = "vkCreateAndroidSurfaceKHR"; |
| vkCreateAndroidSurfaceKHR = reinterpret_cast<PFN_vkCreateAndroidSurfaceKHR>( |
| vkGetInstanceProcAddr(vk_instance, kvkCreateAndroidSurfaceKHR)); |
| if (!vkCreateAndroidSurfaceKHR) { |
| LogGetProcError(kvkCreateAndroidSurfaceKHR); |
| return false; |
| } |
| } |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_FUCHSIA) |
| if (gfx::HasExtension(enabled_extensions, |
| VK_FUCHSIA_IMAGEPIPE_SURFACE_EXTENSION_NAME)) { |
| constexpr char kvkCreateImagePipeSurfaceFUCHSIA[] = |
| "vkCreateImagePipeSurfaceFUCHSIA"; |
| vkCreateImagePipeSurfaceFUCHSIA = |
| reinterpret_cast<PFN_vkCreateImagePipeSurfaceFUCHSIA>( |
| vkGetInstanceProcAddr(vk_instance, |
| kvkCreateImagePipeSurfaceFUCHSIA)); |
| if (!vkCreateImagePipeSurfaceFUCHSIA) { |
| LogGetProcError(kvkCreateImagePipeSurfaceFUCHSIA); |
| return false; |
| } |
| } |
| #endif // BUILDFLAG(IS_FUCHSIA) |
| |
| return true; |
| } |
| |
| bool VulkanFunctionPointers::BindDeviceFunctionPointers( |
| VkDevice vk_device, |
| uint32_t api_version, |
| const gfx::ExtensionSet& enabled_extensions) { |
| DCHECK_GE(api_version, kVulkanRequiredApiVersion); |
| base::AutoLock lock(write_lock_); |
| // Device functions |
| constexpr char kvkAllocateCommandBuffers[] = "vkAllocateCommandBuffers"; |
| vkAllocateCommandBuffers = reinterpret_cast<PFN_vkAllocateCommandBuffers>( |
| vkGetDeviceProcAddr(vk_device, kvkAllocateCommandBuffers)); |
| if (!vkAllocateCommandBuffers) { |
| LogGetProcError(kvkAllocateCommandBuffers); |
| return false; |
| } |
| |
| constexpr char kvkAllocateDescriptorSets[] = "vkAllocateDescriptorSets"; |
| vkAllocateDescriptorSets = reinterpret_cast<PFN_vkAllocateDescriptorSets>( |
| vkGetDeviceProcAddr(vk_device, kvkAllocateDescriptorSets)); |
| if (!vkAllocateDescriptorSets) { |
| LogGetProcError(kvkAllocateDescriptorSets); |
| return false; |
| } |
| |
| constexpr char kvkAllocateMemory[] = "vkAllocateMemory"; |
| vkAllocateMemory = reinterpret_cast<PFN_vkAllocateMemory>( |
| vkGetDeviceProcAddr(vk_device, kvkAllocateMemory)); |
| if (!vkAllocateMemory) { |
| LogGetProcError(kvkAllocateMemory); |
| return false; |
| } |
| |
| constexpr char kvkBeginCommandBuffer[] = "vkBeginCommandBuffer"; |
| vkBeginCommandBuffer = reinterpret_cast<PFN_vkBeginCommandBuffer>( |
| vkGetDeviceProcAddr(vk_device, kvkBeginCommandBuffer)); |
| if (!vkBeginCommandBuffer) { |
| LogGetProcError(kvkBeginCommandBuffer); |
| return false; |
| } |
| |
| constexpr char kvkBindBufferMemory[] = "vkBindBufferMemory"; |
| vkBindBufferMemory = reinterpret_cast<PFN_vkBindBufferMemory>( |
| vkGetDeviceProcAddr(vk_device, kvkBindBufferMemory)); |
| if (!vkBindBufferMemory) { |
| LogGetProcError(kvkBindBufferMemory); |
| return false; |
| } |
| |
| constexpr char kvkBindBufferMemory2[] = "vkBindBufferMemory2"; |
| vkBindBufferMemory2 = reinterpret_cast<PFN_vkBindBufferMemory2>( |
| vkGetDeviceProcAddr(vk_device, kvkBindBufferMemory2)); |
| if (!vkBindBufferMemory2) { |
| LogGetProcError(kvkBindBufferMemory2); |
| return false; |
| } |
| |
| constexpr char kvkBindImageMemory[] = "vkBindImageMemory"; |
| vkBindImageMemory = reinterpret_cast<PFN_vkBindImageMemory>( |
| vkGetDeviceProcAddr(vk_device, kvkBindImageMemory)); |
| if (!vkBindImageMemory) { |
| LogGetProcError(kvkBindImageMemory); |
| return false; |
| } |
| |
| constexpr char kvkBindImageMemory2[] = "vkBindImageMemory2"; |
| vkBindImageMemory2 = reinterpret_cast<PFN_vkBindImageMemory2>( |
| vkGetDeviceProcAddr(vk_device, kvkBindImageMemory2)); |
| if (!vkBindImageMemory2) { |
| LogGetProcError(kvkBindImageMemory2); |
| return false; |
| } |
| |
| constexpr char kvkCmdBeginRenderPass[] = "vkCmdBeginRenderPass"; |
| vkCmdBeginRenderPass = reinterpret_cast<PFN_vkCmdBeginRenderPass>( |
| vkGetDeviceProcAddr(vk_device, kvkCmdBeginRenderPass)); |
| if (!vkCmdBeginRenderPass) { |
| LogGetProcError(kvkCmdBeginRenderPass); |
| return false; |
| } |
| |
| constexpr char kvkCmdBindDescriptorSets[] = "vkCmdBindDescriptorSets"; |
| vkCmdBindDescriptorSets = reinterpret_cast<PFN_vkCmdBindDescriptorSets>( |
| vkGetDeviceProcAddr(vk_device, kvkCmdBindDescriptorSets)); |
| if (!vkCmdBindDescriptorSets) { |
| LogGetProcError(kvkCmdBindDescriptorSets); |
| return false; |
| } |
| |
| constexpr char kvkCmdBindPipeline[] = "vkCmdBindPipeline"; |
| vkCmdBindPipeline = reinterpret_cast<PFN_vkCmdBindPipeline>( |
| vkGetDeviceProcAddr(vk_device, kvkCmdBindPipeline)); |
| if (!vkCmdBindPipeline) { |
| LogGetProcError(kvkCmdBindPipeline); |
| return false; |
| } |
| |
| constexpr char kvkCmdBindVertexBuffers[] = "vkCmdBindVertexBuffers"; |
| vkCmdBindVertexBuffers = reinterpret_cast<PFN_vkCmdBindVertexBuffers>( |
| vkGetDeviceProcAddr(vk_device, kvkCmdBindVertexBuffers)); |
| if (!vkCmdBindVertexBuffers) { |
| LogGetProcError(kvkCmdBindVertexBuffers); |
| return false; |
| } |
| |
| constexpr char kvkCmdCopyBuffer[] = "vkCmdCopyBuffer"; |
| vkCmdCopyBuffer = reinterpret_cast<PFN_vkCmdCopyBuffer>( |
| vkGetDeviceProcAddr(vk_device, kvkCmdCopyBuffer)); |
| if (!vkCmdCopyBuffer) { |
| LogGetProcError(kvkCmdCopyBuffer); |
| return false; |
| } |
| |
| constexpr char kvkCmdCopyBufferToImage[] = "vkCmdCopyBufferToImage"; |
| vkCmdCopyBufferToImage = reinterpret_cast<PFN_vkCmdCopyBufferToImage>( |
| vkGetDeviceProcAddr(vk_device, kvkCmdCopyBufferToImage)); |
| if (!vkCmdCopyBufferToImage) { |
| LogGetProcError(kvkCmdCopyBufferToImage); |
| return false; |
| } |
| |
| constexpr char kvkCmdCopyImageToBuffer[] = "vkCmdCopyImageToBuffer"; |
| vkCmdCopyImageToBuffer = reinterpret_cast<PFN_vkCmdCopyImageToBuffer>( |
| vkGetDeviceProcAddr(vk_device, kvkCmdCopyImageToBuffer)); |
| if (!vkCmdCopyImageToBuffer) { |
| LogGetProcError(kvkCmdCopyImageToBuffer); |
| return false; |
| } |
| |
| constexpr char kvkCmdDraw[] = "vkCmdDraw"; |
| vkCmdDraw = reinterpret_cast<PFN_vkCmdDraw>( |
| vkGetDeviceProcAddr(vk_device, kvkCmdDraw)); |
| if (!vkCmdDraw) { |
| LogGetProcError(kvkCmdDraw); |
| return false; |
| } |
| |
| constexpr char kvkCmdEndRenderPass[] = "vkCmdEndRenderPass"; |
| vkCmdEndRenderPass = reinterpret_cast<PFN_vkCmdEndRenderPass>( |
| vkGetDeviceProcAddr(vk_device, kvkCmdEndRenderPass)); |
| if (!vkCmdEndRenderPass) { |
| LogGetProcError(kvkCmdEndRenderPass); |
| return false; |
| } |
| |
| constexpr char kvkCmdExecuteCommands[] = "vkCmdExecuteCommands"; |
| vkCmdExecuteCommands = reinterpret_cast<PFN_vkCmdExecuteCommands>( |
| vkGetDeviceProcAddr(vk_device, kvkCmdExecuteCommands)); |
| if (!vkCmdExecuteCommands) { |
| LogGetProcError(kvkCmdExecuteCommands); |
| return false; |
| } |
| |
| constexpr char kvkCmdNextSubpass[] = "vkCmdNextSubpass"; |
| vkCmdNextSubpass = reinterpret_cast<PFN_vkCmdNextSubpass>( |
| vkGetDeviceProcAddr(vk_device, kvkCmdNextSubpass)); |
| if (!vkCmdNextSubpass) { |
| LogGetProcError(kvkCmdNextSubpass); |
| return false; |
| } |
| |
| constexpr char kvkCmdPipelineBarrier[] = "vkCmdPipelineBarrier"; |
| vkCmdPipelineBarrier = reinterpret_cast<PFN_vkCmdPipelineBarrier>( |
| vkGetDeviceProcAddr(vk_device, kvkCmdPipelineBarrier)); |
| if (!vkCmdPipelineBarrier) { |
| LogGetProcError(kvkCmdPipelineBarrier); |
| return false; |
| } |
| |
| constexpr char kvkCmdPushConstants[] = "vkCmdPushConstants"; |
| vkCmdPushConstants = reinterpret_cast<PFN_vkCmdPushConstants>( |
| vkGetDeviceProcAddr(vk_device, kvkCmdPushConstants)); |
| if (!vkCmdPushConstants) { |
| LogGetProcError(kvkCmdPushConstants); |
| return false; |
| } |
| |
| constexpr char kvkCmdSetScissor[] = "vkCmdSetScissor"; |
| vkCmdSetScissor = reinterpret_cast<PFN_vkCmdSetScissor>( |
| vkGetDeviceProcAddr(vk_device, kvkCmdSetScissor)); |
| if (!vkCmdSetScissor) { |
| LogGetProcError(kvkCmdSetScissor); |
| return false; |
| } |
| |
| constexpr char kvkCmdSetViewport[] = "vkCmdSetViewport"; |
| vkCmdSetViewport = reinterpret_cast<PFN_vkCmdSetViewport>( |
| vkGetDeviceProcAddr(vk_device, kvkCmdSetViewport)); |
| if (!vkCmdSetViewport) { |
| LogGetProcError(kvkCmdSetViewport); |
| return false; |
| } |
| |
| constexpr char kvkCreateBuffer[] = "vkCreateBuffer"; |
| vkCreateBuffer = reinterpret_cast<PFN_vkCreateBuffer>( |
| vkGetDeviceProcAddr(vk_device, kvkCreateBuffer)); |
| if (!vkCreateBuffer) { |
| LogGetProcError(kvkCreateBuffer); |
| return false; |
| } |
| |
| constexpr char kvkCreateCommandPool[] = "vkCreateCommandPool"; |
| vkCreateCommandPool = reinterpret_cast<PFN_vkCreateCommandPool>( |
| vkGetDeviceProcAddr(vk_device, kvkCreateCommandPool)); |
| if (!vkCreateCommandPool) { |
| LogGetProcError(kvkCreateCommandPool); |
| return false; |
| } |
| |
| constexpr char kvkCreateDescriptorPool[] = "vkCreateDescriptorPool"; |
| vkCreateDescriptorPool = reinterpret_cast<PFN_vkCreateDescriptorPool>( |
| vkGetDeviceProcAddr(vk_device, kvkCreateDescriptorPool)); |
| if (!vkCreateDescriptorPool) { |
| LogGetProcError(kvkCreateDescriptorPool); |
| return false; |
| } |
| |
| constexpr char kvkCreateDescriptorSetLayout[] = "vkCreateDescriptorSetLayout"; |
| vkCreateDescriptorSetLayout = |
| reinterpret_cast<PFN_vkCreateDescriptorSetLayout>( |
| vkGetDeviceProcAddr(vk_device, kvkCreateDescriptorSetLayout)); |
| if (!vkCreateDescriptorSetLayout) { |
| LogGetProcError(kvkCreateDescriptorSetLayout); |
| return false; |
| } |
| |
| constexpr char kvkCreateFence[] = "vkCreateFence"; |
| vkCreateFence = reinterpret_cast<PFN_vkCreateFence>( |
| vkGetDeviceProcAddr(vk_device, kvkCreateFence)); |
| if (!vkCreateFence) { |
| LogGetProcError(kvkCreateFence); |
| return false; |
| } |
| |
| constexpr char kvkCreateFramebuffer[] = "vkCreateFramebuffer"; |
| vkCreateFramebuffer = reinterpret_cast<PFN_vkCreateFramebuffer>( |
| vkGetDeviceProcAddr(vk_device, kvkCreateFramebuffer)); |
| if (!vkCreateFramebuffer) { |
| LogGetProcError(kvkCreateFramebuffer); |
| return false; |
| } |
| |
| constexpr char kvkCreateGraphicsPipelines[] = "vkCreateGraphicsPipelines"; |
| vkCreateGraphicsPipelines = reinterpret_cast<PFN_vkCreateGraphicsPipelines>( |
| vkGetDeviceProcAddr(vk_device, kvkCreateGraphicsPipelines)); |
| if (!vkCreateGraphicsPipelines) { |
| LogGetProcError(kvkCreateGraphicsPipelines); |
| return false; |
| } |
| |
| constexpr char kvkCreateImage[] = "vkCreateImage"; |
| vkCreateImage = reinterpret_cast<PFN_vkCreateImage>( |
| vkGetDeviceProcAddr(vk_device, kvkCreateImage)); |
| if (!vkCreateImage) { |
| LogGetProcError(kvkCreateImage); |
| return false; |
| } |
| |
| constexpr char kvkCreateImageView[] = "vkCreateImageView"; |
| vkCreateImageView = reinterpret_cast<PFN_vkCreateImageView>( |
| vkGetDeviceProcAddr(vk_device, kvkCreateImageView)); |
| if (!vkCreateImageView) { |
| LogGetProcError(kvkCreateImageView); |
| return false; |
| } |
| |
| constexpr char kvkCreatePipelineLayout[] = "vkCreatePipelineLayout"; |
| vkCreatePipelineLayout = reinterpret_cast<PFN_vkCreatePipelineLayout>( |
| vkGetDeviceProcAddr(vk_device, kvkCreatePipelineLayout)); |
| if (!vkCreatePipelineLayout) { |
| LogGetProcError(kvkCreatePipelineLayout); |
| return false; |
| } |
| |
| constexpr char kvkCreateRenderPass[] = "vkCreateRenderPass"; |
| vkCreateRenderPass = reinterpret_cast<PFN_vkCreateRenderPass>( |
| vkGetDeviceProcAddr(vk_device, kvkCreateRenderPass)); |
| if (!vkCreateRenderPass) { |
| LogGetProcError(kvkCreateRenderPass); |
| return false; |
| } |
| |
| constexpr char kvkCreateSampler[] = "vkCreateSampler"; |
| vkCreateSampler = reinterpret_cast<PFN_vkCreateSampler>( |
| vkGetDeviceProcAddr(vk_device, kvkCreateSampler)); |
| if (!vkCreateSampler) { |
| LogGetProcError(kvkCreateSampler); |
| return false; |
| } |
| |
| constexpr char kvkCreateSemaphore[] = "vkCreateSemaphore"; |
| vkCreateSemaphore = reinterpret_cast<PFN_vkCreateSemaphore>( |
| vkGetDeviceProcAddr(vk_device, kvkCreateSemaphore)); |
| if (!vkCreateSemaphore) { |
| LogGetProcError(kvkCreateSemaphore); |
| return false; |
| } |
| |
| constexpr char kvkCreateShaderModule[] = "vkCreateShaderModule"; |
| vkCreateShaderModule = reinterpret_cast<PFN_vkCreateShaderModule>( |
| vkGetDeviceProcAddr(vk_device, kvkCreateShaderModule)); |
| if (!vkCreateShaderModule) { |
| LogGetProcError(kvkCreateShaderModule); |
| return false; |
| } |
| |
| constexpr char kvkDestroyBuffer[] = "vkDestroyBuffer"; |
| vkDestroyBuffer = reinterpret_cast<PFN_vkDestroyBuffer>( |
| vkGetDeviceProcAddr(vk_device, kvkDestroyBuffer)); |
| if (!vkDestroyBuffer) { |
| LogGetProcError(kvkDestroyBuffer); |
| return false; |
| } |
| |
| constexpr char kvkDestroyCommandPool[] = "vkDestroyCommandPool"; |
| vkDestroyCommandPool = reinterpret_cast<PFN_vkDestroyCommandPool>( |
| vkGetDeviceProcAddr(vk_device, kvkDestroyCommandPool)); |
| if (!vkDestroyCommandPool) { |
| LogGetProcError(kvkDestroyCommandPool); |
| return false; |
| } |
| |
| constexpr char kvkDestroyDescriptorPool[] = "vkDestroyDescriptorPool"; |
| vkDestroyDescriptorPool = reinterpret_cast<PFN_vkDestroyDescriptorPool>( |
| vkGetDeviceProcAddr(vk_device, kvkDestroyDescriptorPool)); |
| if (!vkDestroyDescriptorPool) { |
| LogGetProcError(kvkDestroyDescriptorPool); |
| return false; |
| } |
| |
| constexpr char kvkDestroyDescriptorSetLayout[] = |
| "vkDestroyDescriptorSetLayout"; |
| vkDestroyDescriptorSetLayout = |
| reinterpret_cast<PFN_vkDestroyDescriptorSetLayout>( |
| vkGetDeviceProcAddr(vk_device, kvkDestroyDescriptorSetLayout)); |
| if (!vkDestroyDescriptorSetLayout) { |
| LogGetProcError(kvkDestroyDescriptorSetLayout); |
| return false; |
| } |
| |
| constexpr char kvkDestroyDevice[] = "vkDestroyDevice"; |
| vkDestroyDevice = reinterpret_cast<PFN_vkDestroyDevice>( |
| vkGetDeviceProcAddr(vk_device, kvkDestroyDevice)); |
| if (!vkDestroyDevice) { |
| LogGetProcError(kvkDestroyDevice); |
| return false; |
| } |
| |
| constexpr char kvkDestroyFence[] = "vkDestroyFence"; |
| vkDestroyFence = reinterpret_cast<PFN_vkDestroyFence>( |
| vkGetDeviceProcAddr(vk_device, kvkDestroyFence)); |
| if (!vkDestroyFence) { |
| LogGetProcError(kvkDestroyFence); |
| return false; |
| } |
| |
| constexpr char kvkDestroyFramebuffer[] = "vkDestroyFramebuffer"; |
| vkDestroyFramebuffer = reinterpret_cast<PFN_vkDestroyFramebuffer>( |
| vkGetDeviceProcAddr(vk_device, kvkDestroyFramebuffer)); |
| if (!vkDestroyFramebuffer) { |
| LogGetProcError(kvkDestroyFramebuffer); |
| return false; |
| } |
| |
| constexpr char kvkDestroyImage[] = "vkDestroyImage"; |
| vkDestroyImage = reinterpret_cast<PFN_vkDestroyImage>( |
| vkGetDeviceProcAddr(vk_device, kvkDestroyImage)); |
| if (!vkDestroyImage) { |
| LogGetProcError(kvkDestroyImage); |
| return false; |
| } |
| |
| constexpr char kvkDestroyImageView[] = "vkDestroyImageView"; |
| vkDestroyImageView = reinterpret_cast<PFN_vkDestroyImageView>( |
| vkGetDeviceProcAddr(vk_device, kvkDestroyImageView)); |
| if (!vkDestroyImageView) { |
| LogGetProcError(kvkDestroyImageView); |
| return false; |
| } |
| |
| constexpr char kvkDestroyPipeline[] = "vkDestroyPipeline"; |
| vkDestroyPipeline = reinterpret_cast<PFN_vkDestroyPipeline>( |
| vkGetDeviceProcAddr(vk_device, kvkDestroyPipeline)); |
| if (!vkDestroyPipeline) { |
| LogGetProcError(kvkDestroyPipeline); |
| return false; |
| } |
| |
| constexpr char kvkDestroyPipelineLayout[] = "vkDestroyPipelineLayout"; |
| vkDestroyPipelineLayout = reinterpret_cast<PFN_vkDestroyPipelineLayout>( |
| vkGetDeviceProcAddr(vk_device, kvkDestroyPipelineLayout)); |
| if (!vkDestroyPipelineLayout) { |
| LogGetProcError(kvkDestroyPipelineLayout); |
| return false; |
| } |
| |
| constexpr char kvkDestroyRenderPass[] = "vkDestroyRenderPass"; |
| vkDestroyRenderPass = reinterpret_cast<PFN_vkDestroyRenderPass>( |
| vkGetDeviceProcAddr(vk_device, kvkDestroyRenderPass)); |
| if (!vkDestroyRenderPass) { |
| LogGetProcError(kvkDestroyRenderPass); |
| return false; |
| } |
| |
| constexpr char kvkDestroySampler[] = "vkDestroySampler"; |
| vkDestroySampler = reinterpret_cast<PFN_vkDestroySampler>( |
| vkGetDeviceProcAddr(vk_device, kvkDestroySampler)); |
| if (!vkDestroySampler) { |
| LogGetProcError(kvkDestroySampler); |
| return false; |
| } |
| |
| constexpr char kvkDestroySemaphore[] = "vkDestroySemaphore"; |
| vkDestroySemaphore = reinterpret_cast<PFN_vkDestroySemaphore>( |
| vkGetDeviceProcAddr(vk_device, kvkDestroySemaphore)); |
| if (!vkDestroySemaphore) { |
| LogGetProcError(kvkDestroySemaphore); |
| return false; |
| } |
| |
| constexpr char kvkDestroyShaderModule[] = "vkDestroyShaderModule"; |
| vkDestroyShaderModule = reinterpret_cast<PFN_vkDestroyShaderModule>( |
| vkGetDeviceProcAddr(vk_device, kvkDestroyShaderModule)); |
| if (!vkDestroyShaderModule) { |
| LogGetProcError(kvkDestroyShaderModule); |
| return false; |
| } |
| |
| constexpr char kvkDeviceWaitIdle[] = "vkDeviceWaitIdle"; |
| vkDeviceWaitIdle = reinterpret_cast<PFN_vkDeviceWaitIdle>( |
| vkGetDeviceProcAddr(vk_device, kvkDeviceWaitIdle)); |
| if (!vkDeviceWaitIdle) { |
| LogGetProcError(kvkDeviceWaitIdle); |
| return false; |
| } |
| |
| constexpr char kvkFlushMappedMemoryRanges[] = "vkFlushMappedMemoryRanges"; |
| vkFlushMappedMemoryRanges = reinterpret_cast<PFN_vkFlushMappedMemoryRanges>( |
| vkGetDeviceProcAddr(vk_device, kvkFlushMappedMemoryRanges)); |
| if (!vkFlushMappedMemoryRanges) { |
| LogGetProcError(kvkFlushMappedMemoryRanges); |
| return false; |
| } |
| |
| constexpr char kvkEndCommandBuffer[] = "vkEndCommandBuffer"; |
| vkEndCommandBuffer = reinterpret_cast<PFN_vkEndCommandBuffer>( |
| vkGetDeviceProcAddr(vk_device, kvkEndCommandBuffer)); |
| if (!vkEndCommandBuffer) { |
| LogGetProcError(kvkEndCommandBuffer); |
| return false; |
| } |
| |
| constexpr char kvkFreeCommandBuffers[] = "vkFreeCommandBuffers"; |
| vkFreeCommandBuffers = reinterpret_cast<PFN_vkFreeCommandBuffers>( |
| vkGetDeviceProcAddr(vk_device, kvkFreeCommandBuffers)); |
| if (!vkFreeCommandBuffers) { |
| LogGetProcError(kvkFreeCommandBuffers); |
| return false; |
| } |
| |
| constexpr char kvkFreeDescriptorSets[] = "vkFreeDescriptorSets"; |
| vkFreeDescriptorSets = reinterpret_cast<PFN_vkFreeDescriptorSets>( |
| vkGetDeviceProcAddr(vk_device, kvkFreeDescriptorSets)); |
| if (!vkFreeDescriptorSets) { |
| LogGetProcError(kvkFreeDescriptorSets); |
| return false; |
| } |
| |
| constexpr char kvkFreeMemory[] = "vkFreeMemory"; |
| vkFreeMemory = reinterpret_cast<PFN_vkFreeMemory>( |
| vkGetDeviceProcAddr(vk_device, kvkFreeMemory)); |
| if (!vkFreeMemory) { |
| LogGetProcError(kvkFreeMemory); |
| return false; |
| } |
| |
| constexpr char kvkInvalidateMappedMemoryRanges[] = |
| "vkInvalidateMappedMemoryRanges"; |
| vkInvalidateMappedMemoryRanges = |
| reinterpret_cast<PFN_vkInvalidateMappedMemoryRanges>( |
| vkGetDeviceProcAddr(vk_device, kvkInvalidateMappedMemoryRanges)); |
| if (!vkInvalidateMappedMemoryRanges) { |
| LogGetProcError(kvkInvalidateMappedMemoryRanges); |
| return false; |
| } |
| |
| constexpr char kvkGetBufferMemoryRequirements[] = |
| "vkGetBufferMemoryRequirements"; |
| vkGetBufferMemoryRequirements = |
| reinterpret_cast<PFN_vkGetBufferMemoryRequirements>( |
| vkGetDeviceProcAddr(vk_device, kvkGetBufferMemoryRequirements)); |
| if (!vkGetBufferMemoryRequirements) { |
| LogGetProcError(kvkGetBufferMemoryRequirements); |
| return false; |
| } |
| |
| constexpr char kvkGetBufferMemoryRequirements2[] = |
| "vkGetBufferMemoryRequirements2"; |
| vkGetBufferMemoryRequirements2 = |
| reinterpret_cast<PFN_vkGetBufferMemoryRequirements2>( |
| vkGetDeviceProcAddr(vk_device, kvkGetBufferMemoryRequirements2)); |
| if (!vkGetBufferMemoryRequirements2) { |
| LogGetProcError(kvkGetBufferMemoryRequirements2); |
| return false; |
| } |
| |
| constexpr char kvkGetDeviceQueue[] = "vkGetDeviceQueue"; |
| vkGetDeviceQueue = reinterpret_cast<PFN_vkGetDeviceQueue>( |
| vkGetDeviceProcAddr(vk_device, kvkGetDeviceQueue)); |
| if (!vkGetDeviceQueue) { |
| LogGetProcError(kvkGetDeviceQueue); |
| return false; |
| } |
| |
| constexpr char kvkGetDeviceQueue2[] = "vkGetDeviceQueue2"; |
| vkGetDeviceQueue2 = reinterpret_cast<PFN_vkGetDeviceQueue2>( |
| vkGetDeviceProcAddr(vk_device, kvkGetDeviceQueue2)); |
| if (!vkGetDeviceQueue2) { |
| LogGetProcError(kvkGetDeviceQueue2); |
| return false; |
| } |
| |
| constexpr char kvkGetFenceStatus[] = "vkGetFenceStatus"; |
| vkGetFenceStatus = reinterpret_cast<PFN_vkGetFenceStatus>( |
| vkGetDeviceProcAddr(vk_device, kvkGetFenceStatus)); |
| if (!vkGetFenceStatus) { |
| LogGetProcError(kvkGetFenceStatus); |
| return false; |
| } |
| |
| constexpr char kvkGetImageMemoryRequirements[] = |
| "vkGetImageMemoryRequirements"; |
| vkGetImageMemoryRequirements = |
| reinterpret_cast<PFN_vkGetImageMemoryRequirements>( |
| vkGetDeviceProcAddr(vk_device, kvkGetImageMemoryRequirements)); |
| if (!vkGetImageMemoryRequirements) { |
| LogGetProcError(kvkGetImageMemoryRequirements); |
| return false; |
| } |
| |
| constexpr char kvkGetImageMemoryRequirements2[] = |
| "vkGetImageMemoryRequirements2"; |
| vkGetImageMemoryRequirements2 = |
| reinterpret_cast<PFN_vkGetImageMemoryRequirements2>( |
| vkGetDeviceProcAddr(vk_device, kvkGetImageMemoryRequirements2)); |
| if (!vkGetImageMemoryRequirements2) { |
| LogGetProcError(kvkGetImageMemoryRequirements2); |
| return false; |
| } |
| |
| constexpr char kvkGetImageSubresourceLayout[] = "vkGetImageSubresourceLayout"; |
| vkGetImageSubresourceLayout = |
| reinterpret_cast<PFN_vkGetImageSubresourceLayout>( |
| vkGetDeviceProcAddr(vk_device, kvkGetImageSubresourceLayout)); |
| if (!vkGetImageSubresourceLayout) { |
| LogGetProcError(kvkGetImageSubresourceLayout); |
| return false; |
| } |
| |
| constexpr char kvkMapMemory[] = "vkMapMemory"; |
| vkMapMemory = reinterpret_cast<PFN_vkMapMemory>( |
| vkGetDeviceProcAddr(vk_device, kvkMapMemory)); |
| if (!vkMapMemory) { |
| LogGetProcError(kvkMapMemory); |
| return false; |
| } |
| |
| constexpr char kvkQueueSubmit[] = "vkQueueSubmit"; |
| vkQueueSubmit = reinterpret_cast<PFN_vkQueueSubmit>( |
| vkGetDeviceProcAddr(vk_device, kvkQueueSubmit)); |
| if (!vkQueueSubmit) { |
| LogGetProcError(kvkQueueSubmit); |
| return false; |
| } |
| |
| constexpr char kvkQueueWaitIdle[] = "vkQueueWaitIdle"; |
| vkQueueWaitIdle = reinterpret_cast<PFN_vkQueueWaitIdle>( |
| vkGetDeviceProcAddr(vk_device, kvkQueueWaitIdle)); |
| if (!vkQueueWaitIdle) { |
| LogGetProcError(kvkQueueWaitIdle); |
| return false; |
| } |
| |
| constexpr char kvkResetCommandBuffer[] = "vkResetCommandBuffer"; |
| vkResetCommandBuffer = reinterpret_cast<PFN_vkResetCommandBuffer>( |
| vkGetDeviceProcAddr(vk_device, kvkResetCommandBuffer)); |
| if (!vkResetCommandBuffer) { |
| LogGetProcError(kvkResetCommandBuffer); |
| return false; |
| } |
| |
| constexpr char kvkResetFences[] = "vkResetFences"; |
| vkResetFences = reinterpret_cast<PFN_vkResetFences>( |
| vkGetDeviceProcAddr(vk_device, kvkResetFences)); |
| if (!vkResetFences) { |
| LogGetProcError(kvkResetFences); |
| return false; |
| } |
| |
| constexpr char kvkUnmapMemory[] = "vkUnmapMemory"; |
| vkUnmapMemory = reinterpret_cast<PFN_vkUnmapMemory>( |
| vkGetDeviceProcAddr(vk_device, kvkUnmapMemory)); |
| if (!vkUnmapMemory) { |
| LogGetProcError(kvkUnmapMemory); |
| return false; |
| } |
| |
| constexpr char kvkUpdateDescriptorSets[] = "vkUpdateDescriptorSets"; |
| vkUpdateDescriptorSets = reinterpret_cast<PFN_vkUpdateDescriptorSets>( |
| vkGetDeviceProcAddr(vk_device, kvkUpdateDescriptorSets)); |
| if (!vkUpdateDescriptorSets) { |
| LogGetProcError(kvkUpdateDescriptorSets); |
| return false; |
| } |
| |
| constexpr char kvkWaitForFences[] = "vkWaitForFences"; |
| vkWaitForFences = reinterpret_cast<PFN_vkWaitForFences>( |
| vkGetDeviceProcAddr(vk_device, kvkWaitForFences)); |
| if (!vkWaitForFences) { |
| LogGetProcError(kvkWaitForFences); |
| return false; |
| } |
| |
| #if BUILDFLAG(IS_ANDROID) |
| if (gfx::HasExtension( |
| enabled_extensions, |
| VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_EXTENSION_NAME)) { |
| constexpr char kvkGetAndroidHardwareBufferPropertiesANDROID[] = |
| "vkGetAndroidHardwareBufferPropertiesANDROID"; |
| vkGetAndroidHardwareBufferPropertiesANDROID = |
| reinterpret_cast<PFN_vkGetAndroidHardwareBufferPropertiesANDROID>( |
| vkGetDeviceProcAddr(vk_device, |
| kvkGetAndroidHardwareBufferPropertiesANDROID)); |
| if (!vkGetAndroidHardwareBufferPropertiesANDROID) { |
| LogGetProcError(kvkGetAndroidHardwareBufferPropertiesANDROID); |
| return false; |
| } |
| } |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_POSIX) |
| if (gfx::HasExtension(enabled_extensions, |
| VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME)) { |
| constexpr char kvkGetSemaphoreFdKHR[] = "vkGetSemaphoreFdKHR"; |
| vkGetSemaphoreFdKHR = reinterpret_cast<PFN_vkGetSemaphoreFdKHR>( |
| vkGetDeviceProcAddr(vk_device, kvkGetSemaphoreFdKHR)); |
| if (!vkGetSemaphoreFdKHR) { |
| LogGetProcError(kvkGetSemaphoreFdKHR); |
| return false; |
| } |
| |
| constexpr char kvkImportSemaphoreFdKHR[] = "vkImportSemaphoreFdKHR"; |
| vkImportSemaphoreFdKHR = reinterpret_cast<PFN_vkImportSemaphoreFdKHR>( |
| vkGetDeviceProcAddr(vk_device, kvkImportSemaphoreFdKHR)); |
| if (!vkImportSemaphoreFdKHR) { |
| LogGetProcError(kvkImportSemaphoreFdKHR); |
| return false; |
| } |
| } |
| #endif // BUILDFLAG(IS_POSIX) |
| |
| #if BUILDFLAG(IS_WIN) |
| if (gfx::HasExtension(enabled_extensions, |
| VK_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME)) { |
| constexpr char kvkGetSemaphoreWin32HandleKHR[] = |
| "vkGetSemaphoreWin32HandleKHR"; |
| vkGetSemaphoreWin32HandleKHR = |
| reinterpret_cast<PFN_vkGetSemaphoreWin32HandleKHR>( |
| vkGetDeviceProcAddr(vk_device, kvkGetSemaphoreWin32HandleKHR)); |
| if (!vkGetSemaphoreWin32HandleKHR) { |
| LogGetProcError(kvkGetSemaphoreWin32HandleKHR); |
| return false; |
| } |
| |
| constexpr char kvkImportSemaphoreWin32HandleKHR[] = |
| "vkImportSemaphoreWin32HandleKHR"; |
| vkImportSemaphoreWin32HandleKHR = |
| reinterpret_cast<PFN_vkImportSemaphoreWin32HandleKHR>( |
| vkGetDeviceProcAddr(vk_device, kvkImportSemaphoreWin32HandleKHR)); |
| if (!vkImportSemaphoreWin32HandleKHR) { |
| LogGetProcError(kvkImportSemaphoreWin32HandleKHR); |
| return false; |
| } |
| } |
| #endif // BUILDFLAG(IS_WIN) |
| |
| #if BUILDFLAG(IS_POSIX) |
| if (gfx::HasExtension(enabled_extensions, |
| VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME)) { |
| constexpr char kvkGetMemoryFdKHR[] = "vkGetMemoryFdKHR"; |
| vkGetMemoryFdKHR = reinterpret_cast<PFN_vkGetMemoryFdKHR>( |
| vkGetDeviceProcAddr(vk_device, kvkGetMemoryFdKHR)); |
| if (!vkGetMemoryFdKHR) { |
| LogGetProcError(kvkGetMemoryFdKHR); |
| return false; |
| } |
| |
| constexpr char kvkGetMemoryFdPropertiesKHR[] = "vkGetMemoryFdPropertiesKHR"; |
| vkGetMemoryFdPropertiesKHR = |
| reinterpret_cast<PFN_vkGetMemoryFdPropertiesKHR>( |
| vkGetDeviceProcAddr(vk_device, kvkGetMemoryFdPropertiesKHR)); |
| if (!vkGetMemoryFdPropertiesKHR) { |
| LogGetProcError(kvkGetMemoryFdPropertiesKHR); |
| return false; |
| } |
| } |
| #endif // BUILDFLAG(IS_POSIX) |
| |
| #if BUILDFLAG(IS_WIN) |
| if (gfx::HasExtension(enabled_extensions, |
| VK_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME)) { |
| constexpr char kvkGetMemoryWin32HandleKHR[] = "vkGetMemoryWin32HandleKHR"; |
| vkGetMemoryWin32HandleKHR = reinterpret_cast<PFN_vkGetMemoryWin32HandleKHR>( |
| vkGetDeviceProcAddr(vk_device, kvkGetMemoryWin32HandleKHR)); |
| if (!vkGetMemoryWin32HandleKHR) { |
| LogGetProcError(kvkGetMemoryWin32HandleKHR); |
| return false; |
| } |
| |
| constexpr char kvkGetMemoryWin32HandlePropertiesKHR[] = |
| "vkGetMemoryWin32HandlePropertiesKHR"; |
| vkGetMemoryWin32HandlePropertiesKHR = |
| reinterpret_cast<PFN_vkGetMemoryWin32HandlePropertiesKHR>( |
| vkGetDeviceProcAddr(vk_device, |
| kvkGetMemoryWin32HandlePropertiesKHR)); |
| if (!vkGetMemoryWin32HandlePropertiesKHR) { |
| LogGetProcError(kvkGetMemoryWin32HandlePropertiesKHR); |
| return false; |
| } |
| } |
| #endif // BUILDFLAG(IS_WIN) |
| |
| #if BUILDFLAG(IS_FUCHSIA) |
| if (gfx::HasExtension(enabled_extensions, |
| VK_FUCHSIA_EXTERNAL_SEMAPHORE_EXTENSION_NAME)) { |
| constexpr char kvkImportSemaphoreZirconHandleFUCHSIA[] = |
| "vkImportSemaphoreZirconHandleFUCHSIA"; |
| vkImportSemaphoreZirconHandleFUCHSIA = |
| reinterpret_cast<PFN_vkImportSemaphoreZirconHandleFUCHSIA>( |
| vkGetDeviceProcAddr(vk_device, |
| kvkImportSemaphoreZirconHandleFUCHSIA)); |
| if (!vkImportSemaphoreZirconHandleFUCHSIA) { |
| LogGetProcError(kvkImportSemaphoreZirconHandleFUCHSIA); |
| return false; |
| } |
| |
| constexpr char kvkGetSemaphoreZirconHandleFUCHSIA[] = |
| "vkGetSemaphoreZirconHandleFUCHSIA"; |
| vkGetSemaphoreZirconHandleFUCHSIA = |
| reinterpret_cast<PFN_vkGetSemaphoreZirconHandleFUCHSIA>( |
| vkGetDeviceProcAddr(vk_device, kvkGetSemaphoreZirconHandleFUCHSIA)); |
| if (!vkGetSemaphoreZirconHandleFUCHSIA) { |
| LogGetProcError(kvkGetSemaphoreZirconHandleFUCHSIA); |
| return false; |
| } |
| } |
| #endif // BUILDFLAG(IS_FUCHSIA) |
| |
| #if BUILDFLAG(IS_FUCHSIA) |
| if (gfx::HasExtension(enabled_extensions, |
| VK_FUCHSIA_EXTERNAL_MEMORY_EXTENSION_NAME)) { |
| constexpr char kvkGetMemoryZirconHandleFUCHSIA[] = |
| "vkGetMemoryZirconHandleFUCHSIA"; |
| vkGetMemoryZirconHandleFUCHSIA = |
| reinterpret_cast<PFN_vkGetMemoryZirconHandleFUCHSIA>( |
| vkGetDeviceProcAddr(vk_device, kvkGetMemoryZirconHandleFUCHSIA)); |
| if (!vkGetMemoryZirconHandleFUCHSIA) { |
| LogGetProcError(kvkGetMemoryZirconHandleFUCHSIA); |
| return false; |
| } |
| } |
| #endif // BUILDFLAG(IS_FUCHSIA) |
| |
| #if BUILDFLAG(IS_FUCHSIA) |
| if (gfx::HasExtension(enabled_extensions, |
| VK_FUCHSIA_BUFFER_COLLECTION_EXTENSION_NAME)) { |
| constexpr char kvkCreateBufferCollectionFUCHSIA[] = |
| "vkCreateBufferCollectionFUCHSIA"; |
| vkCreateBufferCollectionFUCHSIA = |
| reinterpret_cast<PFN_vkCreateBufferCollectionFUCHSIA>( |
| vkGetDeviceProcAddr(vk_device, kvkCreateBufferCollectionFUCHSIA)); |
| if (!vkCreateBufferCollectionFUCHSIA) { |
| LogGetProcError(kvkCreateBufferCollectionFUCHSIA); |
| return false; |
| } |
| |
| constexpr char kvkSetBufferCollectionImageConstraintsFUCHSIA[] = |
| "vkSetBufferCollectionImageConstraintsFUCHSIA"; |
| vkSetBufferCollectionImageConstraintsFUCHSIA = |
| reinterpret_cast<PFN_vkSetBufferCollectionImageConstraintsFUCHSIA>( |
| vkGetDeviceProcAddr(vk_device, |
| kvkSetBufferCollectionImageConstraintsFUCHSIA)); |
| if (!vkSetBufferCollectionImageConstraintsFUCHSIA) { |
| LogGetProcError(kvkSetBufferCollectionImageConstraintsFUCHSIA); |
| return false; |
| } |
| |
| constexpr char kvkGetBufferCollectionPropertiesFUCHSIA[] = |
| "vkGetBufferCollectionPropertiesFUCHSIA"; |
| vkGetBufferCollectionPropertiesFUCHSIA = |
| reinterpret_cast<PFN_vkGetBufferCollectionPropertiesFUCHSIA>( |
| vkGetDeviceProcAddr(vk_device, |
| kvkGetBufferCollectionPropertiesFUCHSIA)); |
| if (!vkGetBufferCollectionPropertiesFUCHSIA) { |
| LogGetProcError(kvkGetBufferCollectionPropertiesFUCHSIA); |
| return false; |
| } |
| |
| constexpr char kvkDestroyBufferCollectionFUCHSIA[] = |
| "vkDestroyBufferCollectionFUCHSIA"; |
| vkDestroyBufferCollectionFUCHSIA = |
| reinterpret_cast<PFN_vkDestroyBufferCollectionFUCHSIA>( |
| vkGetDeviceProcAddr(vk_device, kvkDestroyBufferCollectionFUCHSIA)); |
| if (!vkDestroyBufferCollectionFUCHSIA) { |
| LogGetProcError(kvkDestroyBufferCollectionFUCHSIA); |
| return false; |
| } |
| } |
| #endif // BUILDFLAG(IS_FUCHSIA) |
| |
| if (gfx::HasExtension(enabled_extensions, VK_KHR_SWAPCHAIN_EXTENSION_NAME)) { |
| constexpr char kvkAcquireNextImageKHR[] = "vkAcquireNextImageKHR"; |
| vkAcquireNextImageKHR = reinterpret_cast<PFN_vkAcquireNextImageKHR>( |
| vkGetDeviceProcAddr(vk_device, kvkAcquireNextImageKHR)); |
| if (!vkAcquireNextImageKHR) { |
| LogGetProcError(kvkAcquireNextImageKHR); |
| return false; |
| } |
| |
| constexpr char kvkCreateSwapchainKHR[] = "vkCreateSwapchainKHR"; |
| vkCreateSwapchainKHR = reinterpret_cast<PFN_vkCreateSwapchainKHR>( |
| vkGetDeviceProcAddr(vk_device, kvkCreateSwapchainKHR)); |
| if (!vkCreateSwapchainKHR) { |
| LogGetProcError(kvkCreateSwapchainKHR); |
| return false; |
| } |
| |
| constexpr char kvkDestroySwapchainKHR[] = "vkDestroySwapchainKHR"; |
| vkDestroySwapchainKHR = reinterpret_cast<PFN_vkDestroySwapchainKHR>( |
| vkGetDeviceProcAddr(vk_device, kvkDestroySwapchainKHR)); |
| if (!vkDestroySwapchainKHR) { |
| LogGetProcError(kvkDestroySwapchainKHR); |
| return false; |
| } |
| |
| constexpr char kvkGetSwapchainImagesKHR[] = "vkGetSwapchainImagesKHR"; |
| vkGetSwapchainImagesKHR = reinterpret_cast<PFN_vkGetSwapchainImagesKHR>( |
| vkGetDeviceProcAddr(vk_device, kvkGetSwapchainImagesKHR)); |
| if (!vkGetSwapchainImagesKHR) { |
| LogGetProcError(kvkGetSwapchainImagesKHR); |
| return false; |
| } |
| |
| constexpr char kvkQueuePresentKHR[] = "vkQueuePresentKHR"; |
| vkQueuePresentKHR = reinterpret_cast<PFN_vkQueuePresentKHR>( |
| vkGetDeviceProcAddr(vk_device, kvkQueuePresentKHR)); |
| if (!vkQueuePresentKHR) { |
| LogGetProcError(kvkQueuePresentKHR); |
| return false; |
| } |
| } |
| |
| #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) |
| if (gfx::HasExtension(enabled_extensions, |
| VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME)) { |
| constexpr char kvkGetImageDrmFormatModifierPropertiesEXT[] = |
| "vkGetImageDrmFormatModifierPropertiesEXT"; |
| vkGetImageDrmFormatModifierPropertiesEXT = |
| reinterpret_cast<PFN_vkGetImageDrmFormatModifierPropertiesEXT>( |
| vkGetDeviceProcAddr(vk_device, |
| kvkGetImageDrmFormatModifierPropertiesEXT)); |
| if (!vkGetImageDrmFormatModifierPropertiesEXT) { |
| LogGetProcError(kvkGetImageDrmFormatModifierPropertiesEXT); |
| return false; |
| } |
| } |
| #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) |
| |
| return true; |
| } |
| |
| void VulkanFunctionPointers::ResetForTesting() { |
| base::AutoLock lock(write_lock_); |
| |
| per_queue_lock_map.clear(); |
| loader_library_ = nullptr; |
| vkGetInstanceProcAddr = nullptr; |
| |
| vkEnumerateInstanceVersion = nullptr; |
| vkCreateInstance = nullptr; |
| vkEnumerateInstanceExtensionProperties = nullptr; |
| vkEnumerateInstanceLayerProperties = nullptr; |
| |
| vkCreateDevice = nullptr; |
| vkDestroyInstance = nullptr; |
| vkEnumerateDeviceExtensionProperties = nullptr; |
| vkEnumerateDeviceLayerProperties = nullptr; |
| vkEnumeratePhysicalDevices = nullptr; |
| vkGetDeviceProcAddr = nullptr; |
| vkGetPhysicalDeviceExternalSemaphoreProperties = nullptr; |
| vkGetPhysicalDeviceFeatures2 = nullptr; |
| vkGetPhysicalDeviceFormatProperties = nullptr; |
| vkGetPhysicalDeviceFormatProperties2 = nullptr; |
| vkGetPhysicalDeviceImageFormatProperties2 = nullptr; |
| vkGetPhysicalDeviceMemoryProperties = nullptr; |
| vkGetPhysicalDeviceMemoryProperties2 = nullptr; |
| vkGetPhysicalDeviceProperties = nullptr; |
| vkGetPhysicalDeviceProperties2 = nullptr; |
| vkGetPhysicalDeviceQueueFamilyProperties = nullptr; |
| |
| #if DCHECK_IS_ON() |
| vkCreateDebugReportCallbackEXT = nullptr; |
| vkDestroyDebugReportCallbackEXT = nullptr; |
| #endif // DCHECK_IS_ON() |
| |
| vkDestroySurfaceKHR = nullptr; |
| vkGetPhysicalDeviceSurfaceCapabilitiesKHR = nullptr; |
| vkGetPhysicalDeviceSurfaceFormatsKHR = nullptr; |
| vkGetPhysicalDeviceSurfaceSupportKHR = nullptr; |
| |
| vkCreateHeadlessSurfaceEXT = nullptr; |
| |
| #if defined(USE_VULKAN_XCB) |
| vkCreateXcbSurfaceKHR = nullptr; |
| vkGetPhysicalDeviceXcbPresentationSupportKHR = nullptr; |
| #endif // defined(USE_VULKAN_XCB) |
| |
| #if BUILDFLAG(IS_WIN) |
| vkCreateWin32SurfaceKHR = nullptr; |
| vkGetPhysicalDeviceWin32PresentationSupportKHR = nullptr; |
| #endif // BUILDFLAG(IS_WIN) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| vkCreateAndroidSurfaceKHR = nullptr; |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_FUCHSIA) |
| vkCreateImagePipeSurfaceFUCHSIA = nullptr; |
| #endif // BUILDFLAG(IS_FUCHSIA) |
| |
| vkAllocateCommandBuffers = nullptr; |
| vkAllocateDescriptorSets = nullptr; |
| vkAllocateMemory = nullptr; |
| vkBeginCommandBuffer = nullptr; |
| vkBindBufferMemory = nullptr; |
| vkBindBufferMemory2 = nullptr; |
| vkBindImageMemory = nullptr; |
| vkBindImageMemory2 = nullptr; |
| vkCmdBeginRenderPass = nullptr; |
| vkCmdBindDescriptorSets = nullptr; |
| vkCmdBindPipeline = nullptr; |
| vkCmdBindVertexBuffers = nullptr; |
| vkCmdCopyBuffer = nullptr; |
| vkCmdCopyBufferToImage = nullptr; |
| vkCmdCopyImageToBuffer = nullptr; |
| vkCmdDraw = nullptr; |
| vkCmdEndRenderPass = nullptr; |
| vkCmdExecuteCommands = nullptr; |
| vkCmdNextSubpass = nullptr; |
| vkCmdPipelineBarrier = nullptr; |
| vkCmdPushConstants = nullptr; |
| vkCmdSetScissor = nullptr; |
| vkCmdSetViewport = nullptr; |
| vkCreateBuffer = nullptr; |
| vkCreateCommandPool = nullptr; |
| vkCreateDescriptorPool = nullptr; |
| vkCreateDescriptorSetLayout = nullptr; |
| vkCreateFence = nullptr; |
| vkCreateFramebuffer = nullptr; |
| vkCreateGraphicsPipelines = nullptr; |
| vkCreateImage = nullptr; |
| vkCreateImageView = nullptr; |
| vkCreatePipelineLayout = nullptr; |
| vkCreateRenderPass = nullptr; |
| vkCreateSampler = nullptr; |
| vkCreateSemaphore = nullptr; |
| vkCreateShaderModule = nullptr; |
| vkDestroyBuffer = nullptr; |
| vkDestroyCommandPool = nullptr; |
| vkDestroyDescriptorPool = nullptr; |
| vkDestroyDescriptorSetLayout = nullptr; |
| vkDestroyDevice = nullptr; |
| vkDestroyFence = nullptr; |
| vkDestroyFramebuffer = nullptr; |
| vkDestroyImage = nullptr; |
| vkDestroyImageView = nullptr; |
| vkDestroyPipeline = nullptr; |
| vkDestroyPipelineLayout = nullptr; |
| vkDestroyRenderPass = nullptr; |
| vkDestroySampler = nullptr; |
| vkDestroySemaphore = nullptr; |
| vkDestroyShaderModule = nullptr; |
| vkDeviceWaitIdle = nullptr; |
| vkFlushMappedMemoryRanges = nullptr; |
| vkEndCommandBuffer = nullptr; |
| vkFreeCommandBuffers = nullptr; |
| vkFreeDescriptorSets = nullptr; |
| vkFreeMemory = nullptr; |
| vkInvalidateMappedMemoryRanges = nullptr; |
| vkGetBufferMemoryRequirements = nullptr; |
| vkGetBufferMemoryRequirements2 = nullptr; |
| vkGetDeviceQueue = nullptr; |
| vkGetDeviceQueue2 = nullptr; |
| vkGetFenceStatus = nullptr; |
| vkGetImageMemoryRequirements = nullptr; |
| vkGetImageMemoryRequirements2 = nullptr; |
| vkGetImageSubresourceLayout = nullptr; |
| vkMapMemory = nullptr; |
| vkQueueSubmit = nullptr; |
| vkQueueWaitIdle = nullptr; |
| vkResetCommandBuffer = nullptr; |
| vkResetFences = nullptr; |
| vkUnmapMemory = nullptr; |
| vkUpdateDescriptorSets = nullptr; |
| vkWaitForFences = nullptr; |
| |
| #if BUILDFLAG(IS_ANDROID) |
| vkGetAndroidHardwareBufferPropertiesANDROID = nullptr; |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_POSIX) |
| vkGetSemaphoreFdKHR = nullptr; |
| vkImportSemaphoreFdKHR = nullptr; |
| #endif // BUILDFLAG(IS_POSIX) |
| |
| #if BUILDFLAG(IS_WIN) |
| vkGetSemaphoreWin32HandleKHR = nullptr; |
| vkImportSemaphoreWin32HandleKHR = nullptr; |
| #endif // BUILDFLAG(IS_WIN) |
| |
| #if BUILDFLAG(IS_POSIX) |
| vkGetMemoryFdKHR = nullptr; |
| vkGetMemoryFdPropertiesKHR = nullptr; |
| #endif // BUILDFLAG(IS_POSIX) |
| |
| #if BUILDFLAG(IS_WIN) |
| vkGetMemoryWin32HandleKHR = nullptr; |
| vkGetMemoryWin32HandlePropertiesKHR = nullptr; |
| #endif // BUILDFLAG(IS_WIN) |
| |
| #if BUILDFLAG(IS_FUCHSIA) |
| vkImportSemaphoreZirconHandleFUCHSIA = nullptr; |
| vkGetSemaphoreZirconHandleFUCHSIA = nullptr; |
| #endif // BUILDFLAG(IS_FUCHSIA) |
| |
| #if BUILDFLAG(IS_FUCHSIA) |
| vkGetMemoryZirconHandleFUCHSIA = nullptr; |
| #endif // BUILDFLAG(IS_FUCHSIA) |
| |
| #if BUILDFLAG(IS_FUCHSIA) |
| vkCreateBufferCollectionFUCHSIA = nullptr; |
| vkSetBufferCollectionImageConstraintsFUCHSIA = nullptr; |
| vkGetBufferCollectionPropertiesFUCHSIA = nullptr; |
| vkDestroyBufferCollectionFUCHSIA = nullptr; |
| #endif // BUILDFLAG(IS_FUCHSIA) |
| |
| vkAcquireNextImageKHR = nullptr; |
| vkCreateSwapchainKHR = nullptr; |
| vkDestroySwapchainKHR = nullptr; |
| vkGetSwapchainImagesKHR = nullptr; |
| vkQueuePresentKHR = nullptr; |
| |
| #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) |
| vkGetImageDrmFormatModifierPropertiesEXT = nullptr; |
| #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) |
| } |
| |
| } // namespace gpu |