aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Graphics.Vulkan/MoltenVK/MVKInitialization.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Ryujinx.Graphics.Vulkan/MoltenVK/MVKInitialization.cs')
-rw-r--r--src/Ryujinx.Graphics.Vulkan/MoltenVK/MVKInitialization.cs18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/Ryujinx.Graphics.Vulkan/MoltenVK/MVKInitialization.cs b/src/Ryujinx.Graphics.Vulkan/MoltenVK/MVKInitialization.cs
index 457240aa..930d6b52 100644
--- a/src/Ryujinx.Graphics.Vulkan/MoltenVK/MVKInitialization.cs
+++ b/src/Ryujinx.Graphics.Vulkan/MoltenVK/MVKInitialization.cs
@@ -1,3 +1,4 @@
+using Silk.NET.Core.Loader;
using Silk.NET.Vulkan;
using System;
using System.Runtime.InteropServices;
@@ -8,6 +9,8 @@ namespace Ryujinx.Graphics.Vulkan.MoltenVK
[SupportedOSPlatform("macos")]
public static partial class MVKInitialization
{
+ private const string VulkanLib = "libvulkan.dylib";
+
[LibraryImport("libMoltenVK.dylib")]
private static partial Result vkGetMoltenVKConfigurationMVK(IntPtr unusedInstance, out MVKConfiguration config, in IntPtr configSize);
@@ -29,5 +32,20 @@ namespace Ryujinx.Graphics.Vulkan.MoltenVK
vkSetMoltenVKConfigurationMVK(IntPtr.Zero, config, configSize);
}
+
+ private static string[] Resolver(string path)
+ {
+ if (path.EndsWith(VulkanLib))
+ {
+ path = path[..^VulkanLib.Length] + "libMoltenVK.dylib";
+ return [path];
+ }
+ return Array.Empty<string>();
+ }
+
+ public static void InitializeResolver()
+ {
+ ((DefaultPathResolver)PathResolver.Default).Resolvers.Insert(0, Resolver);
+ }
}
}