Wine release 2.0
julliard at winehq.org
Tue Jan 24 14:20:42 CST 2017
The Wine team is proud to announce that the stable release Wine 2.0
is now available.
This release represents over a year of development effort and around
6,600 individual changes. The main highlights are the support for
Microsoft Office 2013, and the 64-bit support on macOS.
It also contains a lot of improvements across the board, as well as
support for many new applications and games. See the release notes
below for a summary of the major changes.
This is the first release made on the new time-based, annual release
schedule. This implies that some features that are being worked on but
couldn't be finished in time have been deferred to the next
development cycle. This includes in particular the Direct3D command
stream, the full HID support, the Android graphics driver, and
The source is available from the following locations:
Binary packages for various distributions will be available from:
You will find documentation on http://www.winehq.org/documentation
You can also get the current source directly from the git
repository. Check http://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 2.0
*** Text and fonts
- More DirectWrite features are implemented, including:
- Drawing of underlines.
- Renderer sees drawing effect associated with text segment.
- Support for color fonts in COLR/CPAL format.
- Initial font fallback support, builtin data for some of CJK ranges.
- Support for Wine-specific font replacement registry settings.
- Improved font metrics resolution in case of incomplete or
ambiguous font data.
- Support for EUDC font collection based on current registry
- Font embedding in PDF files is supported.
- The RichEdit control supports bulleted and numbered lists.
- Bold glyphs can be synthesized also for bitmap fonts.
- Character tables are based on version 9.0.0 of the Unicode Standard.
- Window, bitmap and GDI DC render targets are implemented in Direct2D.
- A wide range of optimizations make the DIB engine noticeably faster.
- GDI graphic paths are reimplemented for better compatibility; they
are also supported with enhanced metafiles.
- Gradients are supported in GDI enhanced metafiles.
- Metafiles are better supported in GdiPlus.
- The macOS graphics driver supports a high-resolution ("Retina")
rendering mode. It can be enabled by setting "RetinaMode" to "Y"
under HKCU\Software\Wine\Mac Driver.
*** User interface
- The clipboard support is reimplemented for better compatibility;
copy & paste of HTML text is also improved. Drag & drop works more
- In desktop mode, the taskbar displays running applications and
allows switching between them.
- Version 4 of the system tray notification protocol is implemented.
- In desktop mode, some less common display resolutions like 640x400
and 1280x960 are supported.
- More user interface elements scale correctly with high-DPI screens.
- More Direct3D 10 and 11 features are implemented, including:
- Several more shader model 4 and 5 shader instructions.
- Several more resource formats.
- Integer vertex shader inputs.
- Typeless resources.
- sRGB read/write support.
- Depth and stencil clears.
- Depth-only draws.
- Array textures.
- Index buffer offsets.
- Unordered access views.
- Primitive restart.
- The WineD3D graphics card database recognizes more graphics
cards. When available, the GLX_MESA_query_renderer GLX extension is
used to provide more accurate information about the graphics card.
- The (system) memory layout of texture resources more closely matches
Windows. This affects applications that write beyond the bounds of a
MIP-level, like for example League of Legends.
- The implementation of non-maskable multisample anti-aliasing is more
correct. In particular, when the ARB_internalformat_query extension
is available, only quality levels corresponding to specific sample
counts supported by the OpenGL implementation are reported to the
application. Previously, reporting a large number of non-maskable
multisample anti-aliasing quality levels would break some
- Direct3D 11 feature levels are supported.
- Retrieving a GDI device context from DXGI surfaces is
implemented. This is used for rendering to DXGI surfaces using GDI.
- More DXGI swapchain methods are implemented, particularly those
relating to switching display modes and switching to and from
- When ARB_clip_control and ARB_viewport_array are both supported,
position fixups are slightly more efficient.
- The APPLE_client_storage extension is no longer used. It caused more
problems than it solved.
- New HKCU\Software\Wine\Direct3D registry keys:
- "CheckFloatConstants" (REG_SZ).
Setting this to "enabled" enables additional run-time bounds
checking on relatively addressed shader constant access. This
helps some (broken) applications, but comes at a performance cost.
- "MaxShaderModelHS", "MaxShaderModelDS" and "MaxShaderModelCS" (REG_DWORD).
These limit the maximum supported shader model for hull, domain,
and compute shaders respectively, analogous to the existing
"MaxShaderModelVS", "MaxShaderModelGS", "MaxShaderModelPS"
keys. Note that these shader types are new in shader model 5, so
setting this to anything lower than 5 will effectively disable
- "SampleCount" (REG_DWORD).
Setting this registry key will force the multisample anti-aliasing
sample count to the specified value for swapchain render
targets. This allows anti-aliasing to be forced on applications
that do not otherwise support anti-aliasing themselves, but may
have no effect or break the application depending on the specific
- Retrieving a GDI device context from a DirectDraw surface is
implemented in a more accurate way. In particular, retrieving a GDI
device context for a "client memory" surface will retrieve a GDI
device context that's backed by that same client memory.
- A number of fixes related to vertex transformation in early
DirectDraw versions have been made.
- The support for the D3DX 9 effect framework is more complete, in
- There is initial support for preshaders.
- Many more effect states are correctly applied.
- D3DX 10 and 11 asynchronous data loaders are implemented.
- The d3dx9 DLLs no longer forward to d3dx9_36, but are built from the
same source instead.
- The d3dcompiler DLLs no longer forward to d3dcompiler_43, but are
built from the same source instead.
*** Sound and video
- GStreamer version 1.0 is supported for audio and video streams.
- DirectSound supports downmixing from 5.1 and 4.0 formats to stereo.
*** Internet and networking
- The Web Services API is supported. The XML reader and writer are
implemented, along with support for serializing many common data
types. Basic support for making SOAP calls is also included. This
enables Microsoft Office 2013 online activation.
- The Gecko engine is updated to the version from Firefox 47.
- IDN name resolution is supported.
- Various SHA hashes are supported using GnuTLS.
- Looking up the host address prioritizes non-loopback interfaces,
which fixes a number of networked games.
- XML writing is faster for large files.
- Winsock supports the IP_DONTFRAGMENT socket option.
- Long URLs are handled correctly.
- There is proper support for the Persian locale.
- Uniscribe better supports right-to-left languages.
- Japanese Hiragana, Katakana and full-width/half-width character
mapping is implemented.
*** 64-bit support
- 64-bit applications are supported on macOS.
- The Mono engine has 64-bit support.
- C++ exceptions are handled correctly on x86-64, including nested
exceptions and collided unwinds.
- The debug registers are supported on x86-64.
*** Built-in applications
- The 'winebrowser' helper application supports multiple arguments to
invoke the host browser or mailer.
- The 'reg' command-line registry utility supports the 'query'
command, all registry data types, and has more robust command line
- The 'winhlp32' help viewer properly displays tables and images.
- The 'wineconsole' tool better supports East-Asian fonts. Color
handling is also improved.
*** Build environment
- Import libraries can optionally be built as static libraries
similarly to Windows, instead of .def files. This avoids the need
for a separate .def.a library file.
- The IDL compiler supports "midl_pragma warning" directives.
- Cross-compilation with the Mingw-w64 Clang and ARM toolchains is
- A new driver architecture is in place for supporting HID devices.
This follows the Windows model, with platform-specific bus drivers
and HID minidrivers. It will be used in future releases to unify
support for HID devices, and potentially also for USB device
- Loading multiple kernel drivers inside the same user-mode process is
supported. This is used for HID drivers.
- A directory cache is implemented, to allow returning files in the
expected order and avoid relying on platform-specific system calls.
- Many more API Set libraries (the oddly-named api-ms-win-* dlls) are
- Interrupt 0x2d (used for debugger checks) is emulated.
- Read interval timeouts are supported for serial ports.
- Variables starting with 'QT_' are filtered from the Unix environment
since they may have unwanted effects on Qt-based Windows
- Support for joystick button mapping and force feedback effects is
- Many stream classes are implemented in MSVCIRT, the old I/O stream
- Windows Management Instrumentation (WMI) implements some more WBEM
- Most remaining OpenMP functions are implemented.
- Uninstallation support in MSI is improved.
*** New external dependencies
- libudev is used for HID device support.
- GStreamer version 1.0 is used instead of version 0.10.
- GnuTLS version 2.10 or higher is required for the SHA hashing
functions to be supported.
*** Configuration changes
- A number of DLLs are now built separately from a common source,
instead of forwarding to a master DLL. This means that native DLL
overrides need to be set on the specific version of the DLL being
loaded, instead of the master one. This applies to the d3dx9_*,
d3dcompiler_*, xaudio2_*, xapofx1_* and x3daudio1_* DLLs.
*** Release numbering
- Starting with 2.0, version numbering will change: stable release
updates will follow the existing scheme: 2.0.1, 2.0.2, 2.0.3, etc.
but the developemnt branch will drop the intermediate number: the
releases will be numbered 2.1, 2.2, 2.3, etc. leading to the next
stable release, which will be called 3.0.
julliard at winehq.org
More information about the wine-announce