Collabora developers have been working for some time on back-end Linux Kernel improvements to help Linux gaming, and Wine / Steam Play Proton - the latest patches have now been posted for futex2. Available to read about on the Linux Kernel Mailing List, Collabora developer André Almeida introduced the latest set.
What's all this about then? Well, the original futex (more info) introduced in 2003 has certain drawbacks. Developers have been trying to improve it but it's proven difficult to get new code and features added in given the legacy of it. Some of the new features just don't fit into the existing futex, and it can be slow - so they're working on an new version.
For Linux gaming and running games through compatibility layers like Wine and Proton, futex causes issues:
The use case lies in the Wine implementation of the Windows NT interface WaitMultipleObjects. This Windows API function allows a thread to sleep waiting on the first of a set of event sources (mutexes, timers, signal, console input, etc) to signal. Considering this is a primitive synchronization operation for Windows applications, being able to quickly signal events on the producer side, and quickly go to sleep on the consumer side is essential for good performance of those running over Wine.
So the idea is to better match how Windows does things, to ensure running games built for Windows on Linux will run with good performance.
While the patches have been posted and you could try and test them, Collabora mentioned on Twitter to just stick with the previous implementation with Proton for now.
See more from me