mirror of https://github.com/PCSX2/pcsx2.git
Qt: Make relationship between vsync queue/optimal pacing clearer
This commit is contained in:
parent
ae43cfaaf2
commit
fa91d0b705
|
@ -67,6 +67,12 @@ EmulationSettingsWidget::EmulationSettingsWidget(SettingsDialog* dialog, QWidget
|
||||||
dialog->registerWidgetHelp(m_ui.perGameSettings, tr("Enable Per-Game Settings"), tr("Checked"),
|
dialog->registerWidgetHelp(m_ui.perGameSettings, tr("Enable Per-Game Settings"), tr("Checked"),
|
||||||
tr("When enabled, per-game settings will be applied, and incompatible enhancements will be disabled. You should "
|
tr("When enabled, per-game settings will be applied, and incompatible enhancements will be disabled. You should "
|
||||||
"leave this option enabled except when testing enhancements with incompatible games."));
|
"leave this option enabled except when testing enhancements with incompatible games."));
|
||||||
|
dialog->registerWidgetHelp(m_ui.optimalFramePacing, tr("Optimal Frame Pacing"), tr("Unchecked"),
|
||||||
|
tr("Sets the vsync queue size to 0, making every frame be completed and presented by the GS before input is polled, and the next frame begins. "
|
||||||
|
"Using this setting can reduce input lag, at the cost of measurably higher CPU and GPU requirements."));
|
||||||
|
dialog->registerWidgetHelp(m_ui.maxFrameLatency, tr("Maximum Frame Latency"), tr("2 Frames"),
|
||||||
|
tr("Sets the maximum number of frames that can be queued up to the GS, before the CPU thread will wait for one of them to complete before continuing. "
|
||||||
|
"Higher values can assist with smoothing out irregular frame times, but add additional input lag."));
|
||||||
|
|
||||||
updateOptimalFramePacing();
|
updateOptimalFramePacing();
|
||||||
}
|
}
|
||||||
|
@ -163,10 +169,20 @@ void EmulationSettingsWidget::onOptimalFramePacingChanged()
|
||||||
const QSignalBlocker sb(m_ui.maxFrameLatency);
|
const QSignalBlocker sb(m_ui.maxFrameLatency);
|
||||||
|
|
||||||
std::optional<int> value;
|
std::optional<int> value;
|
||||||
|
bool optimal = false;
|
||||||
if (m_ui.optimalFramePacing->checkState() != Qt::PartiallyChecked)
|
if (m_ui.optimalFramePacing->checkState() != Qt::PartiallyChecked)
|
||||||
value = m_ui.optimalFramePacing->isChecked() ? 0 : DEFAULT_FRAME_LATENCY;
|
{
|
||||||
|
optimal = m_ui.optimalFramePacing->isChecked();
|
||||||
|
value = optimal ? 0 : DEFAULT_FRAME_LATENCY;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
value = m_dialog->getEffectiveIntValue("EmuCore/GS", "VsyncQueueSize", DEFAULT_FRAME_LATENCY);
|
||||||
|
optimal = (value == 0);
|
||||||
|
}
|
||||||
|
|
||||||
m_ui.maxFrameLatency->setValue(DEFAULT_FRAME_LATENCY);
|
m_ui.maxFrameLatency->setMinimum(optimal ? 0 : 1);
|
||||||
|
m_ui.maxFrameLatency->setValue(optimal ? 0 : DEFAULT_FRAME_LATENCY);
|
||||||
m_ui.maxFrameLatency->setEnabled(!m_dialog->isPerGameSettings() && !m_ui.optimalFramePacing->isChecked());
|
m_ui.maxFrameLatency->setEnabled(!m_dialog->isPerGameSettings() && !m_ui.optimalFramePacing->isChecked());
|
||||||
|
|
||||||
m_dialog->setIntSettingValue("EmuCore/GS", "VsyncQueueSize", value);
|
m_dialog->setIntSettingValue("EmuCore/GS", "VsyncQueueSize", value);
|
||||||
|
@ -190,5 +206,6 @@ void EmulationSettingsWidget::updateOptimalFramePacing()
|
||||||
m_ui.maxFrameLatency->setEnabled(!optimal);
|
m_ui.maxFrameLatency->setEnabled(!optimal);
|
||||||
}
|
}
|
||||||
|
|
||||||
m_ui.maxFrameLatency->setValue(optimal ? DEFAULT_FRAME_LATENCY : value);
|
m_ui.maxFrameLatency->setMinimum(optimal ? 0 : 1);
|
||||||
|
m_ui.maxFrameLatency->setValue(optimal ? 0 : value);
|
||||||
}
|
}
|
||||||
|
|
|
@ -84,7 +84,7 @@
|
||||||
<string> frames</string>
|
<string> frames</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="minimum">
|
<property name="minimum">
|
||||||
<number>0</number>
|
<number>1</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="maximum">
|
<property name="maximum">
|
||||||
<number>5</number>
|
<number>5</number>
|
||||||
|
|
Loading…
Reference in New Issue