1 The Wine development release 4.1 is now available.
3 What's new in this release (see below for details):
4 - Support for NT kernel spinlocks.
5 - Better glyph positioning in DirectWrite.
6 - More accurate reporting of CPU information.
7 - Context handle fixes in the IDL compiler.
8 - Preloader fixes on macOS.
11 The source is available from the following locations:
13 https://dl.winehq.org/wine/source/4.x/wine-4.1.tar.xz
14 http://mirrors.ibiblio.org/wine/source/4.x/wine-4.1.tar.xz
16 Binary packages for various distributions will be available from:
18 https://www.winehq.org/download
20 You will find documentation on https://www.winehq.org/documentation
22 You can also get the current source directly from the git
23 repository. Check https://www.winehq.org/git for details.
25 Wine is available thanks to the work of many people. See the file
26 AUTHORS in the distribution for the complete list.
28 ----------------------------------------------------------------
30 Bugs fixed in 4.1 (total 30):
32 11070 importpfx fails, needs PFXImportCertStore implementation
33 33456 D3DXMatrixTransformation: Broken calculation when scalingrotation and scaling is used
34 38274 White water in Heroes VI (DXTn volume textures)
35 38558 cmd.exe bundled with Windows XP messed up when using FOR /F
36 39663 GOG Galaxy client 1.x hangs or reports 'Something went wrong during DeelevateStrategy' error in Win7 mode (GOG Galaxy service needs wtsapi32.WTSQueryUserToken implementation)
37 39890 Orcish Inn fails to start with exception System.NotImplementedException
38 40441 Chicken tournament crashes when loading texture
39 42491 wine builds are not reproducible (widl needs initializization of datatype2 in add_typedef_typeinfo)
40 43252 IcmpSendEcho doesn't work with a ReplySize<56
41 43322 Regression in Test Drive Unlimited 2, visual artifacts
42 44469 Multiple apps using Windows 10 v1507+ UCRT crash due to multiple missing api-ms-win-crt-private-l1-1-0.dll._o__xxx stubs/forwards (Win10 DISM pkgmgr.exe, MS DirectX Shader Compiler)
43 44941 Bioshock Remastered doesn't start in windowed mode
44 45326 Multiple 64-bit kernel drivers crash on unimplemented function ntoskrnl.exe.__C_specific_handler (NoxPlayer 6.x, MTA:SA 1.5.x)
45 45447 [World of Tanks] Borderless window broken since 1.0.2
46 46137 NI Kontakt 5 crashes on unimplemented function msvcp140.dll.?_Getcat@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@SAIPAPBVfacet@locale@2@PBV42@@Z
47 46298 Middle-earth: Shadow of War (steam appid 356190) crashes on launch
48 46303 Warcraft 3: Reign of Chaos (Czech language) can't be installed from CD
49 46453 The Testament of Sherlock Holmes crashes while loading level with builtin d3dx9_43
50 46465 Visual Studio 2015 crashes on unimplemented function msvcp140.dll._Equivalent
51 46469 Only the first XInput controller is detected in wine 4.0
52 46479 64-bit mono crashes in RtlAddGrowableFunctionTable
53 46482 Gas Guzzlers Combat Carnage crashes when changing screen resolution
54 46485 PBM_STEPIT crashes with division by zero when MinVal == MaxVal == 0
55 46488 Diablo 2 LoD: Direct3D regression: Unhandled exception: Access_violation (c0000005)
56 46489 ClrMamePro crashes on update attempt
57 46494 64bit WinMerge crash after clicking "About WinMerge"
58 46499 Multiple games crash in GetRawInputData when exiting(House Party, Murderous Pursuits, ICEY)
59 46520 Kindred Spirits on the Roof crashes
60 46536 Empire Earth (GOG version) main menu rendering is broken
61 46569 ToDoList 7.1 : fails to launch after WINE upgrade to 4.0 version
63 ----------------------------------------------------------------
68 shell32: Rename SHELL32_714 to PathIsTemporaryW.
70 Alexandre Julliard (7):
71 ntdll: Don't crash on empty table in RtlAddFunctionTable().
72 ntdll: Implement RtlIsProcessorFeaturePresent().
73 ntdll: Round header size to page boundary before checking it in PE header conversion.
74 ntdll: Support loading old runtime versions of IL-only images.
75 kernel32/tests: Add helper function for machine type manipulations.
76 kernel32/tests: Try loading the dll also for matching platform type.
77 kernel32/tests: Add tests for dll fallback when image type doesn't match current platform.
79 Alistair Leslie-Hughes (8):
80 ole32/tests: Test for the correct IID.
81 mfreadwrite: Add initial tests.
82 include: Add MFSetAttributeSize/MFSetAttributeRatio inline functions.
83 crypt32: Fix compile error on older gnutls.
84 crypt32: Fix compile error on older gnutls.
85 uiautomationcore: Update spec file.
86 mfreadwrite: Add DllGetClassObject/DllCanUnloadNow functions.
87 mfreadwrite: Register MFReadWriteClassFactory interface.
90 d3drm/tests: Add missing HRESULT.
91 d3dcompiler: Add support for two other versions of ID3D11ShaderReflection.
92 mshtml: Remove redundant condition.
93 d3dx11: Fix D3DX11CreateShaderResourceViewFromMemory spec entry.
94 d3dx11_42: Share source with d3dx11_43.
97 msvcrt: _towlower_l only lowercase A-Z in C locale.
98 msvcrt: _towupper_l only uppercase a-z in C locale.
99 ucrtbase/tests: Add tests for C locale.
102 ddraw/tests: Add tests for the "dwMipMapCount" field of texture sub-levels.
103 ddraw: Fix the "dwMipMapCount" field of texture sub-levels.
104 d3dx9/tests: Add more tests for D3DXMatrixTransformation().
106 Dmitry Timoshkov (12):
107 crypt32: Make sure that the provider supports the specified signature algorithm.
108 crypt32: Make sure that the provider supports the specified hash algorithm.
109 wininet: Return proper cache path from GetUrlCacheConfigInfo.
110 wininet: Make GetUrlCacheConfigInfo() return actual dwQuota and dwCacheSize.
111 crypt32: Add support for CERT_COMPARE_KEY_IDENTIFIER to CertFindCertificateInStore.
112 crypt32: Add support for CRYPT_ACQUIRE_SILENT_FLAG to CryptAcquireCertificatePrivateKey.
113 crypt32: Simplify the code.
114 windowscodecs: Implement IWICPalette::InitializeFromBitmap.
115 gdiplus: Implement GdipInitializePalette.
116 gdiplus/tests: Add some tests for GdipInitializePalette.
117 windowscodecs: Add support for converting to 8bppIndexed format.
118 windowscodecs: Add a NULL check to 8bpp gray converter.
120 Eric Bissonnette (1):
121 dbghelp: Support full memory dumps.
124 api-ms-win-crt-private-l1-1-0: Update to 10.0.17134.12 (WinBuild.160101.0800).
125 ucrtbase: Forward a few functions for dxil.dll and pkgmgr.exe.
126 mscoree: Allow loading of registration free .NET COM objects.
128 Gabriel Ivăncescu (7):
129 shell32/autocomplete: Don't autoappend on Paste if ACO_AUTOAPPEND is off.
130 shell32/autocomplete: Always expand if the enumerator was reset.
131 libport: Handle partially overlapping buffers.
132 kernel32/tests: Test partially overlapping buffers for MultiByteToWideChar.
133 shell32/shfldr_desktop: Use friendly name instead of GUID when SHGDN_FORADDRESSBAR is set.
134 shell32/shfldr_mycomp: Use friendly name instead of GUID when SHGDN_FORADDRESSBAR is set.
135 shell32/tests: Test GetDisplayNameOf for special folders with both SHGDN_FORPARSING and SHGDN_FORADDRESSBAR.
138 msvcp140: Export _Equivalent and port tests.
139 msvcp: Set correct error code on non-existing path in _Open_dir.
140 msvcp: Set target to null on error in _Open_dir.
141 kernel32/tests: Add CopyFile[Ex]A NULL handling tests.
142 msvcp: Return ERROR_INVALID_PARAMETER on NULL input in _Copy_file.
145 wbemprox: Support cpuid on 64-bit.
146 wbemprox: Strip trailing spaces from processor name.
147 wbemprox: Include extended model and family fields in processor properties.
148 wbemprox: Fix processor caption on AMD 64-bit.
149 wbemprox: Create one processor object per package.
150 crypt32: Initial implementation of PFXImportCertStore.
151 winhttp: Implement WINHTTP_OPTION_CLIENT_CERT_CONTEXT.
152 crypt32: Add support for importing RSA private keys from PFX blobs.
153 crypt32: Support password protected PFX blobs.
154 wineboot: More accurate reporting of AMD and Intel processors.
155 secur32: Ignore spurious callbacks on macOS.
156 crypt32: Add support for PFX objects in CryptQueryObject.
159 ddraw: Implement ddraw7_FlipToGDISurface().
160 ddraw: Return the correct swapchain surface in ddraw7_GetGDISurface().
162 Isira Seneviratne (2):
163 po: Update Sinhala translation.
164 po: Update Sinhala translation.
167 widl: Fix HANDLE_PARAM_IS_RETURN flag handling.
168 widl: Use public HANDLE_PARAM_IS_* flags.
169 mshtml.idl: Add IDOMCustomEvent declaration.
170 rpcrt4: Fix comment about HANDLE_PARAM_IS_RETURN.
171 rpcrt4/tests: Run RPC tests in both mixed and fully interpreted mode.
172 rpcrt4/tests: Use --prefix-client to avoid duplicated function implementations.
173 widl: Fix context handle as return value handling.
174 widl: Default to input param if [out] nor [in] attribut is specified in get_contexthandle_flags.
175 mshtml: Add IDOMCustomEvent interface stub implementation.
176 rpcrt4: Fix context handle return value marshaling.
177 rpcrt4: Fix context handle return value unmarshaling.
178 rpcrt4/tests: Add context handle marshaling tests.
179 mshtml: Add IDOMCustomEvent::initCustomEvent implementation.
180 mshtml: Add IDOMCustomEvent::detail property implementation.
181 mshtml: Expose IDOMCustomEvent to scripts.
182 advapi32/tests: Add test using NotifyServiceStatusChange on different handles of the same service.
183 services: Store a list of service handles in service_entry.
184 services: Associate notify handle with service handle instead of service entry.
185 widl: Check function return values for additional prototype types.
186 widl: Fix handling context handle return type in mixed mode.
187 ntoskrnl.exe: Add __C_specific_handler entry.
188 ntoskrnl.exe: Add KeEnterGuardedRegion and KeLeaveGuardedRegion stubs.
189 ntoskrnl.exe: Implement KeExpandKernelStackAndCallout and KeExpandKernelStackAndCalloutEx.
192 kernel32: Fix MoveFileWithProgressW from closing same handle twice.
193 kernel32: Fix MOVEFILE_REPLACE_EXISTING between devices.
196 include: Mark IDirect3D9Ex::GetAdapterDisplayModeEx() as PURE.
197 include: Add a few missing d3d9 constants.
199 Julien D'ascenzio (1):
200 ntdll: Correct space/mark parity.
203 d3d9: Validate surface parameter in d3d9_device_ColorFill().
204 d3d10core/tests: Add test for sample_c_lz instruction.
205 d3d10core/tests: Add option to enable debug layer.
206 d3d10core/tests: Fix crashes with debug layer enabled.
207 d3d10core/tests: Avoid "skipping tests" in skip() messages.
208 wined3d: Move wined3d_bit_scan() to public header.
209 d3d8: Use wined3d_bit_scan() instead of open-coding it.
210 d3d9: Use wined3d_bit_scan() instead of open-coding it.
211 ddraw: Pass correct box when mapping system memory vertex buffers.
214 libwine: On Mac, disable ASLR for Wine processes.
215 loader: On Mac, move the top-down allocations area down to avoid regions reserved by the system.
218 d3dx9/tests: Expect plain render target creation to work.
219 d3dx9/tests: Fix a couple of ok() messages.
220 d3d9/tests: Add a D3D9Ex test for drawing with D3DPOOL_SYSTEMMEM buffers.
221 d3d9/tests: Test drawing with D3DPOOL_SYSTEMMEM textures.
222 d3d8/tests: Test drawing with D3DPOOL_SYSTEMMEM textures.
223 ddraw/tests: Test drawing with system memory textures.
224 d3dx9: Improve D3DXMatrixTransformation() implementation.
225 d3dx9: Improve D3DXMatrixTransformation2D().
226 d3dx9/tests: Avoid some 64-bit test failures.
227 d3d9/tests: Test D3DPOOL_SYSTEMMEM vertex buffer lock address stability.
228 d3d9/tests: Test D3D9Ex vertex buffer lock address stability.
229 d3d8/tests: Test D3DPOOL_SYSTEMMEM vertex buffer lock address stability.
230 d3d9: Drop map read access from the internal buffers used for user-pointer draws.
231 d3d8: Drop map read access from the internal buffers used for user-pointer draws.
232 ddraw: Drop map read access from the internal buffers used for user-pointer draws.
233 d3d9: Take usage flags into account when assigning map flags.
234 d3d8: Take usage flags into account when assigning map flags.
235 d3d9: Don't allow map read access to D3DUSAGE_WRITEONLY buffers.
236 d3d8: Don't allow map read access to D3DUSAGE_WRITEONLY buffers.
237 wined3d: Replace WINED3DUSAGE_WRITEONLY with resource access flags.
238 d3d9/tests: Use a D3DUSAGE_WRITEONLY buffer in test_vb_lock_flags().
239 d3d8/tests: Use a D3DUSAGE_WRITEONLY buffer in test_vb_lock_flags().
240 d3dx11: Downgrade ERR() to WARN() in D3DX11CreateAsyncResourceLoader*().
241 d3dcompiler: Actually define the correct ID3D11ShaderReflection GUIDs.
243 Michael Stefaniuc (10):
244 dmloader: Fix a memory leak.
245 wineandroid.drv: Use the ARRAY_SIZE() macro.
246 regedit: Remove redundant NULL check before heap_free().
247 reg: Remove redundant NULL check before heap_free().
248 strmbase: Remove redundant NULL check before CoTaskMemFree().
249 ole32: Remove redundant NULL check before CoTaskMemFree().
250 windowscodecs: Use the ARRAY_SIZE() macro.
251 windowscodecs: Remove redundant NULL check before HeapFree().
252 mshtml: Print the debug string and not the pointer to it.
253 shell32: Avoid FALSE : TRUE conditional expressions.
256 d3d11: Implement d3d11_device_GetImmediateContext1().
257 api-ms-win-core-libraryloader-l1-2-1: Add missing FindResourceW() forward.
258 comctl32/progress: Handle min == max case in PBM_STEPIT.
259 ntdll: Store range upper boundary for dynamic unwind entry.
260 ntdll: Keep unwind table entry count instead of a size.
261 ntdll: Implement growable unwind tables API.
262 user32/dialog: Fix setting negative dialog item ids.
263 dwrite: Use array for script tags.
264 dwrite: Use helper to trace 4 byte tags.
265 dwrite: Remove special case for vertical variants.
266 dwrite/layout: Improve overhangs metrics computation.
267 dwrite: Use a helper for design advances.
268 dwrite/analyzer: Preserve inter-cluster spacing when apply spacing properties.
269 dwrite/tests: Some more tests for ComputeGlyphOrigins().
270 dwrite: Validate font data when retrieving supported unicode ranges data.
271 dwrite: Validate 'gasp' data before accessing it.
272 dwrite: Validate 'CPAL' data before using it.
273 comctl32/rebar: Do not use global variable for debug buffer (Coverity).
274 ntdll: Make LdrFindResource_U() and LdrFindResourceDirectory_U() patchable.
275 shell32: Remove duplicated assignment (Coverity).
276 usp10/tests: Add missing return value checks (Coverity).
277 include: Fix a typo in D2D1_WINDOW_STATE values.
278 ole32: Implement chained IInitializeSpy support.
279 ole32/tests: Test flags passed to spy methods.
280 d3dx9: Use wincodecs directly without initializing COM system.
281 dwrite: Validate 'COLR' data before using it.
282 dwrite: Validate 'CBLC' data before using it.
283 dwrite: Validate 'sbix' data before using it.
284 dwrite: Validate 'VDMX' data before using it.
285 dwrite/tests: Add some tests for setting glyph properties from GDEF.
286 dwrite: Add a helper to get shaped glyph positions.
287 dwrite: Resolve script and language to apply positional features.
288 dwrite: Collect and sort positional lookups.
289 dwrite: Add a helper to apply positional lookup.
290 dwrite: Implement masking with positional lookup flags.
291 winhttp/tests: Add a couple of return value tests (Coverity).
292 dwrite: Implement single adjustment, GPOS lookup 1.
293 dwrite: Implement pair adjustment, GPOS lookup 2.
294 dwrite: Implement cursive attachment, GPOS lookup 3.
295 dwrite: Implement mark-to-base attachment, GPOS lookup 4.
297 Orhan Kavrakoğlu (3):
298 crypt32: Add CryptImportPublicKeyInfoEx2 stub.
299 crypt32: Implement CryptHashCertificate2.
300 crypt32/tests: Add tests for CryptHashCertificate2.
303 d3dx9: Factor out {lock|unlock}_surface() functions.
304 d3dx9: Use temporary surface in D3DXFillTexture() for unmappable textures.
305 d3dx9/tests: Add test for D3DXFillVolumeTexture() with default pool texture.
306 d3dx9: Do not ignore surface map failure in D3DXSaveSurfaceToFileInMemory().
307 d3dx9: Use temporary surface in D3DXSaveSurfaceToFileInMemory() for unmappable textures.
308 d3dx9: Use {lock|unlock}_surface() in D3DXLoadSurfaceFromMemory().
311 msvcrt: Optimize tolower function when locale was never changed.
312 msvcrt: Optimize toupper function when locale was never changed.
313 wbemprox: Add Win32_NetworkAdapter DeviceAdapterID property.
314 wbemprox: Add Win32_NetworkAdapter Description property.
316 Sebastian Lackner (1):
317 wtsapi32: Improve WTSQueryUserToken stub.
320 dswave/tests: Fix a memory leak (Valgrind).
321 dmband/tests: Fix a memory leak (Valgrind).
322 dmcompos/tests: Fix a memory leak (Valgrind).
323 dmscript/tests: Fix a memory leak (Valgrind).
324 dmstyle/tests: Fix a memory leak (Valgrind).
325 dmusic/tests: Fix a memory leak (Valgrind).
326 msscript.ocx/tests: Fix some memory leaks (Valgrind).
327 kernel32/tests: Fix a memory leak (Valgrind).
328 hlink/tests: Fix some memory leaks (Valgrind).
329 gdiplus/tests: Fix a memory leak (Valgrind).
330 windowscodecs: Fix a memory leak (Valgrind).
331 gdiplus: Fix a memory leak on error path (Valgrind).
332 gdiplus/tests: Add some font family pointer tests.
333 wsdapi: Fix some memory leaks (Valgrind).
334 dmime/tests: Fix a memory leak (Valgrind).
335 dinput/tests: Fix some memory leaks (Valgrind).
336 dinput: Free the device after a callback (Valgrind).
337 strmbase: Fix some memory leaks (Valgrind).
339 Zebediah Figura (78):
340 d3d8/tests: Add a test for MultiplyTransform().
341 d3d9/tests: Add a test for MultiplyTransform().
342 ddraw/tests: Add a test for MultiplyTransform().
343 wined3d: Remove stateblock handling from wined3d_device_multiply_transform().
344 msi/tests: Introduce a variadic check_record() helper.
345 msi/tests: Use check_record() in test_columnorder().
346 msi/tests: Use check_record() in test_dbmerge().
347 msi/tests: Use check_record() in test_select_column_names().
348 msi/tests: Use check_record() in test_join().
349 setupapi: Store the path to the driver key in the device key.
350 setupapi: Don't use the devnode to allocate driver keys.
351 setupapi/tests: Create the setup class key before trying to create the driver key.
352 setupapi: Also remove the driver key in remove_device().
353 wined3d: Remove stateblock handling from wined3d_device_set_shader_resource_view().
354 wined3d: Remove stateblock handling from wined3d_device_set_sampler().
355 wined3d: Remove stateblock handling from wined3d_device_set_pipeline_unordered_access_view().
356 wined3d: Remove stateblock handling from wined3d_device_set_stream_output().
357 wined3d: Remove stateblock handling from wined3d_device_set_constant_buffer().
358 hal: Limit exports to the appropriate architectures.
359 ntoskrnl.exe: Implement KeInitializeSpinLock().
360 hal: Implement KeReleaseSpinLock().
361 ntoskrnl.exe: Implement KeReleaseSpinLock().
362 hal: Implement KeAcquireSpinLock().
363 ntoskrnl.exe: Implement KeAcquireSpinLockRaiseToDpc().
364 msi/tests: Use check_record() in more places.
365 msi: Get rid of the find_matching_rows() view operation.
366 msi: Get rid of the remove_column() view operation.
367 msi: Use a BOOL to track string persistence.
368 msi: Use 0-indexed row numbers in the modify() view operation.
369 ntoskrnl.exe: Implement IoReleaseCancelSpinLock().
370 ntoskrnl.exe: Implement IoAcquireCancelSpinLock().
371 ntoskrnl.exe: Implement ExInterlockedRemoveHeadList().
372 ntoskrnl.exe: Implement PsTerminateSystemThread().
373 wined3d: Remove stateblock handling from wined3d_device_set_geometry_shader().
374 wined3d: Remove stateblock handling from wined3d_device_set_compute_shader().
375 wined3d: Remove stateblock handling from wined3d_device_set_predication().
376 d3d9/tests: Add more tests for reset state after DrawIndexedPrimitiveUP().
377 d3d8/tests: Port test_draw_primitive() from d3d9.
378 msi: Factor out int_to_table_storage().
379 msi: Set table values directly in msi_select_update().
380 msi: Get rid of the get_row() view operation.
381 msi: Remove an unnecessary call to SELECT_get_dimensions().
382 msi: Store the IStorage list as an array of STORAGE structures.
383 ntoskrnl.exe/tests: Open the test file for synchronous I/O.
384 ntoskrnl.exe: Implement KeReleaseSpinLockFromDpcLevel().
385 ntoskrnl.exe: Implement KeAcquireSpinLockAtDpcLevel().
386 ntoskrnl.exe: Implement plain spinlock functions on top of DPC-level ones.
387 hal: Implement plain spinlock functions on top of DPC-level ones.
388 wined3d: Introduce a separate structure for stateblock state and store vertex shader state therein.
389 wined3d: Store vertex shader floating point constants in the wined3d_stateblock_state structure.
390 wined3d: Store vertex shader integer constants in the wined3d_stateblock_state structure.
391 wined3d: Store vertex shader boolean constants in the wined3d_stateblock_state structure.
392 wined3d: Store the pixel shader in the wined3d_stateblock_state structure.
393 msi: Support setting streams in msi_select_update().
394 msi: Implement UPDATE queries using msi_select_update().
395 msi: Factor out msi_view_refresh_row().
396 msi: Implement MSIMODIFY_REFRESH using msi_view_refresh_row().
397 msi: Don't check the primary keys when handling MSIMODIFY_DELETE.
398 ntoskrnl.exe: Implement DPC-level queued spinlock functions.
399 ntoskrnl.exe: Implement plain queued spinlock functions on top of DPC-level ones.
400 hal: Implement plain queued spinlock functions on top of DPC-level ones.
401 wined3d: Store pixel shader floating point constants in the wined3d_stateblock_state structure.
402 wined3d: Store pixel shader integer constants in the wined3d_stateblock_state structure.
403 wined3d: Store pixel shader boolean constants in the wined3d_stateblock_state structure.
404 wined3d: Factor our init_default_render_states().
405 wined3d: Store render states in the wined3d_stateblock_state structure.
406 msi/tests: Add some more tests for MsiViewModify() applied to joins.
407 msi: Translate records as appropriate in SELECT_modify().
408 msi/tests: Add more tests for MSIMODIFY_ASSIGN.
409 msi/tests: Add more tests for MSIMODIFY_REFRESH.
410 msi/tests: Add more tests for MSIMODIFY_MERGE.
411 msi/tests: Add more tests for MSIMODIFY_INSERT.
412 include: Add ExInitializeFastMutex() definition.
413 ntoskrnl.exe: Implement APC-level fast mutex functions.
414 hal: Implement plain fast mutex functions on top of APC-level ones.
415 hal: Implement ExTryToAcquireFastMutex().
416 ntoskrnl.exe: Avoid accessing fields of sync objects outside of the sync CS.
417 wined3d: Factor out init_default_texture_state().
420 user32: Check for null handle in GetRawInputData().
421 user32: Fix a memory leak.
422 msacm32: Reference count local drivers.
423 d3d8: Fix building on Mac.