diff options
| author | 2023-01-04 14:56:52 -0500 | |
|---|---|---|
| committer | 2023-01-04 14:56:52 -0500 | |
| commit | 3ecc03ec1b5f8c48aee4f2e1f1428908647a1cfc (patch) | |
| tree | eff34f64b7e9d0b96bcddab5b7b3cb4f26a2704a | |
| parent | Video_core: Address feedback (diff) | |
| download | yuzu-3ecc03ec1b5f8c48aee4f2e1f1428908647a1cfc.tar.gz yuzu-3ecc03ec1b5f8c48aee4f2e1f1428908647a1cfc.tar.xz yuzu-3ecc03ec1b5f8c48aee4f2e1f1428908647a1cfc.zip | |
yuzu-ui: Add setting for disabling macro HLE
| -rw-r--r-- | src/common/settings.h | 1 | ||||
| -rw-r--r-- | src/video_core/macro/macro.cpp | 9 | ||||
| -rw-r--r-- | src/yuzu/configuration/config.cpp | 2 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_debug.cpp | 3 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_debug.ui | 15 | ||||
| -rw-r--r-- | src/yuzu_cmd/config.cpp | 1 |
6 files changed, 26 insertions, 5 deletions
diff --git a/src/common/settings.h b/src/common/settings.h index 6b199af93..5017951c5 100644 --- a/src/common/settings.h +++ b/src/common/settings.h | |||
| @@ -531,6 +531,7 @@ struct Values { | |||
| 531 | Setting<bool> reporting_services{false, "reporting_services"}; | 531 | Setting<bool> reporting_services{false, "reporting_services"}; |
| 532 | Setting<bool> quest_flag{false, "quest_flag"}; | 532 | Setting<bool> quest_flag{false, "quest_flag"}; |
| 533 | Setting<bool> disable_macro_jit{false, "disable_macro_jit"}; | 533 | Setting<bool> disable_macro_jit{false, "disable_macro_jit"}; |
| 534 | Setting<bool> disable_macro_hle{false, "disable_macro_hle"}; | ||
| 534 | Setting<bool> extended_logging{false, "extended_logging"}; | 535 | Setting<bool> extended_logging{false, "extended_logging"}; |
| 535 | Setting<bool> use_debug_asserts{false, "use_debug_asserts"}; | 536 | Setting<bool> use_debug_asserts{false, "use_debug_asserts"}; |
| 536 | Setting<bool> use_auto_stub{false, "use_auto_stub"}; | 537 | Setting<bool> use_auto_stub{false, "use_auto_stub"}; |
diff --git a/src/video_core/macro/macro.cpp b/src/video_core/macro/macro.cpp index a96e8648c..82ad0477d 100644 --- a/src/video_core/macro/macro.cpp +++ b/src/video_core/macro/macro.cpp | |||
| @@ -107,14 +107,15 @@ void MacroEngine::Execute(u32 method, const std::vector<u32>& parameters) { | |||
| 107 | } | 107 | } |
| 108 | } | 108 | } |
| 109 | 109 | ||
| 110 | if (auto hle_program = hle_macros->GetHLEProgram(cache_info.hash)) { | 110 | auto hle_program = hle_macros->GetHLEProgram(cache_info.hash); |
| 111 | if (!hle_program || Settings::values.disable_macro_hle) { | ||
| 112 | maxwell3d.RefreshParameters(); | ||
| 113 | cache_info.lle_program->Execute(parameters, method); | ||
| 114 | } else { | ||
| 111 | cache_info.has_hle_program = true; | 115 | cache_info.has_hle_program = true; |
| 112 | cache_info.hle_program = std::move(hle_program); | 116 | cache_info.hle_program = std::move(hle_program); |
| 113 | MICROPROFILE_SCOPE(MacroHLE); | 117 | MICROPROFILE_SCOPE(MacroHLE); |
| 114 | cache_info.hle_program->Execute(parameters, method); | 118 | cache_info.hle_program->Execute(parameters, method); |
| 115 | } else { | ||
| 116 | maxwell3d.RefreshParameters(); | ||
| 117 | cache_info.lle_program->Execute(parameters, method); | ||
| 118 | } | 119 | } |
| 119 | } | 120 | } |
| 120 | } | 121 | } |
diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp index 3e51426c8..e9425b5bd 100644 --- a/src/yuzu/configuration/config.cpp +++ b/src/yuzu/configuration/config.cpp | |||
| @@ -562,6 +562,7 @@ void Config::ReadDebuggingValues() { | |||
| 562 | ReadBasicSetting(Settings::values.reporting_services); | 562 | ReadBasicSetting(Settings::values.reporting_services); |
| 563 | ReadBasicSetting(Settings::values.quest_flag); | 563 | ReadBasicSetting(Settings::values.quest_flag); |
| 564 | ReadBasicSetting(Settings::values.disable_macro_jit); | 564 | ReadBasicSetting(Settings::values.disable_macro_jit); |
| 565 | ReadBasicSetting(Settings::values.disable_macro_hle); | ||
| 565 | ReadBasicSetting(Settings::values.extended_logging); | 566 | ReadBasicSetting(Settings::values.extended_logging); |
| 566 | ReadBasicSetting(Settings::values.use_debug_asserts); | 567 | ReadBasicSetting(Settings::values.use_debug_asserts); |
| 567 | ReadBasicSetting(Settings::values.use_auto_stub); | 568 | ReadBasicSetting(Settings::values.use_auto_stub); |
| @@ -1198,6 +1199,7 @@ void Config::SaveDebuggingValues() { | |||
| 1198 | WriteBasicSetting(Settings::values.quest_flag); | 1199 | WriteBasicSetting(Settings::values.quest_flag); |
| 1199 | WriteBasicSetting(Settings::values.use_debug_asserts); | 1200 | WriteBasicSetting(Settings::values.use_debug_asserts); |
| 1200 | WriteBasicSetting(Settings::values.disable_macro_jit); | 1201 | WriteBasicSetting(Settings::values.disable_macro_jit); |
| 1202 | WriteBasicSetting(Settings::values.disable_macro_hle); | ||
| 1201 | WriteBasicSetting(Settings::values.enable_all_controllers); | 1203 | WriteBasicSetting(Settings::values.enable_all_controllers); |
| 1202 | WriteBasicSetting(Settings::values.create_crash_dumps); | 1204 | WriteBasicSetting(Settings::values.create_crash_dumps); |
| 1203 | WriteBasicSetting(Settings::values.perform_vulkan_check); | 1205 | WriteBasicSetting(Settings::values.perform_vulkan_check); |
diff --git a/src/yuzu/configuration/configure_debug.cpp b/src/yuzu/configuration/configure_debug.cpp index dacc75a20..cbeb8f168 100644 --- a/src/yuzu/configuration/configure_debug.cpp +++ b/src/yuzu/configuration/configure_debug.cpp | |||
| @@ -73,6 +73,8 @@ void ConfigureDebug::SetConfiguration() { | |||
| 73 | ui->dump_macros->setChecked(Settings::values.dump_macros.GetValue()); | 73 | ui->dump_macros->setChecked(Settings::values.dump_macros.GetValue()); |
| 74 | ui->disable_macro_jit->setEnabled(runtime_lock); | 74 | ui->disable_macro_jit->setEnabled(runtime_lock); |
| 75 | ui->disable_macro_jit->setChecked(Settings::values.disable_macro_jit.GetValue()); | 75 | ui->disable_macro_jit->setChecked(Settings::values.disable_macro_jit.GetValue()); |
| 76 | ui->disable_macro_hle->setEnabled(runtime_lock); | ||
| 77 | ui->disable_macro_hle->setChecked(Settings::values.disable_macro_hle.GetValue()); | ||
| 76 | ui->disable_loop_safety_checks->setEnabled(runtime_lock); | 78 | ui->disable_loop_safety_checks->setEnabled(runtime_lock); |
| 77 | ui->disable_loop_safety_checks->setChecked( | 79 | ui->disable_loop_safety_checks->setChecked( |
| 78 | Settings::values.disable_shader_loop_safety_checks.GetValue()); | 80 | Settings::values.disable_shader_loop_safety_checks.GetValue()); |
| @@ -117,6 +119,7 @@ void ConfigureDebug::ApplyConfiguration() { | |||
| 117 | Settings::values.disable_shader_loop_safety_checks = | 119 | Settings::values.disable_shader_loop_safety_checks = |
| 118 | ui->disable_loop_safety_checks->isChecked(); | 120 | ui->disable_loop_safety_checks->isChecked(); |
| 119 | Settings::values.disable_macro_jit = ui->disable_macro_jit->isChecked(); | 121 | Settings::values.disable_macro_jit = ui->disable_macro_jit->isChecked(); |
| 122 | Settings::values.disable_macro_hle = ui->disable_macro_hle->isChecked(); | ||
| 120 | Settings::values.extended_logging = ui->extended_logging->isChecked(); | 123 | Settings::values.extended_logging = ui->extended_logging->isChecked(); |
| 121 | Settings::values.perform_vulkan_check = ui->perform_vulkan_check->isChecked(); | 124 | Settings::values.perform_vulkan_check = ui->perform_vulkan_check->isChecked(); |
| 122 | UISettings::values.disable_web_applet = ui->disable_web_applet->isChecked(); | 125 | UISettings::values.disable_web_applet = ui->disable_web_applet->isChecked(); |
diff --git a/src/yuzu/configuration/configure_debug.ui b/src/yuzu/configuration/configure_debug.ui index 102c8c66c..15acefe33 100644 --- a/src/yuzu/configuration/configure_debug.ui +++ b/src/yuzu/configuration/configure_debug.ui | |||
| @@ -176,7 +176,7 @@ | |||
| 176 | </property> | 176 | </property> |
| 177 | </widget> | 177 | </widget> |
| 178 | </item> | 178 | </item> |
| 179 | <item row="0" column="2"> | 179 | <item row="1" column="2"> |
| 180 | <widget class="QCheckBox" name="dump_macros"> | 180 | <widget class="QCheckBox" name="dump_macros"> |
| 181 | <property name="enabled"> | 181 | <property name="enabled"> |
| 182 | <bool>true</bool> | 182 | <bool>true</bool> |
| @@ -202,6 +202,19 @@ | |||
| 202 | </property> | 202 | </property> |
| 203 | </widget> | 203 | </widget> |
| 204 | </item> | 204 | </item> |
| 205 | <item row="0" column="2"> | ||
| 206 | <widget class="QCheckBox" name="disable_macro_hle"> | ||
| 207 | <property name="enabled"> | ||
| 208 | <bool>true</bool> | ||
| 209 | </property> | ||
| 210 | <property name="toolTip"> | ||
| 211 | <string>When checked, it disables the macro HLE functions. Enabling this makes games run slower</string> | ||
| 212 | </property> | ||
| 213 | <property name="text"> | ||
| 214 | <string>Disable Macro HLE</string> | ||
| 215 | </property> | ||
| 216 | </widget> | ||
| 217 | </item> | ||
| 205 | <item row="1" column="0"> | 218 | <item row="1" column="0"> |
| 206 | <widget class="QCheckBox" name="enable_shader_feedback"> | 219 | <widget class="QCheckBox" name="enable_shader_feedback"> |
| 207 | <property name="toolTip"> | 220 | <property name="toolTip"> |
diff --git a/src/yuzu_cmd/config.cpp b/src/yuzu_cmd/config.cpp index de9b220da..1e45e57bc 100644 --- a/src/yuzu_cmd/config.cpp +++ b/src/yuzu_cmd/config.cpp | |||
| @@ -348,6 +348,7 @@ void Config::ReadValues() { | |||
| 348 | ReadSetting("Debugging", Settings::values.use_debug_asserts); | 348 | ReadSetting("Debugging", Settings::values.use_debug_asserts); |
| 349 | ReadSetting("Debugging", Settings::values.use_auto_stub); | 349 | ReadSetting("Debugging", Settings::values.use_auto_stub); |
| 350 | ReadSetting("Debugging", Settings::values.disable_macro_jit); | 350 | ReadSetting("Debugging", Settings::values.disable_macro_jit); |
| 351 | ReadSetting("Debugging", Settings::values.disable_macro_hle); | ||
| 351 | ReadSetting("Debugging", Settings::values.use_gdbstub); | 352 | ReadSetting("Debugging", Settings::values.use_gdbstub); |
| 352 | ReadSetting("Debugging", Settings::values.gdbstub_port); | 353 | ReadSetting("Debugging", Settings::values.gdbstub_port); |
| 353 | 354 | ||