1 The Wine development release 8.17 is now available.
3 What's new in this release:
4 - Bundled vkd3d upgraded to version 1.9.
5 - Initial window management in the Wayland driver.
6 - SoundFont support in DirectMusic.
9 The source is available at:
11 https://dl.winehq.org/wine/source/8.x/wine-8.17.tar.xz
13 Binary packages for various distributions will be available from:
15 https://www.winehq.org/download
17 You will find documentation on https://www.winehq.org/documentation
19 You can also get the current source directly from the git
20 repository. Check https://www.winehq.org/git for details.
22 Wine is available thanks to the work of many people. See the file
23 AUTHORS in the distribution for the complete list.
25 ----------------------------------------------------------------
27 Bugs fixed in 8.17 (total 19):
29 - #34789 MeGUI: Wrong icon for file chooser
30 - #38823 Sumatra PDF 3.0: tabs don't work correctly
31 - #43137 The Elder Scrolls: Oblivion crashes after opening logo screens.
32 - #46483 Cemu 1.12.0 crashes on unimplemented function msvcp140.dll.?_Throw_C_error@std@@YAXH@Z
33 - #48969 RageMP crashes on unimplemented function msvcp140.dll.?_Throw_future_error@std@@YAXAEBVerror_code@1@@Z
34 - #51327 GdipCreateFont initializes font with ANSI_CHARSET
35 - #54588 iphlpapi:iphlpapi - test_GetExtendedTcpTable() sometimes fails because the buffer is too small in Wine
36 - #55001 ToneX by IK Multimedia needs unimplemented function msvcp140.dll.?_Throw_C_error@std@@YAXH@Z
37 - #55184 Dwarf Fortress (Steam) crashes on unimplemented function msvcp140_atomic_wait.dll.__std_acquire_shared_mutex_for_instance
38 - #55240 The 64-bit winmm:capture & winmm:wave get BADDEVICEID on Windows 10+
39 - #55486 Finale 27 printing mangled
40 - #55522 SoftEther VPN Server Manager
41 - #55529 Text in SRPG Studio games ends with a tofu/missing character glyph.
42 - #55587 quartz:vmr9 - test_changed3ddevice() crashes on Windows 8+
43 - #55592 Separable Subsurface Scattering needs 'mov' opcode support for fx_4_0 effect
44 - #55599 Metatrader 4 - not possible to add any indicator to a chart
45 - #55614 ReCore crashes on unimplemented function msvcp110.dll.?_Winerror_map@std@@YAPEBDH@Z
46 - #55635 mfreadwrite:mfplat - test_interfaces() crashes on Windows 7 & 8
47 - #55651 d3d10:effect - test_effect_fx_4_1_blend_state() fails on Windows 7+
49 ----------------------------------------------------------------
54 cmd/tests: Add dir built-in command test.
55 cmd/tests: Test file time stamp format.
56 cmd: Always outputs leading zeros when listing file time information.
59 include: Move RTL functions that belong in winnt.h from winternl.h to winnt.h.
60 oleaut32: Use CRT allocation functions in connpt.c.
61 oleaut32: Use CRT allocation functions in hash.c.
62 oleaut32: Use CRT allocation functions in olepicture.c.
63 oleaut32: Use CRT allocation functions in typelib.c.
64 advpack: Use CRT allocation functions.
65 gameux: Use CRT allocation functions.
66 mciwave: Use CRT allocation functions.
67 msvfw32: Use CRT allocation functions.
68 ncrypt: Use the wcsdup function instead of reimplementing it.
69 shell32: Use the wcsdup function instead of reimplementing it.
70 wshom: Use the wcsdup function instead of reimplementing it.
71 dsound: Use malloc and free instead of _recalloc.
72 conhost: Use the wcsdup function instead of reimplementing it.
73 dxdiag: Use CRT allocation functions.
74 reg: Use the wcsdup function instead of reimplementing it.
75 regedit: Use the wcsdup function instead or reimplementing it.
76 sc: Use CRT allocation functions.
77 wordpad: Use the wcsdup function instead of reimplementing it.
78 avifil32: Use CRT allocation functions.
79 wpcap: Use the strdup function instead of reimplementing it.
80 include: Move RTL functions that belong in ntddk.h from winternl.h to ntddk.h.
81 include: Correct conflicting definition of PSID.
82 include: Correct conflicting definition of PSECURITY_DESCRIPTOR.
84 Alexandre Julliard (26):
85 winebuild: Add a separate helper for .seh annotations.
86 winebuild: Remove unnecessary .cfi_startproc/endproc annotations.
87 winebuild: Add a few more SEH annotations.
88 winebuild: Make the syscall thunks position-independent on ARM64.
89 oleaut32: Add SEH annotations to ARM64 assembly code.
90 rpcrt4: Add SEH annotations to ARM64 assembly code.
91 vcomp: Add SEH annotations to ARM64 assembly code.
92 ntdll: Remove unneeded SEH annotations in Unix code.
93 kernel32/tests: Comment out one more test that can crash on Windows.
94 kernel32/tests: Don't make assumptions about argv[0] of the main process.
95 kernel32/tests: Unaligned SRW locks crash on ARM platforms.
96 kernel32/tests: Update dll characteristics to make the module loadable on ARM64.
97 vkd3d: Import upstream release 1.9.
98 server: Don't zero out the PE optional header regardless of specified size.
99 winedump: Don't zero out the PE optional header regardless of specified size.
100 ntdll: Consistently use the IMAGE_FIRST_SECTION helper macro.
101 dbghelp: Consistently use the IMAGE_FIRST_SECTION helper macro.
102 imagehlp: Use the IMAGE_FIRST_SECTION helper macro.
103 krnl386: Use the IMAGE_FIRST_SECTION helper macro.
104 widl: Use the IMAGE_FIRST_SECTION helper macro.
105 kernel32/tests: Fix loader tests on Windows ARM64.
106 winebuild: Set ASLR-related dll flags by default.
107 server: Require ASLR support on non-x86 platforms.
108 ntdll: Release the low address space reservation for 64-bit apps.
109 ntdll: Don't release the low address space reservation on wow64.
110 ntdll: Don't free reserved memory on 64-bit macOS.
112 Alexandros Frantzis (7):
113 winewayland.drv: Remove wayland_surface destruction double locking.
114 winewayland.drv: Handle xdg_toplevel close event.
115 winewayland.drv: Handle xdg_toplevel configure event size hint.
116 winewayland.drv: Handle xdg_toplevel maximized state.
117 winewayland.drv: Handle client-initiated user-driven window move.
118 winewayland.drv: Handle client-initiated user-driven window resize.
119 winewayland.drv: Fix removal of wl_seat globals.
121 Alistair Leslie-Hughes (9):
122 mfreadwrite/reader: Update to IMFSourceReaderEx.
123 d3drm: Correctly query for the returned interface.
124 msado15: Recordset::Open - Correctly update count/index values.
125 mfreadwrite/tests: Move test_interfaces after test_factory.
126 msado15: _Recordset::Filter set index on value.
127 d3dx9: Trace pointer value in D3DXValidMesh().
128 msado15: Implement _Recordset::get_ActiveConnection.
129 msado15: _Recordset::Open store active connection parameter.
130 msado15: Update editMode in AddNew/Cancel/Update functions.
133 server: Return WSAEOPNOTSUPP on listen() if the socket's type is SOCK_DGRAM.
134 ws2_32/tests: Add more tests for SO_REUSEADDR.
137 d2d1: Support GUID_WICPixelFormat32bppRGB.
139 Bartosz Kosiorek (1):
140 gdiplus/tests: Add tests of InterpolationMode Bilinear for GdipDrawImagePointsRect.
142 Biswapriyo Nath (19):
143 include: Add ID3D12VideoDecoder in d3d12video.idl.
144 include: Add ID3D12VideoDevice in d3d12video.idl.
145 include: Add ID3D12VideoDecoderHeap in d3d12video.idl.
146 include: Add ID3D12VideoDecodeCommandList in d3d12video.idl.
147 include: Add video decode profile guids in d3d12video.idl.
148 include: Add D3D12_FEATURE_DATA_VIDEO_DECODE_SUPPORT in d3d12video.idl.
149 include: Add ID3D12VideoDevice1 in d3d12video.idl.
150 include: Add ID3D12VideoExtensionCommand in d3d12video.idl.
151 include: Add ID3D12VideoDevice2 in d3d12video.idl.
152 include: Add ID3D12VideoEncoder in d3d12video.idl.
153 include: Add ID3D12VideoEncoderHeap in d3d12video.idl.
154 include: Add ID3D12VideoDevice3 in d3d12video.idl.
155 include: Add ID3D12VideoMotionEstimator in d3d12video.idl.
156 include: Add ID3D12VideoMotionVectorHeap in d3d12video.idl.
157 include: Add ID3D12VideoEncodeCommandList in d3d12video.idl.
158 include: Add ID3D12VideoDecodeCommandList1 in d3d12video.idl.
159 include: Add ID3D12VideoEncodeCommandList1 in d3d12video.idl.
160 include: Add ID3D12VideoEncodeCommandList2 in d3d12video.idl.
161 include: Add some structures in d3d12video.idl.
164 winecoreaudio: Stop using the deprecated kAudioObjectPropertyElementMaster constant.
165 winecoreaudio: Use os_unfair_lock when available instead of OSSpinLock.
166 msv1_0: Implement ntlm_fork() using posix_spawn().
169 uiautomationcore: Add UiaHasServerSideProvider stub.
170 uiautomationcore: Add a common helper function for creating HUIANODEs.
171 uiautomationcore: Implement UiaHasServerSideProvider.
172 include: Add missing WinEvent definitions.
173 uiautomationcore/tests: Add method expect definitions for all Accessible test interfaces.
174 uiautomationcore/tests: Add support for debug printing Accessible method calls.
175 uiautomationcore/tests: Add support for debug printing Provider method calls.
176 uiautomationcore: Add stub IRawElementProviderFragmentRoot implementation for MSAA providers.
177 uiautomationcore: Add a common helper function for querying IServiceProvider on IAccessible interfaces.
178 uiautomationcore: Implement IRawElementProviderFragment::get_FragmentRoot for MSAA providers.
179 uiautomationcore: Don't return oleacc proxy IAccessibles from GetIAccessible for MSAA providers.
180 uiautomationcore/tests: Increase wait timeout for cross-process event with navigation.
181 uiautomationcore: Pass through failure HRESULTS on MSAA accState based property IDs for MSAA providers.
182 uiautomationcore: Implement IRawElementProviderFragmentRoot::GetFocus for MSAA providers.
183 uiautomationcore: Add stub IProxyProviderWinEventHandler implementation for MSAA providers.
184 uiautomationcore: Handle EVENT_SYSTEM_ALERT in IProxyProviderWinEventHandler::RespondToWinEvent() for MSAA providers.
185 uiautomationcore/tests: Add tests for IProxyProviderWinEventHandler based MSAA to UIA event bridging.
186 uiautomationcore: Check providers for an IProxyProviderWinEventHandler interface when attaching events.
187 uiautomationcore: Add WinEvent hook on the UIA event thread.
188 uiautomationcore: Track HWNDs that need WinEvent translation.
189 uiautomationcore: Make sure event thread is started when listening for WinEvents.
192 dbghelp: Check that dwarf unwinder did actually unwind.
193 ntdll: Allow empty application nodes in actctx.
194 winedump: Improve dumping DEBUG directory entries in PE images.
197 user32/tests: Account for some messages from dual-monitor setups.
198 user32/tests: Fix WM_WINDOWPOSCHANGED entries.
199 user32/tests: Use a child window for test_PeekMessage3.
200 user32/tests: Use open_clipboard helper in msg tests.
203 tests: Update the documentation.
205 Gabriel Ivăncescu (22):
206 mshtml: Move some Element methods around.
207 mshtml: Move some AnchorElement methods up.
208 mshtml: Move some AreaElement methods up.
209 mshtml: Move some FormElement methods up.
210 mshtml: Move some FrameElement methods down.
211 mshtml: Move some IFrame methods down.
212 mshtml: Move some ObjectElement methods up.
213 mshtml: Move some SelectElement methods up.
214 mshtml: Move node vtbl QI methods around.
215 mshtml: Move node vtbl destructor methods down.
216 mshtml: Get rid of useless element destructors.
217 mshtml: Use specific dispex vtbls for remaining HTML elements.
218 mshtml: Use specific dispex for each SVG element.
219 mshtml: Use the dispex's query_interface for DocumentType nodes.
220 mshtml: Use the dispex's query_interface for Document nodes and fragments.
221 mshtml: Use the dispex's query_interface for DOMTextNodes.
222 mshtml: Use the dispex's query_interface for the remaining nodes.
223 mshtml: Use the dispex's destructor for all nodes.
224 mshtml: Use the dispex's get_dispid for all nodes.
225 mshtml: Use the dispex's get_name for all nodes.
226 mshtml: Use the dispex's invoke for all nodes.
227 mshtml: Use the event_target vtbl's handle_event for all nodes.
230 winmm/tests: Avoid truncating the handle passed to waveInGetDevCapsW().
231 wbemprox: Get Win32_OperatingSystem.BuildType from the registry.
232 wbemprox: Fix Win32_OperatingSystem.TotalVirtual/VisibleMemorySize.
233 wbemprox: Implement Win32_OperatingSystem.InstallDate.
234 systeminfo: Add an implementation on top of WMI.
235 secur32: Only return success from initialize_package() when initialization fully succeeds.
238 wined3d: Don't validate the frontbuffer's DRAWABLE location in wined3d_swapchain_resize_buffers() when NO3D is set.
239 d3d11/tests: Properly mark the indexed sample position test as succeeding with the Vulkan backend.
241 Huw D. M. Davies (1):
242 gdiplus: Copy the compound array in GdipClonePen().
245 mshtml: Remove unused functions.
246 include: Support ARM64EC target in intrin.h.
247 include: Move __getReg intrinsic to intrin.h.
248 include: Support ARM64EC target in winnt.h.
251 msi: Use CreateFileW() for handling path from cabinet_open() instead.
252 cabinet/tests: Initialize CURR_DIR globally.
253 msxml3: Store ValidateOnParse property in domdoc_properties instead.
254 msxml3: Add ValidateOnParse support for IXMLDOMDocument3_{get,set}Property().
255 msxml3/tests: Add tests of ValidateOnParse property.
258 gdiplus/tests: Test GdipCreateFont character set initialization.
259 gdiplus: Fix GdipCreateFont character set initialization.
262 wbemprox: Fix out-of-bounds access caused by codepoints above U+00FF.
265 include: Add flags to FILE_RENAME_INFORMATION used by FileRenameInformationEx.
266 ntdll/tests: Test both FileRenameInformation and FileRenameInformationEx in test_file_rename_information.
267 include: Add flags to FILE_LINK_INFORMATION used by FileLinkInformationEx.
268 ntdll/tests: Test both FileLinkInformation and FileLinkInformationEx in test_file_link_information.
269 ntdll/tests: Skip FileRenameInformationEx tests on older Windows versions.
270 ntdll/tests: Skip FileLinkInformationEx tests on older Windows versions.
273 include: Update the d3d12 headers from vkd3d.
274 include: Update the d3d12 header from vkd3d.
277 windows.applicationmodel: Add IPackageStatics stub interface.
278 windows.applicationmodel: Implement IPackageStatics::get_Current().
279 windows.applicationmodel: Implement IPackage::get_InstalledLocation().
280 windows.applicationmodel: Add IStorageItem stub interface.
281 windows.applicationmodel/tests: Add IStorageItem::get_Path() tests.
282 windows.applicationmodel: Implement IStorageItem::get_Path().
283 windows.applicationmodel/tests: Use PathRemoveFileSpecW() instead of PathCchRemoveFileSpec().
286 d3d10/effect: Implement 'mov' opcode for expressions.
287 d3d10/effect: Implement instructions used for signed integer division.
288 d3d10/effect: Add signed integer compare instructions for expressions.
289 d3d10/tests: Add some tests for D3D10.1 blend state in effects.
290 d3dcompiler: Add support for matrix majority compiler flags.
291 d3d10/tests: Test for correct return value.
294 mf/tests: Add tests for AAC decoder with different input number of channels.
295 winegstreamer: Handle missing or zero channel count in _GetOutputAvailableType in AAC decoder.
296 winegstreamer: Correct output available types attrs in AAC decoder for channel count > 2.
297 winegstreamer: Validate maximum channel count in _SetInputType in AAC decoder.
298 winegstreamer: Also return output with 2 channels for multichannel inputs from AAC decoder.
299 shell32: Avoid stack corruption with long name in SHELL_TryAppPathW().
300 shell32: Handle long command line in execute_from_key().
303 msvcp110: Add _Winerror_map implementation.
304 msvcr110: Simplify _StructuredTaskCollection finished task counter updating.
305 msvcr110: Use Context blocking functions in _StructuredTaskCollection class.
306 msvcp140_atomic_wait: Add __std_acquire_shared_mutex_for_instance implementation.
307 wineps.drv: Remove unused hmtx_tab field from TYPE42 structure.
308 wineps.drv: Don't crash if specified font is missing required table in T42_download_header.
309 msvcp90: Silence FIXME in _Locinfo::_Locinfo_ctor and _Locinfo::_Locinfo_Addcats functions.
312 dmusic: Avoid swallowing collection Load failures.
313 dmusic: Rewrite downloading instrument to port.
314 dmusic: Parse collection wave table.
315 dmusic: Parse collection wave lists.
316 dmusic: Keep an internal ref on the instrument's collection.
317 dmusic: Implement downloading wave to port.
318 dmusic: Parse instrument regions articulation lists.
319 dmusic: Implement instrument articulation downloads.
320 dmime/tests: Test that SendPMsg also converts reference time.
321 dmime: Convert DMUS_PMSG music and reference times in SendPMsg.
322 dmime: Get rid of the DMUS_PMSGItem typedef.
323 dmime: Use a struct list to keep performance messages.
324 dmime: Remove unnecessary struct message members.
325 dmime: Rename DMUS_PMSGToItem to message_from_DMUS_PMSG.
326 dmime: Pass the DMUS_PMSG through the performance graph.
327 dmband: Rename IDirectMusicBandImpl prefix to band.
328 dmband: Get rid of the IDirectMusicBandImpl typedef.
329 dmband: Get rid of the IDirectMusicBandTrack typedef.
330 dmband: Avoid leaking bands on band track Release.
331 dmband: Avoid leaking collection on band release.
332 dmband: Rewrite band lbin list parsing.
333 dmband: Rewrite band lbil list parsing.
334 dmband: Rewrite band dmbd chunk parsing.
335 dmband: Rewrite band IPersistStream_Load.
336 dmime: Rename IDirectMusicSegment8Impl method prefix to segment.
337 dmime: Use one-liners for segment parameter checks.
338 dmime: Get rid of the IDirectMusicSegmentImpl typedef.
339 dmime: Avoid leaking tracks in IDirectMusicSegment_Release.
340 dmime: Rewrite segment IDirectMusicSegment_GetTrack.
341 dmime: Rewrite segment IDirectMusicSegment_GetTrackGroup.
342 dmime: Rewrite segment IDirectMusicSegment_InsertTrack.
343 dmime: Rewrite segment IDirectMusicSegment_RemoveTrack.
344 dmime: Use segment_append_track in Clone and parse_track_form.
345 dmime/tests: Add some DMUS_NOTIFICATION_PMSG tests.
346 dmime/tests: Test wave segments and DMUS_WAVE_PMSG.
347 dmime/tests: Test sequence track and DMUS_NOTE_PMSG.
348 dmime/tests: Test band track and DMUS_PATCH_PMSG.
349 dmusic/tests: Fixup chunk alignment in steam_end_chunk.
350 dmusic: Keep the original instrument patch in the entry.
351 dmband: Rewrite band track lbdl/lbnd lists parsing.
352 dmband: Rewrite band track DBMT chunk parsing.
353 dmband: Rewrite band track IPersistStream_Load.
354 dmime: Get rid of the IDirectMusicSeqTrack typedef.
355 dmime: Implement DirectMusicSeqTrack IPersistStream_Load.
356 dmloader: Rename IDirectMusicLoaderImpl method prefix to loader.
357 dmloader: Get rid of the IDirectMusicLoaderImpl typedef.
358 dmloader: Initialize ref to 1, and release after QueryInterface.
359 dmloader: Introduce a new loader_stream_create helper.
360 dmloader: Get rid of the custom generic stream wrapper.
361 dmime/tests: Remove some duplicated tests.
362 dmime/tests: Move performance tests into dmime.c.
363 dmime/tests: Test performance Init with a created port.
364 dmime: Set the port direct sound before activating it.
365 dmime: Initialize performance in Init rather than InitAudio.
366 dmime: Return DMUS_E_AUDIOPATHS_IN_USE when audio paths are in use.
367 dmime: Return DMUS_E_AUDIOPATH_INACTIVE when audio paths are not enabled.
368 dmloader: Use a simpler file stream implementation.
369 dmusic/tests: Test default gm.dls sound font instruments.
370 dmloader: Remove invalid default DLS collection check.
371 dmloader: Add fallbacks if the configured GMFilePath doesn't exist.
372 dmusic: Avoid leaking articulations when freeing regions.
373 dmusic: Avoid crashing in traces if wave doesn't have a WSMPL.
374 dmusic: Implement SoundFont2 collection parsing.
375 dmusic: Implement SoundFont2 wave sample parsing.
376 dmusic: Implement SoundFont2 instrument parsing.
377 dmime/tests: Add some tests for GUID_ConnectToDLSCollection.
378 dmime/tests: Test segment state and playing a custom track.
379 dmime: Implement IDirectMusicSegment_SetParam.
380 dmband: Implement band track GUID_ConnectToDLSCollection parameter.
381 dmime: Implement IDirectMusicSegment_(Download|Unload).
382 dmband: Implement IDirectMusicBand_(Download|Unload).
383 dmband: Implement band track GUID_UnloadFromAudioPath parameter.
384 dmband: Implement band track GUID_DownloadToAudioPath parameter.
385 dmime: Implement IDirectMusicPerformance_DownloadInstrument.
388 gdi32: Make GetStockObject hotpatchable.
389 user32: Make CallWindowProcA hotpatchable.
390 user32: Add hotpatchable wrapper for GetWindowLongA.
391 rtworkq: Fix leak of thread pool work items.
394 wined3d: Pass a wined3d_stateblock_state to wined3d_device_validate_device().
395 d3d10core/tests: Test performing a full clear after a draw.
396 wined3d: Remove invalid parameter checks from internal wined3d_device_set_*() functions.
397 wined3d: Make wined3d_stateblock_state_{init,cleanup}() static.
398 wined3d: Move struct wined3d_stateblock into stateblock.c.
401 user32/tests: Fix test failures in Hindi UTF-8 and mixed locales.
402 user32: Enable IsDialogMessageA() ASCII to Unicode mapping only when the user default lang ID is CJK.