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 "