mirror of
https://github.com/RPCS3/rpcs3.git
synced 2024-11-17 08:11:51 +00:00
925f2ce02f
* Use Linux timers for sleeps up to 1ms (v3) The current sleep timer implementation basically offers two variants. Either wait the specified time exactly with a condition variable (as host) or use a combination of it with a thread yielding busy loop afterwards (usleep timer). While the second one is very precise it consumes CPU loops for each wait call below 50us. Games like Bomberman Ultra spam 30us waits and the emulator hogs low power CPUs. Switching to host mode reduces CPU consumption but gives a ~50us penalty for each wait call. Thus extending all sleeps by a factor of more than two. The following bugfix tries to improve the system timer for Linux by using Linux native timers for small wait calls below 1ms. This has two effects. - Host wait setting has much less wait overhead - usleep wait setting produces lower CPU overhead |
||
---|---|---|
.. | ||
address_range.h | ||
asm.h | ||
AtomicPtr.h | ||
BEType.h | ||
bin_patch.cpp | ||
bin_patch.h | ||
bit_set.h | ||
BitField.h | ||
cfmt.h | ||
cond.cpp | ||
cond.h | ||
Config.cpp | ||
Config.h | ||
CPUStats.h | ||
CRC.h | ||
date_time.h | ||
dynamic_library.cpp | ||
dynamic_library.h | ||
event.h | ||
File.cpp | ||
File.h | ||
geometry.h | ||
git-version-gen.cmd | ||
GSL.h | ||
hash.h | ||
Interval.h | ||
JIT.cpp | ||
JIT.h | ||
lockless.h | ||
Log.cpp | ||
Log.h | ||
LUrlParser.cpp | ||
LUrlParser.h | ||
mutex.cpp | ||
mutex.h | ||
rXml.cpp | ||
rXml.h | ||
sema.cpp | ||
sema.h | ||
StrFmt.cpp | ||
StrFmt.h | ||
StrUtil.h | ||
sync.h | ||
sysinfo.cpp | ||
sysinfo.h | ||
Thread.cpp | ||
Thread.h | ||
Timer.h | ||
typemap.h | ||
types.h | ||
version.cpp | ||
version.h | ||
VirtualMemory.cpp | ||
VirtualMemory.h |