Marek Threads RadeonSI Gallium3D, Big Performance Gains For Many Games

This Gallium3D threading code won't immediately be beneficial to all Gallium3D drivers as the drivers must themselves be thread-safe around their pipe context functions.
Marek says the performance improvements aren't very high for some games/apps and there could be more done around thread synchronization, but with RadeonSI he's getting good enough results in a number of games where he's hoping to enable it by default. RadeonSI would enable threaded Gallium by default for OpenGL core and compatibility profiles along with OpenGL ES.
Some of the noted improvements are 16% better performance in Alien Isolation, 13% better performance in BioShock Infinite, 12% better performance in Borderlands 2, 10% better performance in Civilization VI, 8% better performance in Counter-Strike: Global Offensive, 12% better performance in ET: Legacy, and 27% better performance in OpenArena. Games that are GPU-bound won't see an advantage out of this threaded Gallium work.
This threaded Gallium3D code also benefits GtkPerf and X11 performance too with GLAMOR, leading up to double digit percentage improvements.
The 13 patches implementing threaded Gallium and flipping it on for RadeonSI can be found on Mesa-dev. Hopefully the work will be merged soon into Mesa Git and of course I'll be running a number of benchmarks when that happens.
39 Comments