summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorGravatar bunnei2021-01-03 03:27:29 -0800
committerGravatar GitHub2021-01-03 03:27:29 -0800
commit71e18dddbe14464160ac2d90e42d8b41da3d2e21 (patch)
tree5520c28eb3930f0eb6672e5a0461e4ebceebd9fb /src/core
parentMerge pull request #5279 from bunnei/buffer-queue-connect (diff)
parentexternals: Update dynarmic to 3806284cb (diff)
downloadyuzu-71e18dddbe14464160ac2d90e42d8b41da3d2e21.tar.gz
yuzu-71e18dddbe14464160ac2d90e42d8b41da3d2e21.tar.xz
yuzu-71e18dddbe14464160ac2d90e42d8b41da3d2e21.zip
Merge pull request #5278 from MerryMage/cpuopt_unsafe_inaccurate_nan
dynarmic: Add Unsafe_InaccurateNaN optimization
Diffstat (limited to 'src/core')
-rw-r--r--src/core/arm/dynarmic/arm_dynarmic_32.cpp3
-rw-r--r--src/core/arm/dynarmic/arm_dynarmic_64.cpp3
-rw-r--r--src/core/settings.h1
3 files changed, 7 insertions, 0 deletions
diff --git a/src/core/arm/dynarmic/arm_dynarmic_32.cpp b/src/core/arm/dynarmic/arm_dynarmic_32.cpp
index 8aaf11eee..0831dd5d2 100644
--- a/src/core/arm/dynarmic/arm_dynarmic_32.cpp
+++ b/src/core/arm/dynarmic/arm_dynarmic_32.cpp
@@ -181,6 +181,9 @@ std::shared_ptr<Dynarmic::A32::Jit> ARM_Dynarmic_32::MakeJit(Common::PageTable&
181 if (Settings::values.cpuopt_unsafe_reduce_fp_error) { 181 if (Settings::values.cpuopt_unsafe_reduce_fp_error) {
182 config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_ReducedErrorFP; 182 config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_ReducedErrorFP;
183 } 183 }
184 if (Settings::values.cpuopt_unsafe_inaccurate_nan) {
185 config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_InaccurateNaN;
186 }
184 } 187 }
185 188
186 return std::make_unique<Dynarmic::A32::Jit>(config); 189 return std::make_unique<Dynarmic::A32::Jit>(config);
diff --git a/src/core/arm/dynarmic/arm_dynarmic_64.cpp b/src/core/arm/dynarmic/arm_dynarmic_64.cpp
index d2e1dc724..4c5ebca22 100644
--- a/src/core/arm/dynarmic/arm_dynarmic_64.cpp
+++ b/src/core/arm/dynarmic/arm_dynarmic_64.cpp
@@ -212,6 +212,9 @@ std::shared_ptr<Dynarmic::A64::Jit> ARM_Dynarmic_64::MakeJit(Common::PageTable&
212 if (Settings::values.cpuopt_unsafe_reduce_fp_error) { 212 if (Settings::values.cpuopt_unsafe_reduce_fp_error) {
213 config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_ReducedErrorFP; 213 config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_ReducedErrorFP;
214 } 214 }
215 if (Settings::values.cpuopt_unsafe_inaccurate_nan) {
216 config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_InaccurateNaN;
217 }
215 } 218 }
216 219
217 return std::make_shared<Dynarmic::A64::Jit>(config); 220 return std::make_shared<Dynarmic::A64::Jit>(config);
diff --git a/src/core/settings.h b/src/core/settings.h
index 1cb7ff7f5..a324530bd 100644
--- a/src/core/settings.h
+++ b/src/core/settings.h
@@ -131,6 +131,7 @@ struct Values {
131 131
132 bool cpuopt_unsafe_unfuse_fma; 132 bool cpuopt_unsafe_unfuse_fma;
133 bool cpuopt_unsafe_reduce_fp_error; 133 bool cpuopt_unsafe_reduce_fp_error;
134 bool cpuopt_unsafe_inaccurate_nan;
134 135
135 // Renderer 136 // Renderer
136 Setting<RendererBackend> renderer_backend; 137 Setting<RendererBackend> renderer_backend;