From 7ab57671577f15faea7fa97433844667e06bcb7b Mon Sep 17 00:00:00 2001 From: lat9nq <22451773+lat9nq@users.noreply.github.com> Date: Wed, 30 Jun 2021 22:22:21 -0400 Subject: core,common,yuzu qt: Add CPU accuracy option 'Auto' The current CPU accuracy settings in yuzu are fairly polarized and require more than common knowledge to know what the optimal settings for yuzu would be. This adds a curated option called 'Auto' that applies a few at the moment known-good unsafe optimizations to Dynarmic. --- src/common/settings.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src/common') diff --git a/src/common/settings.h b/src/common/settings.h index bf83186f5..f9988c266 100644 --- a/src/common/settings.h +++ b/src/common/settings.h @@ -31,9 +31,10 @@ enum class GPUAccuracy : u32 { }; enum class CPUAccuracy : u32 { - Accurate = 0, - Unsafe = 1, - DebugMode = 2, + Auto = 0, + Accurate = 1, + Unsafe = 2, + DebugMode = 3, }; /** The BasicSetting class is a simple resource manager. It defines a label and default value @@ -284,7 +285,7 @@ struct Values { Setting use_multi_core{true, "use_multi_core"}; // Cpu - Setting cpu_accuracy{CPUAccuracy::Accurate, "cpu_accuracy"}; + Setting cpu_accuracy{CPUAccuracy::Auto, "cpu_accuracy"}; BasicSetting cpuopt_page_tables{true, "cpuopt_page_tables"}; BasicSetting cpuopt_block_linking{true, "cpuopt_block_linking"}; -- cgit v1.2.3 From c8b8674ffc4225dce222bad702241afd640b9e86 Mon Sep 17 00:00:00 2001 From: lat9nq <22451773+lat9nq@users.noreply.github.com> Date: Thu, 8 Jul 2021 14:39:10 -0400 Subject: settings, yuzu qt: Add migration code for CPU accuracy Old CPU Accuracy setting won't translate well into since we're adding one at the beginning of the list. On first boot with the new setting, just use the default setting. --- src/common/settings.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/common') diff --git a/src/common/settings.h b/src/common/settings.h index f9988c266..9f7e1096b 100644 --- a/src/common/settings.h +++ b/src/common/settings.h @@ -286,6 +286,8 @@ struct Values { // Cpu Setting cpu_accuracy{CPUAccuracy::Auto, "cpu_accuracy"}; + // TODO: remove cpu_accuracy_first_time, migration setting added 8 July 2021 + BasicSetting cpu_accuracy_first_time{true, "cpu_accuracy_first_time"}; BasicSetting cpuopt_page_tables{true, "cpuopt_page_tables"}; BasicSetting cpuopt_block_linking{true, "cpuopt_block_linking"}; -- cgit v1.2.3 From dc06e11a7ba24c6052cad2c45584c628a8188274 Mon Sep 17 00:00:00 2001 From: lat9nq <22451773+lat9nq@users.noreply.github.com> Date: Thu, 8 Jul 2021 16:56:44 -0400 Subject: settings, arm_dynarmic, yuzu qt: Move CPU debugging option Decouples the CPU debugging mode from the enumeration to its own boolean. After this, it moves the CPU Debugging tab over to a sub tab underneath the Debug tab in the configuration UI. --- src/common/settings.cpp | 2 +- src/common/settings.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'src/common') diff --git a/src/common/settings.cpp b/src/common/settings.cpp index 0061e29cc..e1973af85 100644 --- a/src/common/settings.cpp +++ b/src/common/settings.cpp @@ -93,7 +93,7 @@ bool IsGPULevelHigh() { } bool IsFastmemEnabled() { - if (values.cpu_accuracy.GetValue() == CPUAccuracy::DebugMode) { + if (values.cpu_debug_mode) { return static_cast(values.cpuopt_fastmem); } return true; diff --git a/src/common/settings.h b/src/common/settings.h index 9f7e1096b..d2e91a2c9 100644 --- a/src/common/settings.h +++ b/src/common/settings.h @@ -34,7 +34,6 @@ enum class CPUAccuracy : u32 { Auto = 0, Accurate = 1, Unsafe = 2, - DebugMode = 3, }; /** The BasicSetting class is a simple resource manager. It defines a label and default value @@ -288,6 +287,7 @@ struct Values { Setting cpu_accuracy{CPUAccuracy::Auto, "cpu_accuracy"}; // TODO: remove cpu_accuracy_first_time, migration setting added 8 July 2021 BasicSetting cpu_accuracy_first_time{true, "cpu_accuracy_first_time"}; + BasicSetting cpu_debug_mode{false, "cpu_debug_mode"}; BasicSetting cpuopt_page_tables{true, "cpuopt_page_tables"}; BasicSetting cpuopt_block_linking{true, "cpuopt_block_linking"}; -- cgit v1.2.3