Added option to synchronize core tick speed to max speed percentage

This commit is contained in:
spectranator
2024-04-27 14:57:06 +02:00
parent d37c170663
commit 2ad113f22c
3 changed files with 19 additions and 2 deletions

View File

@@ -14,6 +14,7 @@
#include "common/x64/cpu_wait.h"
#endif
#include "common/settings.h"
#include "common/microprofile.h"
#include "core/core_timing.h"
#include "core/hardware_properties.h"
@@ -184,10 +185,20 @@ void CoreTiming::ResetTicks() {
}
u64 CoreTiming::GetClockTicks() const {
u64 fres;
if (is_multicore) [[likely]] {
return clock->GetCNTPCT();
fres = clock->GetCNTPCT();
} else {
fres = Common::WallClock::CPUTickToCNTPCT(cpu_ticks);
}
if (Settings::values.sync_core_speed.GetValue()) {
const double ticks = static_cast<double>(fres);
const double speed_limit = static_cast<double>(Settings::values.speed_limit.GetValue())*0.01;
return static_cast<u64>(ticks/speed_limit);
} else {
return fres;
}
return Common::WallClock::CPUTickToCNTPCT(cpu_ticks);
}
u64 CoreTiming::GetGPUTicks() const {