Stable release of Wine 10.0

After a year of development and 29 experimental versions, the stable release of the open implementation of the Win32 API — Wine 10.0 has been presented, which incorporates over 6000 changes. Key achievements in this new version include full support for the ARM64EC architecture, scaling on high pixel density screens, the default inclusion of the Wayland driver, implementation of panels for screen and joystick configuration, an alternative multimedia backend based on FFmpeg, Bluetooth driver support, Vulkan 1.4 support, and the ability to emulate video mode switching.

Wine confirms the full operation of 5372 Windows programs (up from 5336 a year ago, 5266 two years ago, and 5156 three years ago), while another 4435 programs (up from 4397 a year ago, 4370 two years ago, and 4312 three years ago) work well with additional settings and external DLLs. 4020 programs (up from 3943 a year ago, 3888 two years ago, and 3813 three years ago) have minor operational issues that do not hinder the use of core application functions.

Key innovations in Wine 10.0:

  • ARM64
    • Full support for the ARM64EC architecture (ARM64 Emulation Compatible) has been achieved, bringing its support level in Wine to parity with the ARM64 architecture. The ARM64EC architecture is designed to simplify the porting of applications originally written for x86_64 systems to ARM64 systems and allows executing individual modules with x86_64 code in an ARM64 environment using an emulator.
    • Full support for the ARM64X PE file format has been implemented, allowing the combination of ARM64EC and ARM64 architecture code within a single executable file. To build Wine in ARM64X format, LLVM from Git must be installed (the necessary functionality will be part of the LLVM 20 release) and the "—enable-archs=arm64ec,aarch64" option must be specified when running the 'configure' script.
    • An interface for emulating 64-bit x86 systems has been realized. When using ARM64EC, Wine itself runs as is, while emulation is applied only to x86-64 application code. The emulator library is not yet included in the main Wine package, but external emulator FEX, built with ARM64EC support, can be used to execute x86-64 code in an ARM64 environment.
    • To support ARM64, the system must use 4KB memory pages, as required by the Windows ABI (running in environments with Linux kernels using 16K or 64K memory pages is not currently supported).
  • Graphics subsystem
    • More precise scaling has been implemented for high pixel density (High-DPI) displays. DPI Awareness mode support has been ensured for organizing the display of applications on high pixel density screens, depending on whether the application supports DPI adaptation or not (applications that do not consider DPI are automatically scaled). Options have been added to override High-DPI support for specific applications or Wine prefixes.
    • The driver for the Vulkan graphics API has been updated to support the Vulkan 1.4 specification (Vulkan 1.3.272 was supported in Wine 9.0). Extensions for encoding and decoding video with Vulkan have been added.
    • When using the X11 backend, the ability to render Vulkan child windows for applications that use such windows for 3D content output has been implemented (previously, this capability was only available for OpenGL).
    • The GdiPlus library has added support for the font linking mechanism, which allows multiple fonts to be used in text display when individual fonts do not cover all the characters found in the text.
  • Wayland
    • In the default configuration, the winewayland.drv driver has been activated, allowing Wine to be used in environments based on the Wayland protocol without employing XWayland and X11 components. Wine will launch applications directly on Wayland by default only if XWayland is unavailable; otherwise, launching with XWayland remains a priority. To forcibly enable Wayland, you can use the DISPLAY environment variable or add a key in the registry by creating a file file.reg: Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Wine\Drivers] "Graphics"="wayland" and applying it with the command: $ WINEPREFIX=\/path\/to\/prefix wine regedit \/path\/to\/file.reg
    • Support for OpenGL and pixel buffers (pBuffer) has been added to the winewayland.drv driver.
    • Issues with the positioning of pop-up windows in Wayland-based environments have been resolved.
    • Support for key press auto-repeat when holding down keys has been implemented for Wayland.
  • Desktop integration
    • An experimental 'modesetting' emulation mechanism has been added, allowing the emulation of video mode switching without actually changing screen settings. The visibility of screen resolution changes without switching video modes is created through window extension and scaling.
    • A new Desktop Control Panel applet (desk.cpl) has been added, implementing an interface for managing display settings (for example, you can change the virtual desktop resolution or configure the emulated display parameters).
    • A feature to reset screen settings to default values has been added in case it is impossible to restore the state after a process crash.
    • Support for disabling icon display in the system tray has been added (specify "NoTrayItemsDisplay=1" in "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer").
    • Support for disabling shell launchers in desktop mode has been added (specify "NoDesktop=1" in "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer").
  • Direct3D
    • Rendering with OpenGL now requires support for GLSL 1.20, as well as the extensions EXT_framebuffer_object and ARB_texture_non_power_of_two. Support for the old ARB shader backend and OffscreenRenderingMode settings has been discontinued.
    • A fixed-function graphics pipeline for Direct3D 9 and earlier versions has been added (older Direct3D only provided predefined graphical operations that could not be altered), implemented using the HLSL shader language and allowing emulation of fixed functions when rendering via the Vulkan or OpenGL APIs.
    • When rendering using Vulkan, Vulkan extensions for dynamically changing the graphics pipeline state are utilized, helping to reduce stuttering in games.
    • An alternative backend glsl-vkd3d for GLSL shaders has been added, using vkd3d-shader.
    • Initial support for compiling Direct3D effects using vkd3d-shader has been provided.
    • The D3DX9 library now has the ability to generate MIP textures (MipMap) when loading volumetric textures. Support has been added for 64bpp RGBA and 48bpp RGB color representation formats in PNG images, as well as formats X8L8V8U8, A2W10V10U10, A8P8, V16U16, and Q16W16V16U16.
  • Audio and Video
    • As an alternative to the GStreamer-based backend, a new multimedia backend based on FFmpeg has been implemented, suitable for supporting the Media Foundation framework. To enable the alternative backend, specify "DisableGstByteStreamHandler=1" in the registry section "HKCU\Software\Wine\MediaFoundation".
    • The implementation of the Media Foundation API has been improved, now working better with applications dependent on demultiplexing and decoding components.
    • The DirectMusic API has been updated to support loading MIDI files.
  • Input devices
    • An initial version of the Bluetooth driver has been added.
    • A Joystick Control Panel applet (joy.cpl) has been added with joystick settings implementation.
    • Improvements have been made related to pointing devices (touchpads, mice) using the HID (Human Interface Device) protocol. The mouhid.sys driver has been added for HID devices. Proper parsing of composite input devices has been implemented, and information about them is transmitted to Windows applications as separate devices.
    • Support for touch screens has been added to the X11 backend, enabling multi-touch mode through WM_POINTER* message handling (WM_POINTERENTER, WM_POINTERLEAVE, etc.).
    • Some internal structures of the user32 library have been placed in shared memory, improving performance and reducing the load on the Wine Server.
    • Support for handling XInput2 events in relation to individual windows has been added to winex11.
    • Proper support for keyboards with Dvorak layout has been implemented.
  • Core (Windows kernel interfaces)
    • Support for elevating process privileges has been added (a process initially started as a regular user can be granted administrator privileges). When creating server processes (msi action server), as well as processes invoking RtlCreateUserProcess() and CreateProcessInternal(), a limited administrator token is used by default.
    • When retrieving information about disk labels, access to system services through DBus is now preferred, instead of attempting direct access to the device.
    • A unidirectional inter-process communication (IPC) mechanism, Mailslots, is now implemented directly in the Wine server, achieving full support for Windows semantics.
    • Support for serial port event waiting in asynchronous mode has been implemented.
    • Full support for XSTATE processor extensions in thread contexts has been added, allowing the use of new vector extensions such as AVX-512.
  • Built-in Applications
    • The input processing engine used in the cmd.exe command interpreter has been rewritten. Support for '||' and '&&' operations has been added in cmd.exe.
    • The findstr utility has been updated to support regular expressions and case-insensitive searches.
    • The regsvr32 and rundll32 utilities now support registering ARM64EC modules.
    • Utilities have been added: sort for sorting input data, fc for comparing files, and where for finding files.
    • The wmic application has an interactive mode implemented.
    • Explorer now includes optional support for a start menu and a toolbar. It ensures the launch of explorer.exe with reduced access rights.
  • Development Tools
    • The winebuild tool has added the option "-marm64x" for generating hybrid ARM64X libraries.
    • The winegcc tool includes the option "-marm64x", enabling compilation for ARM64X.
    • Files generated using the Interface Definition Language (IDL) include components fully supporting execution in interpreted mode.
    • The IDL compiler has added support for generating type libraries (TypeLib) in the old format (SLTG).
    • The winedump utility now supports saving minidump table dumps, C++ exception information, and typelib resources.
  • Miscellaneous
    • Improved support for the Diffie-Hellman key exchange protocol (DH). Added the ability to configure and retrieve DH parameters. Handlers have been implemented to create pairs from public and private keys.
    • Support for OAEP (Optimal Asymmetric Encryption Padding) is ensured alongside the RSA algorithm.
    • The DirectPlay API has implemented support for network sessions.
    • Handled asynchronous input/output states when operating in WoW64 mode (64-bit Windows-on-Windows), allowing 32-bit Windows applications to run in 64-bit Unix systems.
    • Support for loading ODBC drivers for databases built for Windows has been added.
    • Full support for RPC/COM, C++ RTTI (Run-Time Type Information), and C++ exceptions has been implemented for the ARM platform.
    • In the C runtime, support for UTF-8 encoding has been implemented in ANSI functions.
    • The MSHTML engine's capabilities have been expanded. Support for prototypes and object constructors has been added. A new binding interface for MSHTML has been introduced in the JavaScript engine. Built-in MSHTML functions have been transformed into proper JavaScript objects. The JavaScript garbage collector has been improved to cover all script execution contexts in the thread. Support for JavaScript ArrayBuffer and DataView objects has been added.
    • Support for static analysis using Clang and JUnit test report generation has been added to the Gitlab-based continuous integration system.
    • The built-in library Capstone 5.0.3 is included, which implements disassembly in the WineDb debugger.
    • The components have been updated to new versions: Vkd3d 1.14, Faudio 24.10, FluidSynth 2.4.0, LDAP 2.5.18, LCMS2 2.16, LibJpeg 9f, LibMPG123 1.32.9, LibPng 1.6.44, LibTiff 4.7.0, LibXml2 2.12.8, LibXslt 1.1.42, and Zlib 1.3.1.

Source: opennet.ru

Buy reliable website hosting with DDoS protection, VPS VDS servers 🔥 Buy reliable website hosting with DDoS protection, VPS VDS servers | ProHoster