aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Graphics.Vulkan/MoltenVK/MVKInitialization.cs
diff options
context:
space:
mode:
authorriperiperi <rhy3756547@hotmail.com>2024-09-01 21:33:11 +0100
committerGitHub <noreply@github.com>2024-09-01 17:33:11 -0300
commit398fa1c238df75ee93f7106a578569f87cae8c0b (patch)
treefb3235befaae16117d4e007bcacbceca5614de14 /src/Ryujinx.Graphics.Vulkan/MoltenVK/MVKInitialization.cs
parent2c5c0392f9ff80a3907bbf376a13f797ebbc12cc (diff)
Vulkan: Update Silk.NET to 2.21 (#7266)
* Update Silk.NET version * fix: add MoltenVK resolver workaround fix: add MoltenVK resolver workaround * Cleanup * Readonly ref warnings * Remove driver id todo
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);
+ }
}
}