Wine 11.0, the latest stable release of the open-source compatibility layer that allows Windows games and apps to run on Linux and macOS, has been released.
The annual release rounds off another year of development effort, with two standout features: ntsync kernel module support for improved performance, and a fully mature WoW64 mode that now handles 16-bit applications (among other changes).
All of these changes were available to sample in the bi-weekly Wine development releases. If you kept pace with those builds throughout last year, the majority of what’s new in Wine 11.0 won’t surprise you.
For everyone else, let’s uncork the changes…
Wine 11.0: What’s New?
Ntsync Boosts Performance
Wine 11.0 is able to use the ntsync kernel module on Linux 6.14 and newer.
With ntsync, Wine emulates Windows NT ‘synchronisation primitives’ in the kernel rather than in userspace. The benefit? Improved performance in multi-threaded apps and games, though single-threaded apps will apparently see minimal (if any) benefit.
One catch is that some Linux distributions don’t load the ntsync module by default, but you can enable it yourself by running sudo modprobe ntsync if you think you’d benefit. If it works well, you can make the change persist between reboots.
WoW64 Mode Matures
The 2024 release of Wine 9.0 added a ‘new’ WoW64 mode to let 32-bit Windows apps to run on 64-bit Wine installs without requiring 32-bit system libraries (a lot of Linux distributions no longer provide 32-bit or multilib libraries in their archives).
In Wine 11.0 the ‘new’ WoW64 mode is now fully-supported and reaches feature parity with the old version, gaining OpenGL memory mappings, SCSI pass-through, 16-bit support, 32-bit prefixes and other buffs.
It also simplifies things by ditching the separate wine64 binary, leaving just a single wine loader that picks the right mode (32-bit or 64-bit) based on what you’re trying to run. If both versions of an app installed it’ll default to 64-bit, but you can launch the 32-bit manually.
In all, these changes are good news for Linux users who want to continue running legacy Windows apps and older games on modern Linux distros – posterity, ahoy!
Wayland Driver Expanded
Wine 11.0 also ships a more mature Wayland driver boasting clipboard support in both directions (i.e., copying from Wine and pasting into a native app, and vice versa), and drag and drop support from Wayland apps into Wine apps.
The driver now emulates display mode changes through compositor scaling which should prove useful for older Windows games that try to switch to a lower resolution (like 640×480) which would otherwise render teeny-tiny windows on a higher-res display.
Though the Wayland driver was made default in Wine 10.0 and worked well, it lacked a few creature comforts that users relied on for daily use. It’s great to see Wine 11.0 plug those gaps.
GPU Buffs Galore
Exclusive fullscreen mode is now supported, and Direct3D fullscreen handling improved. If you’re playing a game that wants to control display modes directly, as a lot of older DirectX 9-era games do, these will behave more predictably.
Wine’s EGL backend is now the default for OpenGL rendering on X11, replacing the older GLX backend. Though both handle OpenGL context creation, EGL shares code with Wine’s Wayland driver meaning fixes to one benefit the other.
Besides that, Wine 11.0 supports Vulkan 1.4 APIs, additional Win32 extensions, and hardware decoding of H.264 through D3D11 video APIs using Vulkan Video is now available.
Applications which rely on modern graphics APIs for video playback (e.g., media players, streaming apps, gaming cutscenes) can make use of GPU decoding rather than task the CPU. This should result in smooth performance overall.
And There’s More…
Wine 11.0 has new thread priority changes on Linux and macOS that should see multi-threaded apps and games run more smoothly (separate from the ntsync stuff further up). On Linux you may need to tweak the system’s nice limit to benefit — most distros set conservative defaults.
ARM64 devices can now simulate 4K page sizes on systems with larger native pages (16K or 64K), though Wine Project developers note that is limited to simpler applications right now – Wine’s ARM64 support is maturing nicely, though.
Improved SoundFont (SF2) support should mean older games that use MIDI for their soundtracks, like many late 90s and early 2000s titles did, should have music that sounds noticeably better – although as it’s MIDI, ‘noticeably’ is perhaps overselling it a tad!
Other highlights in this update: new command-line tools (timeout and an initial runas); Windows gaming configuration tab in the Joystick Control Panel; initial support for D3DKMT objects; and Mono 10.4.0 to bolster .NET application support.
Force feedback support offer improved compatibility and performance on racing wheels and flight sticks and other input devices, and there are shader model bumps to make for really old DirectX games look a bit better than they were.
A few other changes that catch my eye:
- TIFF image support improvements
- Unicode 17.0.0 character bump
- IPv6 ping support
- TWAIN 2.0 scanning
- Zip64 support in Packaging services
- Support for larger page sizes on ARM64
- New Bluetooth driver + BLE services
- ECDSA_P521/ECDH_P521 algorithms in BCrypt
Plus, there are literally hundreds of game-specific fixes bottled up inside of this release: Nioh 2 – The Complete Edition, StarCraft 2, The Witcher 2, Wing Command Secret Ops, Call of Duty: Black Ops II, Final Fantasy XI and Battle.net among them.
In all, Wine 11.0 ships with a year’s worth of work, spanning thousands of individual commits across the Wine 10.x series of bi-weekly releases and release candidate. There’s plenty more to this release than my highlights above.
For a thorough overview, check the official Wine 11.0 changelog.
Get Wine 11.0
Want to try the new release for yourself? Wine 11.0 source code can be downloaded from the Wine Project Gitlab, but why crush grapes when you can buy it bottled using official binary packages for all major Linux distributions.
Wine maintains its own Ubuntu repo for Ubuntu 22.04 LTS and above, so it is trivial to install new stable Wine releases (though allow devs time to package it).
Got a Windows game or app that’s been giving you grief in older versions of Wine? Wine 11.0 might be worth a shot (drink pun, sorry). Let me know in the comments if you try this version and it solves or improves things for you.