1 The Wine development release 7.18 is now available.
3 What's new in this release:
4 - Character tables updated to Unicode 15.0.0.
5 - Wow64 support in the macOS driver.
6 - Async reader fixes in GStreamer support.
9 The source is available at:
11 https://dl.winehq.org/wine/source/7.x/wine-7.18.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 7.18 (total 20):
29 - #31157 Multiple applications (FileMaker Pro 12-19, MyDiff) crash when trying to create/open sample solution ('ImmAssociateContext' should only generate 'WM_IME_SETCONTEXT' if window has focus)
30 - #35478 Multiple applications and games need dsdmo.dll (DirectSound Effects)
31 - #36312 valgrind shows a couple possible leaks in oledb32/tests/marshal.c
32 - #36944 Hotel Giant 2 crashes frequently
33 - #42751 Multiple applications crash on unimplemented function msvcr{100,110}.dll.?_Schedule@_StructuredTaskCollection@details@Concurrency@@QAEXPAV_UnrealizedChore@23@@Z (Gas Guzzlers Combat Carnage, Clip Studio Paint, Cube World, Intel ACAT)
34 - #44314 Adobe FrameMaker 8: Installer aborts with the error "The wizard was interrupted..."
35 - #48487 MSYS based Git 2.25 installer reports 'could not decode hex <hexstring>' (needs support for CryptStringToBinaryW CRYPT_STRING_HEX)
36 - #48600 Bloomberg Terminal needs unimplemented function dbghelp.dll.SymSrvGetFileIndexInfo
37 - #51404 Resident Evil 7 objects rendered with glitches (Vulkan renderer)
38 - #52677 REVELPROG_IS crashes on unimplemented function winusb.dll.WinUsb_Free
39 - #53430 urlmon:url fails due to unexpected redirection
40 - #53458 windows.media.speech:speech - The 64-bit test_Recognition() gets unexpected ref count on Windows after ISpeechContinuousRecognitionSession_Release()
41 - #53570 Visual C++ 2015-2019 crashes on launch
42 - #53577 d3d9:device - test_scissor_size() fails on Windows 8+
43 - #53578 msvfw32:mciwnd - test_MCIWndCreate() fails in Wine
44 - #53609 Segmentation fault when starting Dosbox.exe in virtual desktop mode
45 - #53614 KeePassXC crashes on unimplemented function msvcp140.dll.?ReportUnhandledError@_ExceptionHolder@details@Concurrency@@AEAAXXZ
46 - #53626 Wine crash due to long filename when saving file in Framemaker
47 - #53703 Wine crashes when setting a long window title.
48 - #53706 NtDeviceIoControlFile() is quite slow when called with and invalid handle
50 ----------------------------------------------------------------
55 user32: Fix a memory allocation strategy.
57 Alexandre Julliard (22):
58 configure: Use --disable-stdcall-fixup for all PE builds.
59 kernel32/tests: Fix affinity test when there are too many CPUs.
60 ntdll/tests: Fix affinity test when there are too many CPUs.
61 ntoskrnl/tests: Fix affinity test when there are too many CPUs.
62 oleaut32: Avoid spurious debug traces when FIXMEs are disabled.
63 oleaut32: Check that the 32/64 syskind matches when getting a typelib from the cache.
64 webservices/tests: Mark tests that fail on 64-bit as todo.
65 d2d1/tests: Adjust geometry to make tests pass on all devices.
66 winetest: Don't require an email if we have a URL.
67 gdi32/tests: Mark some tests that fail without Vulkan as todo.
68 vcomp/tests: Limit the number of nested threads.
69 unicode: Update to Unicode 15.0.0.
70 win32u: Fix Get/SetWindowWord behavior on 32-bit.
71 winex11: Don't send WM_CANCELMODE to iconified windows.
72 user32/tests: Fix a few more assumptions about window positions.
73 ntdll/tests: Re-add workaround for check that is still broken on win7.
74 winetest: Report failure for tests that print too much output.
75 ntdll/tests: Don't run the stack growth tests too many times.
76 d2d1/tests: Skip subsequent todo tests for unsupported properties.
77 user32/tests: Only report the first todo of a failed message sequence.
78 user32/tests: Don't print debug traces by default.
79 advapi32/tests: Mark some failing tests as todo.
81 Alistair Leslie-Hughes (7):
82 ws2_32: Return a valid value for WSAIoctl SIO_IDEAL_SEND_BACKLOG_QUERY.
83 wininet: Clear cached credentials after the first failed attempt.
84 oledb32/tests: Free returned property set memory.
85 wininet: Use standard HTTP_ADD Flags.
86 msdasql: Implement ICommandProperties GetProperties.
87 msdasql: Implement ICommandProperties SetProperties.
88 msdasql: Implement IColumnsRowset GetAvailableColumns.
91 ntdll: Fix ARM vs AMD64 typo.
94 po: Update Lithuanian translation.
97 server: Remove 32-bit-specific macOS #ifdefs.
98 server: Report errors on macOS when getting/setting debug registers.
99 server: Write to correct context struct when getting debug registers on macOS.
100 server: Use correct context struct and thread flavor when setting debug registers on macOS.
103 uiautomationcore: Implement UiaReturnRawElementProvider.
104 uiautomationcore: Increment module reference count when starting provider thread.
105 uiautomationcore: Shutdown provider thread when all returned nodes are released.
106 uiautomationcore: Implement UiaNodeFromHandle.
107 uiautomationcore: Create UI Automation client thread.
108 uiautomationcore: Add tests for UiaNodeFromHandle.
111 win32u: Use allocator mechanism to allocate DC attributes.
114 winecoreaudio: Fix RegEnumKeyExW() call passing wrong unit for the buffer size.
115 winecoreaudio: Switch to string as device identifier, to match other drivers.
116 mmdevapi: Integrate winecoreaudio's additions in unixlib.h.
117 winecoreaudio: Drop "unix_" prefix in unixlib enum, apply it to the functions instead.
118 winecoreaudio: Adapt "create_stream_params" struct to mmdevapi's.
119 winecoreaudio: Adapt "release_stream_params" struct to mmdevapi's.
120 winecoreaudio: Adapt "release_render_buffer_params" struct to mmdevapi's.
121 winecoreaudio: Adapt "get_capture_buffer_params" struct to mmdevapi's.
122 winecoreaudio: Switch to mmdevapi's unixlib.h.
125 winedump: Harden reading PDB string table stream.
126 dbghelp: Harden reading strings from string table.
127 dbghelp: Correctly handle the absence of IPI stream.
128 dbghelp: Support SymGetTypeInfo/TI_GET_LENGTH for variables.
129 dbghelp: Displacements are optional.
130 winedump: Print signed integers with %d.
131 dbghelp: Support depth relating to top function for inline sites.
132 dbghelp: Store all address ranges for inline sites.
133 d3d10core/tests: Fix erroneous color parameter.
134 d3d10core/tests: Introduce a clear_backbuffer_rtv() helper.
135 d3d11/tests: Introduce a clear_rtv() helper.
136 glu32: Fix GCC 12.2 warnings.
137 jscript: Fix GCC 12.2 warning.
138 avifil32: Fix GCC 12.2 warning (-Warray-bounds).
140 Etaash Mathamsetty (2):
141 ntoskrnl: KeSetTargetProcessorDpcEx stub.
142 ntoskrnl: Implement KeGetCurrentProcessorNumberEx.
145 po: Update Dutch translation.
147 Gabriel Ivăncescu (8):
148 include: Add IDOMStorageEvent and DispDOMStorageEvent interfaces.
149 mshtml: Move the MessageEvent construction to a helper.
150 mshtml: Implement StorageEvent and send it when clearing the storage.
151 mshtml: Send StorageEvents when setting an item.
152 mshtml: Send StorageEvents when removing an existing item.
153 mshtml/tests: Add tests for StorageEvents with parallel documents.
154 mshtml: Don't expose document.onstorage for IE9+ modes.
155 mshtml: Send StorageEvents to iframe windows properly.
158 winevulkan: Update to VK spec version 1.3.228.
161 dbghelp: Add SymSrvGetFileIndexInfo stub.
162 ntdll: Add RtlDosPathNameToRelativeNtPathName_U.
165 bcrypt: Support setting BCRYPT_CHAIN_MODE_CFB on keys.
166 bcrypt: Add full support for algorithm pseudo-handles.
167 bcrypt: Rename mode_id to chain_mode.
168 appwiz.cpl: Use BCrypt algorithm pseudo-handles.
169 appwiz.cpl: Use BCryptHash().
170 crypt32: Use BCrypt algorithm pseudo-handles.
171 dssenh: Use BCrypt algorithm pseudo-handles.
172 fusion: Use BCrypt algorithm pseudo-handles.
173 ncrypt: Use BCrypt algorithm pseudo-handles.
174 rsaenh: Use BCrypt algorithm pseudo-handles.
175 adsldp: Implement ADS_SEARCHPREF_SIZE_LIMIT.
176 adsldp/tests: Limit the number of search results.
177 adsldp/tests: Get rid of workarounds for Windows XP.
178 winhttp/tests: Fix test failure caused by expired client certificate.
179 secur32/tests: Fix test failure caused by expired client certificate.
182 wined3d: Fix the sub-resource index validation in wined3d_texture_update_overlay().
183 wined3d: Destroy the Vulkan command pool after cleaning up resources.
184 d3d9/tests: The expected scissor rect after a reset is equal to the back-buffer dimensions.
185 d3d11: Implement d3d11_input_layout_to_wined3d_declaration() on top of vkd3d_shader_parse_input_signature().
186 d3d11/tests: Move the is_warp_device() call out of the loop in check_format_support().
187 wined3d: Return bools from all return paths in wined3d_cs_map_upload_bo().
190 urlmon/tests: Make BINDSTATUS_DOWNLOADINGDATA optional in test_URLDownloadToFile_abort.
191 wininet/tests: Collect persistent connection before running tests in test_async_HttpSendRequestEx.
192 wininet/tests: Don't send two HTTP responses for a single request in server_thread.
193 win32u: Introduce NtUserSendDriverMessage.
194 winemac: Use platform-independent types for user callback params.
195 winemac: Implement wow64 thunks.
196 winevulkan: Introduce VkVariable.
197 winevulkan: Use DECLSPEC_ALIGN instead of pshpack4.h.
200 notepad: Show status bar.
201 notepad: Track and display line number and column.
202 notepad: Show goto dialog box.
205 include: Define atomic read/write helpers for 32-bit integers.
206 concrt140: Use atomic write for releasing threadsafe_queue spin lock.
207 msvcp90: Use atomic write for releasing threadsafe_queue spin lock.
210 widl: Use "cinterface(IInspectable)" for IInspectable signature.
211 include/windows.devices.enumeration: Update file to newer formatting.
212 include/windows.devices.enumeration: Define IDeviceInformationStatics2.
213 windows.devices.enumeration: Replace STDMETHODCALLTYPE with WINAPI.
214 windows.devices.enumeration: Create private header file.
215 windows.devices.enumeration: Add IDeviceInformationStatics2 stub.
216 windows.devices.enumeration: Add DeviceWatcher stub.
217 windows.devices.enumeration: Implement Stopped handler for DeviceWatcher.
218 windows.devices.enumeration/tests: Add test for Stopped DeviceWatcher event.
221 include: Add winusb.h file.
222 winusb: Add WinUsb_Free stub.
225 dwrite/layout: Use same logic for mapping both non-visual and visual runs.
226 dwrite/layout: Keep system font collection for each layout.
227 dwrite/layout: Use already resolved or last resort fonts when setting dummy line metrics.
228 dwrite/layout: Constify some internal helpers arguments.
229 dwrite/layout: Limit text window passed to MapCharacters() to the range of characters to map.
230 xmllite/reader: Improve xml declaration node parsing.
231 xmllite/writer: Implement WriteWhitespace().
232 xmllite/writer: Handle empty prefix and uri correctly in WriteStartElement().
233 xmllite/writer: Close open tag on WriteRaw().
234 xmllite/writer: Close open tag on WriteProcessingInstruction().
235 xmllite/writer: Implement WriteAttributes().
236 xmllite/writer: Add initial implementation of WriteNode().
237 xmllite/tests: Add some more tests for WriteStartElement().
238 xmllite/tests: Add a test for IsEmptyElement() on attributes.
239 xmllite/writer: Handle empty local name in WriteAttributeString().
240 xmllite/writer: Implement WriteNodeShallow().
241 xmllite/writer: Enable some more tests for WriteNode().
242 kernelbase: Add OpenFileMappingFromApp().
243 kernelbase: Add CreateFileMappingFromApp().
244 kernelbase: Add MapViewOfFileFromApp().
245 include: Add windows.system.threading.idl.
246 threadpoolwinrt: Add a stub module.
247 threadpoolwinrt: Add initial implementation of RunAsync.
248 include: Add windows.security.cryptography.idl.
249 cryptowinrt: Add a stub module.
250 cryptowinrt: Implement GenerateRandomNumber().
253 secur32/tests: Add tests for LsaGetLogonSessionData.
254 secur32: Implement basic functionality for LsaGetLogonSessionData.
257 advapi32: Add stub for PerfCloseQueryHandle().
258 advapi32: Add stub for PerfOpenQueryHandle().
259 advapi32: Add stub for PerfAddCounters().
260 advapi32: Add stub for PerfQueryCounterData().
261 crypt32: Support CRYPT_STRING_HEXRAW in CryptBinaryToStringA().
262 crypt32: Support CRYPT_STRING_HEX in CryptStringToBinary().
265 msvcp90: Fix indentation in concurrent_vector_alloc_segment function.
266 msvcr100: Fix crash when setting scheduler in schedule_task_proc.
269 wmvcore/tests: Add some tests starting WM reader with NULL context.
270 winegstreamer: Wrap async reader op new_context in a union.
271 winegstreamer: Unconditionally assign new context for ASYNC_OP_START.
272 winegstreamer: Implement async reader asynchronous seeking.
273 winegstreamer: Keep start time in the async_reader struct.
274 winegstreamer: Check whether the reader is still running before user time.
275 winegstreamer: Factor async_reader waits using async_reader_get_wait_timeout.
276 winegstreamer: Introduce a new async_reader_wait_pts helper.
277 winegstreamer: Request the wm_reader stream only when necessary.
278 widl: Allow parameterized types in runtimeclass interfaces.
279 wineandroid.drv: Add missing DM_DISPLAYORIENTATION flag on display mode.
280 win32u: Rename get_full_mode variables and avoid using devmode directly.
281 win32u: Fill the local full_mode variable instead of using the modes array.
282 win32u: Introduce reference counting to struct adapter.
283 win32u: Avoid copying the modes array in NtUserChangeDisplaySettings.
284 win32u: Avoid unnecessary copy of adapter path and device name.
285 win32u: Pass adapter parameter to (read|write)_registry_settings.
286 win32u: Introduce a new internal WINE_DM_UNSUPPORTED display flag.
287 mf/tests: Split IMFTransform tests to transform.c.
288 mf/tests: Add some winetest context to MFT tests.
289 mf/tests: Split create_transform into check_(mft|dmo)_(enum|get_info).
290 mf/tests: Test AAC encoder MFT presence and media types.
291 mf/tests: Test AAC decoder MFT presence and media types.
292 mf/tests: Factor IMFTransform required attributes checks together.
293 maintainers: Assume maintainership of MF transforms.
294 winegstreamer: Support MFT_SET_TYPE_TEST_ONLY flag in the MF transforms.
295 winegstreamer: Avoid leaking attributes on video processor creation failure.
296 winegstreamer: Better implement H264 MFT GetAttributes and GetOutputStreamAttributes.
297 winegstreamer: Set MFT_OUTPUT_DATA_BUFFER_INCOMPLETE in wg_transform_read_mf.
298 winegstreamer: Stop setting flags on unexpected MF_E_TRANSFORM_STREAM_CHANGE.
299 winegstreamer: Check for unexpected format change in wg_transform_read helpers.
300 winegstreamer: Check WMA sample size before wrapping the sample.
301 winegstreamer: Remove unnecessary IMFTransform_GetInputStreamInfo calls.
302 winegstreamer: Create wg_sample from IMFSample within wg_transform_push_mf.
303 winegstreamer: Wake thread when async reader user clock is modified.
304 winegstreamer: Introduce a new async_reader_deliver_sample helper.
305 winegstreamer: Use a dedicated CS to serialize async reader commands.
306 winegstreamer: Check for already opened stream in wm_reader_open*.
307 winegstreamer: Get rid of the wm_reader_ops callbacks.
308 winegstreamer: Aggregate a IWMSyncReader in the async reader.
309 winegstreamer: Merge wm_syncreader.c into wm_reader.c.
310 mf/tests: Use separate variables for input / output samples.
311 mf/tests: Factor IMFTransform_ProcessOutput checks together.
312 mf/tests: Introduce a new load_resource helper.
313 mf/tests: Introduce a new dump_mf_sample helper.
314 mf/tests: Factor IMFSample checks in a check_mf_sample helper.
315 mf/tests: Factor IMFSample attributes checks in check_mf_sample.
316 mf/tests: Check all produced output IMFSample at the same time.
317 mf/tests: Rename transform frame dumps to BMP.
318 mf/tests: Dump image samples with a BMP header and RGB data.
319 winegstreamer: Query the IWMSyncReader2 interface in the async reader.
320 winegstreamer: Implement IWMSyncReader2_GetReadStreamSamples.
321 winegstreamer: Use IWMSyncReader2_GetReadStreamSamples in the async reader.
322 winegstreamer: Use IWMSyncReader2_SetReadStreamSamples in the async reader.
323 winegstreamer: Use IWMSyncReader2_Close in the async reader.
324 winegstreamer: Use IWMSyncReader2_Open in the async reader.
325 winegstreamer: Use IWMSyncReader2_OpenStream in the async reader.
326 winegstreamer: Use IWMSyncReader2_SetRange in the async reader.
327 winegstreamer: Avoid accessing NULL pointer if transform didn't provide a sample.
328 user32/tests: Cleanup sysparams WM_DISPLAYCHANGE tests.
329 win32u: Move enumeration of available modes out of graphics drivers.
330 winemac.drv: Stop using the cached_modes_mutex for get_default_bpp.
331 win32u: Factor out display_device lookup in separate helpers.
332 win32u: Use find_adapter_device_by_(name|id) helpers in find_adapter.
333 win32u: Lock display devices mutex in find_adapter.
334 win32u: Broadcast WM_DISPLAYCHANGE message on display settings change.
337 include: Define REG_APP_HIVE and REG_PROCESS_PRIVATE.
338 ntdll/tests: Test for NtRegLoadKey roothandle parameter.
341 msvcrt: Fix strncmp return value.
344 ntdll: Speed up NtQueryVirtualMemory(MemoryWorkingSetExInformation) by conditional page check.
345 ntdll: Do not use hardcoded page shift in NtQueryVirtualMemory(MemoryWorkingSetExInformation).
346 ntdll: Use pread in NtQueryVirtualMemory(MemoryWorkingSetExInformation).
347 ntdll: Keep pagemap file open after first use of NtQueryVirtualMemory(MemoryWorkingSetExInformation).
349 Zebediah Figura (16):
350 wined3d: Do not create larger staging buffers than necessary in adapter_vk_copy_bo_address().
351 wined3d: Remove a redundant variable.
352 wined3d: Factor out wined3d_texture_validate_sub_resource_idx().
353 wined3d: Mark managed textures as dirty if applicable in wined3d_device_evict_managed_resources().
354 d3d8: Remove an incorrect comment.
355 wined3d: Add a dirty region to the destination texture in wined3d_device_context_blt() if applicable.
356 wined3d: Pass a draw count of 1 to Vulkan indirect draw commands.
357 ntdll: Avoid comparing the result of pointer arithmetic to zero.
358 libwine: Avoid comparing the result of pointer arithmetic to zero.
359 ntdll: Calculate the necessary length after calling snprintf() in SystemWineVersionInformation.
360 win32u: Copy directly into the union pointer in unpack_message().
361 ntdll: Do not check for malloc() failure in get_initial_environment.
362 ntdll: Add a fast path for NtDeviceIoControlFile(INVALID_HANDLE_VALUE).
363 d3d10core/tests: Use a pixel shader that consumes SV_Position in test_pipeline_statistics_query().
364 d3d11/tests: Use a pixel shader that consumes SV_Position in test_pipeline_statistics_query().
365 d3d10core/tests: Ignore random WARP failures in test_pipeline_statistics_query.
368 kernelbase: Return system error codes in the ReadDirectoryChangesW() completion callback.