- Initial Video Renderer implementation, a pipeline component
hosting EVR mixer and presenter.
- Initial Topology Loader implementation.
- Various fixes for the Source Reader.
- Initial Media Engine implementation.
- Asynchronous queues functionality is moved to rtworkq.dll.
- The AMStream (ActiveMovie Multimedia Streaming) library is more
fully implemented, including support for streaming and sample
management.
- The Video Mixing Renderer supports the following features:
- Windowless and renderless mode.
- Automatic stretching and resizing of the video to match the window
size.
- Hardware-accelerated color space conversion of YUV formats, if
supported by the underlying Direct3D implementation.
- Preservation of video aspect ratio via letterboxing.
- The Video Mixing Renderer is used as the default video renderer if
supported by the underlying Direct3D implementation, replacing the
GDI video renderer.
- The DirectShow File Writer filter is implemented.
- The DirectX Media Object (DMO) Wrapper filter is implemented. DMOs
can be automatically enumerated and plugged into the filter graph.
- The video capture filter supports reporting more information about
video formats, including supported sizes and frame rates.
- More Media Detector APIs are implemented.
- The GStreamer wrapper filter supports video and audio format
conversion within the GStreamer pipeline. This obviates the need for
extra transform filters, and accordingly the GStreamer-based YUV to
ARGB converter, audio converter, and mp3 decoder have been
removed. Any video can be output in any of several RGB and YUV
formats, allowing for better performance in some cases.
- The Enhanced Video Renderer (EVR) contains an initial default mixer
and presenter implementation using DXVA2 API.
- The XACT3 (Cross-platform Audio Creation) engine library and
interfaces are implemented through FAudio.
*** Text and fonts
- Text console support is reimplemented, using the architecture of
recent Windows versions, which is closer to the Unix way of doing
things. In particular:
- Pseudo consoles are implemented (equivalent to Unix pseudo TTYs).
- All console handling is done in the ConHost process. WineConsole
is now only a thin wrapper around ConHost.
- ConHost handles VT escape sequences, meaning that the Unix Curses
library is no longer needed.
- Default shaping features are enabled for all scripts in
DirectWrite. All types of GSUB/GPOS lookups are supported.
- In DirectWrite, CMAP data is read directly from the font without
global cache or a need to create FreeType objects, for improved
performance.
- The font initialization in GDI32 avoids loading fonts through
FreeType when possible, for faster startup times. The font registry
cache is also more efficient.
- The Uniscribe support in the USP10 library is moved into GDI32, as
per recent Windows versions.
- An initial version of the Webdings font is implemented, with only a
few glyphs at this point.
*** Input devices
- Raw input devices and messages are implemented, and used by
DirectInput instead of less efficient low-level hooks.
- An initial USB kernel driver is implemented, based on the LibUSB
library, to provide access to USB devices.
- Mouse position history is implemented, for games that want more
precise mouse positions.
- SDL controller mappings can be set through the
'SDL_GAMECONTROLLERCONFIG' environment variable.
- Plug & Play device notifications are implemented.
*** Desktop integration
- Display settings are retrieved through XRandR 1.4 if available. This
also provides support for multiple display orientations.
- There is a consistent view of the graphics adapters across the X11,
OpenGL and Vulkan APIs.
- The desktop work area layout is supported on multi-monitor setups
using the _GTK_WORKAREAS property.
*** Internationalization
- Unicode character tables are based on version 13.0.0 of the Unicode
Standard.
- Unicode normalization is fully standard-compliant, including support
for Hangul, supplementary character planes, and IDN normalization.
- Codepage and other Unicode tables are stored in external NLS files
compatible with Windows. This makes it possible to test with the
native files to track down character mapping issues.
- Codepage mapping tables are generated from Microsoft's Open
Specification data for better compatibility.
- Unicode linguistic case mappings for languages like Turkish are
implemented.
- Codepage 708 (Arabic ASMO) is supported.
Bugs fixed in 6.1 (total 37):
17848 Windows Print Preview: Lines drawn have incorrect width
21014 Dark Sector no Sound
21038 F-Secure BlackLight Engine 2.2.x (Rootkit scanner) crashes after accepting license agreement (Wine on-disk placeholder dlls sections must be padded with data up to section virtual size)
30062 Deer Hunter demo: unable to start a new game (map view unusable)
30469 Multiple .NET 2.0 applications abort with error 'System.IO.FileNotFoundException: Could not load file or assembly 'System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' (SegFlex demo)
33349 Add support for 32-bit ARM Thumb-2 Wine build
42913 ACAT Dashboard, part of Intel Assistive Context-Aware Toolkit (ACAT) v1.00.0 (.NET 4.5 app) crashes with 'invalid parameter' in 'System.Drawing.Icon.Initialize' (missing support for PNG icons in user32)
43408 Quest 5.7.x (.NET 4.0 WPF app) crashes on direct access of MIL4 (Media Integration Layer, wpfgfx_v0400.dll) to internal bitmap struct/class impl (depends on exact layout)
50349 SlingPlayer crashes on launch (needs IDirectXVideoDecoderService)
50357 Star Stable Online crashes with unimplemented function dcomp.dll.DCompositionCreateDevice2
50376 Banished crashes when Antialiasing set to 3x MSAA with Vulkan renderer
50379 The Witcher 3 has broken rendering with Vulkan renderer
50386 Sniper Elite V2 some objects aren't rendered with Vulkan renderer
50387 Batman: Arkham Origins has broken dynamic shadows with Vulkan renderer
50459 Studio One 5 crashes on unimplemented function dcomp.dll.DCompositionCreateDevice
50485 Still Life 2 crashes when CSMT is disabled
50486 The Sims 3 launcher hangs
50494 ID2D1RenderTarget::DrawText(): The position and size of the drawn text is incorrect
50508 ACAT Phrase, part of Intel Assistive Context-Aware Toolkit (ACAT) v1.00.0 (.NET 4.5 app) crashes on unimplemented function 'uiautomationcore.dll.UiaRegisterProviderCallback'
50515 SofTalk 1.56 doesn't speak continuously after punctuation marks.
50525 ws2 _32 fails to build on macOS
50549 Some games fail to launch with Vulkan renderer
50570 Unknown Debian package and website in README
*** Kernel
- Windows version compatibility mode is implemented, to only report
the newest Windows versions to applications that have declared that
they support them.
- INI file mappings are implemented, to redirect .ini file entries to
registry keys.
- Many more NT kernel objects and functions are implemented, to
support anti-cheat systems that load kernel drivers.
- A NetIO.sys kernel driver is implemented, to support copy protection
drivers that want to access the network.
- AVX registers are supported in register contexts and exception
handling on x86 platforms.
- The Kernel User Shared Data block contains up-to-date timestamps, to
avoid system calls when retrieving the current time counter.
*** C Runtime
- The C runtime import libraries provide the necessary runtime support
so that PE modules no longer depend on the MinGW runtime.
- The Wine modules are all built against the new UCRT runtime.
- Winegcc uses the new UCRT runtime by default, unless an older C
runtime library is explicitly imported.
- The C runtime supports Windows locales that use the UTF-8 codepage.
- A number of C runtime math functions are implemented internally
based on code from the Musl C library, to avoid depending on the
system math library.
- Floating point formatting is reimplemented in the C runtime to avoid
depending on the system printf function.
*** Internet and networking
- The Gecko engine is updated to version 2.47.2.
- The WebSocket API is implemented.
- JScript and VBScript report the correct location for errors in
scripts.
- There are various improvements to the LDAP and Active Directory
Service support.
- There is an initial implementation of the NDIS network driver.
- The OLE data link dialog supports configuring the ODBC data
connection.
*** Cryptography
- The BCrypt library supports additional algorithms, including DSA
keys and the 3DES cipher.
- The DSSENH (Digital Signatures) Cryptographic Provider is
implemented, and enabled by default.
*** Alternative platforms
- Support for exception handling and stack unwinding on ARM platforms
(both 32-bit and 64-bit) should be on par with the x86
architectures.
- There is initial support for ARM64 on macOS, for the new Apple
Silicon.
- Support for the obsolete 32-bit PowerPC architecture is removed. It
had been broken for some time already.
- Case-insensitive filesystem optimizations are enabled on FreeBSD.
*** Builtin applications
- WineCfg supports querying and modifying the configured Windows
version through the command line with a new /v option.
- The Shell Folders configuration in WineCfg also supports the
Downloads and Templates folders.
- The removable drive autodetection has been removed in WineCfg, now
that the dbus dynamic device support is stable.
- The FSUTIL tool supports a 'hardlink' command to create hard links.
- The FIND tool supports searching multiple files, in addition to
standard input.
- The WHOAMI tool is implemented to display the current username.
*** Development tools
- Winegcc supports generating PDB files when building PE DLLs, for
compatibility with Windows debuggers.
- DbgHelp supports GNU-style debug information also in PE files.
- Winegcc can generate an import library directly when building a DLL,
with the '-Wl,--out-implib' option.
- The various build tools also look for include and library files in
paths relative to the tool binary, to allow relocatable Winelib
installations.
- The Resource Compiler (wrc) and Message Compiler (wmc) use the
external NLS files for codepage conversions. If necessary, the path
to the external files can be specified with the '--nls-dir' option.
- There are various improvements in the gdb proxy mode in WineDbg,
including support for hardware watchpoints, and for loading symbols
from PE modules.
- The Message Compiler (wmc) handles the Unicode BOM to detect the
input file format.
- The Resource Compiler (wrc) has a '--utf8' option to specify UTF-8
input, as an alternative to putting #pragma codepage inside the
file.
- The IDL compiler (widl) supports a WinRT mode, and various
constructs specific to that mode.
- The IDL compiler (widl) supports custom attributes in type
libraries.
*** Build infrastructure
- Makefiles are no longer recursive; a single Makefile is generated to
build the entire tree, with correct dependencies between modules.
- Automake-style silent build rules are supported. They are disabled
by default, but can be enabled by passing the '--enable-silent-rules'
option to configure.
- The new LLVM-MinGW compiler is supported for PE cross-compilation.
- Building with the Clang compiler in MSVC mode is supported.
- A '-syscall' entry point flag is supported in spec files, to
generate NT-style system call entry points.
*** Miscellaneous
- The Mono engine is updated to version 5.1.1, containing the open
sourced parts of the WPF framework, and initial replacements for
some of the closed source parts.
- Most modules have been converted to use wide-character string
constants like L"abc" instead of explicit arrays, for more readable
code.
- Many of the less common timezones (for various remote islands) are
supported.
- Listviews and image buttons are supported in MSI installers.
- There is initial support for the Print Ticket API.
*** New external dependencies
- The LibUSB library is used to implement the USB driver.
- The VkD3D-Shader library is used to translate Direct3D shaders to
SPIR-V shaders for the WineD3D Vulkan renderer.
- The Curses, GLU, and Zlib libraries are no longer used.