winevulkan: Support functions with basic_c return types.
[wine.git] / ANNOUNCE
blobc2e91f1625fa42951a332f9d126b2dab85b762fa
1 The Wine team is proud to announce that the stable release Wine 5.0
2 is now available.
4 This release represents a year of development effort and over 7,400
5 individual changes. It contains a large number of improvements that
6 are listed in the release notes below. The main highlights are:
8   - Builtin modules in PE format.
9   - Multi-monitor support.
10   - XAudio2 reimplementation.
11   - Vulkan 1.1 support.
13 This release is dedicated to the memory of Józef Kucia, who passed
14 away in August 2019 at the young age of 30. Józef was a major
15 contributor to Wine's Direct3D implementation, and the lead developer
16 of the vkd3d project. His skills and his kindness are sorely missed by
17 all of us.
19 The source is available from the following locations:
21   https://dl.winehq.org/wine/source/5.0/wine-5.0.tar.xz
22   http://mirrors.ibiblio.org/wine/source/5.0/wine-5.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 5.0
39 ======================
42 *** PE modules
44 - Most modules are built in PE format (Portable Executable, the
45   Windows binary format) instead of ELF when the MinGW compiler is
46   available. This helps various copy protection schemes that check
47   that the on-disk and in-memory contents of system modules are
48   identical.
50 - The actual PE binaries are copied into the Wine prefix instead of
51   the fake DLL files. This makes the prefix look more like a real
52   Windows installation, at the cost of some extra disk space.
54 - Modules that have been converted to PE can use standard wide-char C
55   functions, as well as wide-char character constants like L"abc".
56   This makes the code easier to read.
58 - Not all modules have been converted to PE yet; this is an ongoing
59   process that will continue during the Wine 5.x development series.
61 - The Wine C runtime is updated to support linking to MinGW-compiled
62   binaries; it is used by default instead of the MinGW runtime when
63   building DLLs.
66 *** Graphics
68 - Multiple display adapters and monitors are properly supported,
69   including dynamic configuration changes.
71 - The Vulkan driver supports up to version 1.1.126 of the Vulkan spec.
73 - The WindowsCodecs library is able to convert more bitmap formats,
74   including palette-indexed formats.
77 *** Direct3D
79 - Fullscreen Direct3D applications inhibit the screensaver.
81 - DXGI swapchain presents inform the application when the
82   corresponding window is minimized. This typically allows
83   applications to reduce CPU usage while minimized, and is in some
84   cases required to allow the application window to be restored again.
86 - Switching between fullscreen and windowed modes using the standard
87   Alt+Enter combination is implemented for DXGI applications.
89 - The following features are implemented for Direct3D 12 applications:
90   - Switching between fullscreen and windowed.
91   - Changing display modes.
92   - Scaled presents.
93   - Swap intervals.
94   These features were previously already implemented for earlier
95   versions of the Direct3D API.
97 - The handling of various edge cases is improved. Among others:
98   - Out of range reference values for the alpha and stencil tests.
99   - Sampling 2D resources with 3D samplers and vice versa.
100   - Drawing with mapped textures and buffers.
101   - Usage of invalid DirectDraw clipper objects.
102   - Creating Direct3D devices on invalid Windows, like the desktop
103     window.
104   - Viewports with a minimum Z larger than or equal to the maximum Z.
105   - Resources bound through both shader-resource views and
106     render-target or depth-stencil views at the same time.
107   - Blits between formats with and without alpha components.
108   Since well-behaved applications don't rely on these edge cases, they
109   typically only affect one or two applications each. There are
110   nevertheless quite a number of them.
112 - Dirty texture regions are tracked more accurately for Direct3D 8 and 9
113   texture uploads.
115 - Uploads of S3TC-compressed 3D textures require less address space.
116   Since 3D textures can be potentially large, and address space
117   exhaustion is a concern for 32-bit applications, S3TC-compressed 3D
118   textures are uploaded per-slice, instead of in a single upload.
120 - The ID3D11Multithread interface is implemented.
122 - Various lighting calculation fixes and improvements for older
123   DirectDraw applications have been made.
125 - Limited support for blits across swapchains is implemented.
127 - More shader reflection APIs are implemented.
129 - The wined3d CPU blitter can handle compressed source resources.
130   Support for compressed destination resources was already implemented
131   in a previous release.
133 - The Direct3D graphics card database recognizes more graphics cards.
135 - New HKEY_CURRENT_USER\Software\Wine\Direct3D registry keys:
136   - "shader_backend" (REG_SZ)
137     The shader backend to use. Possible values are "glsl" (default)
138     for GLSL, "arb" for ARB vertex/fragment programs and "none" to
139     disable shader support.
140   - "strict_shader_math" (REG_DWORD)
141     Enable (0x1) or disable (0x0, default) stricter translation of
142     Direct3D shaders, potentially at a performance cost. This
143     currently only makes a difference with the default GLSL shader
144     backend in combination with the proprietary NVIDIA drivers.
146 - Deprecated HKEY_CURRENT_USER\Software\Wine\Direct3D registry key:
147   - "UseGLSL"
148     This has been superseded by the "shader_backend" setting above.
151 *** D3DX
153 - Support for compressing textures using S3TC-compression is
154   implemented.
156 - Various operations, like e.g. texture fills, on unmappable surfaces
157   are implemented more correctly. Previously their implementation
158   relied on the underlying Direct3D implementation not enforcing
159   mapping restrictions.
161 - Various improvements and fixes have been made to the effect
162   framework.
165 *** Kernel
167 - Most of the functions that used to be in Kernel32 are moved to
168   KernelBase, to follow the architecture of recent Windows versions.
170 - Libraries of the wrong 32/64-bitness are ignored when found in the
171   search path, to enable loading the correct one if it's found further
172   in the path.
174 - Kernel objects are better emulated for device drivers that expect to
175   manipulate objects from the kernel side.
177 - The kernel-level synchronization objects like spin locks, fast
178   mutexes, remove locks, and resource variables are implemented.
180 - The system battery state is properly reported to applications.
183 *** User interface
185 - Minimized windows are displayed using their title bar instead of the
186   old Windows 3.1-style icons.
188 - The new button styles Split Buttons and Command Links are
189   implemented.
191 - The Edit control sets margins correctly also for CJK fonts.
194 *** Desktop integration
196 - Symbolic links to the corresponding Unix directories are created for
197   the 'Downloads' and 'Templates' folders.
200 *** Input devices
202 - Plug & Play device drivers can be installed and loaded on startup.
204 - Game controllers are better supported, including proper support for
205   hat switch, wheel, gas and brake controls.
207 - The old joystick API of Linux versions earlier than 2.2 is no longer
208   supported.
211 *** .NET
213 - The Mono engine is updated to version 4.9.4, including parts of the
214   Windows Presentation Foundation (WPF) framework.
216 - The Gecko and Mono add-ons support shared installation, where the
217   files are used directly from a global location under /usr/share/wine
218   instead of being copied into every new prefix.
221 *** Internet and networking
223 - The Gecko engine is refreshed to support recent toolchains.
225 - A number of new HTML APIs are implemented.
227 - MSHTML supports some SVG elements.
229 - Error object and exception propagation are supported in VBScript.
231 - A number of VBScript builtin functions are implemented.
233 - JScript EcmaScript compliant mode is extended to support more
234   features.
236 - JScript and VBScript script objects expose type info interfaces.
238 - The HTTP proxy configuration can be retrieved through DHCP.
240 - Passport HTTP redirects are supported.
242 - The HTTP service and corresponding client-side library (HTTPAPI) are
243   partially implemented.
246 *** Cryptography
248 - ECC (elliptic-curve) keys are supported when using GnuTLS.
250 - Importing keys and certificates from PFX blobs is implemented.
252 - The PBKDF2 key derivation algorithm is supported.
255 *** Text and fonts
257 - OpenType positioning features are supported in DirectWrite, and
258   enabled for Latin script by default, including kerning.
260 - Font data access is made safer by validating the various data tables
261   before using them.
263 - DirectWrite interfaces are updated to a recent SDK, implementing
264   some of the latest API additions.
267 *** Audio / Video
269 - The XAudio2 libraries are reimplemented to use the external FAudio
270   library, for better compatibility.
272 - The Media Foundation libraries are fleshed out, including:
273   - Support for builtin and user async work queues.
274   - Ability to submit periodic callbacks, waiting, scheduled, and
275     regular work items, with support for item priority.
276   - Support for media event queues.
277   - Various core API to handle media type objects, stream and
278     presentation descriptors, object attributes, byte stream objects,
279     samples and buffers.
280   - Initial Source Resolver implementation.
281   - Initial implementation of Source Reader API.
282   - Implementation for Sample Grabber object.
283   - Core support for building topology objects.
284   - Builtin presentation clock implementation, started implementing
285     Media Session functionality.
287 - The video capture filter has been ported to use v4l2 instead of the
288   deprecated v4l1 API, allowing the use of some cameras which do not
289   support v4l1.
291 - Support for YUV to RGB translation and reading from v4l2 devices
292   using mmap() has been removed; we now depend on libv4l2 for both of
293   these things.
295 - The builtin AVI, MPEG-I, and WAVE decoders have been removed; we now
296   depend on GStreamer or the Mac QuickTime Toolkit to decode such
297   media files.
299 - Some more VMR7 configuration APIs are implemented.
301 - The sound drivers support per-channel volume adjustments.
304 *** Internationalization
306 - Unicode character tables are based on version 12.1.0 of the Unicode
307   Standard.
309 - Unicode normalization is implemented.
311 - The geographic region id is automatically set in the registry based
312   on the current locale. It can be modified if necessary under
313   HKEY_CURRENT_USER\Control Panel\International\Geo.
315 - The Sinhalese and Asturian locales are supported.
317 - Codepage 28601 (Latin/Thai) is supported.
320 *** RPC/COM
322 - The typelib marshaller supports complex structs and arrays.
324 - There is an initial implementation of the Windows Script runtime
325   library.
327 - There is an initial implementation of the Microsoft ActiveX Data
328   Objects (ADO) library.
331 *** Installers
333 - Microsoft Installer (MSI) Patch Files are supported.
335 - The WUSA tool (Windows Update Standalone Installer) supports
336   installing .MSU update files.
339 *** ARM platforms
341 - Exception unwinding is implemented for ARM64, using the libunwind
342   library.
344 - OLE stubless proxies are supported on ARM64.
347 *** Development tools / Winelib
349 - The Visual Studio remote debugger can be used to debug applications
350   running under Wine.
352 - The Debug Engine library (DBGENG) is partially implemented.
354 - Binaries built for a Windows target no longer depend on the libwine
355   library, to enable them to run on Windows without any extra
356   dependencies. The libwine library is no longer built for Windows at
357   all.
359 - The Resource Compiler and IDL Compiler support a '--sysroot' option
360   to allow locating header files in cross-compile environments.
362 - Winegcc supports the options '--target', '--wine-objdir',
363   '--winebuild' and '-fuse-ld' that make it easier to use as a
364   cross-compiler, or with custom toolchains.
366 - The wine/unicode.h header is no longer available to applications,
367   since the functions will ultimately be removed and replaced by the
368   standard C runtime wide character functions.
371 *** Build infrastructure
373 - Test binaries are built in PE format if MinGW is available, so the
374   same test binary can run on both Wine and Windows. The 'crosstest'
375   make target is no longer needed or supported.
377 - The 'fastcall' calling convention is supported in spec files. It
378   uses the correct name mangling for Windows builds.
380 - A '-import' entry point flag is supported in spec files, to mark
381   functions that need a hotpatch code prefix to be generated for their
382   import thunks.
384 - Winebuild supports a '--builtin' option to add a special signature
385   to PE binaries to mark them as Wine builtins.
388 *** Builtin applications
390 - The CHCP tool is implemented. It allows setting the console codepage.
392 - The MSIDB tool is implemented. It allows manipulating MSI databases.
395 *** Performance improvements
397 - The various time functions use higher performance system clocks if
398   available, to reduce the overhead in the rendering loop of many
399   games.
401 - File lookups take advantage of the ext4 filesystem case folding
402   support if it's enabled on the directory being searched.
404 - No-data style listboxes (LBS_NODATA) have better performance for
405   large numbers of items.
407 - Slim Reader/Writer locks, keyed events, and condition variables use
408   futexes on Linux to avoid wineserver round trips.
411 *** New external dependencies
413 - The MinGW-w64 cross-compiler is used to build modules in PE format.
415 - The FAudio library is used to implement XAudio2.
417 - The Inotify library is used for file change notifications on BSD
418   platforms.
420 - The Unwind library is used for exception handling on ARM64.
422 - The Video4Linux version 2 library is used instead of version 1.
426 Alexandre Julliard
427 julliard@winehq.org