diff options
| author | Feng Chen <chen.feng@glority.cn> | 2023-08-17 09:17:56 +0800 |
|---|---|---|
| committer | Feng Chen <vonchenplus@gmail.com> | 2023-08-22 10:22:28 +0800 |
| commit | ec643e7e9dd74f7377a711849a5519b08b0bacff (patch) | |
| tree | 331327060ac062ec1584a0c86c7adbd5ccf436f1 /src/video_core/vulkan_common/vulkan_library.cpp | |
| parent | ec3d07e68373f29e098acb014d8c27d48a5151ec (diff) | |
Add macos moltenvk bundle, Add copy moltevk dylib script
Diffstat (limited to 'src/video_core/vulkan_common/vulkan_library.cpp')
| -rw-r--r-- | src/video_core/vulkan_common/vulkan_library.cpp | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/video_core/vulkan_common/vulkan_library.cpp b/src/video_core/vulkan_common/vulkan_library.cpp index 47f6f2a036..0130f6a0d9 100644 --- a/src/video_core/vulkan_common/vulkan_library.cpp +++ b/src/video_core/vulkan_common/vulkan_library.cpp @@ -19,13 +19,17 @@ std::shared_ptr<Common::DynamicLibrary> OpenLibrary( #else auto library = std::make_shared<Common::DynamicLibrary>(); #ifdef __APPLE__ + const auto libvulkan_filename = + Common::FS::GetBundleDirectory() / "Contents/Frameworks/libvulkan.1.dylib"; + const auto libmoltenvk_filename = + Common::FS::GetBundleDirectory() / "Contents/Frameworks/libMoltenVK.dylib"; + const char* library_paths[] = {std::getenv("LIBVULKAN_PATH"), libvulkan_filename.c_str(), + libmoltenvk_filename.c_str()}; // Check if a path to a specific Vulkan library has been specified. - char* const libvulkan_env = std::getenv("LIBVULKAN_PATH"); - if (!libvulkan_env || !library->Open(libvulkan_env)) { - // Use the libvulkan.dylib from the application bundle. - const auto filename = - Common::FS::GetBundleDirectory() / "Contents/Frameworks/libvulkan.dylib"; - void(library->Open(Common::FS::PathToUTF8String(filename).c_str())); + for (const auto& library_path : library_paths) { + if (library_path && library->Open(library_path)) { + break; + } } #else std::string filename = Common::DynamicLibrary::GetVersionedFilename("vulkan", 1); |
