Some fixes, and some more performance improvements.
Thanks again @j4reporting and @sezero for their support !
Fixes:
- sezero/quakespasm#124 : Physics/Lerp/Timing Bug Introduced in 0.85.5
- #792 : Detach worker threads
- #794 : Split update_lightmap shaders in two groups. Fixes rendering issues on RasberryPi.
- #795 : Crash in Image_LoadImage attempting to load skyboxes. Fixes the loading crash of Boss Faction
Improvements:
- Added command line option :
-pinnedworkers worker0, worker1, ...
to limit and pin the worker threads on particular cores.
Useful to get a nice a boost on hybrid P-Core / E-core architectures, when limiting to P-cores AND pinning each thread
give interesting boost, because apparently Win11 can't help migrating the threads all the time, everywhere.
This feature is only implemented on Windows and GNU Linux, MacOS do not have such capability and doesn't really need it.
Examples :
-pinnedworkers 2,8,10,4,11
instantiates 5 workers, pinned on cores 2,8,10,4,11 respectively.- On a i5-13500 made of 6x2 P-Cores (cores 0-11) + 8 E-cores (cores 12-20) the best performance in Windows 11 is indeed
-pinnedworkers 0,1,2,3,4,5,6,7,8,9,10
(leaving 1 free P-Core)
- General performance improvements for many-cores, probably only visible on the few behemoth levels we all know of.
- Other many-core performance improvements oriented to ARM targets (Apple Silicon, RaspberryPi)
- Code cleanups.
- Library updates, thanks to @sezero as usual.
Please note: Windows 32bit binaries are not tested / not supported and are provided "as-is".
Windows binaries require the Microsoft Visual C++ Redistributable:
https://aka.ms/vs/17/release/vc_redist.x86.exe (32 bit)
https://aka.ms/vs/17/release/vc_redist.x64.exe (64 bit)
Linux AppImage requires at least glibc 2.31. Check with ldd --version
if in doubt (any recent Linux distribution should easily satisfy this). FUSE must be enabled and available (see https://docs.appimage.org/user-guide/troubleshooting/fuse.html)
Full Changelog: 1.32.2...1.32.3