From 68fe6c088fdca5cd2bcda62f6682da54489c5116 Mon Sep 17 00:00:00 2001 From: patchzyy <64382339+patchzyy@users.noreply.github.com> Date: Sun, 25 Oct 2026 09:39:23 +0100 Subject: [PATCH] add gx worker toggle --- .../Features/Settings/ISettingsServices.cs | 1 + .../Features/Settings/SettingsManager.cs | 2 ++ .../Settings/Views/RecompSettings.axaml | 23 ++++++++++++++++++- .../Settings/Views/RecompSettings.axaml.cs | 10 ++++++++ WheelWizard/Resources/Languages/en.yml | 2 ++ 5 files changed, 37 insertions(+), 1 deletion(-) diff --git a/WheelWizard/Features/Settings/ISettingsServices.cs b/WheelWizard/Features/Settings/ISettingsServices.cs index 9e995714..d015a1ca 100644 --- a/WheelWizard/Features/Settings/ISettingsServices.cs +++ b/WheelWizard/Features/Settings/ISettingsServices.cs @@ -65,6 +65,7 @@ public interface ISettingsProperties Setting RECOMP_GRAPHICS_API { get; } Setting RECOMP_SHOW_FPS { get; } Setting RECOMP_PREVENT_STUTTERS { get; } + Setting RECOMP_GX_WORKER { get; } Setting RECOMP_NAND_ROOT { get; } } diff --git a/WheelWizard/Features/Settings/SettingsManager.cs b/WheelWizard/Features/Settings/SettingsManager.cs index d796c5bd..677cf2c5 100644 --- a/WheelWizard/Features/Settings/SettingsManager.cs +++ b/WheelWizard/Features/Settings/SettingsManager.cs @@ -255,6 +255,7 @@ IUnixCommandService commands RECOMP_GRAPHICS_API = RegisterRecomp(("video", "graphics_api"), "auto"); RECOMP_SHOW_FPS = RegisterRecomp(("video", "show_fps"), true); RECOMP_PREVENT_STUTTERS = RegisterRecomp(("video", "skip_unready_pipelines"), true); + RECOMP_GX_WORKER = RegisterRecomp(("video", "gx_worker"), true); // The Wii data folder the runtime should use, written by RecompDolphinDataService after an // install and whenever the sharing choice changes. Empty/absent means the runtime's private NAND. RECOMP_NAND_ROOT = RegisterRecomp(("paths", "nand_root"), ""); @@ -341,6 +342,7 @@ private static void SaveRecommended(Setting setting, T value) public Setting RECOMP_GRAPHICS_API { get; } public Setting RECOMP_SHOW_FPS { get; } public Setting RECOMP_PREVENT_STUTTERS { get; } + public Setting RECOMP_GX_WORKER { get; } public Setting RECOMP_NAND_ROOT { get; } #endregion diff --git a/WheelWizard/Features/Settings/Views/RecompSettings.axaml b/WheelWizard/Features/Settings/Views/RecompSettings.axaml index a29a604b..b9b007f2 100644 --- a/WheelWizard/Features/Settings/Views/RecompSettings.axaml +++ b/WheelWizard/Features/Settings/Views/RecompSettings.axaml @@ -94,7 +94,7 @@ - + + + + + + + + + + + RecompInstallService is { IsInstalled: true }; @@ -140,6 +141,7 @@ private void LoadVideoSettings() ShowFps.IsChecked = SettingsService.Get(SettingsService.RECOMP_SHOW_FPS); PreventStutters.IsChecked = SettingsService.Get(SettingsService.RECOMP_PREVENT_STUTTERS); + GxWorker.IsChecked = SettingsService.Get(SettingsService.RECOMP_GX_WORKER); } /// @@ -198,6 +200,14 @@ private void PreventStutters_OnChanged(object? sender, RoutedEventArgs e) SettingsEditing.Set(SettingsService, SettingsService.RECOMP_PREVENT_STUTTERS, PreventStutters.IsChecked == true); } + private void GxWorker_OnChanged(object? sender, RoutedEventArgs e) + { + if (_loading) + return; + + SettingsEditing.Set(SettingsService, SettingsService.RECOMP_GX_WORKER, GxWorker.IsChecked == true); + } + #endregion private async void ShareDolphinData_OnChanged(object? sender, RoutedEventArgs e) diff --git a/WheelWizard/Resources/Languages/en.yml b/WheelWizard/Resources/Languages/en.yml index 0c01296b..1871bd34 100644 --- a/WheelWizard/Resources/Languages/en.yml +++ b/WheelWizard/Resources/Languages/en.yml @@ -645,6 +645,7 @@ en: recomp_resolution: "Resolution" recomp_graphics_api: "Graphics API" recomp_prevent_stutters: "Prevent stutters" + recomp_gx_worker: "Separate graphics thread" section: graphics: "Graphics" general: "General" @@ -672,6 +673,7 @@ en: recomp_graphics_api: "Only DirectX 12 and Vulkan run WiiCompiled reliably, so nothing else is offered." recomp_dolphin_data_not_found: "Set an existing Dolphin User Folder in Location Settings first. It must contain a Wii folder." recomp_prevent_stutters: "While a shader is still compiling, the objects that need it are skipped for a few frames instead of the whole game stalling until it is ready. You get a tiny bit of pop-in instead of a stutter." + recomp_gx_worker: "Draws the game on its own thread so it runs faster. Turn this off if you get crashes or broken graphics. Takes effect the next time the game starts." launch_with_dolphin: "Will launch dolphins main window along with the game" launch_rr_on_startup: "Automatically launches Retro Rewind when Wheel Wizard starts" retro_rewind_version: "Installed version: %{version}"