aboutsummaryrefslogtreecommitdiff
path: root/src/common
diff options
context:
space:
mode:
authorswurl <swurl@swurl.xyz>2025-05-29 08:19:51 +0000
committercrueter <crueter@noreply.localhost>2025-05-29 08:19:51 +0000
commitb78089e978331c113a0fcf0ce9e71f592d52a242 (patch)
tree724a0f42c765a66b545cfef060586620dffef055 /src/common
parented47533be802b312c1fbc559190b3dfd07a462e5 (diff)
Fast CPU Time & Improved Fast GPU Time (#109)
needs android setting Signed-off-by: swurl <swurl@swurl.xyz> Co-authored-by: Aleksandr Popovich <alekpopo@pm.me> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/109 Co-authored-by: swurl <swurl@swurl.xyz> Co-committed-by: swurl <swurl@swurl.xyz>
Diffstat (limited to 'src/common')
-rw-r--r--src/common/settings.h37
-rw-r--r--src/common/settings_enums.h4
2 files changed, 38 insertions, 3 deletions
diff --git a/src/common/settings.h b/src/common/settings.h
index 5e0efab8e6..8c62716ba7 100644
--- a/src/common/settings.h
+++ b/src/common/settings.h
@@ -238,6 +238,23 @@ struct Values {
SwitchableSetting<CpuAccuracy, true> cpu_accuracy{linkage, CpuAccuracy::Auto,
CpuAccuracy::Auto, CpuAccuracy::Paranoid,
"cpu_accuracy", Category::Cpu};
+
+ SwitchableSetting<bool> use_fast_cpu_time{linkage,
+ false,
+ "use_fast_cpu_time",
+ Category::Cpu,
+ Specialization::Paired,
+ true,
+ true};
+ SwitchableSetting<CpuClock> fast_cpu_time{linkage,
+ CpuClock::Boost,
+ "fast_cpu_time",
+ Category::Cpu,
+ Specialization::Default,
+ true,
+ true,
+ &use_fast_cpu_time};
+
SwitchableSetting<bool> cpu_debug_mode{linkage, false, "cpu_debug_mode", Category::CpuDebug};
Setting<bool> cpuopt_page_tables{linkage, true, "cpuopt_page_tables", Category::CpuDebug};
@@ -428,9 +445,23 @@ struct Values {
Category::RendererAdvanced};
SwitchableSetting<bool> use_asynchronous_shaders{linkage, false, "use_asynchronous_shaders",
Category::RendererAdvanced};
- SwitchableSetting<bool> use_fast_gpu_time{
- linkage, true, "use_fast_gpu_time", Category::RendererAdvanced, Specialization::Default,
- true, true};
+ SwitchableSetting<bool> use_fast_gpu_time{linkage,
+ true,
+ "use_fast_gpu_time",
+ Category::RendererAdvanced,
+ Specialization::Paired,
+ true,
+ true};
+
+ SwitchableSetting<GpuOverclock> fast_gpu_time{linkage,
+ GpuOverclock::Medium,
+ "fast_gpu_time",
+ Category::RendererAdvanced,
+ Specialization::Default,
+ true,
+ true,
+ &use_fast_gpu_time};
+
SwitchableSetting<bool> use_vulkan_driver_pipeline_cache{linkage,
true,
"use_vulkan_driver_pipeline_cache",
diff --git a/src/common/settings_enums.h b/src/common/settings_enums.h
index 43abe150f8..c9b6a54ba6 100644
--- a/src/common/settings_enums.h
+++ b/src/common/settings_enums.h
@@ -134,6 +134,8 @@ ENUM(CpuBackend, Dynarmic, Nce);
ENUM(CpuAccuracy, Auto, Accurate, Unsafe, Paranoid);
+ENUM(CpuClock, Boost, Fast)
+
ENUM(MemoryLayout, Memory_4Gb, Memory_6Gb, Memory_8Gb, Memory_10Gb, Memory_12Gb);
ENUM(ConfirmStop, Ask_Always, Ask_Based_On_Game, Ask_Never);
@@ -157,6 +159,8 @@ ENUM(AppletMode, HLE, LLE);
ENUM(SpirvOptimizeMode, Never, OnLoad, Always);
+ENUM(GpuOverclock, Low, Medium, High)
+
template <typename Type>
inline std::string CanonicalizeEnum(Type id) {
const auto group = EnumMetadata<Type>::Canonicalizations();