diff --git a/src/Ryujinx/Program.cs b/src/Ryujinx/Program.cs index 1f0df9b2fd..c72aa689a1 100644 --- a/src/Ryujinx/Program.cs +++ b/src/Ryujinx/Program.cs @@ -206,6 +206,16 @@ public static void ReloadConfig() _ => ConfigurationState.Instance.Graphics.GraphicsBackend }; + // Check if backend threading was overridden + if (CommandLineState.OverrideBackendThreading is not null) + ConfigurationState.Instance.Graphics.BackendThreading.Value = CommandLineState.OverrideBackendThreading.ToLower() switch + { + "auto" => BackendThreading.Auto, + "off" => BackendThreading.Off, + "on" => BackendThreading.On, + _ => ConfigurationState.Instance.Graphics.BackendThreading + }; + // Check if docked mode was overriden. if (CommandLineState.OverrideDockedMode.HasValue) ConfigurationState.Instance.System.EnableDockedMode.Value = CommandLineState.OverrideDockedMode.Value; diff --git a/src/Ryujinx/Utilities/CommandLineState.cs b/src/Ryujinx/Utilities/CommandLineState.cs index 96b5d1b864..3eafb8d010 100644 --- a/src/Ryujinx/Utilities/CommandLineState.cs +++ b/src/Ryujinx/Utilities/CommandLineState.cs @@ -10,6 +10,7 @@ public static class CommandLineState public static bool? OverrideDockedMode { get; private set; } public static bool? OverrideHardwareAcceleration { get; private set; } public static string OverrideGraphicsBackend { get; private set; } + public static string OverrideBackendThreading { get; private set; } public static string OverrideHideCursor { get; private set; } public static string BaseDirPathArg { get; private set; } public static string Profile { get; private set; } @@ -74,6 +75,16 @@ public static void ParseArguments(string[] args) OverrideGraphicsBackend = args[++i]; break; + case "--backend-threading": + if (i + 1 >= args.Length) + { + Logger.Error?.Print(LogClass.Application, $"Invalid option '{arg}'"); + + continue; + } + + OverrideBackendThreading = args[++i]; + break; case "-i": case "--application-id": LaunchApplicationId = args[++i];