Wine 5.0 Is Released With Multi-Monitor Support, Vulkan 1.1 Support and New XAudio2 re-implementation
The Wine compatibility layer for running Windows software on GNU/Linux systems has come a really long way Wine 4.0 was released exactly one year ago on January 22nd, 2019. More than 7400 changes by 1718 people went into the Wine 5.0 release. Wine is now at a point where it can be used to run the vast majority of Windows applications, and games, with no issues.
written by Öyvind Sæther. published 2020-01-22 - last edited 2020-01-22
"This release is dedicated to the memory of Józef Kucia, who passed away in August 2019 at the young age of 30. Józef was a major contributor to Wine's Direct3D implementation, and the lead developer of the vkd3d project. His skills and his kindness are sorely missed by all of us."
Wine 5.0 may not be a too big of a deal to those of us who have been using the Wine development branch for some time. The changes between the last few development versions and the final release are small. The sum of the changes between Wine 5.0 and Wine 4.0, released exactly one year ago, add up to a great Wine release with a lot of new features.
Wine 5.0 supports multiple monitors as well as multiple graphics cards. Dynamic configuration changes are detected and supported.
Version 1.1.126 of the Vulkan specification is supported as of this release. That version is quite close to the recently finalized Vulkan 1.2 specification.
Better And More Accurate Graphics
Wine has a built-in DirectX 10/11 to OpenGL translation layer which allows Wine to run Windows games at a slight performance-loss. This translation layer has been greatly improved. It now supports changing between fullscreen and windowed output, display mode changes and scaled presets. A lot of effort has gone into fixing game- or application-specific edge cases.
It is now possible to switch between windowed and fullscreen modes by pressing alt+↵ Enter.
The optional wine-dxvk package (not maintained by the Wine team) is still required to use Vulkan as a backend for DirectX 10/11 games. The latest wine-dxvk works great with Wine 5.0. Wine has a built-in vkd3d library for DirectX 12.
Common and rare game controllers are well supported in Wine 5.0. That includes specialized controllers like wheels, gas and brake controls. This version drops support for the old joystick API from Linux versions prior to 2.2.
Linux Kernel 5.2 gained support for case-insensitive files and folders. Wine 5.0 supports that feature and uses it when it searches for files in a directory where that feature is enabled.
The XAudio2 libraries have been re-implemented using the FAudio library. That translates to better compatibility and better audio.
Windows Portable Executable Modules
One huge, yet not very noticeable, change between Wine 4.0 and 5.0 is the move to modules in the Windows Portable Executable (PE) format. Most modules are now built using PE instead of ELF if the MinGW compiler is available. This is quite important for games and other software with digital restriction management schemes that try to verify if on-disk and in-memory system modules are identical. The binary PE modules are copied into the
$WINEPREFIX directory (typically
$HOME/.wine) the first time wine is launched. This eats 1.1 GiB of storage space (
WINEPREFIX=$HOME/.wine-test wine notepad.exe will create a 1.1 GB large
Instructions for using source code development tree can be found at winehq.org/git. Building Wine is somewhat difficult compared to most applications so you may not want to do that unless you really need to.
Distributions that have been shipping Wine development releases, like Manjaro Linux and Fedora, will have 5.0 available in their repositories within a few days. Those using more "stable" focused distributions like Debian may get it by the time Wine 6.0 is released next year.