428 lines
14 KiB
Plaintext
428 lines
14 KiB
Plaintext
The Wine team is proud to announce that the stable release Wine 5.0
|
|
is now available.
|
|
|
|
This release represents a year of development effort and over 7,400
|
|
individual changes. It contains a large number of improvements that
|
|
are listed in the release notes below. The main highlights are:
|
|
|
|
- Builtin modules in PE format.
|
|
- Multi-monitor support.
|
|
- XAudio2 reimplementation.
|
|
- Vulkan 1.1 support.
|
|
|
|
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.
|
|
|
|
The source is available from the following locations:
|
|
|
|
https://dl.winehq.org/wine/source/5.0/wine-5.0.tar.xz
|
|
http://mirrors.ibiblio.org/wine/source/5.0/wine-5.0.tar.xz
|
|
|
|
Binary packages for various distributions will be available from:
|
|
|
|
https://www.winehq.org/download
|
|
|
|
You will find documentation on https://www.winehq.org/documentation
|
|
|
|
You can also get the current source directly from the git
|
|
repository. Check https://www.winehq.org/git for details.
|
|
|
|
Wine is available thanks to the work of many people. See the file
|
|
AUTHORS in the distribution for the complete list.
|
|
|
|
----------------------------------------------------------------
|
|
|
|
What's new in Wine 5.0
|
|
======================
|
|
|
|
|
|
*** PE modules
|
|
|
|
- Most modules are built in PE format (Portable Executable, the
|
|
Windows binary format) instead of ELF when the MinGW compiler is
|
|
available. This helps various copy protection schemes that check
|
|
that the on-disk and in-memory contents of system modules are
|
|
identical.
|
|
|
|
- The actual PE binaries are copied into the Wine prefix instead of
|
|
the fake DLL files. This makes the prefix look more like a real
|
|
Windows installation, at the cost of some extra disk space.
|
|
|
|
- Modules that have been converted to PE can use standard wide-char C
|
|
functions, as well as wide-char character constants like L"abc".
|
|
This makes the code easier to read.
|
|
|
|
- Not all modules have been converted to PE yet; this is an ongoing
|
|
process that will continue during the Wine 5.x development series.
|
|
|
|
- The Wine C runtime is updated to support linking to MinGW-compiled
|
|
binaries; it is used by default instead of the MinGW runtime when
|
|
building DLLs.
|
|
|
|
|
|
*** Graphics
|
|
|
|
- Multiple display adapters and monitors are properly supported,
|
|
including dynamic configuration changes.
|
|
|
|
- The Vulkan driver supports up to version 1.1.126 of the Vulkan spec.
|
|
|
|
- The WindowsCodecs library is able to convert more bitmap formats,
|
|
including palette-indexed formats.
|
|
|
|
|
|
*** Direct3D
|
|
|
|
- Fullscreen Direct3D applications inhibit the screensaver.
|
|
|
|
- DXGI swapchain presents inform the application when the
|
|
corresponding window is minimized. This typically allows
|
|
applications to reduce CPU usage while minimized, and is in some
|
|
cases required to allow the application window to be restored again.
|
|
|
|
- Switching between fullscreen and windowed modes using the standard
|
|
Alt+Enter combination is implemented for DXGI applications.
|
|
|
|
- The following features are implemented for Direct3D 12 applications:
|
|
- Switching between fullscreen and windowed.
|
|
- Changing display modes.
|
|
- Scaled presents.
|
|
- Swap intervals.
|
|
These features were previously already implemented for earlier
|
|
versions of the Direct3D API.
|
|
|
|
- The handling of various edge cases is improved. Among others:
|
|
- Out of range reference values for the alpha and stencil tests.
|
|
- Sampling 2D resources with 3D samplers and vice versa.
|
|
- Drawing with mapped textures and buffers.
|
|
- Usage of invalid DirectDraw clipper objects.
|
|
- Creating Direct3D devices on invalid Windows, like the desktop
|
|
window.
|
|
- Viewports with a minimum Z larger than or equal to the maximum Z.
|
|
- Resources bound through both shader-resource views and
|
|
render-target or depth-stencil views at the same time.
|
|
- Blits between formats with and without alpha components.
|
|
Since well-behaved applications don't rely on these edge cases, they
|
|
typically only affect one or two applications each. There are
|
|
nevertheless quite a number of them.
|
|
|
|
- Dirty texture regions are tracked more accurately for Direct3D 8 and 9
|
|
texture uploads.
|
|
|
|
- Uploads of S3TC-compressed 3D textures require less address space.
|
|
Since 3D textures can be potentially large, and address space
|
|
exhaustion is a concern for 32-bit applications, S3TC-compressed 3D
|
|
textures are uploaded per-slice, instead of in a single upload.
|
|
|
|
- The ID3D11Multithread interface is implemented.
|
|
|
|
- Various lighting calculation fixes and improvements for older
|
|
DirectDraw applications have been made.
|
|
|
|
- Limited support for blits across swapchains is implemented.
|
|
|
|
- More shader reflection APIs are implemented.
|
|
|
|
- The wined3d CPU blitter can handle compressed source resources.
|
|
Support for compressed destination resources was already implemented
|
|
in a previous release.
|
|
|
|
- The Direct3D graphics card database recognizes more graphics cards.
|
|
|
|
- New HKEY_CURRENT_USER\Software\Wine\Direct3D registry keys:
|
|
- "shader_backend" (REG_SZ)
|
|
The shader backend to use. Possible values are "glsl" (default)
|
|
for GLSL, "arb" for ARB vertex/fragment programs and "none" to
|
|
disable shader support.
|
|
- "strict_shader_math" (REG_DWORD)
|
|
Enable (0x1) or disable (0x0, default) stricter translation of
|
|
Direct3D shaders, potentially at a performance cost. This
|
|
currently only makes a difference with the default GLSL shader
|
|
backend in combination with the proprietary NVIDIA drivers.
|
|
|
|
- Deprecated HKEY_CURRENT_USER\Software\Wine\Direct3D registry key:
|
|
- "UseGLSL"
|
|
This has been superseded by the "shader_backend" setting above.
|
|
|
|
|
|
*** D3DX
|
|
|
|
- Support for compressing textures using S3TC-compression is
|
|
implemented.
|
|
|
|
- Various operations, like e.g. texture fills, on unmappable surfaces
|
|
are implemented more correctly. Previously their implementation
|
|
relied on the underlying Direct3D implementation not enforcing
|
|
mapping restrictions.
|
|
|
|
- Various improvements and fixes have been made to the effect
|
|
framework.
|
|
|
|
|
|
*** Kernel
|
|
|
|
- Most of the functions that used to be in Kernel32 are moved to
|
|
KernelBase, to follow the architecture of recent Windows versions.
|
|
|
|
- Libraries of the wrong 32/64-bitness are ignored when found in the
|
|
search path, to enable loading the correct one if it's found further
|
|
in the path.
|
|
|
|
- Kernel objects are better emulated for device drivers that expect to
|
|
manipulate objects from the kernel side.
|
|
|
|
- The kernel-level synchronization objects like spin locks, fast
|
|
mutexes, remove locks, and resource variables are implemented.
|
|
|
|
- The system battery state is properly reported to applications.
|
|
|
|
|
|
*** User interface
|
|
|
|
- Minimized windows are displayed using their title bar instead of the
|
|
old Windows 3.1-style icons.
|
|
|
|
- The new button styles Split Buttons and Command Links are
|
|
implemented.
|
|
|
|
- The Edit control sets margins correctly also for CJK fonts.
|
|
|
|
|
|
*** Desktop integration
|
|
|
|
- Symbolic links to the corresponding Unix directories are created for
|
|
the 'Downloads' and 'Templates' folders.
|
|
|
|
|
|
*** Input devices
|
|
|
|
- Plug & Play device drivers can be installed and loaded on startup.
|
|
|
|
- Game controllers are better supported, including proper support for
|
|
hat switch, wheel, gas and brake controls.
|
|
|
|
- The old joystick API of Linux versions earlier than 2.2 is no longer
|
|
supported.
|
|
|
|
|
|
*** .NET
|
|
|
|
- The Mono engine is updated to version 4.9.4, including parts of the
|
|
Windows Presentation Foundation (WPF) framework.
|
|
|
|
- The Gecko and Mono add-ons support shared installation, where the
|
|
files are used directly from a global location under /usr/share/wine
|
|
instead of being copied into every new prefix.
|
|
|
|
|
|
*** Internet and networking
|
|
|
|
- The Gecko engine is refreshed to support recent toolchains.
|
|
|
|
- A number of new HTML APIs are implemented.
|
|
|
|
- MSHTML supports some SVG elements.
|
|
|
|
- Error object and exception propagation are supported in VBScript.
|
|
|
|
- A number of VBScript builtin functions are implemented.
|
|
|
|
- JScript EcmaScript compliant mode is extended to support more
|
|
features.
|
|
|
|
- JScript and VBScript script objects expose type info interfaces.
|
|
|
|
- The HTTP proxy configuration can be retrieved through DHCP.
|
|
|
|
- Passport HTTP redirects are supported.
|
|
|
|
- The HTTP service and corresponding client-side library (HTTPAPI) are
|
|
partially implemented.
|
|
|
|
|
|
*** Cryptography
|
|
|
|
- ECC (elliptic-curve) keys are supported when using GnuTLS.
|
|
|
|
- Importing keys and certificates from PFX blobs is implemented.
|
|
|
|
- The PBKDF2 key derivation algorithm is supported.
|
|
|
|
|
|
*** Text and fonts
|
|
|
|
- OpenType positioning features are supported in DirectWrite, and
|
|
enabled for Latin script by default, including kerning.
|
|
|
|
- Font data access is made safer by validating the various data tables
|
|
before using them.
|
|
|
|
- DirectWrite interfaces are updated to a recent SDK, implementing
|
|
some of the latest API additions.
|
|
|
|
|
|
*** Audio / Video
|
|
|
|
- The XAudio2 libraries are reimplemented to use the external FAudio
|
|
library, for better compatibility.
|
|
|
|
- The Media Foundation libraries are fleshed out, including:
|
|
- Support for builtin and user async work queues.
|
|
- Ability to submit periodic callbacks, waiting, scheduled, and
|
|
regular work items, with support for item priority.
|
|
- Support for media event queues.
|
|
- Various core API to handle media type objects, stream and
|
|
presentation descriptors, object attributes, byte stream objects,
|
|
samples and buffers.
|
|
- Initial Source Resolver implementation.
|
|
- Initial implementation of Source Reader API.
|
|
- Implementation for Sample Grabber object.
|
|
- Core support for building topology objects.
|
|
- Builtin presentation clock implementation, started implementing
|
|
Media Session functionality.
|
|
|
|
- The video capture filter has been ported to use v4l2 instead of the
|
|
deprecated v4l1 API, allowing the use of some cameras which do not
|
|
support v4l1.
|
|
|
|
- Support for YUV to RGB translation and reading from v4l2 devices
|
|
using mmap() has been removed; we now depend on libv4l2 for both of
|
|
these things.
|
|
|
|
- The builtin AVI, MPEG-I, and WAVE decoders have been removed; we now
|
|
depend on GStreamer or the Mac QuickTime Toolkit to decode such
|
|
media files.
|
|
|
|
- Some more VMR7 configuration APIs are implemented.
|
|
|
|
- The sound drivers support per-channel volume adjustments.
|
|
|
|
|
|
*** Internationalization
|
|
|
|
- Unicode character tables are based on version 12.1.0 of the Unicode
|
|
Standard.
|
|
|
|
- Unicode normalization is implemented.
|
|
|
|
- The geographic region id is automatically set in the registry based
|
|
on the current locale. It can be modified if necessary under
|
|
HKEY_CURRENT_USER\Control Panel\International\Geo.
|
|
|
|
- The Sinhalese and Asturian locales are supported.
|
|
|
|
- Codepage 28601 (Latin/Thai) is supported.
|
|
|
|
|
|
*** RPC/COM
|
|
|
|
- The typelib marshaller supports complex structs and arrays.
|
|
|
|
- There is an initial implementation of the Windows Script runtime
|
|
library.
|
|
|
|
- There is an initial implementation of the Microsoft ActiveX Data
|
|
Objects (ADO) library.
|
|
|
|
|
|
*** Installers
|
|
|
|
- Microsoft Installer (MSI) Patch Files are supported.
|
|
|
|
- The WUSA tool (Windows Update Standalone Installer) supports
|
|
installing .MSU update files.
|
|
|
|
|
|
*** ARM platforms
|
|
|
|
- Exception unwinding is implemented for ARM64, using the libunwind
|
|
library.
|
|
|
|
- OLE stubless proxies are supported on ARM64.
|
|
|
|
|
|
*** Development tools / Winelib
|
|
|
|
- The Visual Studio remote debugger can be used to debug applications
|
|
running under Wine.
|
|
|
|
- The Debug Engine library (DBGENG) is partially implemented.
|
|
|
|
- Binaries built for a Windows target no longer depend on the libwine
|
|
library, to enable them to run on Windows without any extra
|
|
dependencies. The libwine library is no longer built for Windows at
|
|
all.
|
|
|
|
- The Resource Compiler and IDL Compiler support a '--sysroot' option
|
|
to allow locating header files in cross-compile environments.
|
|
|
|
- Winegcc supports the options '--target', '--wine-objdir',
|
|
'--winebuild' and '-fuse-ld' that make it easier to use as a
|
|
cross-compiler, or with custom toolchains.
|
|
|
|
- The wine/unicode.h header is no longer available to applications,
|
|
since the functions will ultimately be removed and replaced by the
|
|
standard C runtime wide character functions.
|
|
|
|
|
|
*** Build infrastructure
|
|
|
|
- Test binaries are built in PE format if MinGW is available, so the
|
|
same test binary can run on both Wine and Windows. The 'crosstest'
|
|
make target is no longer needed or supported.
|
|
|
|
- The 'fastcall' calling convention is supported in spec files. It
|
|
uses the correct name mangling for Windows builds.
|
|
|
|
- A '-import' entry point flag is supported in spec files, to mark
|
|
functions that need a hotpatch code prefix to be generated for their
|
|
import thunks.
|
|
|
|
- Winebuild supports a '--builtin' option to add a special signature
|
|
to PE binaries to mark them as Wine builtins.
|
|
|
|
|
|
*** Builtin applications
|
|
|
|
- The CHCP tool is implemented. It allows setting the console codepage.
|
|
|
|
- The MSIDB tool is implemented. It allows manipulating MSI databases.
|
|
|
|
|
|
*** Performance improvements
|
|
|
|
- The various time functions use higher performance system clocks if
|
|
available, to reduce the overhead in the rendering loop of many
|
|
games.
|
|
|
|
- File lookups take advantage of the ext4 filesystem case folding
|
|
support if it's enabled on the directory being searched.
|
|
|
|
- No-data style listboxes (LBS_NODATA) have better performance for
|
|
large numbers of items.
|
|
|
|
- Slim Reader/Writer locks, keyed events, and condition variables use
|
|
futexes on Linux to avoid wineserver round trips.
|
|
|
|
|
|
*** New external dependencies
|
|
|
|
- The MinGW-w64 cross-compiler is used to build modules in PE format.
|
|
|
|
- The FAudio library is used to implement XAudio2.
|
|
|
|
- The Inotify library is used for file change notifications on BSD
|
|
platforms.
|
|
|
|
- The Unwind library is used for exception handling on ARM64.
|
|
|
|
- The Video4Linux version 2 library is used instead of version 1.
|
|
|
|
|
|
--
|
|
Alexandre Julliard
|
|
julliard@winehq.org
|