diff --git a/ANNOUNCE b/ANNOUNCE index 50a072592e4..5b749584427 100644 --- a/ANNOUNCE +++ b/ANNOUNCE @@ -1,12 +1,19 @@ -The Wine development release 4.0-rc7 is now available. +The Wine team is proud to announce that the stable release Wine 4.0 +is now available. -What's new in this release (see below for details): - - Bug fixes only, we are in code freeze. +This release represents a year of development effort and over 6,000 +individual changes. It contains a large number of improvements that +are listed in the release notes below. The main highlights are: + + - Vulkan support. + - Direct3D 12 support. + - Game controllers support. + - High-DPI support on Android. The source is available from the following locations: - https://dl.winehq.org/wine/source/4.0/wine-4.0-rc7.tar.xz - http://mirrors.ibiblio.org/wine/source/4.0/wine-4.0-rc7.tar.xz + https://dl.winehq.org/wine/source/4.0/wine-4.0.tar.xz + http://mirrors.ibiblio.org/wine/source/4.0/wine-4.0.tar.xz Binary packages for various distributions will be available from: @@ -22,97 +29,461 @@ AUTHORS in the distribution for the complete list. ---------------------------------------------------------------- -Bugs fixed in 4.0-rc7 (total 13): +What's new in Wine 4.0 +====================== - 20728 Multiple video players crash when opening audio or video file (MPC-HC v1.6.5, PotPlayer 1.5.x)(FilterGraph_create releases/destroys controlling IUnknown) - 26369 A.R.E.S. Extinction Agenda 1.x (.NET 2.0, XNA 3.1 game) crashes during intro ('quartz' FilterGraph2_Connect must translate HRESULT of failures more correctly) - 29461 BurnPlot (VB6 app) fails to start, complaining with "Run-time error '438'" (WshShell3 'SpecialFolders' collection 'item' method invocation fails) - 34884 Touhou Danmakufu 0.12m's font becomes distorted - 35573 gdi32:fonts test_stock_fonts() fails on Windows 7 in the Japanese and Hebrew locales - 36082 Cannot Read Text In "Question" Boxes On Microsoft Money 2005 Installation - 36084 Microsoft Money 2005 Window Going "Black" After Certain Menu Operations - 43211 NVIDIA GeForce Experience 3.x installer fails due to 'setupapi.SetupDiDeleteDeviceInfo' stub - 44796 Age of Empires II: The Conquerors is broken when CSMT is enabled - 45874 Secret Files 1-2: hardware mouse cursor corrupted - 46212 Multiple games have performance issues (Project CARS, NFS: Hot Pursuit (2010), Gas Guzzlers: Combat Carnage) - 46459 Secret Files 1-2, Ufo: Extraterrestrials: mouse cursor invisible when anti-aliasing and hardware mouse enabled - 46480 Invalid write of size 2 in ntoskrnl.exe/tests/ntoskrnl.c ----------------------------------------------------------------- +*** Direct3D -Changes since 4.0-rc6: +- Initial support for Direct3D 12 is implemented. Direct3D 12 support + requires the vkd3d library, and a Vulkan-capable graphics card. -Akihiro Sagawa (1): - po: Update Japanese translation. +- The Multi-Threaded Command Stream feature is enabled by default. -Alexandre Julliard (1): - ntoskrnl.exe/tests: Fix path buffer allocation size. +- OpenGL core contexts are always used by default when available. In + the previous release, these were already used by default for + Direct3D 10 and 11 applications on AMD and Intel graphics + cards. That has been extended to all graphics cards, and all + versions of Direct3D before 12. -Can Taşan (1): - po: Update Turkish translation. +- Among others, the following notable Direct3D 10 and 11 features are + implemented: + - Multi-sample textures and views, as well as multi-sample resolves. + - Per-sample fragment shading. + - Support for 1D textures. + - Draws without render target views or depth/stencil views. + - Multiple viewports and scissor rectangles per draw. + - Depth clipping control. + - Depth bias clamping. + - Stream output without geometry shaders. + - Several more capability queries. + - Several more resource formats. -Dmitry Timoshkov (2): - windowscodecs: Fix the buffer size check in TIFF decoder's CopyPixels implementation. - include: Fix a typo. +- The "depth bias clamping" feature mentioned above requires the + ARB_polygon_offset_clamp/EXT_polygon_offset_clamp OpenGL + extension. All Direct3D 10+ capable hardware should be able to + support that extension, but it has come to our attention that some + NVIDIA "Legacy Drivers" do not. We encourage affected users to + explore whether the Free Software Nouveau drivers meet their needs. -François Gouget (4): - po: Fix a format mismatch in a Russian translation. - po: Fuzzy a Portuguese (Portugal) translation with a format mismatch. - po: Fuzzy an Arabic translation with a format mismatch. - msi/tests: Add a trailing '\n' to an ok() call. +- Several Direct3D 11 interfaces have been updated to version 11.2, + and several DXGI interfaces have been update to version 1.6. This + allows applications requiring those newer interfaces to start + working. -Gijs Vermeulen (4): - crypt32/tests: Fix a typo in ok() message. - crypt32/tests: Fix a memory leak (Valgrind). - atl100/tests: Fix a memory leak (Valgrind). - msvcp140/tests: Fix typos in ok() messages. +- The first steps towards more fine-grained locking in the Direct3D + implementation have been taken. This will be an ongoing effort to + take better advantage of modern high core count CPUs. -Henri Verbeet (2): - wined3d: Allow multisample destination textures in the GLSL blitter. - ddraw/tests: Add a test for the "GDI" surface. +- Support for using the correct swap interval is implemented, for both + DXGI and DirectDraw applications. -Huw D. M. Davies (1): - gdi32/tests: Korean and Chinese machines may use MS Shell Dlg as their default GUI font. +- Application-configurable frame latency is implemented for Direct3D + 9Ex and DXGI applications. -Isira Seneviratne (2): - po: Update Sinhala translation. - po: Update Sinhala translation. +- S3TC-compressed 3D textures are supported. S3TC-compressed 2D + textures were already supported, provided the OpenGL drivers + supported them. -James Larrowe (1): - winebuild: Fix a segmentation fault. +- When the ARB_query_buffer_object OpenGL extension is available, + query results can be polled with lower latency, resulting in a + modest performance improvement in specific cases. -Józef Kucia (7): - wined3d: Execute all CS commands before changing swapchain palette. - wined3d: Execute all CS commands before setting palette entries. - d3d8: Clamp vertex buffer upload range to buffer size. - d3d9: Clamp vertex buffer upload range to buffer size. - d3d8: Clamp index buffer upload range to buffer size. - d3d9: Clamp index buffer upload range to buffer size. - wined3d: Avoid potential out-of-bounds memory access in surface_cpu_blt_colour_fill(). +- Validation of Direct3D 8 and 9 resource pool and usage restrictions, + as well as blit restrictions, has been improved. -Matteo Bruni (1): - wined3d: Set proper GL internal format for sRGB formats. +- The Direct3D graphics card database recognizes more graphics cards. -Sven Baars (13): - shell32/tests: Fix a typo. - mstask/tests: Fix some memory leaks (Valgrind). - oleaut32/tests: Fix some memory leaks (Valgrind). - shell32/tests: Fix some memory leaks (Valgrind). - xmllite/tests: Fix a memory leak (Valgrind). - wbemprox/tests: Fix some memory leaks (Valgrind). - taskschd/tests: Fix some memory leaks (Valgrind). - rpcrt4/tests: Fix some memory leaks (Valgrind). - opcservices/tests: Fix some memory leaks (Valgrind). - riched20/tests: Fix a memory leak (Valgrind). - ole32/tests: Fix a memory leak (Valgrind). - ntoskrnl.exe/tests: Fix some memory leaks (Valgrind). - ntdll/tests: Fix some string leaks (Valgrind). +- New HKEY_CURRENT_USER\Software\Wine\Direct3D registry keys: + - "MultisampleTextures" (REG_DWORD) + Enable (0x1, default) or disable (0x0) support for multi-sample + textures. + - "Renderer" (REG_SZ) + The backend API to target. Possible values are "gl" (default) for + OpenGL and "gdi" for GDI. -Thomas Faber (1): - msxml3: Handle libxml2 API breakage. +- Deprecated HKEY_CURRENT_USER\Software\Wine\Direct3D registry key: + - "DirectDrawRenderer" + This has been superseded by the "Renderer" setting above. + +- Removed HKEY_CURRENT_USER\Software\Wine\Direct3D registry key: + - "StrictDrawOrdering" + This feature was previously deprecated in favor of the + multi-threaded command stream feature, and has been completely + removed. + + +*** Graphics + +- A complete Vulkan driver is implemented, using the host Vulkan + libraries under X11, or MoltenVK on macOS. + +- A builtin vulkan-1 loader is provided as an alternative to the SDK + loader. + +- Icons in PNG format are supported, enabling loading high-resolution + 256x256 icons. + +- The standard icons include a 256x256 version to take advantage of + the PNG support. + +- Many Direct2D interfaces have been updated to version 1.2. + +- New HKEY_CURRENT_USER\Software\Wine\Direct2D registry key: + - "max_version_factory" (REG_DWORD) + Limit the interface version of the ID2D1Factory interface to the + specified version. 0x0 for ID2D1Factory, 0x1 for ID2D1Factory1, + etc. By default there is no limit. + +- Using an ARGB visual as default X11 visual is supported. + +- The old 16-bit DIB.DRV driver is implemented using the DIB engine. + +- Polygon drawing in the DIB engine is much faster for large polygons. + +- A0, A1 and A2 paper sizes are supported for generic printers. + +- Arrows are supported in GdiPlus. + + +*** Kernel + +- Support for running DOS binaries under Wine is removed. When + execution of a DOS binary is requested, an external DOSBox instance + is launched. This doesn't apply to Win16 binaries, which are still + supported internally. + +- All the CPU control and debug registers can be accessed by kernel + drivers, including on 64-bit. + +- Events, semaphores, mutexes and timers are implemented in kernel + mode for device drivers. + +- The WaitOnAddress synchronization primitives are supported. + +- Reported processor information correctly distinguishes logical and + physical CPU cores to support hyper-threading. + +- Detailed BIOS information can be queried on Linux platforms. + +- The various debugger APIs support manipulating a 32-bit Wow64 + process from a 64-bit process context. + +- Application settings, compatibility information and execution levels + are recognized in application manifests. + +- The various file I/O completion modes are implemented. + +- Debug registers are supported on NetBSD. + + +*** User interface + +- The infrastructure for setting DPI awareness and scaling of non + DPI-aware applications is implemented. However, actual scaling of + window contents is only supported on Android at this point. + Scaling is disabled by default and can be enabled by setting the + "DpiScalingVer" value under HKEY_CURRENT_USER\Control Panel\Desktop. + +- Window class redirection is supported, enabling support of Common + Controls version 6 features for standard USER controls like buttons. + +- The standard USER controls Button, Listbox, Combobox, Edit and + Static support version 6 features, including theming. + +- The standard Task Dialog is implemented, including support for + icons, hyperlinks, progress bars, and various other UI elements. + +- Cue banners are supported in version 6 of the Edit control. + + +*** Desktop integration + +- Exporting MIME-type file associations to the native desktop can be + disabled with a checkbox under the Desktop Integration tab in + winecfg. It can be configured programmatically by setting the + "Enable" value under + HKEY_CURRENT_USER\Software\Wine\FileOpenAssociations. + +- The File Dialog can display file properties like size, times and + attributes. + +- The File Dialog optionally shows the Places toolbar on the left-hand + side. + +- The shell folder Public is used instead of AllUsersProfile to follow + the behavior of recent Windows versions. + +- The shell File Browser supports keyboard shortcuts to rename (F2 + key) and delete (Delete key) shell folders. + +- Many standard icons are added to the Shell library. + +- Shell Autocompletion is supported. + +- In desktop mode the taskbar won't be displayed on top of fullscreen + windows. + +- Additional names are provided for standard cursors to better match + existing X11 cursor themes. + + +*** Input devices + +- HID game controllers are supported in the XInput and Raw Input APIs. + +- An SDL driver is implemented to make SDL game controllers + available through the HID interface. + + +*** Internet and networking + +- JScript has an EcmaScript compliant mode, which supports a number of + features not available in legacy mode. + +- JavaScript property accessors are supported. + +- HTML style object is rewritten to support standard-compliant mode. + +- HTML documents respect X-UA-Compatible HTTP header, allowing web + pages to request specific compatibility mode. The + HKEY_CURRENT_USER\Software\Wine\MSHTML\CompatMode key may be used to + override the requested mode. + +- MSHTML supports non-HTML elements, allowing limited SVG support. + +- A number of new HTML APIs are supported. + +- The proxy server can be configured through the Internet Control + Panel applet. + +- Stream I/O is implemented in WebServices. + +- The Web Services on Devices API (WSDAPI) is implemented, including + sending and receiving the various message types. + +- More system information is reported through WBEM, including CPU, + BIOS, video controller, and network adapter properties. + + +*** Cryptography + +- Asymmetric encryption keys, as well as RSA and ECDSA signature + verification are supported. + +- The GCM and ECB encryption chaining modes are supported. + +- Optimal Asymmetric Encryption Padding (OAEP) is supported in RSA + encryption. + +- A Kerberos security provider is implemented, supporting Kerberos + authentication. + +- A selection dialog for public key certificates is implemented. + +- If available, GnuTLS is used on macOS in preference to the + CommonCrypto framework. + + +*** Text and fonts + +- Character tables are based on version 11.0.0 of the Unicode Standard. + +- The new subpixel font rendering of FreeType >= 2.8.1 is supported. + +- When a font face is missing, FontConfig is queried to provide + possible substitutions. + +- The font selected in the console emulator properly scales with the + display DPI. + +- Memory font resources are supported in DirectWrite. + +- The builtin Wingdings font contains clock images. + + +*** Audio + +- The Windows Media Player interfaces are implemented and support + media playback. + +- An MP3 decoder is provided as DirectX Media Object. + + +*** macOS + +- The preloader is implemented on macOS, for better address space + layout compatibility. + +- The Command key can be mapped to Ctrl, by setting the + "LeftCommandIsCtrl" or "RightCommandIsCtrl" values under + HKEY_CURRENT_USER\Software\Wine\Mac Driver. + +- The App Nap energy-saving feature is disabled by default in GUI + processes. It can be re-enabled by setting the "EnableAppNap" value + under HKEY_CURRENT_USER\Software\Wine\Mac Driver. + + +*** Android + +- Setting the mouse cursor is supported using the APIs available in + Android >= 7. + +- The new version of the Android graphics buffer allocator API is + supported, to enable graphics support on Android >= 8. + +- Android x86-64 platforms are supported also in 64-bit mode, however + WoW64 mode is not supported yet in the WineHQ packages. + + +*** ARM platforms + +- Stubless COM proxies are implemented on ARM. + +- The Windows calling convention for variadic functions is supported + on ARM64. + +- Exception handling and debugging is better supported on ARM64 + platforms. + +- The MinGW toolchain is supported for cross-compilation to ARM64. + + +*** Built-in applications + +- The Ping program provides actual pinging functionality using + IcmpSendEcho. + +- The SchTasks task scheduler program can create and delete tasks. + +- The RegEdit registry editor has an improved hex editor for binary + values. + +- FOR loops are properly handled in the Command Interpreter. + +- The XCopy program supports the /k (keep attributes) option. + + +*** Internationalization + +- The Japanese 106 keyboard is properly supported. + +- Translation of timezone names is supported. + +- There is a partial translation to the Sinhala language. + +- More locales are supported in the Resource Compiler (wrc) and + Message Compiler (wmc). + + +*** Development tools + +- winedbg supports debugging WoW64 processes. + +- In gdb proxy mode, winedbg supports a --port option to specify the + port used to connect to gdb. + +- winegcc uses better heuristics for finding the appropriate lib + directory for 32/64-bit cross-compiles. + +- winegcc supports building native subsystem libraries. + +- winegcc also looks for includes in the top-level include directory + of the installation prefix. + +- winebuild supports a -mfpu option for specifying the FPU + architecture on ARM platforms. + +- winedump supports dumping SLTG-format typelibs. + + +*** IDL compiler + +- Application Configuration Files (ACF) are supported. + +- Asynchronous interfaces are supported. + +- Type and method serialization using encode/decode attributes is + supported. + +- The defaultvalue() attribute is supported for pointer types. + +- Generated files are always specific to the target platform. The + target can be specified the same way as with the other tools, + using the cpu-manufacturer-os platform specification. + +- Nesting of pointers and arrays works correctly. + +- Correct size and alignment are generated for encapsulated unions. + +- The __int32 type is supported. + +- The -robust command line option is recognized (but ignored) for + compatibility with the Microsoft IDL compiler. + +- Multiple typelibs can be generated into a single resource file. + + +*** .NET + +- 32-bit CIL-only .NET binaries are supported on 64-bit. + +- The Mono engine is updated to version 4.7.5 with some upstream Mono + fixes. + + +*** RPC/COM + +- The typelib marshaller is reimplemented. It generates format strings + and then uses the standard NDR marshalling routines; this way it + also works on 64-bit and ARM platforms. + + +*** Installers + +- MSI custom actions run in a separate process, enabling proper + support for mixed 32/64-bit installers. + +- Deferred installation actions are supported in MSI. + + +*** Build infrastructure + +- The test framework supports building helper dlls inside a test, to + allow testing features that require loading an external library. + +- The test framework supports testing Windows kernel drivers. + +- It is possible to build and run a WoW64 tree from inside the Wine + source directory. Previously an out-of-tree build was required. + +- A .editorconfig file is provided with the recommended indentation + parameters. + + +*** Miscellaneous + +- The Task Scheduler service and APIs are implemented. + +- The Windows Management Instrumentation service is implemented. + +- The OPC Services (Open Packaging Conventions, used for Microsoft + Office XML files) library is implemented. + +- The HKEY_PERFORMANCE_DATA magic registry key is partially + implemented. + + +*** New external dependencies + +- The Vulkan library is used to implement the Vulkan graphics driver. + +- The Vkd3d library is used to implement Direct3D 12 on top of Vulkan. + +- The SDL library is used to support game controllers. + +- The GSSAPI library is used to implement Kerberos authentication. -Zebediah Figura (1): - ntoskrnl.exe: Properly handle already-loaded drivers in handle_bus_relations(). -- Alexandre Julliard diff --git a/VERSION b/VERSION index 5eb92930e46..eb0ae98b626 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -Wine version 4.0-rc7 +Wine version 4.0 diff --git a/configure b/configure index f3c292093b6..b3a360e72ea 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for Wine 4.0-rc7. +# Generated by GNU Autoconf 2.69 for Wine 4.0. # # Report bugs to . # @@ -580,8 +580,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Wine' PACKAGE_TARNAME='wine' -PACKAGE_VERSION='4.0-rc7' -PACKAGE_STRING='Wine 4.0-rc7' +PACKAGE_VERSION='4.0' +PACKAGE_STRING='Wine 4.0' PACKAGE_BUGREPORT='wine-devel@winehq.org' PACKAGE_URL='https://www.winehq.org' @@ -2390,7 +2390,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Wine 4.0-rc7 to adapt to many kinds of systems. +\`configure' configures Wine 4.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -2460,7 +2460,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Wine 4.0-rc7:";; + short | recursive ) echo "Configuration of Wine 4.0:";; esac cat <<\_ACEOF @@ -2692,7 +2692,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Wine configure 4.0-rc7 +Wine configure 4.0 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -3376,7 +3376,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Wine $as_me 4.0-rc7, which was +It was created by Wine $as_me 4.0, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -20870,7 +20870,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Wine $as_me 4.0-rc7, which was +This file was extended by Wine $as_me 4.0, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -20941,7 +20941,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -Wine config.status 4.0-rc7 +Wine config.status 4.0 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\"