diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/common/settings.h | 1 | ||||
| -rw-r--r-- | src/core/hle/service/nvflinger/nvflinger.cpp | 3 | ||||
| -rw-r--r-- | src/yuzu/configuration/config.cpp | 7 | ||||
| -rw-r--r-- | src/yuzu/configuration/config.h | 2 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_graphics_advanced.cpp | 6 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_graphics_advanced.h | 1 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_graphics_advanced.ui | 18 | ||||
| -rw-r--r-- | src/yuzu/main.cpp | 6 | ||||
| -rw-r--r-- | src/yuzu_cmd/config.cpp | 2 | ||||
| -rw-r--r-- | src/yuzu_cmd/default_ini.h | 3 |
10 files changed, 46 insertions, 3 deletions
diff --git a/src/common/settings.h b/src/common/settings.h index 6198f2d9f..bc3298417 100644 --- a/src/common/settings.h +++ b/src/common/settings.h | |||
| @@ -149,6 +149,7 @@ struct Values { | |||
| 149 | Setting<bool> use_nvdec_emulation; | 149 | Setting<bool> use_nvdec_emulation; |
| 150 | Setting<bool> accelerate_astc; | 150 | Setting<bool> accelerate_astc; |
| 151 | Setting<bool> use_vsync; | 151 | Setting<bool> use_vsync; |
| 152 | Setting<bool> disable_fps_limit; | ||
| 152 | Setting<bool> use_assembly_shaders; | 153 | Setting<bool> use_assembly_shaders; |
| 153 | Setting<bool> use_asynchronous_shaders; | 154 | Setting<bool> use_asynchronous_shaders; |
| 154 | Setting<bool> use_fast_gpu_time; | 155 | Setting<bool> use_fast_gpu_time; |
diff --git a/src/core/hle/service/nvflinger/nvflinger.cpp b/src/core/hle/service/nvflinger/nvflinger.cpp index d1dbc659b..1d810562f 100644 --- a/src/core/hle/service/nvflinger/nvflinger.cpp +++ b/src/core/hle/service/nvflinger/nvflinger.cpp | |||
| @@ -307,6 +307,9 @@ void NVFlinger::Compose() { | |||
| 307 | } | 307 | } |
| 308 | 308 | ||
| 309 | s64 NVFlinger::GetNextTicks() const { | 309 | s64 NVFlinger::GetNextTicks() const { |
| 310 | if (Settings::values.disable_fps_limit.GetValue()) { | ||
| 311 | return 0; | ||
| 312 | } | ||
| 310 | constexpr s64 max_hertz = 120LL; | 313 | constexpr s64 max_hertz = 120LL; |
| 311 | return (1000000000 * (1LL << swap_interval)) / max_hertz; | 314 | return (1000000000 * (1LL << swap_interval)) / max_hertz; |
| 312 | } | 315 | } |
diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp index 916a22724..24487314e 100644 --- a/src/yuzu/configuration/config.cpp +++ b/src/yuzu/configuration/config.cpp | |||
| @@ -221,7 +221,7 @@ const std::array<int, Settings::NativeKeyboard::NumKeyboardMods> Config::default | |||
| 221 | // This must be in alphabetical order according to action name as it must have the same order as | 221 | // This must be in alphabetical order according to action name as it must have the same order as |
| 222 | // UISetting::values.shortcuts, which is alphabetically ordered. | 222 | // UISetting::values.shortcuts, which is alphabetically ordered. |
| 223 | // clang-format off | 223 | // clang-format off |
| 224 | const std::array<UISettings::Shortcut, 17> Config::default_hotkeys{{ | 224 | const std::array<UISettings::Shortcut, 18> Config::default_hotkeys{{ |
| 225 | {QStringLiteral("Capture Screenshot"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+P"), Qt::WidgetWithChildrenShortcut}}, | 225 | {QStringLiteral("Capture Screenshot"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+P"), Qt::WidgetWithChildrenShortcut}}, |
| 226 | {QStringLiteral("Change Docked Mode"), QStringLiteral("Main Window"), {QStringLiteral("F10"), Qt::ApplicationShortcut}}, | 226 | {QStringLiteral("Change Docked Mode"), QStringLiteral("Main Window"), {QStringLiteral("F10"), Qt::ApplicationShortcut}}, |
| 227 | {QStringLiteral("Continue/Pause Emulation"), QStringLiteral("Main Window"), {QStringLiteral("F4"), Qt::WindowShortcut}}, | 227 | {QStringLiteral("Continue/Pause Emulation"), QStringLiteral("Main Window"), {QStringLiteral("F4"), Qt::WindowShortcut}}, |
| @@ -236,6 +236,7 @@ const std::array<UISettings::Shortcut, 17> Config::default_hotkeys{{ | |||
| 236 | {QStringLiteral("Restart Emulation"), QStringLiteral("Main Window"), {QStringLiteral("F6"), Qt::WindowShortcut}}, | 236 | {QStringLiteral("Restart Emulation"), QStringLiteral("Main Window"), {QStringLiteral("F6"), Qt::WindowShortcut}}, |
| 237 | {QStringLiteral("Stop Emulation"), QStringLiteral("Main Window"), {QStringLiteral("F5"), Qt::WindowShortcut}}, | 237 | {QStringLiteral("Stop Emulation"), QStringLiteral("Main Window"), {QStringLiteral("F5"), Qt::WindowShortcut}}, |
| 238 | {QStringLiteral("Toggle Filter Bar"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+F"), Qt::WindowShortcut}}, | 238 | {QStringLiteral("Toggle Filter Bar"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+F"), Qt::WindowShortcut}}, |
| 239 | {QStringLiteral("Toggle Framerate Limit"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+U"), Qt::ApplicationShortcut}}, | ||
| 239 | {QStringLiteral("Toggle Mouse Panning"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+F9"), Qt::ApplicationShortcut}}, | 240 | {QStringLiteral("Toggle Mouse Panning"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+F9"), Qt::ApplicationShortcut}}, |
| 240 | {QStringLiteral("Toggle Speed Limit"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+Z"), Qt::ApplicationShortcut}}, | 241 | {QStringLiteral("Toggle Speed Limit"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+Z"), Qt::ApplicationShortcut}}, |
| 241 | {QStringLiteral("Toggle Status Bar"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+S"), Qt::WindowShortcut}}, | 242 | {QStringLiteral("Toggle Status Bar"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+S"), Qt::WindowShortcut}}, |
| @@ -811,6 +812,8 @@ void Config::ReadRendererValues() { | |||
| 811 | true); | 812 | true); |
| 812 | ReadSettingGlobal(Settings::values.accelerate_astc, QStringLiteral("accelerate_astc"), true); | 813 | ReadSettingGlobal(Settings::values.accelerate_astc, QStringLiteral("accelerate_astc"), true); |
| 813 | ReadSettingGlobal(Settings::values.use_vsync, QStringLiteral("use_vsync"), true); | 814 | ReadSettingGlobal(Settings::values.use_vsync, QStringLiteral("use_vsync"), true); |
| 815 | ReadSettingGlobal(Settings::values.disable_fps_limit, QStringLiteral("disable_fps_limit"), | ||
| 816 | false); | ||
| 814 | ReadSettingGlobal(Settings::values.use_assembly_shaders, QStringLiteral("use_assembly_shaders"), | 817 | ReadSettingGlobal(Settings::values.use_assembly_shaders, QStringLiteral("use_assembly_shaders"), |
| 815 | false); | 818 | false); |
| 816 | ReadSettingGlobal(Settings::values.use_asynchronous_shaders, | 819 | ReadSettingGlobal(Settings::values.use_asynchronous_shaders, |
| @@ -1395,6 +1398,8 @@ void Config::SaveRendererValues() { | |||
| 1395 | true); | 1398 | true); |
| 1396 | WriteSettingGlobal(QStringLiteral("accelerate_astc"), Settings::values.accelerate_astc, true); | 1399 | WriteSettingGlobal(QStringLiteral("accelerate_astc"), Settings::values.accelerate_astc, true); |
| 1397 | WriteSettingGlobal(QStringLiteral("use_vsync"), Settings::values.use_vsync, true); | 1400 | WriteSettingGlobal(QStringLiteral("use_vsync"), Settings::values.use_vsync, true); |
| 1401 | WriteSettingGlobal(QStringLiteral("disable_fps_limit"), Settings::values.disable_fps_limit, | ||
| 1402 | false); | ||
| 1398 | WriteSettingGlobal(QStringLiteral("use_assembly_shaders"), | 1403 | WriteSettingGlobal(QStringLiteral("use_assembly_shaders"), |
| 1399 | Settings::values.use_assembly_shaders, false); | 1404 | Settings::values.use_assembly_shaders, false); |
| 1400 | WriteSettingGlobal(QStringLiteral("use_asynchronous_shaders"), | 1405 | WriteSettingGlobal(QStringLiteral("use_asynchronous_shaders"), |
diff --git a/src/yuzu/configuration/config.h b/src/yuzu/configuration/config.h index ce3355588..3c1de0ac9 100644 --- a/src/yuzu/configuration/config.h +++ b/src/yuzu/configuration/config.h | |||
| @@ -42,7 +42,7 @@ public: | |||
| 42 | default_mouse_buttons; | 42 | default_mouse_buttons; |
| 43 | static const std::array<int, Settings::NativeKeyboard::NumKeyboardKeys> default_keyboard_keys; | 43 | static const std::array<int, Settings::NativeKeyboard::NumKeyboardKeys> default_keyboard_keys; |
| 44 | static const std::array<int, Settings::NativeKeyboard::NumKeyboardMods> default_keyboard_mods; | 44 | static const std::array<int, Settings::NativeKeyboard::NumKeyboardMods> default_keyboard_mods; |
| 45 | static const std::array<UISettings::Shortcut, 17> default_hotkeys; | 45 | static const std::array<UISettings::Shortcut, 18> default_hotkeys; |
| 46 | 46 | ||
| 47 | private: | 47 | private: |
| 48 | void Initialize(const std::string& config_name); | 48 | void Initialize(const std::string& config_name); |
diff --git a/src/yuzu/configuration/configure_graphics_advanced.cpp b/src/yuzu/configuration/configure_graphics_advanced.cpp index 35bf9c6be..1af87e849 100644 --- a/src/yuzu/configuration/configure_graphics_advanced.cpp +++ b/src/yuzu/configuration/configure_graphics_advanced.cpp | |||
| @@ -28,6 +28,7 @@ void ConfigureGraphicsAdvanced::SetConfiguration() { | |||
| 28 | ui->anisotropic_filtering_combobox->setEnabled(runtime_lock); | 28 | ui->anisotropic_filtering_combobox->setEnabled(runtime_lock); |
| 29 | 29 | ||
| 30 | ui->use_vsync->setChecked(Settings::values.use_vsync.GetValue()); | 30 | ui->use_vsync->setChecked(Settings::values.use_vsync.GetValue()); |
| 31 | ui->disable_fps_limit->setChecked(Settings::values.disable_fps_limit.GetValue()); | ||
| 31 | ui->use_assembly_shaders->setChecked(Settings::values.use_assembly_shaders.GetValue()); | 32 | ui->use_assembly_shaders->setChecked(Settings::values.use_assembly_shaders.GetValue()); |
| 32 | ui->use_asynchronous_shaders->setChecked(Settings::values.use_asynchronous_shaders.GetValue()); | 33 | ui->use_asynchronous_shaders->setChecked(Settings::values.use_asynchronous_shaders.GetValue()); |
| 33 | ui->use_fast_gpu_time->setChecked(Settings::values.use_fast_gpu_time.GetValue()); | 34 | ui->use_fast_gpu_time->setChecked(Settings::values.use_fast_gpu_time.GetValue()); |
| @@ -57,6 +58,8 @@ void ConfigureGraphicsAdvanced::ApplyConfiguration() { | |||
| 57 | ConfigurationShared::ApplyPerGameSetting(&Settings::values.max_anisotropy, | 58 | ConfigurationShared::ApplyPerGameSetting(&Settings::values.max_anisotropy, |
| 58 | ui->anisotropic_filtering_combobox); | 59 | ui->anisotropic_filtering_combobox); |
| 59 | ConfigurationShared::ApplyPerGameSetting(&Settings::values.use_vsync, ui->use_vsync, use_vsync); | 60 | ConfigurationShared::ApplyPerGameSetting(&Settings::values.use_vsync, ui->use_vsync, use_vsync); |
| 61 | ConfigurationShared::ApplyPerGameSetting(&Settings::values.disable_fps_limit, | ||
| 62 | ui->disable_fps_limit, disable_fps_limit); | ||
| 60 | ConfigurationShared::ApplyPerGameSetting(&Settings::values.use_assembly_shaders, | 63 | ConfigurationShared::ApplyPerGameSetting(&Settings::values.use_assembly_shaders, |
| 61 | ui->use_assembly_shaders, use_assembly_shaders); | 64 | ui->use_assembly_shaders, use_assembly_shaders); |
| 62 | ConfigurationShared::ApplyPerGameSetting(&Settings::values.use_asynchronous_shaders, | 65 | ConfigurationShared::ApplyPerGameSetting(&Settings::values.use_asynchronous_shaders, |
| @@ -97,6 +100,7 @@ void ConfigureGraphicsAdvanced::SetupPerGameUI() { | |||
| 97 | if (Settings::IsConfiguringGlobal()) { | 100 | if (Settings::IsConfiguringGlobal()) { |
| 98 | ui->gpu_accuracy->setEnabled(Settings::values.gpu_accuracy.UsingGlobal()); | 101 | ui->gpu_accuracy->setEnabled(Settings::values.gpu_accuracy.UsingGlobal()); |
| 99 | ui->use_vsync->setEnabled(Settings::values.use_vsync.UsingGlobal()); | 102 | ui->use_vsync->setEnabled(Settings::values.use_vsync.UsingGlobal()); |
| 103 | ui->disable_fps_limit->setEnabled(Settings::values.disable_fps_limit.UsingGlobal()); | ||
| 100 | ui->use_assembly_shaders->setEnabled(Settings::values.use_assembly_shaders.UsingGlobal()); | 104 | ui->use_assembly_shaders->setEnabled(Settings::values.use_assembly_shaders.UsingGlobal()); |
| 101 | ui->use_asynchronous_shaders->setEnabled( | 105 | ui->use_asynchronous_shaders->setEnabled( |
| 102 | Settings::values.use_asynchronous_shaders.UsingGlobal()); | 106 | Settings::values.use_asynchronous_shaders.UsingGlobal()); |
| @@ -108,6 +112,8 @@ void ConfigureGraphicsAdvanced::SetupPerGameUI() { | |||
| 108 | } | 112 | } |
| 109 | 113 | ||
| 110 | ConfigurationShared::SetColoredTristate(ui->use_vsync, Settings::values.use_vsync, use_vsync); | 114 | ConfigurationShared::SetColoredTristate(ui->use_vsync, Settings::values.use_vsync, use_vsync); |
| 115 | ConfigurationShared::SetColoredTristate(ui->disable_fps_limit, | ||
| 116 | Settings::values.disable_fps_limit, disable_fps_limit); | ||
| 111 | ConfigurationShared::SetColoredTristate( | 117 | ConfigurationShared::SetColoredTristate( |
| 112 | ui->use_assembly_shaders, Settings::values.use_assembly_shaders, use_assembly_shaders); | 118 | ui->use_assembly_shaders, Settings::values.use_assembly_shaders, use_assembly_shaders); |
| 113 | ConfigurationShared::SetColoredTristate(ui->use_asynchronous_shaders, | 119 | ConfigurationShared::SetColoredTristate(ui->use_asynchronous_shaders, |
diff --git a/src/yuzu/configuration/configure_graphics_advanced.h b/src/yuzu/configuration/configure_graphics_advanced.h index e61b571c7..c19c34851 100644 --- a/src/yuzu/configuration/configure_graphics_advanced.h +++ b/src/yuzu/configuration/configure_graphics_advanced.h | |||
| @@ -35,6 +35,7 @@ private: | |||
| 35 | std::unique_ptr<Ui::ConfigureGraphicsAdvanced> ui; | 35 | std::unique_ptr<Ui::ConfigureGraphicsAdvanced> ui; |
| 36 | 36 | ||
| 37 | ConfigurationShared::CheckState use_vsync; | 37 | ConfigurationShared::CheckState use_vsync; |
| 38 | ConfigurationShared::CheckState disable_fps_limit; | ||
| 38 | ConfigurationShared::CheckState use_assembly_shaders; | 39 | ConfigurationShared::CheckState use_assembly_shaders; |
| 39 | ConfigurationShared::CheckState use_asynchronous_shaders; | 40 | ConfigurationShared::CheckState use_asynchronous_shaders; |
| 40 | ConfigurationShared::CheckState use_fast_gpu_time; | 41 | ConfigurationShared::CheckState use_fast_gpu_time; |
diff --git a/src/yuzu/configuration/configure_graphics_advanced.ui b/src/yuzu/configuration/configure_graphics_advanced.ui index 846a30586..824cb2fb2 100644 --- a/src/yuzu/configuration/configure_graphics_advanced.ui +++ b/src/yuzu/configuration/configure_graphics_advanced.ui | |||
| @@ -77,6 +77,24 @@ | |||
| 77 | </widget> | 77 | </widget> |
| 78 | </item> | 78 | </item> |
| 79 | <item> | 79 | <item> |
| 80 | <widget class="QCheckBox" name="disable_fps_limit"> | ||
| 81 | <property name="enabled"> | ||
| 82 | <bool>true</bool> | ||
| 83 | </property> | ||
| 84 | <property name="toolTip"> | ||
| 85 | <string> | ||
| 86 | <html><head/><body> | ||
| 87 | <p>Presents guest frames as they become available, disabling the FPS limit in most titles.</p> | ||
| 88 | <p>NOTE: Will cause instabilities.</p> | ||
| 89 | </body></html> | ||
| 90 | </string> | ||
| 91 | </property> | ||
| 92 | <property name="text"> | ||
| 93 | <string>Disable framerate limit (experimental)</string> | ||
| 94 | </property> | ||
| 95 | </widget> | ||
| 96 | </item> | ||
| 97 | <item> | ||
| 80 | <widget class="QCheckBox" name="use_assembly_shaders"> | 98 | <widget class="QCheckBox" name="use_assembly_shaders"> |
| 81 | <property name="toolTip"> | 99 | <property name="toolTip"> |
| 82 | <string>Enabling this reduces shader stutter. Enables OpenGL assembly shaders on supported Nvidia devices (NV_gpu_program5 is required). This feature is experimental.</string> | 100 | <string>Enabling this reduces shader stutter. Enables OpenGL assembly shaders on supported Nvidia devices (NV_gpu_program5 is required). This feature is experimental.</string> |
diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp index be8933c5c..d4c7d2c0b 100644 --- a/src/yuzu/main.cpp +++ b/src/yuzu/main.cpp | |||
| @@ -1025,7 +1025,11 @@ void GMainWindow::InitializeHotkeys() { | |||
| 1025 | connect(hotkey_registry.GetHotkey(main_window, QStringLiteral("Mute Audio"), this), | 1025 | connect(hotkey_registry.GetHotkey(main_window, QStringLiteral("Mute Audio"), this), |
| 1026 | &QShortcut::activated, this, | 1026 | &QShortcut::activated, this, |
| 1027 | [] { Settings::values.audio_muted = !Settings::values.audio_muted; }); | 1027 | [] { Settings::values.audio_muted = !Settings::values.audio_muted; }); |
| 1028 | 1028 | connect(hotkey_registry.GetHotkey(main_window, QStringLiteral("Toggle Framerate Limit"), this), | |
| 1029 | &QShortcut::activated, this, [] { | ||
| 1030 | Settings::values.disable_fps_limit.SetValue( | ||
| 1031 | !Settings::values.disable_fps_limit.GetValue()); | ||
| 1032 | }); | ||
| 1029 | connect(hotkey_registry.GetHotkey(main_window, QStringLiteral("Toggle Mouse Panning"), this), | 1033 | connect(hotkey_registry.GetHotkey(main_window, QStringLiteral("Toggle Mouse Panning"), this), |
| 1030 | &QShortcut::activated, this, [&] { | 1034 | &QShortcut::activated, this, [&] { |
| 1031 | Settings::values.mouse_panning = !Settings::values.mouse_panning; | 1035 | Settings::values.mouse_panning = !Settings::values.mouse_panning; |
diff --git a/src/yuzu_cmd/config.cpp b/src/yuzu_cmd/config.cpp index 621b31571..60bf66ec0 100644 --- a/src/yuzu_cmd/config.cpp +++ b/src/yuzu_cmd/config.cpp | |||
| @@ -443,6 +443,8 @@ void Config::ReadValues() { | |||
| 443 | sdl2_config->GetBoolean("Renderer", "use_asynchronous_gpu_emulation", true)); | 443 | sdl2_config->GetBoolean("Renderer", "use_asynchronous_gpu_emulation", true)); |
| 444 | Settings::values.use_vsync.SetValue( | 444 | Settings::values.use_vsync.SetValue( |
| 445 | static_cast<u16>(sdl2_config->GetInteger("Renderer", "use_vsync", 1))); | 445 | static_cast<u16>(sdl2_config->GetInteger("Renderer", "use_vsync", 1))); |
| 446 | Settings::values.disable_fps_limit.SetValue( | ||
| 447 | sdl2_config->GetBoolean("Renderer", "disable_fps_limit", false)); | ||
| 446 | Settings::values.use_assembly_shaders.SetValue( | 448 | Settings::values.use_assembly_shaders.SetValue( |
| 447 | sdl2_config->GetBoolean("Renderer", "use_assembly_shaders", true)); | 449 | sdl2_config->GetBoolean("Renderer", "use_assembly_shaders", true)); |
| 448 | Settings::values.use_asynchronous_shaders.SetValue( | 450 | Settings::values.use_asynchronous_shaders.SetValue( |
diff --git a/src/yuzu_cmd/default_ini.h b/src/yuzu_cmd/default_ini.h index 37d895ebd..c960ccf89 100644 --- a/src/yuzu_cmd/default_ini.h +++ b/src/yuzu_cmd/default_ini.h | |||
| @@ -362,6 +362,9 @@ use_debug_asserts = | |||
| 362 | use_auto_stub = | 362 | use_auto_stub = |
| 363 | # Enables/Disables the macro JIT compiler | 363 | # Enables/Disables the macro JIT compiler |
| 364 | disable_macro_jit=false | 364 | disable_macro_jit=false |
| 365 | # Presents guest frames as they become available. Experimental. | ||
| 366 | # false: Disabled (default), true: Enabled | ||
| 367 | disable_fps_limit=false | ||
| 365 | 368 | ||
| 366 | [WebService] | 369 | [WebService] |
| 367 | # Whether or not to enable telemetry | 370 | # Whether or not to enable telemetry |