VideoCommon: Add "Smooth Early Presentation" setting to improve frame pacing with ImmediateXFB and/or RushFramePresentation.

This commit is contained in:
Jordan Woyak
2025-10-27 18:57:07 -05:00
parent cc331feb02
commit c2a1dce246
6 changed files with 78 additions and 23 deletions

View File

@@ -127,6 +127,17 @@ void AdvancedPane::CreateLayout()
"<br><br><dolphin_emphasis>If unsure, leave this unchecked.</dolphin_emphasis>"));
timing_group_layout->addWidget(rush_frame_presentation);
auto* const smooth_early_presentation =
// i18n: "Smooth" is a verb
new ConfigBool{tr("Smooth Early Presentation"), Config::MAIN_SMOOTH_EARLY_PRESENTATION};
smooth_early_presentation->SetDescription(
tr("Adaptively adjusts the timing of early frame presentation."
"<br><br>This can improve frame pacing with Immediately Present XFB"
" and/or Rush Frame Presentation,"
" while still maintaining most of the input latency benefits."
"<br><br><dolphin_emphasis>If unsure, leave this unchecked.</dolphin_emphasis>"));
timing_group_layout->addWidget(smooth_early_presentation);
// Make all labels the same width, so that the sliders are aligned.
const QFontMetrics font_metrics{font()};
const int label_width = font_metrics.boundingRect(QStringLiteral(" 500% (000.00 VPS)")).width();