diff options
author | Greg Daniel <egdaniel@google.com> | 2017-11-10 00:29:45 +0000 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-11-10 00:34:17 +0000 |
commit | c8dd283c9a784d1e115019f5b4a1b0e082513203 (patch) | |
tree | 0c5e3d3cb0b36a177834b9afa4dda2e2a8f52fbe /tools | |
parent | 22499b0969ac8650fa1349f2dbb4e4964a2286b9 (diff) |
Revert "Dynamically load the vulkan library in our test tools"
This reverts commit 77d6feaa69d95c42f4e77195e92de33917995544.
Reason for revert: breaking google 3
Original change's description:
> Dynamically load the vulkan library in our test tools
>
> Bug: skia:
> Change-Id: I7c1f6cbb2b50ca284f40cf4b9ef49a76083b38c6
> Reviewed-on: https://skia-review.googlesource.com/68643
> Reviewed-by: Chris Dalton <csmartdalton@google.com>
> Commit-Queue: Greg Daniel <egdaniel@google.com>
TBR=egdaniel@google.com,csmartdalton@google.com
Change-Id: I6b2588e71f1876868fcf8f2b3c91a96e7c689045
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/69780
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
Diffstat (limited to 'tools')
-rw-r--r-- | tools/gpu/vk/VkTestContext.cpp | 10 | ||||
-rw-r--r-- | tools/gpu/vk/VkTestUtils.cpp | 40 | ||||
-rw-r--r-- | tools/gpu/vk/VkTestUtils.h | 21 | ||||
-rw-r--r-- | tools/viewer/sk_app/VulkanWindowContext.cpp | 15 | ||||
-rw-r--r-- | tools/viewer/sk_app/VulkanWindowContext.h | 9 | ||||
-rw-r--r-- | tools/viewer/sk_app/android/VulkanWindowContext_android.cpp | 16 | ||||
-rw-r--r-- | tools/viewer/sk_app/unix/VulkanWindowContext_unix.cpp | 21 | ||||
-rw-r--r-- | tools/viewer/sk_app/win/VulkanWindowContext_win.cpp | 22 |
8 files changed, 28 insertions, 126 deletions
diff --git a/tools/gpu/vk/VkTestContext.cpp b/tools/gpu/vk/VkTestContext.cpp index daaa55bfa0..e329583a03 100644 --- a/tools/gpu/vk/VkTestContext.cpp +++ b/tools/gpu/vk/VkTestContext.cpp @@ -10,9 +10,9 @@ #ifdef SK_VULKAN #include "GrContext.h" -#include "VkTestUtils.h" #include "vk/GrVkInterface.h" #include "vk/GrVkUtil.h" +#include <vulkan/vulkan.h> namespace { /** @@ -114,12 +114,8 @@ public: if (sharedContext) { backendContext = sharedContext->getVkBackendContext(); } else { - PFN_vkGetInstanceProcAddr instProc; - PFN_vkGetDeviceProcAddr devProc; - if (!sk_gpu_test::LoadVkLibraryAndGetProcAddrFuncs(&instProc, &devProc)) { - return nullptr; - } - backendContext.reset(GrVkBackendContext::Create(instProc, devProc)); + backendContext.reset(GrVkBackendContext::Create(vkGetInstanceProcAddr, + vkGetDeviceProcAddr)); } if (!backendContext) { return nullptr; diff --git a/tools/gpu/vk/VkTestUtils.cpp b/tools/gpu/vk/VkTestUtils.cpp deleted file mode 100644 index 62fd312ecf..0000000000 --- a/tools/gpu/vk/VkTestUtils.cpp +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright 2017 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#include "VkTestUtils.h" - -#include "../ports/SkOSLibrary.h" - -namespace sk_gpu_test { - -bool LoadVkLibraryAndGetProcAddrFuncs(PFN_vkGetInstanceProcAddr* instProc, - PFN_vkGetDeviceProcAddr* devProc) { - static void* vkLib = nullptr; - static PFN_vkGetInstanceProcAddr localInstProc = nullptr; - static PFN_vkGetDeviceProcAddr localDevProc = nullptr; - if (!vkLib) { -#if defined _WIN32 - vkLib = DynamicLoadLibrary("vulkan-1.dll"); -#else - vkLib = DynamicLoadLibrary("libvulkan.so"); -#endif - if (!vkLib) { - return false; - } - localInstProc = (PFN_vkGetInstanceProcAddr) GetProcedureAddress(vkLib, - "vkGetInstanceProcAddr"); - localDevProc = (PFN_vkGetDeviceProcAddr) GetProcedureAddress(vkLib, - "vkGetDeviceProcAddr"); - } - if (!localInstProc || !localDevProc) { - return false; - } - *instProc = localInstProc; - *devProc = localDevProc; - return true; -} -} diff --git a/tools/gpu/vk/VkTestUtils.h b/tools/gpu/vk/VkTestUtils.h deleted file mode 100644 index 43e9dfdbdc..0000000000 --- a/tools/gpu/vk/VkTestUtils.h +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright 2017 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#ifndef VkTestUtils_DEFINED -#define VkTestUtils_DEFINED - -#ifdef SK_VULKAN - -#include "vk/GrVkDefines.h" - -namespace sk_gpu_test { - bool LoadVkLibraryAndGetProcAddrFuncs(PFN_vkGetInstanceProcAddr*, PFN_vkGetDeviceProcAddr*); -} - -#endif -#endif - diff --git a/tools/viewer/sk_app/VulkanWindowContext.cpp b/tools/viewer/sk_app/VulkanWindowContext.cpp index 5e0f12412e..a9124d5e41 100644 --- a/tools/viewer/sk_app/VulkanWindowContext.cpp +++ b/tools/viewer/sk_app/VulkanWindowContext.cpp @@ -22,16 +22,14 @@ #undef CreateSemaphore #endif -#define GET_PROC(F) f ## F = (PFN_vk ## F) fGetInstanceProcAddr(instance, "vk" #F) -#define GET_DEV_PROC(F) f ## F = (PFN_vk ## F) fGetDeviceProcAddr(device, "vk" #F) +#define GET_PROC(F) f ## F = (PFN_vk ## F) vkGetInstanceProcAddr(instance, "vk" #F) +#define GET_DEV_PROC(F) f ## F = (PFN_vk ## F) vkGetDeviceProcAddr(device, "vk" #F) namespace sk_app { VulkanWindowContext::VulkanWindowContext(const DisplayParams& params, CreateVkSurfaceFn createVkSurface, - CanPresentFn canPresent, - PFN_vkGetInstanceProcAddr instProc, - PFN_vkGetDeviceProcAddr devProc) + CanPresentFn canPresent) : WindowContext(params) , fCreateVkSurfaceFn(createVkSurface) , fCanPresentFn(canPresent) @@ -42,14 +40,12 @@ VulkanWindowContext::VulkanWindowContext(const DisplayParams& params, , fSurfaces(nullptr) , fCommandPool(VK_NULL_HANDLE) , fBackbuffers(nullptr) { - fGetInstanceProcAddr = instProc; - fGetDeviceProcAddr = devProc; this->initializeContext(); } void VulkanWindowContext::initializeContext() { // any config code here (particularly for msaa)? - fBackendContext.reset(GrVkBackendContext::Create(fGetInstanceProcAddr, fGetDeviceProcAddr, + fBackendContext.reset(GrVkBackendContext::Create(vkGetInstanceProcAddr, vkGetDeviceProcAddr, &fPresentQueueIndex, fCanPresentFn)); if (!(fBackendContext->fExtensions & kKHR_surface_GrVkExtensionFlag) || @@ -70,7 +66,6 @@ void VulkanWindowContext::initializeContext() { GET_DEV_PROC(GetSwapchainImagesKHR); GET_DEV_PROC(AcquireNextImageKHR); GET_DEV_PROC(QueuePresentKHR); - GET_DEV_PROC(GetDeviceQueue); fContext = GrContext::MakeVulkan(fBackendContext.get(), fDisplayParams.fGrContextOptions); @@ -95,7 +90,7 @@ void VulkanWindowContext::initializeContext() { } // create presentQueue - fGetDeviceQueue(fBackendContext->fDevice, fPresentQueueIndex, 0, &fPresentQueue); + vkGetDeviceQueue(fBackendContext->fDevice, fPresentQueueIndex, 0, &fPresentQueue); } bool VulkanWindowContext::createSwapchain(int width, int height, diff --git a/tools/viewer/sk_app/VulkanWindowContext.h b/tools/viewer/sk_app/VulkanWindowContext.h index d02b11428e..81e5f3d2d5 100644 --- a/tools/viewer/sk_app/VulkanWindowContext.h +++ b/tools/viewer/sk_app/VulkanWindowContext.h @@ -47,8 +47,7 @@ public: /** Platform specific function that determines whether presentation will succeed. */ using CanPresentFn = GrVkBackendContext::CanPresentFn; - VulkanWindowContext(const DisplayParams&, CreateVkSurfaceFn, CanPresentFn, - PFN_vkGetInstanceProcAddr, PFN_vkGetDeviceProcAddr); + VulkanWindowContext(const DisplayParams&, CreateVkSurfaceFn, CanPresentFn); private: void initializeContext(); @@ -83,10 +82,6 @@ private: CreateVkSurfaceFn fCreateVkSurfaceFn; CanPresentFn fCanPresentFn; - // Vulkan GetProcAddr functions - VkPtr<PFN_vkGetInstanceProcAddr> fGetInstanceProcAddr; - VkPtr<PFN_vkGetDeviceProcAddr> fGetDeviceProcAddr; - // WSI interface functions VkPtr<PFN_vkDestroySurfaceKHR> fDestroySurfaceKHR; VkPtr<PFN_vkGetPhysicalDeviceSurfaceSupportKHR> fGetPhysicalDeviceSurfaceSupportKHR; @@ -99,7 +94,7 @@ private: VkPtr<PFN_vkGetSwapchainImagesKHR> fGetSwapchainImagesKHR; VkPtr<PFN_vkAcquireNextImageKHR> fAcquireNextImageKHR; VkPtr<PFN_vkQueuePresentKHR> fQueuePresentKHR; - VkPtr<PFN_vkGetDeviceQueue> fGetDeviceQueue; + VkPtr<PFN_vkCreateSharedSwapchainsKHR> fCreateSharedSwapchainsKHR; VkSurfaceKHR fSurface; VkSwapchainKHR fSwapchain; diff --git a/tools/viewer/sk_app/android/VulkanWindowContext_android.cpp b/tools/viewer/sk_app/android/VulkanWindowContext_android.cpp index a7d8aa7ea1..b50e152291 100644 --- a/tools/viewer/sk_app/android/VulkanWindowContext_android.cpp +++ b/tools/viewer/sk_app/android/VulkanWindowContext_android.cpp @@ -9,22 +9,15 @@ #include "WindowContextFactory_android.h" #include "../VulkanWindowContext.h" -#include "vk/VkTestUtils.h" - namespace sk_app { namespace window_context_factory { WindowContext* NewVulkanForAndroid(ANativeWindow* window, const DisplayParams& params) { - PFN_vkGetInstanceProcAddr instProc; - PFN_vkGetDeviceProcAddr devProc; - if (!sk_gpu_test::LoadVkLibraryAndGetProcAddrFuncs(&instProc, &devProc)) { - return nullptr; - } - - auto createVkSurface = [window, instProc] (VkInstance instance) -> VkSurfaceKHR { + auto createVkSurface = [window] (VkInstance instance) -> VkSurfaceKHR { PFN_vkCreateAndroidSurfaceKHR createAndroidSurfaceKHR = - (PFN_vkCreateAndroidSurfaceKHR) instProc(instance, "vkCreateAndroidSurfaceKHR"); + (PFN_vkCreateAndroidSurfaceKHR)vkGetInstanceProcAddr(instance, + "vkCreateAndroidSurfaceKHR"); if (!window) { return VK_NULL_HANDLE; @@ -45,8 +38,7 @@ WindowContext* NewVulkanForAndroid(ANativeWindow* window, const DisplayParams& p auto canPresent = [](VkInstance, VkPhysicalDevice, uint32_t) { return true; }; - WindowContext* ctx = new VulkanWindowContext(params, createVkSurface, canPresent, - instProc, devProc); + WindowContext* ctx = new VulkanWindowContext(params, createVkSurface, canPresent); if (!ctx->isValid()) { delete ctx; return nullptr; diff --git a/tools/viewer/sk_app/unix/VulkanWindowContext_unix.cpp b/tools/viewer/sk_app/unix/VulkanWindowContext_unix.cpp index b2f1ffc763..b94e8edc20 100644 --- a/tools/viewer/sk_app/unix/VulkanWindowContext_unix.cpp +++ b/tools/viewer/sk_app/unix/VulkanWindowContext_unix.cpp @@ -10,8 +10,6 @@ #include "vk/GrVkInterface.h" #include "vk/GrVkUtil.h" -#include "vk/VkTestUtils.h" - #include <X11/Xlib-xcb.h> #include "WindowContextFactory_unix.h" @@ -22,17 +20,12 @@ namespace sk_app { namespace window_context_factory { WindowContext* NewVulkanForXlib(const XlibWindowInfo& info, const DisplayParams& displayParams) { - PFN_vkGetInstanceProcAddr instProc; - PFN_vkGetDeviceProcAddr devProc; - if (!sk_gpu_test::LoadVkLibraryAndGetProcAddrFuncs(&instProc, &devProc)) { - return nullptr; - } - - auto createVkSurface = [&info, instProc](VkInstance instance) -> VkSurfaceKHR { + auto createVkSurface = [&info](VkInstance instance) -> VkSurfaceKHR { static PFN_vkCreateXcbSurfaceKHR createXcbSurfaceKHR = nullptr; if (!createXcbSurfaceKHR) { createXcbSurfaceKHR = - (PFN_vkCreateXcbSurfaceKHR) instProc(instance, "vkCreateXcbSurfaceKHR"); + (PFN_vkCreateXcbSurfaceKHR) vkGetInstanceProcAddr(instance, + "vkCreateXcbSurfaceKHR"); } VkSurfaceKHR surface; @@ -53,14 +46,15 @@ WindowContext* NewVulkanForXlib(const XlibWindowInfo& info, const DisplayParams& return surface; }; - auto canPresent = [&info, instProc](VkInstance instance, VkPhysicalDevice physDev, + auto canPresent = [&info](VkInstance instance, VkPhysicalDevice physDev, uint32_t queueFamilyIndex) { static PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR getPhysicalDeviceXcbPresentationSupportKHR = nullptr; if (!getPhysicalDeviceXcbPresentationSupportKHR) { getPhysicalDeviceXcbPresentationSupportKHR = (PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR) - instProc(instance, "vkGetPhysicalDeviceXcbPresentationSupportKHR"); + vkGetInstanceProcAddr(instance, + "vkGetPhysicalDeviceXcbPresentationSupportKHR"); } @@ -72,8 +66,7 @@ WindowContext* NewVulkanForXlib(const XlibWindowInfo& info, const DisplayParams& visualID); return (VK_FALSE != check); }; - WindowContext* context = new VulkanWindowContext(displayParams, createVkSurface, canPresent, - instProc, devProc); + WindowContext* context = new VulkanWindowContext(displayParams, createVkSurface, canPresent); if (!context->isValid()) { delete context; return nullptr; diff --git a/tools/viewer/sk_app/win/VulkanWindowContext_win.cpp b/tools/viewer/sk_app/win/VulkanWindowContext_win.cpp index 16c527cba0..dbb59c10f2 100644 --- a/tools/viewer/sk_app/win/VulkanWindowContext_win.cpp +++ b/tools/viewer/sk_app/win/VulkanWindowContext_win.cpp @@ -15,23 +15,15 @@ #include "vk/GrVkInterface.h" #include "vk/GrVkUtil.h" -#include "vk/VkTestUtils.h" - namespace sk_app { namespace window_context_factory { WindowContext* NewVulkanForWin(HWND hwnd, const DisplayParams& params) { - PFN_vkGetInstanceProcAddr instProc; - PFN_vkGetDeviceProcAddr devProc; - if (!sk_gpu_test::LoadVkLibraryAndGetProcAddrFuncs(&instProc, &devProc)) { - return nullptr; - } - - auto createVkSurface = [hwnd, instProc] (VkInstance instance) -> VkSurfaceKHR { + auto createVkSurface = [hwnd] (VkInstance instance) -> VkSurfaceKHR { static PFN_vkCreateWin32SurfaceKHR createWin32SurfaceKHR = nullptr; if (!createWin32SurfaceKHR) { createWin32SurfaceKHR = (PFN_vkCreateWin32SurfaceKHR) - instProc(instance, "vkCreateWin32SurfaceKHR"); + vkGetInstanceProcAddr(instance, "vkCreateWin32SurfaceKHR"); } HINSTANCE hinstance = GetModuleHandle(0); VkSurfaceKHR surface; @@ -52,22 +44,22 @@ WindowContext* NewVulkanForWin(HWND hwnd, const DisplayParams& params) { return surface; }; - auto canPresent = [instProc] (VkInstance instance, VkPhysicalDevice physDev, - uint32_t queueFamilyIndex) { + auto canPresent = [] (VkInstance instance, VkPhysicalDevice physDev, + uint32_t queueFamilyIndex) { static PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR getPhysicalDeviceWin32PresentationSupportKHR = nullptr; if (!getPhysicalDeviceWin32PresentationSupportKHR) { getPhysicalDeviceWin32PresentationSupportKHR = (PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR) - instProc(instance, "vkGetPhysicalDeviceWin32PresentationSupportKHR"); + vkGetInstanceProcAddr(instance, + "vkGetPhysicalDeviceWin32PresentationSupportKHR"); } VkBool32 check = getPhysicalDeviceWin32PresentationSupportKHR(physDev, queueFamilyIndex); return (VK_FALSE != check); }; - WindowContext* ctx = new VulkanWindowContext(params, createVkSurface, canPresent, - instProc, devProc); + WindowContext* ctx = new VulkanWindowContext(params, createVkSurface, canPresent); if (!ctx->isValid()) { delete ctx; return nullptr; |