Wine Announcement

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
message-mode pipes.

The source is available from the following locations:

Binary packages for various distributions will be available from:

You will find documentation on

You can also get the current source directly from the git
repository. Check 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.

*** Graphics

- 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.

*** Direct3D

- 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

*** DirectDraw

- 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.

*** D3DX

- 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.

- JavaScript performance is improved. JSON is also supported.

*** Internationalization

- 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

*** Kernel

- 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.

*** Miscellaneous

- 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
  C++ runtime.

- 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.

Alexandre Julliard