Wine 5.0 released

Wine 5.0 releasedOn January 21, 2020, the official release of the stable version took place Wine 5.0 - a free tool for running native Windows programs in a UNIX environment. This is an alternative, free implementation of the Windows API. The recursive acronym WINE stands for "Wine Is Not an Emulator".

This version has about a year of development and more than 7400 individual changes. Lead developer Alexandre Julliard identifies four:

  • Support for modules in PE format. This solves problems with different copy protection schemes that match system modules on disk and in memory.
  • Supports multiple monitors and multiple GPUs, including dynamic settings changes.
  • Re-implementation of XAudio2 based on the FAudio project, an open implementation of DirectX sound libraries. Switching to FAudio allows you to achieve higher sound quality in games, enable volume mixing, advanced sound effects, and more.
  • Vulkan 1.1 support.


Learn more about key innovations.

PE modules

With the MinGW compiler, most Wine modules are now built in the PE (Portable Executable, Windows binary format) executable file format instead of ELF.

PE executables are now copied to the directory ~/.wine instead of using dummy DLL files, making applications more similar to real Windows installations.

Not all modules have been converted to PE format yet. Work continues.

Graphical subsystem

As mentioned above, support for working with multiple monitors and graphics adapters has been added.

The Vulkan driver has been updated to Vulkan 1.1.126 specifications.

In addition, the WindowsCodecs library now supports additional raster formats, including palette-indexed formats.

Direct3D

Full screen Direct3D applications now block the screensaver call.

For DXGI applications, it is now possible to switch between full-screen and windowed mode using the standard Alt+Enter combination.

Direct3D 12 features have been enhanced to include support for switching between full-screen and windowed modes, changing screen modes, scaling views, and swap intervals. All of these features have already been implemented for previous versions of the Direct3D API.

The project team has worked diligently and fixed literally hundreds of bugs, so Wine's handling of various edge situations has been improved. These include sampling 2D resources in 3D samplers and vice versa, using out-of-range input values ​​for transparency and depth tests, rendering with reflected textures and buffers, using incorrect clippers (DirectDraw object) and much more.

The size of the required address space when loading 3D textures compressed using the S3TC method has been reduced (instead of loading as a whole, textures are loaded in chunks).

Various improvements and fixes related to lighting calculations have been made for older DirectDraw applications.

The base of graphics cards recognized in Direct3D has been expanded.

Network and cryptography

The Gecko engine has been updated to version 2.47.1 to support modern tools. A number of new HTML APIs have been implemented.

MSHTML now supports SVG elements.

Added many new VBScript features (such as error and exception handlers).

The ability to obtain HTTP proxy settings via DHCP has been implemented.

In the cryptographic part, support for elliptic curve cryptographic keys (ECC) via GnuTLS has been implemented, the ability to import keys and certificates from files in PFX format has been added, and support for the PBKDF2 password-based key generation scheme has been added.

Wine 5.0 released
Adobe Photoshop CS6 for Wine

Other significant innovations

  • Support for NT kernel spinlocks.
  • Thanks to the expiration of the patent for compression of DXTn and S3 textures, it became possible to include them in the default implementation.
  • Supports plug-and-play driver installation.
  • Various DirectWrite improvements.
  • Improved support for Windows Media Foundation API.
  • Better synchronization of primitives thanks to implementation on futexes.
  • Sharing Wine-Mono to save space instead of open source .NET implementation for each ~/.wine.
  • Unicode 12.0 and 12.1 support.
  • Implementation of an initial HTTP service (HTTP.sys) as a replacement for the Winsock API and IIS, resulting in better performance than the Windows Sockets API.
  • Better compatibility with Windows debuggers.
  • Better LLVM MinGW support and WineGCC cross-compilation improvements.

We can also mention improvements in the user interface. For example, minimized windows are now displayed using a title bar rather than Windows 3.1-style icons. Improved support for game controllers, including hat switch, steering wheel and pedals.

The built-in AVI, MPEG-I and WAVE decoders have been removed from Wine, replacing them with the system GStreamer or QuickTime.

The ability to use the debugger from Visual Studio for remote debugging of applications running in Wine has been added, the DBGENG (Debug Engine) library has been partially implemented, and the dependency on libwine has been removed from the files compiled for Windows.

To optimize performance, various timing functions have been migrated to use high-performance system timer functions, reducing overhead in the render loop of many games. Other performance optimizations have been made.

See full list of changes. here.

Wine 5.0 source code, Π·Π΅Ρ€ΠΊΠ°Π»ΠΎ
Binaries for various distributions
Documentation

The site AppDB A database of Windows applications compatible with Wine is maintained. Here are the leaders number of votes:

  1. final fantasy XI
  2. Adobe Photoshop CS6 (13.0)
  3. world of warcraft 8.3.0
  4. EVE Online Current
  5. Magic: The Gathering Online 4.x

It can be assumed that these applications are launched most often in Wine.

Note. The release of Wine 5.0 is dedicated to the memory of JΓ³zef Kucia, who tragically died in August 2019 at the age of 30 while exploring a cave in southern Poland. Jozef was an important contributor to the development of Direct3D Wine, as well as the lead author of the project vkd3d. During his time working on Wine, he contributed more than 2500 patches.

Wine 5.0 released

Source: habr.com

Add a comment