mirror of
https://git.suyu.dev/suyu/suyu.git
synced 2024-11-23 15:22:45 +01:00
core: settings: Add setting to enable vsync, which is on by default.
This commit is contained in:
parent
45ac1c62c6
commit
571451bdfe
8 changed files with 25 additions and 0 deletions
|
@ -94,6 +94,7 @@ void LogSettings() {
|
||||||
LogSetting("Renderer_UseAccurateGpuEmulation", Settings::values.use_accurate_gpu_emulation);
|
LogSetting("Renderer_UseAccurateGpuEmulation", Settings::values.use_accurate_gpu_emulation);
|
||||||
LogSetting("Renderer_UseAsynchronousGpuEmulation",
|
LogSetting("Renderer_UseAsynchronousGpuEmulation",
|
||||||
Settings::values.use_asynchronous_gpu_emulation);
|
Settings::values.use_asynchronous_gpu_emulation);
|
||||||
|
LogSetting("Renderer_UseVsync", Settings::values.use_vsync);
|
||||||
LogSetting("Audio_OutputEngine", Settings::values.sink_id);
|
LogSetting("Audio_OutputEngine", Settings::values.sink_id);
|
||||||
LogSetting("Audio_EnableAudioStretching", Settings::values.enable_audio_stretching);
|
LogSetting("Audio_EnableAudioStretching", Settings::values.enable_audio_stretching);
|
||||||
LogSetting("Audio_OutputDevice", Settings::values.audio_device_id);
|
LogSetting("Audio_OutputDevice", Settings::values.audio_device_id);
|
||||||
|
|
|
@ -435,6 +435,7 @@ struct Values {
|
||||||
bool use_disk_shader_cache;
|
bool use_disk_shader_cache;
|
||||||
bool use_accurate_gpu_emulation;
|
bool use_accurate_gpu_emulation;
|
||||||
bool use_asynchronous_gpu_emulation;
|
bool use_asynchronous_gpu_emulation;
|
||||||
|
bool use_vsync;
|
||||||
bool force_30fps_mode;
|
bool force_30fps_mode;
|
||||||
|
|
||||||
float bg_red;
|
float bg_red;
|
||||||
|
|
|
@ -188,6 +188,7 @@ void TelemetrySession::AddInitialInfo(Loader::AppLoader& app_loader) {
|
||||||
Settings::values.use_accurate_gpu_emulation);
|
Settings::values.use_accurate_gpu_emulation);
|
||||||
AddField(field_type, "Renderer_UseAsynchronousGpuEmulation",
|
AddField(field_type, "Renderer_UseAsynchronousGpuEmulation",
|
||||||
Settings::values.use_asynchronous_gpu_emulation);
|
Settings::values.use_asynchronous_gpu_emulation);
|
||||||
|
AddField(field_type, "Renderer_UseVsync", Settings::values.use_vsync);
|
||||||
AddField(field_type, "System_UseDockedMode", Settings::values.use_docked_mode);
|
AddField(field_type, "System_UseDockedMode", Settings::values.use_docked_mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -640,6 +640,7 @@ void Config::ReadRendererValues() {
|
||||||
ReadSetting(QStringLiteral("use_accurate_gpu_emulation"), false).toBool();
|
ReadSetting(QStringLiteral("use_accurate_gpu_emulation"), false).toBool();
|
||||||
Settings::values.use_asynchronous_gpu_emulation =
|
Settings::values.use_asynchronous_gpu_emulation =
|
||||||
ReadSetting(QStringLiteral("use_asynchronous_gpu_emulation"), false).toBool();
|
ReadSetting(QStringLiteral("use_asynchronous_gpu_emulation"), false).toBool();
|
||||||
|
Settings::values.use_vsync = ReadSetting(QStringLiteral("use_vsync"), true).toBool();
|
||||||
Settings::values.force_30fps_mode =
|
Settings::values.force_30fps_mode =
|
||||||
ReadSetting(QStringLiteral("force_30fps_mode"), false).toBool();
|
ReadSetting(QStringLiteral("force_30fps_mode"), false).toBool();
|
||||||
|
|
||||||
|
@ -1074,6 +1075,7 @@ void Config::SaveRendererValues() {
|
||||||
Settings::values.use_accurate_gpu_emulation, false);
|
Settings::values.use_accurate_gpu_emulation, false);
|
||||||
WriteSetting(QStringLiteral("use_asynchronous_gpu_emulation"),
|
WriteSetting(QStringLiteral("use_asynchronous_gpu_emulation"),
|
||||||
Settings::values.use_asynchronous_gpu_emulation, false);
|
Settings::values.use_asynchronous_gpu_emulation, false);
|
||||||
|
WriteSetting(QStringLiteral("use_vsync"), Settings::values.use_vsync, true);
|
||||||
WriteSetting(QStringLiteral("force_30fps_mode"), Settings::values.force_30fps_mode, false);
|
WriteSetting(QStringLiteral("force_30fps_mode"), Settings::values.force_30fps_mode, false);
|
||||||
|
|
||||||
// Cast to double because Qt's written float values are not human-readable
|
// Cast to double because Qt's written float values are not human-readable
|
||||||
|
|
|
@ -103,6 +103,8 @@ void ConfigureGraphics::SetConfiguration() {
|
||||||
ui->use_accurate_gpu_emulation->setChecked(Settings::values.use_accurate_gpu_emulation);
|
ui->use_accurate_gpu_emulation->setChecked(Settings::values.use_accurate_gpu_emulation);
|
||||||
ui->use_asynchronous_gpu_emulation->setEnabled(runtime_lock);
|
ui->use_asynchronous_gpu_emulation->setEnabled(runtime_lock);
|
||||||
ui->use_asynchronous_gpu_emulation->setChecked(Settings::values.use_asynchronous_gpu_emulation);
|
ui->use_asynchronous_gpu_emulation->setChecked(Settings::values.use_asynchronous_gpu_emulation);
|
||||||
|
ui->use_vsync->setEnabled(runtime_lock);
|
||||||
|
ui->use_vsync->setChecked(Settings::values.use_vsync);
|
||||||
ui->force_30fps_mode->setEnabled(runtime_lock);
|
ui->force_30fps_mode->setEnabled(runtime_lock);
|
||||||
ui->force_30fps_mode->setChecked(Settings::values.force_30fps_mode);
|
ui->force_30fps_mode->setChecked(Settings::values.force_30fps_mode);
|
||||||
UpdateBackgroundColorButton(QColor::fromRgbF(Settings::values.bg_red, Settings::values.bg_green,
|
UpdateBackgroundColorButton(QColor::fromRgbF(Settings::values.bg_red, Settings::values.bg_green,
|
||||||
|
@ -120,6 +122,7 @@ void ConfigureGraphics::ApplyConfiguration() {
|
||||||
Settings::values.use_accurate_gpu_emulation = ui->use_accurate_gpu_emulation->isChecked();
|
Settings::values.use_accurate_gpu_emulation = ui->use_accurate_gpu_emulation->isChecked();
|
||||||
Settings::values.use_asynchronous_gpu_emulation =
|
Settings::values.use_asynchronous_gpu_emulation =
|
||||||
ui->use_asynchronous_gpu_emulation->isChecked();
|
ui->use_asynchronous_gpu_emulation->isChecked();
|
||||||
|
Settings::values.use_vsync = ui->use_vsync->isChecked();
|
||||||
Settings::values.force_30fps_mode = ui->force_30fps_mode->isChecked();
|
Settings::values.force_30fps_mode = ui->force_30fps_mode->isChecked();
|
||||||
Settings::values.bg_red = static_cast<float>(bg_color.redF());
|
Settings::values.bg_red = static_cast<float>(bg_color.redF());
|
||||||
Settings::values.bg_green = static_cast<float>(bg_color.greenF());
|
Settings::values.bg_green = static_cast<float>(bg_color.greenF());
|
||||||
|
|
|
@ -84,6 +84,16 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QCheckBox" name="use_vsync">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>VSync prevents the screen from tearing, but some graphics cards have lower performance with VSync enabled. Keep it enabled if you don't notice a performance difference.</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Use VSync (OpenGL only)</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QCheckBox" name="use_accurate_gpu_emulation">
|
<widget class="QCheckBox" name="use_accurate_gpu_emulation">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
|
|
|
@ -390,6 +390,8 @@ void Config::ReadValues() {
|
||||||
sdl2_config->GetBoolean("Renderer", "use_accurate_gpu_emulation", false);
|
sdl2_config->GetBoolean("Renderer", "use_accurate_gpu_emulation", false);
|
||||||
Settings::values.use_asynchronous_gpu_emulation =
|
Settings::values.use_asynchronous_gpu_emulation =
|
||||||
sdl2_config->GetBoolean("Renderer", "use_asynchronous_gpu_emulation", false);
|
sdl2_config->GetBoolean("Renderer", "use_asynchronous_gpu_emulation", false);
|
||||||
|
Settings::values.use_vsync =
|
||||||
|
static_cast<u16>(sdl2_config->GetInteger("Renderer", "use_vsync", 1));
|
||||||
|
|
||||||
Settings::values.bg_red = static_cast<float>(sdl2_config->GetReal("Renderer", "bg_red", 0.0));
|
Settings::values.bg_red = static_cast<float>(sdl2_config->GetReal("Renderer", "bg_red", 0.0));
|
||||||
Settings::values.bg_green =
|
Settings::values.bg_green =
|
||||||
|
|
|
@ -150,6 +150,11 @@ use_accurate_gpu_emulation =
|
||||||
# 0 : Off (slow), 1 (default): On (fast)
|
# 0 : Off (slow), 1 (default): On (fast)
|
||||||
use_asynchronous_gpu_emulation =
|
use_asynchronous_gpu_emulation =
|
||||||
|
|
||||||
|
# Forces VSync on the display thread. Usually doesn't impact performance, but on some drivers it can
|
||||||
|
# so only turn this off if you notice a speed difference.
|
||||||
|
# 0: Off, 1 (default): On
|
||||||
|
use_vsync =
|
||||||
|
|
||||||
# The clear color for the renderer. What shows up on the sides of the bottom screen.
|
# The clear color for the renderer. What shows up on the sides of the bottom screen.
|
||||||
# Must be in range of 0.0-1.0. Defaults to 1.0 for all.
|
# Must be in range of 0.0-1.0. Defaults to 1.0 for all.
|
||||||
bg_red =
|
bg_red =
|
||||||
|
|
Loading…
Reference in a new issue