summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/common/settings.h1
-rw-r--r--src/video_core/macro/macro.cpp9
-rw-r--r--src/yuzu/configuration/config.cpp2
-rw-r--r--src/yuzu/configuration/configure_debug.cpp3
-rw-r--r--src/yuzu/configuration/configure_debug.ui15
-rw-r--r--src/yuzu_cmd/config.cpp1
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