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 Silk.NET.Vulkan;
|
||||||
using System;
|
using System;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
|
@ -29,5 +30,21 @@ namespace Ryujinx.Graphics.Vulkan.MoltenVK
|
||||||
|
|
||||||
vkSetMoltenVKConfigurationMVK(IntPtr.Zero, config, configSize);
|
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.GraphicsDriver;
|
||||||
using Ryujinx.Common.Logging;
|
using Ryujinx.Common.Logging;
|
||||||
using Ryujinx.Common.SystemInterop;
|
using Ryujinx.Common.SystemInterop;
|
||||||
|
using Ryujinx.Graphics.Vulkan.MoltenVK;
|
||||||
using Ryujinx.Modules;
|
using Ryujinx.Modules;
|
||||||
using Ryujinx.SDL2.Common;
|
using Ryujinx.SDL2.Common;
|
||||||
using Ryujinx.UI;
|
using Ryujinx.UI;
|
||||||
|
@ -110,6 +111,8 @@ namespace Ryujinx
|
||||||
|
|
||||||
if (OperatingSystem.IsMacOS())
|
if (OperatingSystem.IsMacOS())
|
||||||
{
|
{
|
||||||
|
MVKInitialization.InitializeResolver();
|
||||||
|
|
||||||
string baseDirectory = Path.GetDirectoryName(AppDomain.CurrentDomain.BaseDirectory);
|
string baseDirectory = Path.GetDirectoryName(AppDomain.CurrentDomain.BaseDirectory);
|
||||||
string resourcesDataDir;
|
string resourcesDataDir;
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
using CommandLine;
|
using CommandLine;
|
||||||
using LibHac.Tools.FsSystem;
|
using LibHac.Tools.FsSystem;
|
||||||
using Ryujinx.Audio.Backends.SDL2;
|
using Ryujinx.Audio.Backends.SDL2;
|
||||||
using Ryujinx.Common;
|
using Ryujinx.Common;
|
||||||
|
@ -18,6 +18,7 @@ using Ryujinx.Graphics.Gpu;
|
||||||
using Ryujinx.Graphics.Gpu.Shader;
|
using Ryujinx.Graphics.Gpu.Shader;
|
||||||
using Ryujinx.Graphics.OpenGL;
|
using Ryujinx.Graphics.OpenGL;
|
||||||
using Ryujinx.Graphics.Vulkan;
|
using Ryujinx.Graphics.Vulkan;
|
||||||
|
using Ryujinx.Graphics.Vulkan.MoltenVK;
|
||||||
using Ryujinx.Headless.SDL2.OpenGL;
|
using Ryujinx.Headless.SDL2.OpenGL;
|
||||||
using Ryujinx.Headless.SDL2.Vulkan;
|
using Ryujinx.Headless.SDL2.Vulkan;
|
||||||
using Ryujinx.HLE;
|
using Ryujinx.HLE;
|
||||||
|
@ -88,6 +89,11 @@ namespace Ryujinx.Headless.SDL2
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (OperatingSystem.IsMacOS())
|
||||||
|
{
|
||||||
|
MVKInitialization.InitializeResolver();
|
||||||
|
}
|
||||||
|
|
||||||
Parser.Default.ParseArguments<Options>(args)
|
Parser.Default.ParseArguments<Options>(args)
|
||||||
.WithParsed(Load)
|
.WithParsed(Load)
|
||||||
.WithNotParsed(errors => errors.Output());
|
.WithNotParsed(errors => errors.Output());
|
||||||
|
|
|
@ -7,6 +7,7 @@ using Ryujinx.Common.Configuration;
|
||||||
using Ryujinx.Common.GraphicsDriver;
|
using Ryujinx.Common.GraphicsDriver;
|
||||||
using Ryujinx.Common.Logging;
|
using Ryujinx.Common.Logging;
|
||||||
using Ryujinx.Common.SystemInterop;
|
using Ryujinx.Common.SystemInterop;
|
||||||
|
using Ryujinx.Graphics.Vulkan.MoltenVK;
|
||||||
using Ryujinx.Modules;
|
using Ryujinx.Modules;
|
||||||
using Ryujinx.SDL2.Common;
|
using Ryujinx.SDL2.Common;
|
||||||
using Ryujinx.UI.Common;
|
using Ryujinx.UI.Common;
|
||||||
|
@ -80,6 +81,11 @@ namespace Ryujinx.Ava
|
||||||
// Parse arguments
|
// Parse arguments
|
||||||
CommandLineState.ParseArguments(args);
|
CommandLineState.ParseArguments(args);
|
||||||
|
|
||||||
|
if (OperatingSystem.IsMacOS())
|
||||||
|
{
|
||||||
|
MVKInitialization.InitializeResolver();
|
||||||
|
}
|
||||||
|
|
||||||
// Delete backup files after updating.
|
// Delete backup files after updating.
|
||||||
Task.Run(Updater.CleanupUpdate);
|
Task.Run(Updater.CleanupUpdate);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue