fix: add MoltenVK resolver workaround
fix: add MoltenVK resolver workaround
This commit is contained in:
parent
c71fd700e3
commit
d62644e464
4 changed files with 33 additions and 1 deletions
|
@ -1,3 +1,4 @@
|
|||
using Silk.NET.Core.Loader;
|
||||
using Silk.NET.Vulkan;
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
|
@ -29,5 +30,21 @@ namespace Ryujinx.Graphics.Vulkan.MoltenVK
|
|||
|
||||
vkSetMoltenVKConfigurationMVK(IntPtr.Zero, config, configSize);
|
||||
}
|
||||
|
||||
public static void InitializeResolver()
|
||||
{
|
||||
Func<string, string[]> mvkResolver = (string path) =>
|
||||
{
|
||||
if (path.EndsWith("libvulkan.dylib"))
|
||||
{
|
||||
path = path.Substring(0, path.Length - "libvulkan.dylib".Length) + "libMoltenVK.dylib";
|
||||
return [ path ];
|
||||
}
|
||||
|
||||
return Array.Empty<string>();
|
||||
};
|
||||
|
||||
((DefaultPathResolver)PathResolver.Default).Resolvers.Insert(0, mvkResolver);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@ using Ryujinx.Common.Configuration;
|
|||
using Ryujinx.Common.GraphicsDriver;
|
||||
using Ryujinx.Common.Logging;
|
||||
using Ryujinx.Common.SystemInterop;
|
||||
using Ryujinx.Graphics.Vulkan.MoltenVK;
|
||||
using Ryujinx.Modules;
|
||||
using Ryujinx.SDL2.Common;
|
||||
using Ryujinx.UI;
|
||||
|
@ -110,6 +111,8 @@ namespace Ryujinx
|
|||
|
||||
if (OperatingSystem.IsMacOS())
|
||||
{
|
||||
MVKInitialization.InitializeResolver();
|
||||
|
||||
string baseDirectory = Path.GetDirectoryName(AppDomain.CurrentDomain.BaseDirectory);
|
||||
string resourcesDataDir;
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
using CommandLine;
|
||||
using CommandLine;
|
||||
using LibHac.Tools.FsSystem;
|
||||
using Ryujinx.Audio.Backends.SDL2;
|
||||
using Ryujinx.Common;
|
||||
|
@ -18,6 +18,7 @@ using Ryujinx.Graphics.Gpu;
|
|||
using Ryujinx.Graphics.Gpu.Shader;
|
||||
using Ryujinx.Graphics.OpenGL;
|
||||
using Ryujinx.Graphics.Vulkan;
|
||||
using Ryujinx.Graphics.Vulkan.MoltenVK;
|
||||
using Ryujinx.Headless.SDL2.OpenGL;
|
||||
using Ryujinx.Headless.SDL2.Vulkan;
|
||||
using Ryujinx.HLE;
|
||||
|
@ -88,6 +89,11 @@ namespace Ryujinx.Headless.SDL2
|
|||
};
|
||||
}
|
||||
|
||||
if (OperatingSystem.IsMacOS())
|
||||
{
|
||||
MVKInitialization.InitializeResolver();
|
||||
}
|
||||
|
||||
Parser.Default.ParseArguments<Options>(args)
|
||||
.WithParsed(Load)
|
||||
.WithNotParsed(errors => errors.Output());
|
||||
|
|
|
@ -7,6 +7,7 @@ using Ryujinx.Common.Configuration;
|
|||
using Ryujinx.Common.GraphicsDriver;
|
||||
using Ryujinx.Common.Logging;
|
||||
using Ryujinx.Common.SystemInterop;
|
||||
using Ryujinx.Graphics.Vulkan.MoltenVK;
|
||||
using Ryujinx.Modules;
|
||||
using Ryujinx.SDL2.Common;
|
||||
using Ryujinx.UI.Common;
|
||||
|
@ -80,6 +81,11 @@ namespace Ryujinx.Ava
|
|||
// Parse arguments
|
||||
CommandLineState.ParseArguments(args);
|
||||
|
||||
if (OperatingSystem.IsMacOS())
|
||||
{
|
||||
MVKInitialization.InitializeResolver();
|
||||
}
|
||||
|
||||
// Delete backup files after updating.
|
||||
Task.Run(Updater.CleanupUpdate);
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue