summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFernando Sahmkow <fsahmkow27@gmail.com>2019-10-09 00:35:04 +0200
committerFernandoS27 <fsahmkow27@gmail.com>2019-10-15 17:55:20 +0200
commit27d571c08436e7131f67fed2771434a571c1e976 (patch)
tree1b6714882be298ae3c7e3f616039237861dbe0b9
parentKernel: Corrections to ModifyByWaitingCountAndSignalToAddressIfEqual (diff)
downloadyuzu-27d571c08436e7131f67fed2771434a571c1e976.tar
yuzu-27d571c08436e7131f67fed2771434a571c1e976.tar.gz
yuzu-27d571c08436e7131f67fed2771434a571c1e976.tar.bz2
yuzu-27d571c08436e7131f67fed2771434a571c1e976.tar.lz
yuzu-27d571c08436e7131f67fed2771434a571c1e976.tar.xz
yuzu-27d571c08436e7131f67fed2771434a571c1e976.tar.zst
yuzu-27d571c08436e7131f67fed2771434a571c1e976.zip
-rw-r--r--src/core/hle/kernel/svc.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/core/hle/kernel/svc.cpp b/src/core/hle/kernel/svc.cpp
index 823d1d403..101f72b7d 100644
--- a/src/core/hle/kernel/svc.cpp
+++ b/src/core/hle/kernel/svc.cpp
@@ -1577,10 +1577,12 @@ static void SleepThread(Core::System& system, s64 nanoseconds) {
}
if (redundant) {
- system.CoreTiming().Idle();
- } else {
- system.PrepareReschedule(current_thread->GetProcessorID());
+ // If it's redundant, the core is pretty much idle. Some games keep idling
+ // a core while it's doing nothing, we advance timing to avoid costly continuos
+ // calls.
+ system.CoreTiming().AddTicks(2000);
}
+ system.PrepareReschedule(current_thread->GetProcessorID());
}
/// Wait process wide key atomic