summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar David Marcec2020-07-10 14:00:02 +1000
committerGravatar David Marcec2020-07-17 14:26:14 +1000
commit85d7a8f466837859a372fdc2a93028061e1b0bb8 (patch)
tree1f924fffcd6f8a44eb54c6e4a8bc94b7773c88eb /src
parentasync shaders (diff)
downloadyuzu-85d7a8f466837859a372fdc2a93028061e1b0bb8.tar.gz
yuzu-85d7a8f466837859a372fdc2a93028061e1b0bb8.tar.xz
yuzu-85d7a8f466837859a372fdc2a93028061e1b0bb8.zip
Rebase for per game settings
Diffstat (limited to 'src')
-rw-r--r--src/core/settings.cpp3
-rw-r--r--src/core/settings.h1
-rw-r--r--src/core/telemetry_session.cpp2
-rw-r--r--src/video_core/renderer_opengl/gl_device.cpp2
-rw-r--r--src/yuzu/configuration/config.cpp6
-rw-r--r--src/yuzu/configuration/configure_graphics_advanced.cpp22
-rw-r--r--src/yuzu/configuration/configure_graphics_advanced.ui10
-rw-r--r--src/yuzu_cmd/config.cpp4
-rw-r--r--src/yuzu_cmd/default_ini.h4
9 files changed, 53 insertions, 1 deletions
diff --git a/src/core/settings.cpp b/src/core/settings.cpp
index e8a6f2a6e..764df0db3 100644
--- a/src/core/settings.cpp
+++ b/src/core/settings.cpp
@@ -115,6 +115,8 @@ void LogSettings() {
115 values.use_asynchronous_gpu_emulation.GetValue()); 115 values.use_asynchronous_gpu_emulation.GetValue());
116 log_setting("Renderer_UseVsync", values.use_vsync.GetValue()); 116 log_setting("Renderer_UseVsync", values.use_vsync.GetValue());
117 log_setting("Renderer_UseAssemblyShaders", values.use_assembly_shaders.GetValue()); 117 log_setting("Renderer_UseAssemblyShaders", values.use_assembly_shaders.GetValue());
118 log_setting("Renderer_UseAsynchronousShaders",
119 Settings::values.use_asynchronous_shaders.GetValue());
118 log_setting("Renderer_AnisotropicFilteringLevel", values.max_anisotropy.GetValue()); 120 log_setting("Renderer_AnisotropicFilteringLevel", values.max_anisotropy.GetValue());
119 log_setting("Audio_OutputEngine", values.sink_id); 121 log_setting("Audio_OutputEngine", values.sink_id);
120 log_setting("Audio_EnableAudioStretching", values.enable_audio_stretching.GetValue()); 122 log_setting("Audio_EnableAudioStretching", values.enable_audio_stretching.GetValue());
@@ -170,6 +172,7 @@ void RestoreGlobalState() {
170 values.use_asynchronous_gpu_emulation.SetGlobal(true); 172 values.use_asynchronous_gpu_emulation.SetGlobal(true);
171 values.use_vsync.SetGlobal(true); 173 values.use_vsync.SetGlobal(true);
172 values.use_assembly_shaders.SetGlobal(true); 174 values.use_assembly_shaders.SetGlobal(true);
175 values.use_asynchronous_shaders.SetGlobal(true);
173 values.use_fast_gpu_time.SetGlobal(true); 176 values.use_fast_gpu_time.SetGlobal(true);
174 values.force_30fps_mode.SetGlobal(true); 177 values.force_30fps_mode.SetGlobal(true);
175 values.bg_red.SetGlobal(true); 178 values.bg_red.SetGlobal(true);
diff --git a/src/core/settings.h b/src/core/settings.h
index a64debd25..386233fdf 100644
--- a/src/core/settings.h
+++ b/src/core/settings.h
@@ -434,6 +434,7 @@ struct Values {
434 Setting<bool> use_asynchronous_gpu_emulation; 434 Setting<bool> use_asynchronous_gpu_emulation;
435 Setting<bool> use_vsync; 435 Setting<bool> use_vsync;
436 Setting<bool> use_assembly_shaders; 436 Setting<bool> use_assembly_shaders;
437 Setting<bool> use_asynchronous_shaders;
437 Setting<bool> force_30fps_mode; 438 Setting<bool> force_30fps_mode;
438 Setting<bool> use_fast_gpu_time; 439 Setting<bool> use_fast_gpu_time;
439 440
diff --git a/src/core/telemetry_session.cpp b/src/core/telemetry_session.cpp
index 78915e6db..5a30c75da 100644
--- a/src/core/telemetry_session.cpp
+++ b/src/core/telemetry_session.cpp
@@ -207,6 +207,8 @@ void TelemetrySession::AddInitialInfo(Loader::AppLoader& app_loader) {
207 AddField(field_type, "Renderer_UseVsync", Settings::values.use_vsync.GetValue()); 207 AddField(field_type, "Renderer_UseVsync", Settings::values.use_vsync.GetValue());
208 AddField(field_type, "Renderer_UseAssemblyShaders", 208 AddField(field_type, "Renderer_UseAssemblyShaders",
209 Settings::values.use_assembly_shaders.GetValue()); 209 Settings::values.use_assembly_shaders.GetValue());
210 AddField(field_type, "Renderer_UseAsynchronousShaders",
211 Settings::values.use_asynchronous_shaders.GetValue());
210 AddField(field_type, "System_UseDockedMode", Settings::values.use_docked_mode); 212 AddField(field_type, "System_UseDockedMode", Settings::values.use_docked_mode);
211} 213}
212 214
diff --git a/src/video_core/renderer_opengl/gl_device.cpp b/src/video_core/renderer_opengl/gl_device.cpp
index 7c27eed6d..630acb73b 100644
--- a/src/video_core/renderer_opengl/gl_device.cpp
+++ b/src/video_core/renderer_opengl/gl_device.cpp
@@ -233,7 +233,7 @@ Device::Device()
233 GLAD_GL_NV_gpu_program5 && GLAD_GL_NV_compute_program5 && 233 GLAD_GL_NV_gpu_program5 && GLAD_GL_NV_compute_program5 &&
234 GLAD_GL_NV_transform_feedback && GLAD_GL_NV_transform_feedback2; 234 GLAD_GL_NV_transform_feedback && GLAD_GL_NV_transform_feedback2;
235 235
236 use_asynchronous_shaders = Settings::values.use_asynchronous_shaders; 236 use_asynchronous_shaders = Settings::values.use_asynchronous_shaders.GetValue();
237 237
238 LOG_INFO(Render_OpenGL, "Renderer_VariableAOFFI: {}", has_variable_aoffi); 238 LOG_INFO(Render_OpenGL, "Renderer_VariableAOFFI: {}", has_variable_aoffi);
239 LOG_INFO(Render_OpenGL, "Renderer_ComponentIndexingBug: {}", has_component_indexing_bug); 239 LOG_INFO(Render_OpenGL, "Renderer_ComponentIndexingBug: {}", has_component_indexing_bug);
diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp
index d25b99a32..4fef60fb2 100644
--- a/src/yuzu/configuration/config.cpp
+++ b/src/yuzu/configuration/config.cpp
@@ -661,6 +661,8 @@ void Config::ReadRendererValues() {
661 ReadSettingGlobal(Settings::values.use_vsync, QStringLiteral("use_vsync"), true); 661 ReadSettingGlobal(Settings::values.use_vsync, QStringLiteral("use_vsync"), true);
662 ReadSettingGlobal(Settings::values.use_assembly_shaders, QStringLiteral("use_assembly_shaders"), 662 ReadSettingGlobal(Settings::values.use_assembly_shaders, QStringLiteral("use_assembly_shaders"),
663 false); 663 false);
664 ReadSettingGlobal(Settings::values.use_asynchronous_shaders,
665 QStringLiteral("use_asynchronous_shaders"), false);
664 ReadSettingGlobal(Settings::values.use_fast_gpu_time, QStringLiteral("use_fast_gpu_time"), 666 ReadSettingGlobal(Settings::values.use_fast_gpu_time, QStringLiteral("use_fast_gpu_time"),
665 true); 667 true);
666 ReadSettingGlobal(Settings::values.force_30fps_mode, QStringLiteral("force_30fps_mode"), false); 668 ReadSettingGlobal(Settings::values.force_30fps_mode, QStringLiteral("force_30fps_mode"), false);
@@ -1145,6 +1147,10 @@ void Config::SaveRendererValues() {
1145 WriteSettingGlobal(QStringLiteral("use_vsync"), Settings::values.use_vsync, true); 1147 WriteSettingGlobal(QStringLiteral("use_vsync"), Settings::values.use_vsync, true);
1146 WriteSettingGlobal(QStringLiteral("use_assembly_shaders"), 1148 WriteSettingGlobal(QStringLiteral("use_assembly_shaders"),
1147 Settings::values.use_assembly_shaders, false); 1149 Settings::values.use_assembly_shaders, false);
1150 WriteSettingGlobal(QStringLiteral("use_asynchronous_shaders"),
1151 Settings::values.use_asynchronous_shaders, false);
1152 WriteSettingGlobal(QStringLiteral("use_asynchronous_shaders"),
1153 Settings::values.use_asynchronous_shaders, false);
1148 WriteSettingGlobal(QStringLiteral("use_fast_gpu_time"), Settings::values.use_fast_gpu_time, 1154 WriteSettingGlobal(QStringLiteral("use_fast_gpu_time"), Settings::values.use_fast_gpu_time,
1149 true); 1155 true);
1150 WriteSettingGlobal(QStringLiteral("force_30fps_mode"), Settings::values.force_30fps_mode, 1156 WriteSettingGlobal(QStringLiteral("force_30fps_mode"), Settings::values.force_30fps_mode,
diff --git a/src/yuzu/configuration/configure_graphics_advanced.cpp b/src/yuzu/configuration/configure_graphics_advanced.cpp
index 7c0fa7ec5..ce30188cd 100644
--- a/src/yuzu/configuration/configure_graphics_advanced.cpp
+++ b/src/yuzu/configuration/configure_graphics_advanced.cpp
@@ -24,6 +24,7 @@ void ConfigureGraphicsAdvanced::SetConfiguration() {
24 const bool runtime_lock = !Core::System::GetInstance().IsPoweredOn(); 24 const bool runtime_lock = !Core::System::GetInstance().IsPoweredOn();
25 ui->use_vsync->setEnabled(runtime_lock); 25 ui->use_vsync->setEnabled(runtime_lock);
26 ui->use_assembly_shaders->setEnabled(runtime_lock); 26 ui->use_assembly_shaders->setEnabled(runtime_lock);
27 ui->use_asynchronous_shaders->setEnabled(runtime_lock);
27 ui->force_30fps_mode->setEnabled(runtime_lock); 28 ui->force_30fps_mode->setEnabled(runtime_lock);
28 ui->anisotropic_filtering_combobox->setEnabled(runtime_lock); 29 ui->anisotropic_filtering_combobox->setEnabled(runtime_lock);
29 30
@@ -32,6 +33,8 @@ void ConfigureGraphicsAdvanced::SetConfiguration() {
32 static_cast<int>(Settings::values.gpu_accuracy.GetValue())); 33 static_cast<int>(Settings::values.gpu_accuracy.GetValue()));
33 ui->use_vsync->setChecked(Settings::values.use_vsync.GetValue()); 34 ui->use_vsync->setChecked(Settings::values.use_vsync.GetValue());
34 ui->use_assembly_shaders->setChecked(Settings::values.use_assembly_shaders.GetValue()); 35 ui->use_assembly_shaders->setChecked(Settings::values.use_assembly_shaders.GetValue());
36 ui->use_asynchronous_shaders->setChecked(
37 Settings::values.use_asynchronous_shaders.GetValue());
35 ui->use_fast_gpu_time->setChecked(Settings::values.use_fast_gpu_time.GetValue()); 38 ui->use_fast_gpu_time->setChecked(Settings::values.use_fast_gpu_time.GetValue());
36 ui->force_30fps_mode->setChecked(Settings::values.force_30fps_mode.GetValue()); 39 ui->force_30fps_mode->setChecked(Settings::values.force_30fps_mode.GetValue());
37 ui->anisotropic_filtering_combobox->setCurrentIndex( 40 ui->anisotropic_filtering_combobox->setCurrentIndex(
@@ -41,6 +44,10 @@ void ConfigureGraphicsAdvanced::SetConfiguration() {
41 ConfigurationShared::SetPerGameSetting(ui->use_vsync, &Settings::values.use_vsync); 44 ConfigurationShared::SetPerGameSetting(ui->use_vsync, &Settings::values.use_vsync);
42 ConfigurationShared::SetPerGameSetting(ui->use_assembly_shaders, 45 ConfigurationShared::SetPerGameSetting(ui->use_assembly_shaders,
43 &Settings::values.use_assembly_shaders); 46 &Settings::values.use_assembly_shaders);
47 ConfigurationShared::SetPerGameSetting(ui->use_asynchronous_shaders,
48 &Settings::values.use_asynchronous_shaders);
49 ConfigurationShared::SetPerGameSetting(ui->use_asynchronous_shaders,
50 &Settings::values.use_asynchronous_shaders);
44 ConfigurationShared::SetPerGameSetting(ui->use_fast_gpu_time, 51 ConfigurationShared::SetPerGameSetting(ui->use_fast_gpu_time,
45 &Settings::values.use_fast_gpu_time); 52 &Settings::values.use_fast_gpu_time);
46 ConfigurationShared::SetPerGameSetting(ui->force_30fps_mode, 53 ConfigurationShared::SetPerGameSetting(ui->force_30fps_mode,
@@ -67,6 +74,14 @@ void ConfigureGraphicsAdvanced::ApplyConfiguration() {
67 if (Settings::values.use_assembly_shaders.UsingGlobal()) { 74 if (Settings::values.use_assembly_shaders.UsingGlobal()) {
68 Settings::values.use_assembly_shaders.SetValue(ui->use_assembly_shaders->isChecked()); 75 Settings::values.use_assembly_shaders.SetValue(ui->use_assembly_shaders->isChecked());
69 } 76 }
77 if (Settings::values.use_asynchronous_shaders.UsingGlobal()) {
78 Settings::values.use_asynchronous_shaders.SetValue(
79 ui->use_asynchronous_shaders->isChecked());
80 }
81 if (Settings::values.use_asynchronous_shaders.UsingGlobal()) {
82 Settings::values.use_asynchronous_shaders.SetValue(
83 ui->use_asynchronous_shaders->isChecked());
84 }
70 if (Settings::values.use_fast_gpu_time.UsingGlobal()) { 85 if (Settings::values.use_fast_gpu_time.UsingGlobal()) {
71 Settings::values.use_fast_gpu_time.SetValue(ui->use_fast_gpu_time->isChecked()); 86 Settings::values.use_fast_gpu_time.SetValue(ui->use_fast_gpu_time->isChecked());
72 } 87 }
@@ -83,6 +98,10 @@ void ConfigureGraphicsAdvanced::ApplyConfiguration() {
83 ConfigurationShared::ApplyPerGameSetting(&Settings::values.use_vsync, ui->use_vsync); 98 ConfigurationShared::ApplyPerGameSetting(&Settings::values.use_vsync, ui->use_vsync);
84 ConfigurationShared::ApplyPerGameSetting(&Settings::values.use_assembly_shaders, 99 ConfigurationShared::ApplyPerGameSetting(&Settings::values.use_assembly_shaders,
85 ui->use_assembly_shaders); 100 ui->use_assembly_shaders);
101 ConfigurationShared::ApplyPerGameSetting(&Settings::values.use_asynchronous_shaders,
102 ui->use_asynchronous_shaders);
103 ConfigurationShared::ApplyPerGameSetting(&Settings::values.use_asynchronous_shaders,
104 ui->use_asynchronous_shaders);
86 ConfigurationShared::ApplyPerGameSetting(&Settings::values.use_fast_gpu_time, 105 ConfigurationShared::ApplyPerGameSetting(&Settings::values.use_fast_gpu_time,
87 ui->use_fast_gpu_time); 106 ui->use_fast_gpu_time);
88 ConfigurationShared::ApplyPerGameSetting(&Settings::values.force_30fps_mode, 107 ConfigurationShared::ApplyPerGameSetting(&Settings::values.force_30fps_mode,
@@ -117,6 +136,8 @@ void ConfigureGraphicsAdvanced::SetupPerGameUI() {
117 ui->gpu_accuracy->setEnabled(Settings::values.gpu_accuracy.UsingGlobal()); 136 ui->gpu_accuracy->setEnabled(Settings::values.gpu_accuracy.UsingGlobal());
118 ui->use_vsync->setEnabled(Settings::values.use_vsync.UsingGlobal()); 137 ui->use_vsync->setEnabled(Settings::values.use_vsync.UsingGlobal());
119 ui->use_assembly_shaders->setEnabled(Settings::values.use_assembly_shaders.UsingGlobal()); 138 ui->use_assembly_shaders->setEnabled(Settings::values.use_assembly_shaders.UsingGlobal());
139 ui->use_asynchronous_shaders->setEnabled(
140 Settings::values.use_asynchronous_shaders.UsingGlobal());
120 ui->use_fast_gpu_time->setEnabled(Settings::values.use_fast_gpu_time.UsingGlobal()); 141 ui->use_fast_gpu_time->setEnabled(Settings::values.use_fast_gpu_time.UsingGlobal());
121 ui->force_30fps_mode->setEnabled(Settings::values.force_30fps_mode.UsingGlobal()); 142 ui->force_30fps_mode->setEnabled(Settings::values.force_30fps_mode.UsingGlobal());
122 ui->anisotropic_filtering_combobox->setEnabled( 143 ui->anisotropic_filtering_combobox->setEnabled(
@@ -128,6 +149,7 @@ void ConfigureGraphicsAdvanced::SetupPerGameUI() {
128 ConfigurationShared::InsertGlobalItem(ui->gpu_accuracy); 149 ConfigurationShared::InsertGlobalItem(ui->gpu_accuracy);
129 ui->use_vsync->setTristate(true); 150 ui->use_vsync->setTristate(true);
130 ui->use_assembly_shaders->setTristate(true); 151 ui->use_assembly_shaders->setTristate(true);
152 ui->use_asynchronous_shaders->setTristate(true);
131 ui->use_fast_gpu_time->setTristate(true); 153 ui->use_fast_gpu_time->setTristate(true);
132 ui->force_30fps_mode->setTristate(true); 154 ui->force_30fps_mode->setTristate(true);
133 ConfigurationShared::InsertGlobalItem(ui->anisotropic_filtering_combobox); 155 ConfigurationShared::InsertGlobalItem(ui->anisotropic_filtering_combobox);
diff --git a/src/yuzu/configuration/configure_graphics_advanced.ui b/src/yuzu/configuration/configure_graphics_advanced.ui
index 0021607ac..71e7dfe5e 100644
--- a/src/yuzu/configuration/configure_graphics_advanced.ui
+++ b/src/yuzu/configuration/configure_graphics_advanced.ui
@@ -73,6 +73,16 @@
73 </widget> 73 </widget>
74 </item> 74 </item>
75 <item> 75 <item>
76 <widget class="QCheckBox" name="use_asynchronous_shaders">
77 <property name="toolTip">
78 <string>Enables asynchronous shader compilation, which may reduce shader stutter. This feature is experimental.</string>
79 </property>
80 <property name="text">
81 <string>Use asynchronous shader building (experimental, OpenGL or Assembly shaders only)</string>
82 </property>
83 </widget>
84 </item>
85 <item>
76 <widget class="QCheckBox" name="force_30fps_mode"> 86 <widget class="QCheckBox" name="force_30fps_mode">
77 <property name="text"> 87 <property name="text">
78 <string>Force 30 FPS mode</string> 88 <string>Force 30 FPS mode</string>
diff --git a/src/yuzu_cmd/config.cpp b/src/yuzu_cmd/config.cpp
index 7773228c8..c2a2982fb 100644
--- a/src/yuzu_cmd/config.cpp
+++ b/src/yuzu_cmd/config.cpp
@@ -394,6 +394,10 @@ void Config::ReadValues() {
394 static_cast<u16>(sdl2_config->GetInteger("Renderer", "use_vsync", 1))); 394 static_cast<u16>(sdl2_config->GetInteger("Renderer", "use_vsync", 1)));
395 Settings::values.use_assembly_shaders.SetValue( 395 Settings::values.use_assembly_shaders.SetValue(
396 sdl2_config->GetBoolean("Renderer", "use_assembly_shaders", false)); 396 sdl2_config->GetBoolean("Renderer", "use_assembly_shaders", false));
397 Settings::values.use_asynchronous_shaders.SetValue(
398 sdl2_config->GetBoolean("Renderer", "use_asynchronous_shaders", false));
399 Settings::values.use_asynchronous_shaders.SetValue(
400 sdl2_config->GetBoolean("Renderer", "use_asynchronous_shaders", false));
397 Settings::values.use_fast_gpu_time.SetValue( 401 Settings::values.use_fast_gpu_time.SetValue(
398 sdl2_config->GetBoolean("Renderer", "use_fast_gpu_time", true)); 402 sdl2_config->GetBoolean("Renderer", "use_fast_gpu_time", true));
399 403
diff --git a/src/yuzu_cmd/default_ini.h b/src/yuzu_cmd/default_ini.h
index 5bed47fd7..aa9e40380 100644
--- a/src/yuzu_cmd/default_ini.h
+++ b/src/yuzu_cmd/default_ini.h
@@ -166,6 +166,10 @@ use_vsync =
166# 0 (default): Off, 1: On 166# 0 (default): Off, 1: On
167use_assembly_shaders = 167use_assembly_shaders =
168 168
169# Whether to allow asynchronous shader building.
170# 0 (default): Off, 1: On
171use_asynchronous_shaders =
172
169# Turns on the frame limiter, which will limit frames output to the target game speed 173# Turns on the frame limiter, which will limit frames output to the target game speed
170# 0: Off, 1: On (default) 174# 0: Off, 1: On (default)
171use_frame_limit = 175use_frame_limit =