CoreTiming: Add "Rush Frame Presentation" setting to throttle only once after each presentation for lower input latency.

This commit is contained in:
Jordan Woyak
2025-11-11 20:01:52 -06:00
parent 8495e01668
commit 16260040e0
6 changed files with 57 additions and 3 deletions
@@ -114,6 +114,19 @@ void AdvancedPane::CreateLayout()
"<br><br><dolphin_emphasis>If unsure, leave this unchecked.</dolphin_emphasis>"));
timing_group_layout->addWidget(correct_time_drift);
auto* const rush_frame_presentation =
// i18n: "Rush" is a verb
new ConfigBool{tr("Rush Frame Presentation"), Config::MAIN_RUSH_FRAME_PRESENTATION};
rush_frame_presentation->SetDescription(
tr("Limits throttling between input and frame output,"
" speeding through emulation to reach presentation,"
" displaying sooner, and thus reducing input latency."
"<br><br>This will generally make frame pacing worse."
"<br>This setting can work either with or without Immediately Present XFB."
"<br>An Audio Buffer Size of at least 80 ms is recommended to ensure full effect."
"<br><br><dolphin_emphasis>If unsure, leave this unchecked.</dolphin_emphasis>"));
timing_group_layout->addWidget(rush_frame_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();