Ya we said it last Friday, that the stable version could arrive at any time. But, at least I didn't expect it to be so soon. WineHQ has launched WINE 9.0, and he has done it after only 5 Release Candidates. If I had to bet, and after a Christmas period in which they skipped one, I would have put my money in the early February box, but I would have lost.
Among the new features there is one that I think stands out, although perhaps you have already imagined it and you may even be tired of the subject. WINE 9.0 includes initial support for Wayland, although at this time it is a function that is marked as experimental. And the thing is that a large part of the users who use WINE do so on Linux, and it is in kernel-based systems where there are many projects that are seriously targeting Wayland.
WINE 9.0 highlights
- WoW64:
- All transitions from Windows to Unix code go through the NT syscall interface. This is an important milestone that marks the completion of multi-year rearchitecting work to convert modules to the PE format and introduce a proper boundary between the Windows and Unix worlds.
- All modules that call a Unix library contain WoW64 thunks to allow calling the 64-bit Unix library from 32-bit. 64-bit Unix library from 32-bit PE code. This means that it is possible to run 32-bit Windows applications on a 64-bit Unix installation. This is called the new WoW64 mode, as opposed to the old WoW64 mode where 32-bit applications run inside a 32-bit Unix.
- The new WoW64 mode is not yet enabled by default. It can be activated by passing the option –enable-archs=i386,x86_64 to configure. This is expected to work for most applications, but there are still some limitations.
- The new WoW64 mode finally allows you to run 32-bit applications on recent versions of macOS that removed support for 32-bit Unix processes.
- Driver Wayland:
- There is an experimental Wayland graphics driver. It's still a work in progress, but it already implements many features, such as basic window management, multiple monitors, high DPI scaling, relative motion events, and Vulkan support.
- The Wayland controller is not yet activated by default. It can be enabled via the “KCU\Software\Wine\Drivers” registry key by running
wine reg.exe add HKCU\\Software\Wine\Drivers /v Graphics /d x11,wayland and making sure the DISPLAY environment variable is disabled.
- ARM64:
- The completion of the PE/Unix separation means that it is possible to run existing Windows binaries on ARM64.
- The charger supports charging ARM64X and ARM64EC modules.
- 86-bit x32 emulation interface has been implemented. No emulation library is provided with Wine at this time, but an external library that exports the interface can be used by specifying its name in the directory
"HKLM\Software\Microsoft\Wow64\x86". The FEX emulator implements this interface when built as a PE. - There is initial support for building Wine for the ARM64EC architecture, using an experimental LLVM toolchain. Once the toolchain is ready, it will be used to perform a proper ARM64X build and enable 86-bit x64 emulation.
- Recorders:
- The PostScript driver has been reimplemented to work from Windows-formatted spool files and avoid any direct calls from the Unix side.
- WinRT theming supports a dark theme option, with corresponding toggle in WineCfg.
- The Vulkan driver supports up to version 1.3.272 of the Vulkan specification.
- Several GdiPlus features have been optimized to improve graphics performance.
- Direct3D:
- The multithreaded command stream sleeps instead of spinning up when it is not processing rendering commands. This reduces power consumption for programs that do not take up all of the available bandwidth of the command stream. Power consumption should be comparable to when multithreaded command flow is disabled.
disabled. - Direct3D 10 effects support many more instructions.
- Several optimizations have been made to the WineD3D core and Vulkan backend.
- The Vulkan renderer correctly validates that the required features are supported by the underlying device, and informs the application of the corresponding Direct3D feature level.
- D3DXFillTextureTX and D3DXFillCubeTextureTX have been implemented.
- The OpenGL ARB shader supports shadow sampling using ARB_fragment_program_shadow.
- The HLSL compiler supports majority array compilation flags.
- D3DXLoadMeshHierarchyFromX and related functions support loading user data via ID3DXLoadUserData.
- The multithreaded command stream sleeps instead of spinning up when it is not processing rendering commands. This reduces power consumption for programs that do not take up all of the available bandwidth of the command stream. Power consumption should be comparable to when multithreaded command flow is disabled.
- Audio and video:
- The base of several of the DirectMusic modules is implemented. Many tests are added to validate the behavior of the dmime sequencer and the dmsynth MIDI synthesizer.
- Loading of DLS1 and DLS2 sound sources is implemented, as well as the SF2 format for compatibility with standard Linux MIDI sound sources.
- MIDI playback is implemented in dmsynth, with the integration of the software synthesizer from the FluidSynth library, and using DirectSound for audio output.
- Doppler shift is supported in DirectSound.
- The Indeo IV50 video decoder for Windows has been implemented.
- Other improvements to DirectShow, input devices, desktop integration, and Internet and networking, available in the release note.
WINE 9.0 is the new stable version of the software and it can be downloaded from the next button. From now on they will launch some stable corrective (9.0.1, 9.0.2...) and will begin with the development ones (9.1, 9.2), these now to prepare for WINE 10 in 2025.