From 0d950195e9cfbd89a3fb69e784437f3cc5c3e88e Mon Sep 17 00:00:00 2001 From: John Date: Thu, 26 Feb 2026 03:57:25 +0100 Subject: [PATCH] [Settings] Add "Enable Legacy Rescale Pass" Toggle (#3582) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR introduces an optional Legacy Rescale Compatibility Mode that restores the previous rescale‑pass behavior for titles that rely on its quirks. While the new rescale logic is generally more correct, some games exhibit visual issues that the legacy behavior incidentally avoids. Enabling this mode can mitigate line artifacts on AMD GPUs and reduce grey‑texture flickering on Nvidia GPUs in Luigi’s Mansion 3. This is a compatibility workaround rather than a full fix, and should only be used for titles affected by these rare edge‑case rendering problems. Original Logic from MaranBR Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3582 Co-authored-by: John Co-committed-by: John --- src/common/settings.h | 3 +++ src/qt_common/config/shared_translation.cpp | 6 ++++++ .../frontend/maxwell/translate_program.cpp | 2 +- src/shader_recompiler/ir_opt/rescaling_pass.cpp | 17 ++++++++++++----- 4 files changed, 22 insertions(+), 6 deletions(-) diff --git a/src/common/settings.h b/src/common/settings.h index dd3cd14a02..7ea4136576 100644 --- a/src/common/settings.h +++ b/src/common/settings.h @@ -557,6 +557,9 @@ struct Values { SwitchableSetting fix_bloom_effects{linkage, false, "fix_bloom_effects", Category::RendererHacks}; + SwitchableSetting rescale_hack{linkage, false, "rescale_hack", + Category::RendererHacks}; + SwitchableSetting use_asynchronous_shaders{linkage, false, "use_asynchronous_shaders", Category::RendererHacks}; diff --git a/src/qt_common/config/shared_translation.cpp b/src/qt_common/config/shared_translation.cpp index 9d33fa6979..5f3a6c18c0 100644 --- a/src/qt_common/config/shared_translation.cpp +++ b/src/qt_common/config/shared_translation.cpp @@ -356,6 +356,12 @@ std::unique_ptr InitializeTranslations(QObject* parent) tr("Fix bloom effects"), tr("Removes bloom in Burnout.")); + INSERT(Settings, + rescale_hack, + tr("Enable Legacy Rescale Pass"), + tr("May fix rescale issues in some games by relying on behavior from the previous implementation.\n" + "Legacy behavior workaround that fixes AMD GPU line artifacts and Nvidia GPU grey texture flicker in Luigis Mansion 3.")); + // Renderer (Extensions) INSERT(Settings, dyna_state, tr("Extended Dynamic State"), tr("Controls the number of features that can be used in Extended Dynamic State.\n" diff --git a/src/shader_recompiler/frontend/maxwell/translate_program.cpp b/src/shader_recompiler/frontend/maxwell/translate_program.cpp index 81aee6453a..f156192c13 100644 --- a/src/shader_recompiler/frontend/maxwell/translate_program.cpp +++ b/src/shader_recompiler/frontend/maxwell/translate_program.cpp @@ -304,7 +304,7 @@ IR::Program TranslateProgram(ObjectPool& inst_pool, ObjectPool