wined3d: Align vertex attribute offsets to their size, if smaller than 4.
[wine.git] / ANNOUNCE
blobea4a90fac173edc6c4d42bd1784b0c91d7521b9b
1 The Wine team is proud to announce that the stable release Wine 6.0
2 is now available.
4 This release represents a year of development effort and over 8,300
5 individual changes. It contains a large number of improvements that
6 are listed in the release notes below. The areas of major changes are:
8   - Core modules in PE format.
9   - Vulkan backend for WineD3D.
10   - DirectShow and Media Foundation support.
11   - Text console redesign.
13 This release is dedicated to the memory of Ken Thomases, who passed
14 away just before Christmas at the age of 51. Ken was an incredibly
15 brilliant developer, and the mastermind behind the macOS support in
16 Wine. We all miss his skills, his patience, and his dark sense of
17 humor.
19 The source is available from the following locations:
21   https://dl.winehq.org/wine/source/6.0/wine-6.0.tar.xz
22   http://mirrors.ibiblio.org/wine/source/6.0/wine-6.0.tar.xz
24 Binary packages for various distributions will be available from:
26   https://www.winehq.org/download
28 You will find documentation on https://www.winehq.org/documentation
30 You can also get the current source directly from the git
31 repository. Check https://www.winehq.org/git for details.
33 Wine is available thanks to the work of many people. See the file
34 AUTHORS in the distribution for the complete list.
36 ----------------------------------------------------------------
38 What's new in Wine 6.0
39 ======================
42 *** PE modules
44 - The core DLLs, including NTDLL, KERNEL32, GDI32, USER32, etc. are
45   built in PE format. This should help a number of copy protection
46   schemes that check that the DLL files on disk match the in-memory
47   contents.
49 - There is a new mechanism to associate a Unix library with a PE
50   module, to make it possible to call Unix libraries from PE for the
51   functions that can't be handled with Win32 APIs.
52   These libraries are found by replacing the PE module file extension
53   with .so, for instance ntdll.dll -> ntdll.so. They have to be
54   located next to the PE file on disk.
56 - Winelib modules no longer link against libwine.so, or require it at
57   run-time. This is a backwards incompatible change, meaning that
58   modules built with Wine 6.0 won't run on older Wine versions.
60 - The libwine library is no longer used, but it's still provided to
61   support running Winelib modules built against older versions. It is
62   deprecated however, and will be removed in a future Wine
63   release. Applications that explicitly call libwine functions will
64   need to be changed to call equivalent Win32 or Unix APIs instead.
65   As a consequence, the wine/library.h header has also been removed.
67 - PE modules can be built with their debug information split to a
68   separate file, to reduce the size of the files installed into the
69   Wine prefix.
72 *** Direct3D
74 - An experimental Vulkan renderer for WineD3D is implemented. This
75   requires the vkd3d-shader library in order to translate Direct3D
76   shaders to SPIR-V shaders. In this release, shader support in the
77   Vulkan renderer is limited to shader model 4 and 5 shaders. In
78   practice, that limits its usefulness to Direct3D 10 and 11
79   applications. The Vulkan renderer can be enabled by setting the
80   Direct3D "renderer" registry setting to "vulkan".
82 - The following Direct3D 11 features are implemented:
83   - Per render-target ("independent") blend states.
84   - Dual-source blending.
85   - Multi-sample anti-aliasing sample masks.
86   - Several more capability queries.
88 - Support for Direct3D 9 alpha-to-coverage multi-sampling is
89   implemented.
91 - When the EXT_framebuffer_multisample_blit_scaled OpenGL extension is
92   available, scaled multi-sample resolve operations can happen as a
93   single operation.
95 - When the ARB_buffer_storage OpenGL extension is available, it will
96   be used to allocate OpenGL buffer objects. This can result in minor
97   performance improvements with some application and driver
98   combinations.
100 - The Direct3D graphics card database recognizes more graphics cards,
101   and the reported driver versions have been updated.
103 - New or modified HKEY_CURRENT_USER\Software\Wine\Direct3D registry keys:
104   - "renderer" (REG_SZ)
105     The backend API to target. This existing setting has an additional
106     valid value in this release: "vulkan". Possible values are now
107     "gl" (default) for OpenGL, "gdi" or "no3d" for GDI, and "vulkan"
108     for Vulkan.
109   - "csmt" (REG_DWORD)
110     Enable or disable multi-threaded command stream features. This
111     existing setting has an additional valid bit-field value in this
112     release. Valid bit-fields in this release are:
113     - 0x1 Enable the multi-threaded command stream feature.
114     - 0x2 Enable serialization between multiple command streams in the
115           same application. This feature is primarily useful for
116           applications using multiple Direct3D instances from
117           different threads, in combination with OpenGL drivers that
118           do not properly support multi-threaded access themselves. As
119           of this release, this is known to affect Microsoft Office
120           2013 and later versions in combination with the Mesa-based
121           Nouveau driver.
122     Note that this setting is a bit-field; in order to enable both
123     features above, set this to 0x3.
125 - Removed HKEY_CURRENT_USER\Software\Wine\Direct3D registry key:
126   - "DirectDrawRenderer"
127     This setting was previously deprecated in favor of the "renderer"
128     setting, and has been removed in this release.
131 *** D3DX
133 - Drawing text using the ID3DXFont interface is implemented.
135 - The ID3D12ShaderReflection shader reflection interface is
136   implemented.
138 - The D3DX10GetImageInfoFromMemory() and related image information
139   query functions are implemented.
142 *** Graphics
144 - Drawing arcs, ellipses and rounded rectangles using the Direct2D API
145   is implemented.
147 - The standard sRGB color profile is installed into the prefix, for
148   applications that expect to load it directly.
150 - The Null display driver can be used as a proper display driver, for
151   cases when a user interface is not needed.
153 - WindowsCodecs supports decoding images in DDS (DirectDraw Surface)
154   and JPEG-XR formats, as well as encoding images to GIF format.
156 - The Vulkan driver creates the JSON manifest and registry entry used
157   by the official Vulkan loader.
159 - The Vulkan driver supports up to version 1.2.162 of the Vulkan spec.
161 - There are a number of improvements in GdiPlus, including support for
162   widening lines, more hatch styles, and more record types in
163   metafiles.
166 *** Audio / video
168 - The Media Foundation framework is more complete, including:
169   - Initial Media Session implementation for state changes and data
170     flow.
171   - Initial Streaming Audio Renderer (SAR) pipeline component
172     implementation.
173   - Initial Video Renderer implementation, a pipeline component
174     hosting EVR mixer and presenter.
175   - Initial Topology Loader implementation.
176   - Various fixes for the Source Reader.
177   - Initial Media Engine implementation.
178   - Asynchronous queues functionality is moved to rtworkq.dll.
180 - The AMStream (ActiveMovie Multimedia Streaming) library is more
181   fully implemented, including support for streaming and sample
182   management.
184 - The Video Mixing Renderer supports the following features:
185   - Windowless and renderless mode.
186   - Automatic stretching and resizing of the video to match the window
187     size.
188   - Hardware-accelerated color space conversion of YUV formats, if
189     supported by the underlying Direct3D implementation.
190   - Preservation of video aspect ratio via letterboxing.
192 - The Video Mixing Renderer is used as the default video renderer if
193   supported by the underlying Direct3D implementation, replacing the
194   GDI video renderer.
196 - The DirectShow File Writer filter is implemented.
198 - The DirectX Media Object (DMO) Wrapper filter is implemented. DMOs
199   can be automatically enumerated and plugged into the filter graph.
201 - The video capture filter supports reporting more information about
202   video formats, including supported sizes and frame rates.
204 - More Media Detector APIs are implemented.
206 - The GStreamer wrapper filter supports video and audio format
207   conversion within the GStreamer pipeline. This obviates the need for
208   extra transform filters, and accordingly the GStreamer-based YUV to
209   ARGB converter, audio converter, and mp3 decoder have been
210   removed. Any video can be output in any of several RGB and YUV
211   formats, allowing for better performance in some cases.
213 - The Enhanced Video Renderer (EVR) contains an initial default mixer
214   and presenter implementation using DXVA2 API.
216 - The XACT3 (Cross-platform Audio Creation) engine library and
217   interfaces are implemented through FAudio.
220 *** Text and fonts
222 - Text console support is reimplemented, using the architecture of
223   recent Windows versions, which is closer to the Unix way of doing
224   things. In particular:
226   - Pseudo consoles are implemented (equivalent to Unix pseudo TTYs).
228   - All console handling is done in the ConHost process. WineConsole
229     is now only a thin wrapper around ConHost.
231   - ConHost handles VT escape sequences, meaning that the Unix Curses
232     library is no longer needed.
234 - Default shaping features are enabled for all scripts in
235   DirectWrite. All types of GSUB/GPOS lookups are supported.
237 - In DirectWrite, CMAP data is read directly from the font without
238   global cache or a need to create FreeType objects, for improved
239   performance.
241 - The font initialization in GDI32 avoids loading fonts through
242   FreeType when possible, for faster startup times. The font registry
243   cache is also more efficient.
245 - The Uniscribe support in the USP10 library is moved into GDI32, as
246   per recent Windows versions.
248 - An initial version of the Webdings font is implemented, with only a
249   few glyphs at this point.
252 *** Input devices
254 - Raw input devices and messages are implemented, and used by
255   DirectInput instead of less efficient low-level hooks.
257 - An initial USB kernel driver is implemented, based on the LibUSB
258   library, to provide access to USB devices.
260 - Mouse position history is implemented, for games that want more
261   precise mouse positions.
263 - SDL controller mappings can be set through the
264   'SDL_GAMECONTROLLERCONFIG' environment variable.
266 - Plug & Play device notifications are implemented.
269 *** Desktop integration
271 - Display settings are retrieved through XRandR 1.4 if available. This
272   also provides support for multiple display orientations.
274 - There is a consistent view of the graphics adapters across the X11,
275   OpenGL and Vulkan APIs.
277 - The desktop work area layout is supported on multi-monitor setups
278   using the _GTK_WORKAREAS property.
281 *** Internationalization
283 - Unicode character tables are based on version 13.0.0 of the Unicode
284   Standard.
286 - Unicode normalization is fully standard-compliant, including support
287   for Hangul, supplementary character planes, and IDN normalization.
289 - Codepage and other Unicode tables are stored in external NLS files
290   compatible with Windows. This makes it possible to test with the
291   native files to track down character mapping issues.
293 - Codepage mapping tables are generated from Microsoft's Open
294   Specification data for better compatibility.
296 - Unicode linguistic case mappings for languages like Turkish are
297   implemented.
299 - Codepage 708 (Arabic ASMO) is supported.
302 *** Kernel
304 - Windows version compatibility mode is implemented, to only report
305   the newest Windows versions to applications that have declared that
306   they support them.
308 - INI file mappings are implemented, to redirect .ini file entries to
309   registry keys.
311 - Many more NT kernel objects and functions are implemented, to
312   support anti-cheat systems that load kernel drivers.
314 - A NetIO.sys kernel driver is implemented, to support copy protection
315   drivers that want to access the network.
317 - AVX registers are supported in register contexts and exception
318   handling on x86 platforms.
320 - The Kernel User Shared Data block contains up-to-date timestamps, to
321   avoid system calls when retrieving the current time counter.
324 *** C Runtime
326 - The C runtime import libraries provide the necessary runtime support
327   so that PE modules no longer depend on the MinGW runtime.
329 - The Wine modules are all built against the new UCRT runtime.
331 - Winegcc uses the new UCRT runtime by default, unless an older C
332   runtime library is explicitly imported.
334 - The C runtime supports Windows locales that use the UTF-8 codepage.
336 - A number of C runtime math functions are implemented internally
337   based on code from the Musl C library, to avoid depending on the
338   system math library.
340 - Floating point formatting is reimplemented in the C runtime to avoid
341   depending on the system printf function.
344 *** Internet and networking
346 - The Gecko engine is updated to version 2.47.2.
348 - The WebSocket API is implemented.
350 - JScript and VBScript report the correct location for errors in
351   scripts.
353 - There are various improvements to the LDAP and Active Directory
354   Service support.
356 - There is an initial implementation of the NDIS network driver.
358 - The OLE data link dialog supports configuring the ODBC data
359   connection.
362 *** Cryptography
364 - The BCrypt library supports additional algorithms, including DSA
365   keys and the 3DES cipher.
367 - The DSSENH (Digital Signatures) Cryptographic Provider is
368   implemented, and enabled by default.
371 *** Alternative platforms
373 - Support for exception handling and stack unwinding on ARM platforms
374   (both 32-bit and 64-bit) should be on par with the x86
375   architectures.
377 - There is initial support for ARM64 on macOS, for the new Apple
378   Silicon.
380 - Support for the obsolete 32-bit PowerPC architecture is removed. It
381   had been broken for some time already.
383 - Case-insensitive filesystem optimizations are enabled on FreeBSD.
386 *** Builtin applications
388 - WineCfg supports querying and modifying the configured Windows
389   version through the command line with a new /v option.
391 - The Shell Folders configuration in WineCfg also supports the
392   Downloads and Templates folders.
394 - The removable drive autodetection has been removed in WineCfg, now
395   that the dbus dynamic device support is stable.
397 - The FSUTIL tool supports a 'hardlink' command to create hard links.
399 - The FIND tool supports searching multiple files, in addition to
400   standard input.
402 - The WHOAMI tool is implemented to display the current username.
405 *** Development tools
407 - Winegcc supports generating PDB files when building PE DLLs, for
408   compatibility with Windows debuggers.
410 - DbgHelp supports GNU-style debug information also in PE files.
412 - Winegcc can generate an import library directly when building a DLL,
413   with the '-Wl,--out-implib' option.
415 - The various build tools also look for include and library files in
416   paths relative to the tool binary, to allow relocatable Winelib
417   installations.
419 - The Resource Compiler (wrc) and Message Compiler (wmc) use the
420   external NLS files for codepage conversions. If necessary, the path
421   to the external files can be specified with the '--nls-dir' option.
423 - There are various improvements in the gdb proxy mode in WineDbg,
424   including support for hardware watchpoints, and for loading symbols
425   from PE modules.
427 - The Message Compiler (wmc) handles the Unicode BOM to detect the
428   input file format.
430 - The Resource Compiler (wrc) has a '--utf8' option to specify UTF-8
431   input, as an alternative to putting #pragma codepage inside the
432   file.
434 - The IDL compiler (widl) supports a WinRT mode, and various
435   constructs specific to that mode.
437 - The IDL compiler (widl) supports custom attributes in type
438   libraries.
441 *** Build infrastructure
443 - Makefiles are no longer recursive; a single Makefile is generated to
444   build the entire tree, with correct dependencies between modules.
446 - Automake-style silent build rules are supported. They are disabled
447   by default, but can be enabled by passing the '--enable-silent-rules'
448   option to configure.
450 - The new LLVM-MinGW compiler is supported for PE cross-compilation.
452 - Building with the Clang compiler in MSVC mode is supported.
454 - A '-syscall' entry point flag is supported in spec files, to
455   generate NT-style system call entry points.
458 *** Miscellaneous
460 - The Mono engine is updated to version 5.1.1, containing the open
461   sourced parts of the WPF framework, and initial replacements for
462   some of the closed source parts.
464 - Most modules have been converted to use wide-character string
465   constants like L"abc" instead of explicit arrays, for more readable
466   code.
468 - Many of the less common timezones (for various remote islands) are
469   supported.
471 - Listviews and image buttons are supported in MSI installers.
473 - There is initial support for the Print Ticket API.
476 *** New external dependencies
478 - The LibUSB library is used to implement the USB driver.
480 - The VkD3D-Shader library is used to translate Direct3D shaders to
481   SPIR-V shaders for the WineD3D Vulkan renderer.
483 - The Curses, GLU, and Zlib libraries are no longer used.
487 Alexandre Julliard
488 julliard@winehq.org