Laptops

Wine 10.7 released with an interesting loading time performance improvement

Wine 10.7 released with an interesting loading time performance improvement

The Wine 10.7 development release is out now, and in the highlights they noted an interesting sounding performance improvement for select games.

Highlights of the release:

  • User fault fd support to improve write watches performance.
  • Support for Float format conversions in WindowsCodecs.
  • More work on the new PDB backend.
  • Various bug fixes.


For that first bullet point, it comes from a merge request titled “ntdll: Use UFFD for tracking write watches when possible” from CodeWeavers developer Paul Gofman that notes:

The primary motivation for this patchset is performance improvement. The issue was originally observed with Streets of Rage 4 game which was sometimes loading [levels] for about 1-1.5 min (while that was happening almost instantly on Windows). The performance problem is coming from .Net Core memory management / garbage collector code. That huge performance issue was caused not only by direct turnaround difference for write watched memory access but also by specifics of the [algorithm] which was using different memory pools / strategies [effectively] based on memory access timing and was resulting in especially unfortunate pattern hitting write-protected (for write watch) pages much more often than it normally would. Since then something has changed either in the game or in .Net Core it is using, and the difference in level loads is not that dramatic without this optimization, but still it is some 6-8 sec without this patch instead of 1.5-2sec with this patch or on Windows, suggesting that it still provides a huge performance improvement at least for .Net Core memory management.

And the bug fixes noted for this release include:

  • #18803 PokerStars windows disappear on alert
  • #18926 In Winamp, the “send to…” submenu in the playlist menu does not appear
  • #20172 Button “Alt Gr” triggers access violation in Teach2000
  • #31775 Misaligned icons in icon bar
  • #33624 winhelp: Popups appear with bogus scrollbars which disappear when you click them
  • #37706 ScrollWindowEx() returns ERROR if the window is not visible (in the Windows API sense); real Windows returns NULLREGION
  • #38379 Barnham Junction fails to start “Cannot create file C\users\username\Temp\BBC*.tmp\Sim Resources\Barnham Junction\Nameboard.bmp”
  • #48792 HeidiSQL: some icons completely grayed out
  • #50226 Native Access 1.13.5 Setup PC.exe Installer installs infinitely
  • #50851 The procedure entry point RasClearConnectionStatistics could not be located in the dynamic link library RASAPI32.dll
  • #56107 Comdlg32/Color – Cross not painted
  • #57684 Games do not receive keyboard input in virtual desktop mode
  • #58072 LVSCW_AUTOSIZE does not include the size of the state imagelist
  • #58082 Race condition in GlobalMemoryStatusEx() implementation

Source: Wine GitLab

Article taken from GamingOnLinux.com.

Leave a Reply

Your email address will not be published. Required fields are marked *