diff options
author | MutantAura <44103205+MutantAura@users.noreply.github.com> | 2023-11-18 20:42:45 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-18 17:42:45 -0300 |
commit | aa96dcb1bede3693877e2f1eca3e169d8ee13ef1 (patch) | |
tree | 0eb8e9d4f894d624e360e0f1dc1340007a77ba75 /src/Ryujinx.Ui.Common/Configuration | |
parent | 82a638230e4b10c099d8517b8ef7b602f22a6887 (diff) |
misc: Default to Vulkan if available or running on macOS (#5913)1.1.1090
* Addition of default backend check. Vulkan is preferred if available or macOS.
* import ordering format fix
* Update src/Ryujinx/Program.cs
Co-authored-by: gdkchan <gab.dark.100@gmail.com>
* remove redundant load types
---------
Co-authored-by: gdkchan <gab.dark.100@gmail.com>
Diffstat (limited to 'src/Ryujinx.Ui.Common/Configuration')
-rw-r--r-- | src/Ryujinx.Ui.Common/Configuration/ConfigurationLoadResult.cs | 9 | ||||
-rw-r--r-- | src/Ryujinx.Ui.Common/Configuration/ConfigurationState.cs | 23 |
2 files changed, 14 insertions, 18 deletions
diff --git a/src/Ryujinx.Ui.Common/Configuration/ConfigurationLoadResult.cs b/src/Ryujinx.Ui.Common/Configuration/ConfigurationLoadResult.cs deleted file mode 100644 index 71366ba7..00000000 --- a/src/Ryujinx.Ui.Common/Configuration/ConfigurationLoadResult.cs +++ /dev/null @@ -1,9 +0,0 @@ -namespace Ryujinx.Ui.Common.Configuration -{ - public enum ConfigurationLoadResult - { - Success = 0, - NotLoaded = 1, - MigratedFromPreVulkan = 1 << 8, - } -} diff --git a/src/Ryujinx.Ui.Common/Configuration/ConfigurationState.cs b/src/Ryujinx.Ui.Common/Configuration/ConfigurationState.cs index c79fa56c..b017d384 100644 --- a/src/Ryujinx.Ui.Common/Configuration/ConfigurationState.cs +++ b/src/Ryujinx.Ui.Common/Configuration/ConfigurationState.cs @@ -5,6 +5,7 @@ using Ryujinx.Common.Configuration.Hid.Controller; using Ryujinx.Common.Configuration.Hid.Keyboard; using Ryujinx.Common.Configuration.Multiplayer; using Ryujinx.Common.Logging; +using Ryujinx.Graphics.Vulkan; using Ryujinx.Ui.Common.Configuration.System; using Ryujinx.Ui.Common.Configuration.Ui; using Ryujinx.Ui.Common.Helper; @@ -763,7 +764,7 @@ namespace Ryujinx.Ui.Common.Configuration Graphics.ResScaleCustom.Value = 1.0f; Graphics.MaxAnisotropy.Value = -1.0f; Graphics.AspectRatio.Value = AspectRatio.Fixed16x9; - Graphics.GraphicsBackend.Value = OperatingSystem.IsMacOS() ? GraphicsBackend.Vulkan : GraphicsBackend.OpenGl; + Graphics.GraphicsBackend.Value = DefaultGraphicsBackend(); Graphics.PreferredGpu.Value = ""; Graphics.ShadersDumpPath.Value = ""; Logger.EnableDebug.Value = false; @@ -907,7 +908,7 @@ namespace Ryujinx.Ui.Common.Configuration }; } - public ConfigurationLoadResult Load(ConfigurationFileFormat configurationFileFormat, string configurationFilePath) + public void Load(ConfigurationFileFormat configurationFileFormat, string configurationFilePath) { bool configurationFileUpdated = false; @@ -916,12 +917,8 @@ namespace Ryujinx.Ui.Common.Configuration Ryujinx.Common.Logging.Logger.Warning?.Print(LogClass.Application, $"Unsupported configuration version {configurationFileFormat.Version}, loading default."); LoadDefault(); - - return ConfigurationLoadResult.NotLoaded; } - ConfigurationLoadResult result = ConfigurationLoadResult.Success; - if (configurationFileFormat.Version < 2) { Ryujinx.Common.Logging.Logger.Warning?.Print(LogClass.Application, $"Outdated configuration version {configurationFileFormat.Version}, migrating to version 2."); @@ -1336,8 +1333,6 @@ namespace Ryujinx.Ui.Common.Configuration configurationFileFormat.GraphicsBackend = GraphicsBackend.OpenGl; - result |= ConfigurationLoadResult.MigratedFromPreVulkan; - configurationFileUpdated = true; } @@ -1535,8 +1530,18 @@ namespace Ryujinx.Ui.Common.Configuration Ryujinx.Common.Logging.Logger.Notice.Print(LogClass.Application, $"Configuration file updated to version {ConfigurationFileFormat.CurrentVersion}"); } + } + + private static GraphicsBackend DefaultGraphicsBackend() + { + // Any system running macOS or returning any amount of valid Vulkan devices should default to Vulkan. + // Checks for if the Vulkan version and featureset is compatible should be performed within VulkanRenderer. + if (OperatingSystem.IsMacOS() || VulkanRenderer.GetPhysicalDevices().Length > 0) + { + return GraphicsBackend.Vulkan; + } - return result; + return GraphicsBackend.OpenGl; } private static void LogValueChange<T>(ReactiveEventArgs<T> eventArgs, string valueName) |