rpcsx/rpcs3/Emu
plappermaul 925f2ce02f Use Linux timers for sleeps up to 1ms (#6697)
* 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
2019-10-09 20:03:34 +03:00
..
Audio Audio: restore snd_pcm_recover for ALSA backend 2019-09-08 20:49:51 +03:00
Cell Use Linux timers for sleeps up to 1ms (#6697) 2019-10-09 20:03:34 +03:00
CPU GDB Server: fix and cleanup 2019-10-09 00:11:44 +03:00
Io Input: move some pad handler logic to the parent class 2019-09-24 21:09:24 +02:00
Memory Use g_fxo for rsx::thread 2019-09-26 23:26:36 +03:00
RSX typo fix 2019-10-05 12:01:46 +03:00
CMakeLists.txt GDB Server: fix and cleanup 2019-10-09 00:11:44 +03:00
GameInfo.h Qt: Fall back to VERSION in game list 2019-08-21 07:57:44 +02:00
GDB.cpp GDB Server: parse 'GDB Server' config entry 2019-10-09 16:41:01 +03:00
GDB.h GDB Server: fix ppu_thread access cast 2019-10-09 03:12:45 +03:00
IdManager.cpp Finally remove fxm from IdManager 2019-09-26 23:26:36 +03:00
IdManager.h Finally remove fxm from IdManager 2019-09-26 23:26:36 +03:00
IPC.h Cleanup semaphore<> (sema.h) and mutex.h (shared_mutex) 2018-09-03 23:00:36 +03:00
System.cpp GDB Server: fix and cleanup 2019-10-09 00:11:44 +03:00
System.h GDB Server: fix and cleanup 2019-10-09 00:11:44 +03:00
VFS.cpp Improve vfs::host::unlink on Windows (for sys_fs_rmdir) 2019-09-25 18:47:38 +03:00
VFS.h Improve vfs::host::unlink on Windows (for sys_fs_rmdir) 2019-09-25 18:47:38 +03:00