Wine 2.21 released
Posted on: 11/12/2017 05:03 PM

The Wine development release 2.21 is now available

Wine 2.21 released

What's new in this release (see below for details):
- Still more metafile support in GdiPlus.
- Indirect draws support in Direct 3D.
- Calling convention fixes on ARM.
- Improved serial port detection on Linux.
- Services fixes on WoW64.
- Better DPI scaling in the Shell Explorer.
- Various bug fixes.

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.


Bugs fixed in 2.21 (total 16):

34601 Hydro Thunder from Midway Arcade Treasures 3 crashes quickly after the start
37669 Resetting a write watch can cause memory access violation in kernel
38334 SpinTires crashes with unimplemented function d3dx9_36.dll.D3DXFrameFind
42568 user32/tests/msg.ok intermittent failure in SendMessage from other thread
42569 user32/tests/clipboard intermittent failure ("expected freed memory")
42570 dinput/tests/mouse intermittently fails in Acquire() and GetDeviceData()
42863 Multiple games require sample_c_lz for cube/array textures (Winexy, Witcher 3, Flame in the Flood)
43273 The Witcher 3 freezes the system in a certain area of the game
43316 Process Hacker 2.x needs ADVAPI32.dll.LsaLookupPrivilegeName
43405 NieR:Automata - Most bullets are invisible
43483 Medusa Demo crashes with unimplemented function d3dx10_43.dll.D3DX10PreprocessShaderFromMemory
43750 USB "ttyACM0" serial port not being created
43853 Keepass2 fails to launch
43884 MSVC LINK.EXE version 14.11.25547.0 crashes due to unimplemented function _memicmp_l
43939 comctl32 cannot load its assembly on arm
43952 kernel32/tests/console.ok fails


Changes since 2.20:

Alex Henrie (8):
mountmgr: Map ttyACM devices to COM ports on Linux.
vbscript/tests: Fix test for WeekDayName(foo, bar, 0).
kernel32/tests: Detect and handle a redirected stdin.
libport: Move rint fallback implementations from msvcrt to libport.
d3dx9/tests: Correct Fresnel reference term.
d3dx9/tests: Provide 8 significant digits in matrix reference values.
d3dx9/tests: Relax D3DXQuaternionToAxisAngle test stringency a bit.
d3dx9/tests: Use a helper function to set matrix values in math tests.

Alexandre Julliard (23):
configure: Require floating point support on ARM.
setupapi: Use correct architecture for fake dlls on ARM and ARM64.
wldap32: Use WINAPIV calling convention for variadic functions.
ntdll: Use WINAPIV calling convention for variadic functions.
kernel32/tests: Use WINAPIV calling convention for variadic functions.
msvcrt: Use WINAPIV calling convention for variadic functions.
include: Use WINAPIV calling convention for variadic functions.
attrib: Use WINAPIV calling convention for variadic functions.
cmd: Use WINAPIV calling convention for variadic functions.
ipconfig: Use WINAPIV calling convention for variadic functions.
net: Use WINAPIV calling convention for variadic functions.
netstat: Use WINAPIV calling convention for variadic functions.
reg: Use WINAPIV calling convention for variadic functions.
regedit: Use WINAPIV calling convention for variadic functions.
regsvr32: Use WINAPIV calling convention for variadic functions.
taskkill: Use WINAPIV calling convention for variadic functions.
uninstaller: Use WINAPIV calling convention for variadic functions.
xcopy: Use WINAPIV calling convention for variadic functions.
include: Use the hard-float calling convention for Windows APIs on ARM
ntdll: Don't change packing of fd cache entries.
user32: Pass the text length explicitly to EDIT_EM_ReplaceSel.
user32/tests: Avoid strlen in traces.
readme: Patches should now be sent to wine-devel.

Alistair Leslie-Hughes (4):
oledb32: DataConvert support DBTYPE_VARIANT -> DBTYPE_R4.
oledb32: Fix typo.
quartz: Output This in TRACE statements.
quartz: Output This in TRACE statements.

Andrew Eikum (4):
explorer: Don't leak PIDL.
explorer: Scale element sizes by DPI.
shell32: Scale explorer browser sizes by DPI.
shell32: Size ShellView column widths by font width.

Andrey Gusev (6):
hidclass.sys: Remove check for negative value.
iphlpapi: Change variable type.
usp10: Remove worthless check.
mf: Add MFGetSupportedMimeTypes stub.
d3dx10: Add D3DX10PreprocessShaderFromMemory stub.
d3dx11: Fix D3DX11CompileFromMemory spec entry.

Andrey Semakin (3):
winemine: Add WM_RBUTTONUP to cases of TestMines().
winemine: Save board without need to correctly finish the app.
winemine: Add Reset Results button.

Aric Stewart (2):
usp10/tests: Add fingerprint to help ensure proper font for testing.
hidclass.sys: Handle opportunistic reads.

Aurimas Fišeras (1):
po: Update Lithuanian translation.

Austin English (2):
readme: Clarify the wording a bit.
preloader: Fix a typo in error message.

Dmitry Kislyuk (1):
vbscript: Improve parsing of separators in functions and classes.

Dmitry Timoshkov (1):
ws2_32/tests: Add some tests for sockets bound to a completion port.

Donna Whisnant (2):
oleaut32: Add ARM support to DispCallFunc().
oleaut32: Fix DispCallFunc() stdcall test to be ABI not x64 specific.

Fabian Maurer (2):
comctl32/tests: Add taskdialog callback tests.
comctl32/taskdialog: Added support for nDefaultButton.

Gerald Pfeifer (3):
fusion: Remove unused to_multibyte function.
advapi32/tests: Fix two clang warnings in test_LookupAccount SID_NAME_USE being out of range.
configure: Use the -Wno-packed-not-aligned compiler option if available.

Hans Leidekker (4):
include: Add missing BCRYPT_CHAIN_MODE definitions.
advapi32: Fix EnumServicesStatus on Wow64.
advapi32: Fix EnumServicesStatusEx on Wow64.
advapi32: Fix QueryServiceConfig2 on Wow64.

Hugh McMaster (2):
regedit: Correctly export hex values with no data.
regedit: Correctly export REG_DWORD values with no data.

Huw D. M. Davies (2):
rpcrt4: Don't free the argument if the freer was called, unless it's a simple ref.
ole32: Correctly track the number of inits when auto-joining the MTA.

Jacek Caban (10):
jscript: Added support for VT_UI2 VARIANT types.
mshtml: Added support for VT_UI2 in IDispatchEx.
mshtml: Added DOMContentLoaded event implementation.
mshtml: Expose IEventTarget to scripts.
mshtml/tests: Added script IE9+ event tests.
mshtml: Introduce variant_bool helper.
mshtml: Added IDOMEvent::get_defaultPrevented implementation.
mshtml: Use variant_bool helper where appropriate.
mshtml: Added IDocumentSelector::querySelector implementation.
mshtml: Merge hlink.c into persist.c.

Józef Kucia (28):
wined3d: Add ARB_draw_indirect extension.
wined3d: Factor out acquire_graphics_pipeline_resources().
wined3d: Implement indirect draws.
d3d11: Implement d3d11_immediate_context_DrawInstancedIndirect().
d3d11: Implement d3d11_immediate_context_DrawIndexedInstancedIndirect().
include/d3d11: Add definitions for indirect draw arguments.
wined3d: Add support for R8_UNORM vertex format.
d3d11/tests: Add test for SV_InstanceID.
wined3d: Add 4.4 to supported OpenGL versions.
d3d11/tests: Add test for indirect draws with index buffer offset.
wined3d: Add FIXME() for unimplemented index buffer offsets.
wined3d: Factor out draw_indirect() function.
wined3d: Bail out when ARB_draw_indirect is not supported.
wined3d: Require ARB_draw_indirect for SM5.
wined3d: Disable ARB_draw_indirect if ARB_base_instance is not available.
d3d10core/tests: Add test for SV_InstanceID.
wined3d: Create textures views for depth views.
wined3d: Use textureGrad*() to implement sample_c_lz for array and cube textures.
d3d11/tests: Add test for sample_c_lz instruction.
wined3d: Use wined3d_insert_bits().
wined3d: Use wined3d_extract_bits().
wined3d: Get rid of compute_shader_init().
wined3d: Get rid of domain_shader_init().
wined3d: Get rid of hull_shader_init().
wined3d: Disable pixel shader when rasterization is disabled.
wined3d: Handle stream output components when rasterization is disabled.
d3d11/tests: Add test for stream output components.
wined3d: Invalidate pixel shader only when rasterization is toggled.

Lauri Kenttä (1):
po: Update Finnish translation.

Marcus Meissner (4):
user32/tests: Check GetClipboardFormatName length.
ole32: Clipboard format in the datacache is with trailing \0.
ieframe/tests: Avoid crash on missing IID_IWebBrowser2 interface.
oleaut32/tests: Fixed 64-bit crash on tmarshal test.

Martin Storsjo (1):
msvcrt: Back up and restore the FPU state in setjmp/longjmp on ARM.

Matteo Bruni (2):
d3dx10: Remove redundant header include.
d3dx10: Fix tracing of shader source data.

Michael Müller (2):
wined3d: Add support for start instance in draw_primitive_arrays().
advapi32: Added a stub for LsaLookupPrivilegeDisplayName().

Michael Stefaniuc (4):
ddraw/tests: Use ARRAY_SIZE() in the ddraw1 tests.
ddraw/tests: Use ARRAY_SIZE() in the ddraw2 tests.
ddraw/tests: Use ARRAY_SIZE() in the ddraw4 tests.
wined3d: Use ARRAY_SIZE().

Nikolay Sivov (22):
dwrite: Set lfItalic style to get more compatible results for gdiinterop.
gdiplus/metafile: Simplify EmfPlusARGB definition.
gdiplus/metafile: Support hatch brushes in playback.
gdiplus/metafile: Support texture brushes playback.
gdiplus/metafile: Support hatch brushes for recording.
gdiplus/metafile: Implement playback for EmfPlusRecordTypeDrawImage.
advapi32/tests: Remove dynamic function binding from LSA tests.
advapi32/tests: Merge some test code.
advapi32: Partially implement LsaLookupPrivilegeName().
gdiplus/metafile: Implement EmfPlusRecordTypeDrawPie playback.
gdiplus/metafile: Implement playback for EmfPlusRecordTypeDrawRects.
gdiplus/metafile: Implement playback for EmfPlusRecordTypeFillEllipse.
gdiplus/metafile: Implement playback for EmfPlusRecordTypeFillPie.
gdiplus/metafile: Add brush object if needed in FillRectangles().
xmllite/tests: Fix clang warning.
gdiplus/metafile: Implement playback for EmfPlusRecordTypeDrawArc.
gdiplus/metafile: Implement playback for EmfPlusRecordTypeDrawEllipse.
gdiplus/metafile: Implement playback for EmfPlusRecordTypeFillClosedCurve.
gdiplus/metafile: Implement playback for EmfPlusRecordTypeSetCompositingMode.
msvcrt: Implement _memicmp_l().
gdiplus/metafile: Support linear gradient brushes in playback.
d3dx9: Implement D3DXFrameFind().

Paul Gofman (1):
d3dx9: Zero constantinfo_reserved on error in get_constants_desc().

Piotr Caban (13):
wine.inf: Add Windows Messaging Subsystem MAPI registry key.
hhctrl.ocx: Set window owner in HtmlHelp function if WS_CHILD flag is not specified.
vbscript: Add UBound implementation.
oleaut32: Fix automatic value getting in ITypeInfo::Invoke.
oleaut32: Ignore underflows in VarR8FromStr.
vbscript: Add support for "for each" on arrays.
vbscript: Add for each tests on array.
vbscript: Don't return error on VBScript_SetScriptState(SCRIPTSTATE_DISCONNECTED) call.
vbscript: Don't leak IEnumVARIANT in interp_enumnext.
fusion: Respect buffer size in IAssemblyNameImpl_GetProperty.
fusion: Add support for ASM_NAME_ARCHITECTURE in IAssemblyNameImpl_GetProperty.
fusion: Fix IAssemblyNameImpl_GetDisplayName behavior on too small buffer.
fusion: Fix IAssemblyNameImpl_GetDisplayName behavior on PublicKeyToken containing 0.

Rafał Harabień (2):
riched20: Protect read-only Richedit against pasting and cutting data.
user32: Protect single-line edit against pasting new line character.

Stefan Dösinger (1):
d3d9/tests: Windows 10 17.09 added an undocumented query type.

Vijay Kiran Kamuju (1):
msvcp100: Add time_get::get function with format parameters.

Vincent Povirk (1):
tdh: Stub TdhLoadManifest.

Zebediah Figura (10):
regedit: Always start the GUI as 64-bit when on a 64-bit prefix.
dinput/tests: Remove a no longer needed workaround.
dinput/tests: Don't pump messages in test_acquire().
quartz/tests: GetDestinationPosition() returns the actual window width.
quartz/tests: Avoid Sleep().
user32: Use the given string length when converting strings in WM_GETTEXT.
user32/tests: Simplify test_SendMessage_other_thread().
quartz/tests: Remove thread-counting tests.
quartz/tests: Skip tests if CLSID_NullRenderer is not available.
quartz/tests: Add test AVI and MPG files.

Zhiyi Zhang (2):
kernel32/tests: Add more tests for LocaleNameToLCID and LCIDToLocalName.
kernel32/nls: Add LOCALE_SPARENT entries.

Ziqing Hui (3):
mlang/tests: Add IMultiLanguage2_GetCodePageInfo tests.
mlang: Fix font name of Chinese code pages.
mlang: Add more Chinese code pages support.

Printed from Linux Compatible (