summaryrefslogtreecommitdiff
path: root/src/yuzu/configuration
diff options
context:
space:
mode:
Diffstat (limited to 'src/yuzu/configuration')
-rw-r--r--src/yuzu/configuration/config.cpp33
-rw-r--r--src/yuzu/configuration/config.h1
-rw-r--r--src/yuzu/configuration/configure_cpu.cpp24
3 files changed, 32 insertions, 26 deletions
diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp
index e80a3df77..24d46c7cc 100644
--- a/src/yuzu/configuration/config.cpp
+++ b/src/yuzu/configuration/config.cpp
@@ -737,8 +737,7 @@ void Config::ReadCpuValues() {
qt_config->beginGroup(QStringLiteral("Cpu"));
if (global) {
- Settings::values.cpu_accuracy = static_cast<Settings::CPUAccuracy>(
- ReadSetting(QStringLiteral("cpu_accuracy"), 0).toInt());
+ ReadSettingGlobal(Settings::values.cpu_accuracy, QStringLiteral("cpu_accuracy"), 0);
Settings::values.cpuopt_page_tables =
ReadSetting(QStringLiteral("cpuopt_page_tables"), true).toBool();
@@ -757,12 +756,12 @@ void Config::ReadCpuValues() {
Settings::values.cpuopt_reduce_misalign_checks =
ReadSetting(QStringLiteral("cpuopt_reduce_misalign_checks"), true).toBool();
- Settings::values.cpuopt_unsafe_unfuse_fma =
- ReadSetting(QStringLiteral("cpuopt_unsafe_unfuse_fma"), true).toBool();
- Settings::values.cpuopt_unsafe_reduce_fp_error =
- ReadSetting(QStringLiteral("cpuopt_unsafe_reduce_fp_error"), true).toBool();
- Settings::values.cpuopt_unsafe_inaccurate_nan =
- ReadSetting(QStringLiteral("cpuopt_unsafe_inaccurate_nan"), true).toBool();
+ ReadSettingGlobal(Settings::values.cpuopt_unsafe_unfuse_fma,
+ QStringLiteral("cpuopt_unsafe_unfuse_fma"), true);
+ ReadSettingGlobal(Settings::values.cpuopt_unsafe_reduce_fp_error,
+ QStringLiteral("cpuopt_unsafe_reduce_fp_error"), true);
+ ReadSettingGlobal(Settings::values.cpuopt_unsafe_inaccurate_nan,
+ QStringLiteral("cpuopt_unsafe_inaccurate_nan"), true);
}
qt_config->endGroup();
@@ -1314,8 +1313,10 @@ void Config::SaveCpuValues() {
qt_config->beginGroup(QStringLiteral("Cpu"));
if (global) {
- WriteSetting(QStringLiteral("cpu_accuracy"),
- static_cast<int>(Settings::values.cpu_accuracy), 0);
+ WriteSettingGlobal(QStringLiteral("cpu_accuracy"),
+ static_cast<u32>(Settings::values.cpu_accuracy.GetValue(global)),
+ Settings::values.renderer_backend.UsingGlobal(),
+ static_cast<u32>(Settings::CPUAccuracy::Accurate));
WriteSetting(QStringLiteral("cpuopt_page_tables"), Settings::values.cpuopt_page_tables,
true);
@@ -1332,12 +1333,12 @@ void Config::SaveCpuValues() {
WriteSetting(QStringLiteral("cpuopt_reduce_misalign_checks"),
Settings::values.cpuopt_reduce_misalign_checks, true);
- WriteSetting(QStringLiteral("cpuopt_unsafe_unfuse_fma"),
- Settings::values.cpuopt_unsafe_unfuse_fma, true);
- WriteSetting(QStringLiteral("cpuopt_unsafe_reduce_fp_error"),
- Settings::values.cpuopt_unsafe_reduce_fp_error, true);
- WriteSetting(QStringLiteral("cpuopt_unsafe_inaccurate_nan"),
- Settings::values.cpuopt_unsafe_inaccurate_nan, true);
+ WriteSettingGlobal(QStringLiteral("cpuopt_unsafe_unfuse_fma"),
+ Settings::values.cpuopt_unsafe_unfuse_fma, true);
+ WriteSettingGlobal(QStringLiteral("cpuopt_unsafe_reduce_fp_error"),
+ Settings::values.cpuopt_unsafe_reduce_fp_error, true);
+ WriteSettingGlobal(QStringLiteral("cpuopt_unsafe_inaccurate_nan"),
+ Settings::values.cpuopt_unsafe_inaccurate_nan, true);
}
qt_config->endGroup();
diff --git a/src/yuzu/configuration/config.h b/src/yuzu/configuration/config.h
index 5a2c026b3..ce3355588 100644
--- a/src/yuzu/configuration/config.h
+++ b/src/yuzu/configuration/config.h
@@ -132,5 +132,6 @@ private:
};
// These metatype declarations cannot be in common/settings.h because core is devoid of QT
+Q_DECLARE_METATYPE(Settings::CPUAccuracy);
Q_DECLARE_METATYPE(Settings::RendererBackend);
Q_DECLARE_METATYPE(Settings::GPUAccuracy);
diff --git a/src/yuzu/configuration/configure_cpu.cpp b/src/yuzu/configuration/configure_cpu.cpp
index 4f99bc80f..a59ea3087 100644
--- a/src/yuzu/configuration/configure_cpu.cpp
+++ b/src/yuzu/configuration/configure_cpu.cpp
@@ -29,15 +29,17 @@ void ConfigureCpu::SetConfiguration() {
const bool runtime_lock = !Core::System::GetInstance().IsPoweredOn();
ui->accuracy->setEnabled(runtime_lock);
- ui->accuracy->setCurrentIndex(static_cast<int>(Settings::values.cpu_accuracy));
- UpdateGroup(static_cast<int>(Settings::values.cpu_accuracy));
+ ui->accuracy->setCurrentIndex(static_cast<int>(Settings::values.cpu_accuracy.GetValue()));
+ UpdateGroup(static_cast<int>(Settings::values.cpu_accuracy.GetValue()));
ui->cpuopt_unsafe_unfuse_fma->setEnabled(runtime_lock);
- ui->cpuopt_unsafe_unfuse_fma->setChecked(Settings::values.cpuopt_unsafe_unfuse_fma);
+ ui->cpuopt_unsafe_unfuse_fma->setChecked(Settings::values.cpuopt_unsafe_unfuse_fma.GetValue());
ui->cpuopt_unsafe_reduce_fp_error->setEnabled(runtime_lock);
- ui->cpuopt_unsafe_reduce_fp_error->setChecked(Settings::values.cpuopt_unsafe_reduce_fp_error);
+ ui->cpuopt_unsafe_reduce_fp_error->setChecked(
+ Settings::values.cpuopt_unsafe_reduce_fp_error.GetValue());
ui->cpuopt_unsafe_inaccurate_nan->setEnabled(runtime_lock);
- ui->cpuopt_unsafe_inaccurate_nan->setChecked(Settings::values.cpuopt_unsafe_inaccurate_nan);
+ ui->cpuopt_unsafe_inaccurate_nan->setChecked(
+ Settings::values.cpuopt_unsafe_inaccurate_nan.GetValue());
}
void ConfigureCpu::AccuracyUpdated(int index) {
@@ -59,11 +61,13 @@ void ConfigureCpu::UpdateGroup(int index) {
}
void ConfigureCpu::ApplyConfiguration() {
- Settings::values.cpu_accuracy =
- static_cast<Settings::CPUAccuracy>(ui->accuracy->currentIndex());
- Settings::values.cpuopt_unsafe_unfuse_fma = ui->cpuopt_unsafe_unfuse_fma->isChecked();
- Settings::values.cpuopt_unsafe_reduce_fp_error = ui->cpuopt_unsafe_reduce_fp_error->isChecked();
- Settings::values.cpuopt_unsafe_inaccurate_nan = ui->cpuopt_unsafe_inaccurate_nan->isChecked();
+ Settings::values.cpu_accuracy.SetValue(
+ static_cast<Settings::CPUAccuracy>(ui->accuracy->currentIndex()));
+ Settings::values.cpuopt_unsafe_unfuse_fma.SetValue(ui->cpuopt_unsafe_unfuse_fma->isChecked());
+ Settings::values.cpuopt_unsafe_reduce_fp_error.SetValue(
+ ui->cpuopt_unsafe_reduce_fp_error->isChecked());
+ Settings::values.cpuopt_unsafe_inaccurate_nan.SetValue(
+ ui->cpuopt_unsafe_inaccurate_nan->isChecked());
}
void ConfigureCpu::changeEvent(QEvent* event) {