diff --git a/Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp b/Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp
index 356a68c817..d4c118c088 100644
--- a/Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp
+++ b/Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp
@@ -196,12 +196,16 @@ void HacksWidget::AddDescriptions()
static const char TR_IMMEDIATE_XFB_DESCRIPTION[] = QT_TR_NOOP(
"Displays XFB copies as soon as they are created, instead of waiting for "
"scanout.
Can cause graphical defects in some games if the game doesn't "
- "expect all XFB copies to be displayed. However, turning this setting on reduces "
- "latency.
If unsure, leave this unchecked.");
+ "expect all XFB copies to be displayed. However, turning this setting on reduces latency."
+ "
Enabling this also force an effect equivalent to the"
+ " Skip Presenting Duplicate Frames setting."
+ "
If unsure, leave this unchecked.");
static const char TR_SKIP_DUPLICATE_XFBS_DESCRIPTION[] = QT_TR_NOOP(
"Skips presentation of duplicate frames (XFB copies) in 25fps/30fps games. "
"This may improve performance on low-end devices, while making frame pacing less consistent."
"
Disable this option for optimal frame pacing."
+ "
This setting is unavailable when Immediately Present XFB or VBI Skip is "
+ "enabled. In those cases, duplicate frames are never presented."
"
If unsure, leave this checked.");
static const char TR_GPU_DECODING_DESCRIPTION[] = QT_TR_NOOP(
"Enables texture decoding using the GPU instead of the CPU.
This may result in "
@@ -230,6 +234,8 @@ void HacksWidget::AddDescriptions()
static const char TR_VI_SKIP_DESCRIPTION[] =
QT_TR_NOOP("Skips Vertical Blank Interrupts when lag is detected, allowing for "
"smooth audio playback when emulation speed is not 100%.
"
+ "Enabling this also forces the effect of the"
+ " Skip Presenting Duplicate Frames setting.
"
"WARNING: Can cause freezes and compatibility "
"issues.
"
"If unsure, leave this unchecked.");
@@ -263,12 +269,5 @@ void HacksWidget::UpdateSkipPresentingDuplicateFramesEnabled()
{
// If Immediate XFB is on, there's no point to skipping duplicate XFB copies as immediate presents
// when the XFB is created, therefore all XFB copies will be unique.
- // This setting is also required for VI skip to work.
-
- const bool disabled = m_immediate_xfb->isChecked() || m_vi_skip->isChecked();
-
- if (disabled)
- m_skip_duplicate_xfbs->setChecked(true);
-
- m_skip_duplicate_xfbs->setEnabled(!disabled);
+ m_skip_duplicate_xfbs->setDisabled(m_immediate_xfb->isChecked() || m_vi_skip->isChecked());
}