From 920f940ad0f37c1953a321b4b126b39632a7da13 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Fri, 28 Mar 2025 00:32:40 -0500 Subject: [PATCH 1/2] DolphinQt: Don't toggle GFX_HACK_SKIP_DUPLICATE_XFBS when GFX_HACK_IMMEDIATE_XFB or GFX_HACK_VI_SKIP are enabled. --- Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp b/Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp index 356a68c817..2690d01f75 100644 --- a/Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp +++ b/Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp @@ -263,12 +263,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()); } From 4533605c033fd35193e6f69dae778fe74da304bd Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Sun, 30 Mar 2025 20:42:15 -0500 Subject: [PATCH 2/2] DolphinQt: Update tooltips for ImmediateXFB, VBISkip, SkipPresentingDuplicateFrames interaction clarity. --- Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp b/Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp index 2690d01f75..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.");