Wine-Staging 6.0-RC5 Is Testing A Patch That May Hurt The Performance Of Some Games
Wine-Staging 6.0-RC5 doesn't change much given Wine's upstream feature freeze ahead of the Wine 6.0 release in the next few weeks. Plus there has been the Christmas and New Year holidays.
But the sole new patch introduced with Wine-Staging 6.0-RC5 is interesting from the technical perspective but does carry some risk of hurting the performance of Windows games running under Wine. The work picked up for staging in 6.0-RC5 is the code for process-local synchronization objects use private interfaces into the Unix library.
As explained in that thread, process-local synchronization APIs are currently implemented using Unixlib vectors rather than system calls. Meanwhile Wine developers believe Windows with their Win32 futexes and the like are built atop an internal, undocumented interface that in turn are likely system calls.
But as noted there, performance problems may come up with games/software making extensive use of the synchronization objects like futexes, "There is a problem with these patches, however. Some performance testing done by Etienne Juvigny reveals that Star Citizen, a game which makes heavy use of Win32 futexes, suffers a drop in performance from these patches. On one machine, configured to be maximally CPU-limited, performance drops from 92 to 80 FPS." There are a few ideas why that is occurring but no easy solution yet. In any case this code for now is just in Wine-Staging and not the upstream Wine code-base.
Those wanting to test the upstream Wine or Wine-Staging releases can find them at WineHQ.org. The official Wine 6.0 release is expected in the coming weeks.