1 The Wine development release 9.5 is now available.
3 What's new in this release:
4 - Initial SLTG-format typelib support in widl.
5 - Exception handling on ARM64EC.
6 - Improvements to Minidump support.
9 The source is available at <https://dl.winehq.org/wine/source/9.x/wine-9.5.tar.xz>
11 Binary packages for various distributions will be available
12 from <https://www.winehq.org/download>
14 You will find documentation on <https://www.winehq.org/documentation>
16 Wine is available thanks to the work of many people.
17 See the file [AUTHORS][1] for the complete list.
19 [1]: https://gitlab.winehq.org/wine/wine/-/raw/wine-9.5/AUTHORS
21 ----------------------------------------------------------------
23 ### Bugs fixed in 9.5 (total 27):
25 - #25207 SHFileOperation does not create new directory on FO_MOVE
26 - #29523 CDBurnerXP hangs on right-clicking empty space in the file browser
27 - #40613 Multiple applications require UAC implementation to run installer/app as a normal user instead of administrator (WhatsApp Desktop, Smartflix, Squirrel Installers, OneDrive)
28 - #44514 Elder Scrolls Online (Dragon Bones update) requires more than 32 samplers in pixel shaders with D3D11 renderer
29 - #45862 Multiple applications need MFCreateSinkWriterFromURL() implementation (Overwatch highlights, RadiAnt DICOM Viewer, Grand Theft Auto V Rockstar Editor)
30 - #48085 Wine error trying to install Mono after a version update
31 - #51957 Program started via HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths should also be started if extension ".exe" is missing
32 - #52352 YI Home installer crashes on unimplemented urlmon.dll.414
33 - #52622 windows-rs 'lib' test crashes on unimplemented function d3dcompiler_47.dll.D3DCreateLinker
34 - #53613 Visual novel RE:D Cherish! logo video and opening movie does not play
35 - #53635 Alune Klient 14.03.2022 crashes on unimplemented function urlmon.dll.414
36 - #54155 WeCom (aka WeChat Work) 4.x failed to launch.
37 - #55421 Fallout Tactics launcher has graphics glitches
38 - #55876 Acrom Controller Updater broken due to oleaut32 install
39 - #56318 Totem Arts Launcher.exe does not open
40 - #56367 Tomb Raider 3 GOG crashes at start
41 - #56379 d2d1 unable to build
42 - #56380 Rocket League crashes with Wine 9.3 after BakkesMod (trainer app) injects into the game
43 - #56400 SSPI authentication does not work when connecting to sql server
44 - #56406 wineserver crashes in set_input_desktop()
45 - #56411 Failure to build wine 9.4 due to EGL 64-bit development files not found
46 - #56433 QQ8.9.6 Installer crashes at very beginning due to a change in server/process.c
47 - #56434 WScript.Network does not implement UserName, ComputerName, and UserDomain properties
48 - #56435 capture mouse dont work in virtual desktop (work on wine 9.3)
49 - #56445 d3d1-9 applications run out of memory after f6a1844dbe (ArmA: Cold War Assault, Final Fantasy XI Online, Far Cry 3)
50 - #56450 Non-input USB HID devices stopped working in 9.1
51 - #56458 ntdll tests skipped on win7 & win8: missing entry point kernel32.RtlPcToFileHeader
53 ### Changes since 9.4:
56 dsound/tests: Add tests for implicit MTA creation in IDirectSound::Initialize().
57 dsound: Initialize MTA in IDirectSound::Initialize().
59 Alexandre Julliard (42):
60 configure: Check the correct variable for the Wayland EGL library.
61 ntdll: Implement RtlRestoreContext on ARM64EC.
62 ntdll: Implement RtlWalkFrameChain on x86-64.
63 ntdll: Implement RtlWalkFrameChain on i386.
64 ntdll: Implement RtlWalkFrameChain on ARM.
65 ntdll: Implement RtlWalkFrameChain on ARM64.
66 ntdll: Implement RtlWalkFrameChain on ARM64EC.
67 ntdll: Export RtlVirtualUnwind2 and RtlWalkFrameChain.
68 ntdll: Share RtlCaptureStackBackTrace implementation across platforms.
69 secur32/tests: Update count for new winehq.org certificate.
70 ws2_32/tests: Fix a couple of failures on Windows.
71 include: Define setjmpex prototype even when it's a builtin.
72 ntdll/tests: Directly link to setjmp().
73 ntdll/tests: Fix a backtrace test failure on Windows ARM64.
74 ntdll: Add test for non-volatile regs in consolidated unwinds.
75 ntdll: Port the RtlRestoreContext test to ARM64.
76 ntdll: Port the RtlRestoreContext test to ARM.
77 ntdll: Implement RtlUnwindEx on ARM64EC.
78 ntdll: Move __C_specific_handler implementation to unwind.c.
79 ntdll: Implement __C_specific_handler on ARM64EC.
80 ntdll: Always use SEH support on ARM64.
81 ntdll/tests: Skip segment register tests on ARM64EC.
82 ntdll/tests: Fix debug register tests on ARM64EC.
83 ntdll/tests: Fix a few more test failures on ARM64EC.
84 ntdll: Implement RtlGetCallersAddress.
85 kernelbase: Remove no longer needed DllMainCRTStartup function.
86 include: Add some new error codes.
87 include: Add some new status codes.
88 ntdll: Add mappings for more status codes.
89 jscript: Use the correct facility for JScript errors.
90 netprofm: Use the correct symbols for error codes.
91 msvcrt: Use floating point comparison builtins also in MSVC mode.
92 ntdll/tests: Fix exception address checks in child process on ARM64EC.
93 ntdll/tests: Update the KiUserExceptionDispatcher test for ARM64EC.
94 configure: Don't build wow64 support in non-PE builds.
95 wow64: Use a .seh handler in raise_exception().
96 wow64: Always use a .seh handler in cpu_simulate().
97 wow64: Access the BTCpuSimulate backend function pointer directly.
98 wow64: Use a .seh handler for system calls.
99 wow64cpu: Save non-volatile registers before switching to 32-bit code.
100 wow64: Use setjmp/longjmp from ntdll.
101 server: Add a helper to trace uint64 arrays.
103 Alexandros Frantzis (5):
104 winewayland.drv: Implement wglCreateContextAttribsARB.
105 winewayland.drv: Implement wglShareLists.
106 winewayland.drv: Implement wgl(Get)SwapIntervalEXT.
107 win32u: Cancel auto-repeat only if the repeat key is released.
108 win32u: Cancel previous key auto-repeat when starting a new one.
111 ddraw: Reserve extra space in the reference device description buffer.
112 oleaut32: Bump version resource to Windows 10.
113 ddraw: Release only valid texture parents on ddraw_texture_init failure.
116 wined3d: Use bindless textures for GLSL shaders if possible.
119 comdlg32: Use values from DeviceCapabilities in combobox.
120 comdlg32: Add resolutions to PRINTDLG_ChangePrinterW.
121 comdlg32: Populate printer name on the print dialogs.
122 comdlg32: Use ANSI functions in ANSI WMCommandA.
123 comdlg32: Don't treat cmb1 as the printer list unless in PRINT_SETUP.
126 ntdll: Remove support for msg_accrights FD passing.
127 server: Remove support for msg_accrights FD passing.
128 mountmgr: Replace sprintf with snprintf to avoid deprecation warnings on macOS.
129 mountmgr: Replace some malloc/sprintf/strcpy calls with asprintf.
130 opengl32: Replace sprintf with snprintf/asprintf to avoid deprecation warnings on macOS.
131 secur32: Replace sprintf with snprintf to avoid deprecation warnings on macOS.
134 oleaut32/tests: Add tests for GetSizeMax after dirty flag cleared.
135 oleaut32: Return success from GetSizeMax if not dirty.
138 evr/dshow: Support NV12 in evr_render.
140 David Heidelberg (2):
141 d3d9/tests: Replace LPDWORD cast with float_to_int function.
142 mailmap: Add a mailmap entry for myself with the proper name.
144 Dmitry Timoshkov (6):
145 d2d1: Make some strings const.
146 wineps.drv: Return default resolution if PPD doesn't provide the list of supported resolutions.
147 kerberos: Allocate memory for the output token if requested.
148 comctl32/tests: Add more tests for IImageList2 interface.
149 comctl32: Implement IImageList2::Initialize().
150 widl: Add initial implementation of SLTG typelib generator.
153 include: Update minidumpapiset.h.
154 dbghelp/tests: Add tests for minidumps.
155 dbghelp/tests: Add tests about generated memory chunks.
156 dbghelp/tests: Add tests about minidump's callback.
157 dbghelp/tests: Test exception information in minidump.
158 dbghelp/tests: Add tests for function table lookup.
159 dbghelp: Use an intermediate buffer in SymFunctionTableAccess (x86_64).
160 dbghelp: Don't write minidump from running thread.
161 dbghelp: Simplify thread info generation in minidump.
162 dbghelp: Add support for V2 unwind info (x86_64).
163 winedbg: Fallback to PE image when reading memory (minidump).
164 winedbg: Reload module without virtual flag.
165 dbghelp: No longer embed unwind information in minidump (x86_64).
166 winedbg: Add ability to set executable name.
167 winedbg: Extend 'attach' command to load minidump files.
168 winedbg: Flush expr buffer upon internal exception.
169 winedbg: Update the CPU information displayed when reloading a minidump.
170 winedbg: Don't reload a minidump for a different machine.
173 user32/tests: Accept HCBT_ACTIVATE in TrackPopupMenu.
174 gdiplus: Check bounding box in GdipIsVisibleRegionPoint.
175 user32/tests: Add another missing message for TrackPopupMenu.
176 gdiplus/tests: Region bounds aren't rounded.
177 gdiplus: Calculate region bounding box without generating HRGN.
178 user32/tests: Accept WM_ACTIVATE in TrackPopupMenu.
179 user32/tests: Further updates for win11 TrackPopupMenu failures.
181 Gabriel Ivăncescu (1):
182 shell32: Construct the proper path target for UnixFolder.
184 Giovanni Mascellani (1):
185 d2d1: Compile the pixel shader with D3DCompile().
188 dnsapi/tests: Skip tests if no CNAME records are returned.
189 ntdll/tests: Fix a test failure.
190 ntdll/tests: Load NtMakeTemporaryObject() dynamically.
193 wined3d: Do not check the input signature element count for sm4+ shaders in shader_spirv_compile_arguments_init().
196 configure: Don't explicitly enable -Wenum-conversion on Clang.
197 widl: Always close parsed input file.
200 tools/gitlab: Run make_specfiles before building.
201 ntdll/tests: Add tests for OBJ_PERMANENT object attribute.
202 ntdll/tests: Add tests for NtMakeTemporaryObject.
203 server: Generalize server request make_temporary to set_object_permanence.
204 ntdll: Implement NtMakePermanentObject.
205 ntdll/tests: Don't import kernel32.RtlPcToFileHeader.
206 Revert "ntdll/tests: Load NtMakeTemporaryObject() dynamically."
207 server: Check for DELETE access in NtMakeTemporaryObject().
208 kernelbase: Open object with DELETE access for NtMakeTemporaryObject().
209 gitlab: Output collapsible section markers in test stage script.
212 dbghelp: Fix PDB processing using the FPO stream instead of FPOEXT.
215 shell32: Try appending .exe when looking up an App Paths key.
218 ntdll/tests: Fix size passed to GetModuleFileNameW.
221 kernel32/tests: Add tests for job object accounting.
224 include: Add ID2D1Factory7 definition.
225 include: Add ID2D1DeviceContext6 definition.
226 d3dcompiler: Set correct compilation target for effects profiles.
227 d3dcompiler: Wrap fx_4_x output in a dxbc container.
228 d3d10/tests: Add a small effect compilation test.
229 wshom/network: Use TRACE() for implemented method.
230 wshom/network: Implement GetTypeInfo().
231 wshom/network: Implement ComputerName() property.
232 wshom/network: Check pointer argument in get_UserName().
233 d3dx10/tests: Remove todo's from now passing tests.
234 d3d10_1/tests: Remove todo from now passing test.
235 wshom/network: Implement UserDomain property.
236 msxml6/tests: Add some tests for MXWriter60.
237 msxml/tests: Move some of the validation tests to their modules.
238 msxml/tests: Move version-specific schema tests to corresponding modules.
239 include: Remove XMLSchemaCache60 from msxml2.idl.
242 advapi32/tests: Add todo_wine to tests that are currently failing.
245 imm32: Set lengths to 0 for NULL strings in ImmSetCompositionString().
246 cryptowinrt: Force debug info in critical sections.
247 diasymreader: Force debug info in critical sections.
248 dsdmo: Force debug info in critical sections.
249 qasf: Force debug info in critical sections.
250 services: Force debug info in critical sections.
251 explorer: Force debug info in critical sections.
252 ntdll: Only allocate debug info in critical sections with RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO.
253 server: Ignore some ICMP-originated socket errors for connectionless sockets.
254 strmbase: Fallback to InitializeCriticalSection() if RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO is unsupported.
255 ntdll: Don't use debug info presence to detect critical section global status.
258 d3d9/tests: Define enums outside of struct.
261 ntdll: Workaround sendmsg bug on macOS.
262 winedump: Fix REG_DWORD dumping with no data.
263 advapi32/tests: Merge RegLoadKey and RegUnLoadKey tests.
264 advapi32/tests: Remove all files created by RegLoadKey tests.
265 advapi32/tests: Test if modifications are saved in RegUnLoadKey.
266 advapi32/tests: Remove all files created by RegLoadAppKey tests.
269 d3d9/tests: Skip desktop window tests if device creation fails.
272 win32u: Move D3DKMT functions to a new d3dkmt.c source.
273 win32u: Move D3DKMT VidPn* functions out of winex11.
274 win32u: Add an adapter struct to the device manager context.
275 win32u: Split writing monitor to registry to a separate helper.
276 win32u: Get rid of the monitor display_device.
277 win32u: Get rid of the monitor state_flags.
278 win32u: Get rid of the adapter display_device.
279 win32u: Get rid of the monitor flags.
280 win32u: Enumerate monitors from their device keys.
281 mfreadwrite/reader: Handle MF_E_TRANSFORM_STREAM_CHANGE results.
282 win32u: Fix incorrect ascii key name in get_config_key.
283 winevulkan: Use an rb_tree and allocate entries for handle mappings.
284 winevulkan: Use a single allocation for device and queues.
285 winevulkan: Pass VkDeviceQueueCreateInfo to wine_vk_device_init_queues.
286 winevulkan: Rename wine_vk_physical_device_alloc parameters and variables.
287 winevulkan: Use a single allocation for instance and physical devices.
288 winevulkan: Get rid of the wine_vk_device_free helper.
289 winevulkan: Simplify wine_vk_instance_free helper.
290 winevulkan: Add handle mappings on creation success only.
291 winevulkan: Get rid of the wine_vk_instance_free helper.
292 mfplat/tests: Test each VIDEOINFOHEADER field conversion separately.
293 mfplat/mediatype: Implement implicit MFInitMediaTypeFromVideoInfoHeader subtype.
294 mfplat/mediatype: Implement MFInitMediaTypeFromVideoInfoHeader2.
295 mfplat/tests: Add tests for MFInitMediaTypeFromVideoInfoHeader2.
296 mfplat/mediatype: Implement MFInitAMMediaTypeFromMFMediaType for FORMAT_VideoInfo2.
297 mfplat/tests: Test aperture to VIDEOINFOHEADER fields mapping.
298 mfplat/mediatype: Support FORMAT_VideoInfo2 in MFInitMediaTypeFromAMMediaType.
299 mfplat/mediatype: Set MF_MT_SAMPLE_SIZE from bmiHeader.biSizeImage.
300 mfplat/mediatype: Map rcSource to MF_MT_(PAN_SCAN|MINIMUM_DISPLAY)_APERTURE.
301 mfplat/mediatype: Set rcSource and rcTarget if stride differs from width.
302 mfplat/tests: Add more MFAverageTimePerFrameToFrameRate tests.
303 mfplat: Support flexible frame time in MFAverageTimePerFrameToFrameRate.
304 mfplat/mediatype: Implement MF_MT_FRAME_RATE from VIDEOINFOHEADER2.
305 mfplat/mediatype: Implement VIDEOINFOHEADER2 dwControlFlags conversion.
306 mfplat/mediatype: Implement some VIDEOINFOHEADER2 dwInterlaceFlags conversion.
307 mfplat/tests: Test that aperture is dropped with VIDEOINFOHEADER2.
308 mfplat/tests: Test that MFCreateMFVideoFormatFromMFMediaType appends user data.
309 mfplat/mediatype: Append user data in MFCreateMFVideoFormatFromMFMediaType.
310 mfplat/tests: Check the conditions for the MFVideoFlag_BottomUpLinearRep flags.
311 mfplat/mediatype: Stub MFInitMediaTypeFromMFVideoFormat.
312 mfplat/tests: Add tests for MFInitMediaTypeFromMFVideoFormat.
313 mfplat/mediatype: Implement MFInitMediaTypeFromMFVideoFormat.
314 winebus: Add HID usages in the device descriptor when possible.
315 winebus: Read hidraw device usages from their report descriptors.
316 winebus: Prefer hidraw for everything that is not a game controller.
317 winebus: Remove devices that are ignored wrt hidraw preferences.
318 winevulkan: Allow only one vulkan surface at a time for an HWND.
319 win32u: Avoid a crash when cleaning up a monitor without an adapter.
320 winegstreamer: Release sink caps in the error path.
321 winegstreamer: Append an optional parser before decoders.
322 mfplat/tests: Add some broken results for Win7.
323 mfplat/tests: Test initializing mediatype from AAC WAVEFORMATEXTENSIBLE.
324 mfplat/tests: Check how AAC attributes are copied from user data.
325 mfplat/mediatype: Check format pointers and sizes in MFInitMediaTypeFromAMMediaType.
326 mfplat/mediatype: Support audio major type in MFInitMediaTypeFromAMMediaType.
327 mfplat/mediatype: Force WAVEFORMATEXTENSIBLE in MFCreateWaveFormatExFromMFMediaType in some cases.
328 mfplat/mediatype: Implement MFCreateMediaTypeFromRepresentation.
329 mfplat/mediatype: Use MFCreateWaveFormatExFromMFMediaType in init_am_media_type_audio_format.
330 ntoskrnl.exe: Open symbolic link with DELETE before making them temporary.
331 server: Avoid removing thread twice from its desktop thread list.
332 winex11: Accept key and mouse events with QS_RAWINPUT.
333 server: Send WM_WINE_CLIPCURSOR message only when necessary.
334 server: Send WM_WINE_SETCURSOR message only when necessary.
335 win32u: Use a structure to pass peek_message arguments.
336 server: Check for internal hardware messages before others.
337 server: Process internal messages when checking queue status.
338 user32/tests: Add missing winetest_pop_context.
339 user32/tests: Add some LoadKeyboardLayoutEx tests.
340 winemac: Use SONAME_LIBVULKAN as an alias for MoltenVK.
341 win32u: Move vulkan loading and init guard out of the drivers.
342 win32u: Move vkGet(Instance|Device)ProcAddr out the drivers.
343 winevulkan: Stop generating the wine/vulkan_driver.h header.
344 win32u: Move vkGet(Device|Instance)ProcAddr helpers inline.
345 mfplat: Append MFVIDEOFORMAT user data after the structure padding.
348 mf/test: Check the topologies id's in topo loader.
349 mf/topoloader: Preserve input topology id.
351 Vijay Kiran Kamuju (4):
352 include: Add Windows.UI.ViewManagement.UIViewSettings definitions.
353 urlmon: Add stub for ordinal 414.
354 d3dcompiler: Add D3DCreateLinker stub.
355 user32: Add LoadKeyboardLayoutEx stub.
358 shell32/tests: Check FindExecutable is looking in the correct current directory.
359 shell32/tests: Check ShellExecute is looking in the correct current directory.
360 shell32: PathResolve(file, NULL, ...) should not look in the current directory.
361 shell32: Make sure PathResolve can find files in the current directory.
362 shell32: PathResolve should be able to find files that already have extensions.
363 shell32: PathResolve should remove trailing dot.
364 shell32: Fix FindExecutable search path.
365 shell32: Rely solely on SHELL_FindExecutable for ShellExecute.
367 Zebediah Figura (12):
368 ntdll: Assign a primary token in elevate_token().
369 d3d9/tests: Remove a no longer accurate comment.
370 d3d11/tests: Add a test for using a large number of SRV resources.
371 wined3d: Rename the shader_select_compute method to shader_apply_compute_state.
372 wined3d: Move checking shader_update_mask to shader_glsl_apply_compute_state().
373 shell32/tests: Remove obsolete workarounds from test_move().
374 quartz: Implement SetVideoClippingWindow() and PresentImage() in the VMR7 presenter.
375 quartz: Reimplement the VMR7 using the VMR7 presenter.
376 quartz: Implement IVMRSurfaceAllocatorNotify::AdviseSurfaceAllocator().
377 quartz: Return S_OK from IVMRSurfaceAllocator_PrepareSurface().
378 quartz/tests: Add some tests for VMR7 renderless mode.
379 wined3d: Avoid leaking string buffers in shader_glsl_load_bindless_samplers().
382 shell32: Create nonexistent destination directories in FO_MOVE.
385 mfreadwrite: Fix a memory leak (Coverity).
386 win32u: Support HiDPI for the non-client close button in WS_EX_TOOLWINDOW windows.
387 win32u: Fix a possible condition that makes EnumDisplayMonitors() not reporting any monitors.
388 win32u: Don't enumerate mirrored monitor clones for GetSystemMetrics(SM_CMONITORS).
389 win32u: Don't enumerate mirrored monitor clones when unnecessary.