From b51b32c758d29b3d00d8bfe647fa88dc3c69a519 Mon Sep 17 00:00:00 2001 From: JordanTheToaster Date: Wed, 26 Mar 2025 18:51:28 +0000 Subject: [PATCH] UI: Move Skip Presenting Duplicate Frames to Emulation Tab --- pcsx2-qt/Settings/EmulationSettingsWidget.cpp | 6 ++++ pcsx2-qt/Settings/EmulationSettingsWidget.ui | 32 +++++++++++-------- pcsx2-qt/Settings/GraphicsSettingsWidget.cpp | 8 ----- pcsx2-qt/Settings/GraphicsSettingsWidget.ui | 29 +++++++---------- 4 files changed, 36 insertions(+), 39 deletions(-) diff --git a/pcsx2-qt/Settings/EmulationSettingsWidget.cpp b/pcsx2-qt/Settings/EmulationSettingsWidget.cpp index e289bf3f79..5450252295 100644 --- a/pcsx2-qt/Settings/EmulationSettingsWidget.cpp +++ b/pcsx2-qt/Settings/EmulationSettingsWidget.cpp @@ -34,6 +34,7 @@ EmulationSettingsWidget::EmulationSettingsWidget(SettingsWindow* dialog, QWidget SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.vsync, "EmuCore/GS", "VsyncEnable", false); SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.syncToHostRefreshRate, "EmuCore/GS", "SyncToHostRefreshRate", false); SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.useVSyncForTiming, "EmuCore/GS", "UseVSyncForTiming", false); + SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.skipPresentingDuplicateFrames, "EmuCore/GS", "SkipDuplicateFrames", false); connect(m_ui.optimalFramePacing, &QCheckBox::checkStateChanged, this, &EmulationSettingsWidget::onOptimalFramePacingChanged); connect(m_ui.vsync, &QCheckBox::checkStateChanged, this, &EmulationSettingsWidget::updateUseVSyncForTimingEnabled); connect(m_ui.syncToHostRefreshRate, &QCheckBox::checkStateChanged, this, &EmulationSettingsWidget::updateUseVSyncForTimingEnabled); @@ -154,6 +155,11 @@ EmulationSettingsWidget::EmulationSettingsWidget(SettingsWindow* dialog, QWidget dialog->registerWidgetHelp(m_ui.useVSyncForTiming, tr("Use Host VSync Timing"), tr("Unchecked"), tr("When synchronizing with the host refresh rate, this option disable's PCSX2's internal frame timing, and uses the host instead. " "Can result in smoother frame pacing, but at the cost of increased input latency.")); + dialog->registerWidgetHelp(m_ui.skipPresentingDuplicateFrames, tr("Skip Presenting Duplicate Frames"), tr("Checked"), + tr("Detects when idle frames are being presented in 25/30fps games, and skips presenting those frames. The frame is still " + "rendered, it just means the GPU has more time to complete it (this is NOT frame skipping). Can smooth out frame time " + "fluctuations when the CPU/GPU are near maximum utilization, but makes frame pacing more inconsistent and can increase " + "input lag. Helps when using frame generation on 25/30fps games.")); dialog->registerWidgetHelp(m_ui.manuallySetRealTimeClock, tr("Manually Set Real-Time Clock"), tr("Unchecked"), tr("Manually set a real-time clock to use for the virtual PlayStation 2 instead of using your OS' system clock.")); dialog->registerWidgetHelp(m_ui.rtcDateTime, tr("Real-Time Clock"), tr("Current date and time"), diff --git a/pcsx2-qt/Settings/EmulationSettingsWidget.ui b/pcsx2-qt/Settings/EmulationSettingsWidget.ui index e1f56b55dd..578066ac60 100644 --- a/pcsx2-qt/Settings/EmulationSettingsWidget.ui +++ b/pcsx2-qt/Settings/EmulationSettingsWidget.ui @@ -7,7 +7,7 @@ 0 0 672 - 438 + 500 @@ -222,13 +222,6 @@ - - - - Use Host VSync Timing - - - @@ -236,6 +229,13 @@ + + + + Vertical Sync (VSync) + + + @@ -243,10 +243,17 @@ - - + + - Vertical Sync (VSync) + Use Host VSync Timing + + + + + + + Skip Presenting Duplicate Frames @@ -282,8 +289,7 @@ - - + diff --git a/pcsx2-qt/Settings/GraphicsSettingsWidget.cpp b/pcsx2-qt/Settings/GraphicsSettingsWidget.cpp index c0d3dc9c70..4b7dad18f3 100644 --- a/pcsx2-qt/Settings/GraphicsSettingsWidget.cpp +++ b/pcsx2-qt/Settings/GraphicsSettingsWidget.cpp @@ -244,7 +244,6 @@ GraphicsSettingsWidget::GraphicsSettingsWidget(SettingsWindow* dialog, QWidget* ////////////////////////////////////////////////////////////////////////// SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.useBlitSwapChain, "EmuCore/GS", "UseBlitSwapChain", false); SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.useDebugDevice, "EmuCore/GS", "UseDebugDevice", false); - SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.skipPresentingDuplicateFrames, "EmuCore/GS", "SkipDuplicateFrames", false); SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.disableMailboxPresentation, "EmuCore/GS", "DisableMailboxPresentation", false); SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.extendedUpscales, "EmuCore/GS", "ExtendedUpscalingMultipliers", false); SettingWidgetBinder::BindWidgetToIntSetting(sif, m_ui.exclusiveFullscreenControl, "EmuCore/GS", "ExclusiveFullscreenControl", -1, -1); @@ -395,7 +394,6 @@ GraphicsSettingsWidget::GraphicsSettingsWidget(SettingsWindow* dialog, QWidget* m_ui.extendedUpscales = nullptr; m_ui.spinCPUDuringReadbacks = nullptr; m_ui.spinGPUDuringReadbacks = nullptr; - m_ui.skipPresentingDuplicateFrames = nullptr; m_ui.overrideTextureBarriers = nullptr; m_ui.disableFramebufferFetch = nullptr; m_ui.disableShaderCache = nullptr; @@ -861,12 +859,6 @@ GraphicsSettingsWidget::GraphicsSettingsWidget(SettingsWindow* dialog, QWidget* tr("Overrides the driver's heuristics for enabling exclusive fullscreen, or direct flip/scanout.
" "Disallowing exclusive fullscreen may enable smoother task switching and overlays, but increase input latency.")); - dialog->registerWidgetHelp(m_ui.skipPresentingDuplicateFrames, tr("Skip Presenting Duplicate Frames"), tr("Unchecked"), - tr("Detects when idle frames are being presented in 25/30fps games, and skips presenting those frames. The frame is still " - "rendered, it just means the GPU has more time to complete it (this is NOT frame skipping). Can smooth out frame time " - "fluctuations when the CPU/GPU are near maximum utilization, but makes frame pacing more inconsistent and can increase " - "input lag.")); - dialog->registerWidgetHelp(m_ui.disableMailboxPresentation, tr("Disable Mailbox Presentation"), tr("Unchecked"), tr("Forces the use of FIFO over Mailbox presentation, i.e. double buffering instead of triple buffering. " "Usually results in worse frame pacing.")); diff --git a/pcsx2-qt/Settings/GraphicsSettingsWidget.ui b/pcsx2-qt/Settings/GraphicsSettingsWidget.ui index 8963a6ef46..5ffc26604d 100644 --- a/pcsx2-qt/Settings/GraphicsSettingsWidget.ui +++ b/pcsx2-qt/Settings/GraphicsSettingsWidget.ui @@ -2131,6 +2131,13 @@
+ + + + Extended Upscaling Multipliers + + + @@ -2145,31 +2152,17 @@ - - - - Skip Presenting Duplicate Frames - - - - + - Extended Upscaling Multipliers - - - - - - - Spin GPU During Readbacks + Spin CPU During Readbacks - + - Spin CPU During Readbacks + Spin GPU During Readbacks