We use affiliate links to earn us some pennies. Learn more.

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.
5 Likes
About the author -
author picture
I am the owner of GamingOnLinux. After discovering Linux back in the days of Mandrake in 2003, I constantly checked on the progress of Linux until Ubuntu appeared on the scene and it helped me to really love it. You can reach me easily by emailing GamingOnLinux directly. You can also follow my personal adventures on Bluesky.
See more from me
You can also find comments for this article on social media: Mastodon
All posts need to follow our rules. For users logged in: please hit the Report Flag icon on any post that breaks the rules or contains illegal / harmful content. Guest readers can email us for any issues.
5 comments Subscribe

mrdeathjr 13 hours ago
​This wine version work in my case using mesa 25.2-dev


Scarlet Nexus

https://i.imgur.com/3LisQx9.png


Tales of Arise

https://i.imgur.com/B4zPT30.png

https://i.imgur.com/YuI2IrK.png


Almost forget something more related paul gofman patch:

https://gitlab.winehq.org/wine/wine/-/merge_requests/7871

UFFD supports the functionality similar to Windows write watches starting from kernel 6.7.




Last edited by mrdeathjr on 3 May 2025 at 11:01 am UTC
ContainerRunner 12 hours ago
This sounds really awesome. I hope Proton backports this patch, because Once Human suffers sometimes from extreme loading on Proton and they use .NET too. However, this game has a lot of other issues too.
Cloversheen 12 hours ago
also the patch similar to this one was in Proton for years and is not known to introduce problems (before UFFD support was added in kernel 6.7 there was similar mechanism introduced with a custom patch in SteamOS and some custom kernels which Proton was using).
From how I'm reading the commit message, similar functionality seems to already exist in Proton.
numasan 11 hours ago
Streets of Rage 4 has a native Linux port, so wonder why they chose that as an example? I have the game but can't remember the load times.
CatKiller 11 hours ago
  • Supporter Plus
Streets of Rage 4 has a native Linux port, so wonder why they chose that as an example? I have the game but can't remember the load times.
What the Wine devs are after are test cases that indicate an issue with Wine's implementation. Fixing the implementation, while a good goal in itself, will likely also help many other applications. It doesn't matter what the test case application actually is, as long as it shows some repeatable thing to test against.
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: PayPal.

This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
Login / Register



Buy Games
Buy games with our affiliate / partner links: