diff --git a/Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp b/Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp index 32b24440b6..afdedc3ea0 100644 --- a/Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp +++ b/Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp @@ -36,6 +36,10 @@ AdvancedWidget::AdvancedWidget(GraphicsWindow* parent) connect(&Settings::Instance(), &Settings::EmulationStateChanged, this, [this](Core::State state) { OnEmulationStateChanged(state != Core::State::Uninitialized); }); + connect(m_manual_texture_sampling, &QCheckBox::toggled, [this, parent] { + SaveSettings(); + emit parent->UseFastTextureSamplingChanged(); + }); OnBackendChanged(); OnEmulationStateChanged(Core::GetState() != Core::State::Uninitialized); diff --git a/Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp b/Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp index fac9400186..aa0e3d1d28 100644 --- a/Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp +++ b/Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp @@ -39,6 +39,10 @@ EnhancementsWidget::EnhancementsWidget(GraphicsWindow* parent) : m_block_save(fa AddDescriptions(); connect(parent, &GraphicsWindow::BackendChanged, [this](const QString& backend) { LoadSettings(); }); + connect(parent, &GraphicsWindow::UseFastTextureSamplingChanged, this, + &EnhancementsWidget::LoadSettings); + connect(parent, &GraphicsWindow::UseGPUTextureDecodingChanged, this, + &EnhancementsWidget::LoadSettings); } constexpr int TEXTURE_FILTERING_DEFAULT = 0; @@ -307,6 +311,9 @@ void EnhancementsWidget::LoadPPShaders() void EnhancementsWidget::LoadSettings() { m_block_save = true; + m_texture_filtering_combo->setEnabled(Config::Get(Config::GFX_HACK_FAST_TEXTURE_SAMPLING)); + m_arbitrary_mipmap_detection->setEnabled(!Config::Get(Config::GFX_ENABLE_GPU_TEXTURE_DECODING)); + // Anti-Aliasing const u32 aa_selection = Config::Get(Config::GFX_MSAA); @@ -503,7 +510,8 @@ void EnhancementsWidget::AddDescriptions() "that are at oblique viewing angles. Force Nearest and Force Linear override the texture " "scaling filter selected by the game.

Any option except 'Default' will alter the look " "of the game's textures and might cause issues in a small number of " - "games.

If unsure, select 'Default'."); + "games.

This option is incompatible with Manual Texture Sampling.

" + "If unsure, select 'Default'."); static const char TR_OUTPUT_RESAMPLING_DESCRIPTION[] = QT_TR_NOOP("Affects how the game output is scaled to the window resolution." "
The performance mostly depends on the number of samples each method uses." diff --git a/Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.h b/Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.h index 5949a2dda3..97673563b5 100644 --- a/Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.h +++ b/Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.h @@ -24,6 +24,8 @@ public: signals: void BackendChanged(const QString& backend); + void UseFastTextureSamplingChanged(); + void UseGPUTextureDecodingChanged(); private: void CreateMainLayout(); diff --git a/Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp b/Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp index 9441966f0e..cfdfa866a4 100644 --- a/Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp +++ b/Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp @@ -31,6 +31,10 @@ HacksWidget::HacksWidget(GraphicsWindow* parent) connect(parent, &GraphicsWindow::BackendChanged, this, &HacksWidget::OnBackendChanged); OnBackendChanged(QString::fromStdString(Config::Get(Config::MAIN_GFX_BACKEND))); connect(&Settings::Instance(), &Settings::ConfigChanged, this, &HacksWidget::LoadSettings); + connect(m_gpu_texture_decoding, &QCheckBox::toggled, [this, parent] { + SaveSettings(); + emit parent->UseGPUTextureDecodingChanged(); + }); } void HacksWidget::CreateWidgets() @@ -264,8 +268,8 @@ void HacksWidget::AddDescriptions() static const char TR_GPU_DECODING_DESCRIPTION[] = QT_TR_NOOP( "Enables texture decoding using the GPU instead of the CPU.

This may result in " "performance gains in some scenarios, or on systems where the CPU is the " - "bottleneck.

If unsure, leave this " - "unchecked."); + "bottleneck.

This option is incompatible with Arbitrary Mipmap Detection.

" + "If unsure, leave this unchecked."); static const char TR_FAST_DEPTH_CALC_DESCRIPTION[] = QT_TR_NOOP( "Uses a less accurate algorithm to calculate depth values.

Causes issues in a few " "games, but can result in a decent speed increase depending on the game and/or "