From ca1512f47aba2106ed15624d223c8b839d95bafd Mon Sep 17 00:00:00 2001 From: Connor McLaughlin Date: Mon, 1 Aug 2022 23:07:23 +1000 Subject: [PATCH] Vulkan/Loader: Prioritize system libvulkan dylib, fallback to MoltenVK --- src/common/vulkan/loader.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/common/vulkan/loader.cpp b/src/common/vulkan/loader.cpp index a035f11eb..8ca56a90f 100644 --- a/src/common/vulkan/loader.cpp +++ b/src/common/vulkan/loader.cpp @@ -118,9 +118,14 @@ bool LoadVulkanLibrary() #if defined(__APPLE__) // Check if a path to a specific Vulkan library has been specified. + // Otherwise, try for a system-wide libvulkan. char* libvulkan_env = getenv("LIBVULKAN_PATH"); if (libvulkan_env) vulkan_module = dlopen(libvulkan_env, RTLD_NOW); + else + vulkan_module = dlopen("libvulkan.dylib", RTLD_NOW); + + // Fall back to the packaged MoltenVK. if (!vulkan_module) { unsigned path_size = 0; @@ -135,13 +140,11 @@ bool LoadVulkanLibrary() if (pos != std::string::npos) { path.erase(pos); - path += "/../Frameworks/libvulkan.dylib"; + path += "/../Frameworks/libMoltenVK.dylib"; vulkan_module = dlopen(path.c_str(), RTLD_NOW); } } } - if (!vulkan_module) - vulkan_module = dlopen("libvulkan.dylib", RTLD_NOW); #else // Names of libraries to search. Desktop should use libvulkan.so.1 or libvulkan.so. static const char* search_lib_names[] = {"libvulkan.so.1", "libvulkan.so"};