aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/vulkan_common/vulkan_library.cpp
diff options
context:
space:
mode:
authorliamwhite <liamwhite@users.noreply.github.com>2023-08-22 13:10:26 -0400
committerGitHub <noreply@github.com>2023-08-22 13:10:26 -0400
commitbc4ad5e62d6d9a8e81a56ce70b33dd3e8ae7bd5d (patch)
tree7b3354dd90ada7fabb5efa93a5f2a8c8892c6da8 /src/video_core/vulkan_common/vulkan_library.cpp
parentef61d129d3ce357eeb12bc3ed14a1f5e376f1f95 (diff)
parent87022a4833fd693274275e1153d80d2e56fe0b11 (diff)
Merge pull request #11302 from vonchenplus/vulkan_macos
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.cpp16
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 47f6f2a03..0130f6a0d 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);