Wine 4.0 stable version has been released yesterday. It comes with four main features including support for Vulkan, Direct3D 12, Game controllers and High-DPI support on Android.
In total, there are over 6,000 individual changes and improvements. Wine is an implementation of the Windows Application Programming Interface (API) library. makes it possible to run Windows programs alongside Linux or any other Unix-like operating system. Wine can also be used to recompile a program into a format that Linux can understand more easily, though access to the Windows program source code is required.
Major improvements in Wine 4.0
Direct3D 12 support
Wine 4.0 provides initial support for Direct3D 12 and requires the vkd3d library and a Vulkan-capable graphics card. The Direct3D graphics card database recognizes more graphics cards.
The Multi-Threaded Command Stream feature is enabled by default. The OpenGL core contexts are always used by default when available to all graphics cards, and all versions of Direct3D before 12. Several Direct3D 11 interfaces have been updated to version 11.2, and DXGI interfaces have been updated to version 1.6.
Support for using the correct swap interval is implemented, for both
DXGI and DirectDraw applications. Application-configurable frame latency is implemented for Direct3D 9Ex and DXGI applications.
In Wine 4.0, Vulkan driver is implemented, using the host Vulkan libraries under X11, or MoltenVK on macOS. Wine 4.0 also provides a built-in vulkan-1 loader as an alternative to the SDK loader. A number of Direct2D interfaces have been updated to version 1.2.
- ARGB visual can be used as default X11 visual.
- The old 16-bit DIB.DRV driver is implemented using the DIB engine.
- For large polygons, polygon drawing is much faster in the DIB engine.
Improvements made in Kernel
Support for running DOS binaries under Wine is removed. In wine 4.0, all the CPU control and debug registers can be accessed by kernel drivers, including on 64-bit. Events, semaphores, mutexes, and timers are also implemented in kernel mode for device drivers. The WaitOnAddress synchronization primitives are supported. Application settings, compatibility information, and execution levels are also recognized in application manifests.
Wine 4.0 supports the new version of the Android graphics buffer allocator API to enable graphics support on Android version 8 and above. Android x86-64 platforms are supported also in 64-bit mode.
New external dependencies
- The Vulkan library is used to implement the Vulkan graphics driver.
- The Vkd3d library is used to implement Direct3D 12 on top of Vulkan.
- The SDL library is used to support game controllers.
- The GSSAPI library is used to implement Kerberos authentication.
These are a select few changes. For a full list of improvements and additions, check out the release notes.