1 The Wine development release 9.10 is now available.
3 What's new in this release:
4 - Bundled vkd3d upgraded to version 1.12.
5 - DPI Awareness support improvements.
6 - C++ RTTI support on ARM platforms.
7 - More obsolete features removed in WineD3D.
10 The source is available at <https://dl.winehq.org/wine/source/9.x/wine-9.10.tar.xz>
12 Binary packages for various distributions will be available
13 from <https://www.winehq.org/download>
15 You will find documentation on <https://www.winehq.org/documentation>
17 Wine is available thanks to the work of many people.
18 See the file [AUTHORS][1] for the complete list.
20 [1]: https://gitlab.winehq.org/wine/wine/-/raw/wine-9.10/AUTHORS
22 ----------------------------------------------------------------
24 ### Bugs fixed in 9.10 (total 18):
26 - #23434 Race management software hangs & jumps up to 100% processor load
27 - #34708 Silent Hill 4: The Room crashes after first videoscene when trying to go to the door.
28 - #45493 SRPG Studio games need proper DISPATCH_PROPERTYPUTREF implementation
29 - #46039 Paint.NET 4.1 (.NET 4.7 app) installer tries to run MS .NET Framework 4.7 installer (Wine-Mono only advertises as .NET 4.5)
30 - #46787 Notepad++ rather slow (GetLocaleInfoEx)
31 - #50196 can not copy words between wine apps and ubuntu apps
32 - #50789 Multiple .NET applications crash with unimplemented 'System.Security.Principal.WindowsIdentity.get_Owner' using Wine-Mono (Affinity Photo 1.9.1, Pivot Animator 4.2)
33 - #52691 FL Studio 20.9.1 Freezes on start-up
34 - #54992 EA app launcher does not render correctly
35 - #56548 reMarkable crashes on start
36 - #56582 vb3 combobox regression: single click scrolls twice
37 - #56602 DualShock 4 controller behaves incorrectly on Darwin with hidraw enabled
38 - #56666 BExAnalyzer from SAP 7.30 does not work correctly
39 - #56674 Multiple games fail to launch (Far Cry 3, Horizon Zero Dawn CE, Metro Exodus)
40 - #56718 Compilation fails on Ubuntu 20.04 with bison 3.5.1
41 - #56724 New chromium versions don't start under wine anymore
42 - #56730 Access violation in riched20.dll when running EditPad
43 - #56736 App packager from Windows SDK (MakeAppx.exe) 'pack' command crashes on unimplemented function ntdll.dll.RtlLookupElementGenericTableAvl
45 ### Changes since 9.9:
48 dxdiagn: Add bIsD3DDebugRuntime property.
49 dxdiagn: Add AGP properties.
51 Alexandre Julliard (52):
52 msvcrt: Add helpers to abstract RVA accesses to RTTI data.
53 msvcrt: Unify __RTtypeid implementation.
54 msvcrt: Unify __RTDynamicCast implementation.
55 msvcrt: Unify _CxxThrowException implementation.
56 msvcrt: Unify _is_exception_typeof implementation.
57 msvcrt: Unify __ExceptionPtrCopyException implementation.
58 msvcrt: Unify exception_ptr_from_record implementation.
59 msvcrt: Unify call_copy_ctor/call_dtor implementations.
60 msvcp: Unify __ExceptionPtrCopyException implementation.
61 msvcp: Unify __ExceptionPtrCurrentException implementation.
62 msvcp: Unify call_copy_ctor/call_dtor implementations.
63 msvcrt: Use RVAs in rtti and exception data on all platforms except i386.
64 msvcp: Use RVAs in rtti and exception data on all platforms except i386.
65 msvcrt/tests: Use function pointers to bypass builtin malloc/realloc.
66 msvcp/tests: Fix mangled names on ARM.
67 winecrt0: Initialize the Unix call dispatcher on first use.
68 ntdll: Make __wine_unix_call() an inline function.
69 wbemprox: Avoid unused function warning.
70 kernelbase: Fix the name of the default system locale.
71 wbemprox: Don't reference yysymbol_name on older bisons.
72 conhost: Fix a printf format warning.
73 winegcc: Don't print a potentially reallocated pointer.
74 adsldpc: Add correct C++ mangled names for all platforms.
75 dxtrans: Add correct C++ mangled names for all platforms.
76 msmpeg2vdec: Add correct C++ mangled names for all platforms.
77 vssapi: Add correct C++ mangled names for all platforms.
78 msvcrt: Fix bad_cast_copy_ctor spec entry on ARM.
79 msvcrt: Export all _ConcRT functions also on ARM.
80 msvcp120_app: Fix a typo in a C++ mangled name.
81 msvcp: Replace some stubs by exported functions that already exist for other platforms.
82 msvcp: Export the thiscall version of ios_base_Tidy.
83 msvcp140: Sort entry points by function instead of platform.
84 msvcp: Only export thiscall functions on i386.
85 msvcp: Only export stubs of thiscall functions on i386.
86 msvcrt: Only export thiscall functions on i386.
87 msvcrt: Only export stubs of thiscall functions on i386.
88 msvcrt: Add missing C++ mangled names for ARM.
89 msvcirt: Add missing C++ mangled names for ARM.
90 msvcp60: Add missing C++ mangled names for ARM.
91 msvcp70: Add missing C++ mangled names for ARM.
92 msvcp71: Add missing C++ mangled names for ARM.
93 msvcp80: Add missing C++ mangled names for ARM.
94 msvcp90: Add missing C++ mangled names for ARM.
95 msvcp100: Add missing C++ mangled names for ARM.
96 winedump: Print exported function names in the exception data.
97 winedump: Print the export or import name of exception handlers.
98 winedump: Dump exception data for known exception handlers.
99 vkd3d: Import upstream release 1.12.
100 msvcrt: Move common exception handling types to the header.
101 msvcrt: Share the find_caught_type() helper between platforms.
102 msvcrt: Share the copy_exception() helper between platforms.
103 msvcrt: Share a helper to find a catch block handler.
105 Alexandros Frantzis (15):
106 opengl32: Remove the wglDescribePixelFormat driver entry point.
107 win32u: Emit number characters for numpad virtual keys.
108 win32u: Allow drivers to send only the scan code for keyboard events.
109 win32u: Store the full KBD vkey information in kbd_tables_init_vsc2vk.
110 server: Send numpad virtual keys if NumLock is active.
111 user32/tests: Add tests for SendInput with numpad scancodes.
112 winewayland.drv: Populate vkey to wchar entry for VK_DECIMAL.
113 server: Fix handling of KEYEVENTF_UNICODE inputs with a non-zero vkey.
114 user32/tests: Add more test for unicode input with vkey.
115 user32/tests: Add tests for raw keyboard messages.
116 server: Use right-left modifier vkeys for hooks.
117 server: Apply modifier vkey transformations regardless of unicode flag.
118 server: Don't send raw input events for unicode inputs.
119 user32/tests: Check async key state in raw nolegacy tests.
120 server: Set VK_PACKET async state in raw input legacy mode.
122 Alistair Leslie-Hughes (10):
123 include: Complete __wine_uuidof for C++.
124 include: Add C++ support for IUnknown.
125 odbc32: Correct SQLSetConnectOptionW length parameter type.
126 include: Added sqlucode.h to sql.h.
127 include: Correct ListView_GetItemIndexRect macro.
128 include: Add IFACEMETHOD macros.
129 include: Add LOGFONTA/W typedef in shtypes.idl.
130 include: Add IPreviewHandler* interfaces.
131 include: Correct IRowsetNotify HROW parameter type.
132 include: Add missing TreeView_* defines.
135 quartz/tests: Use unaligned width in AVIDec tests to expose incorrect stride calculation.
136 quartz: Get output format from source, not sink in AVIDec.
137 quartz: Use the correct stride when calculating image size in AVIDec.
138 quartz: Hold the streaming lock while calling ICDecompressEnd.
141 ntdll: Don't warn on macOS and FreeBSD when xattr doesn't exist.
144 uiautomationcore: NULL initialize SAFEARRAY variable passed to IRawElementProviderFragment::GetRuntimeId().
147 odbc32: Allow null handle for SQLSetEnvAttr.
150 win32u: Remove external fonts from the registry before writing to it.
151 shcore: Check optional pointer in filestream_CopyTo() before writing to it.
152 wineps.drv: Only merge dmDefaultSource member of devmodes when a slot is found.
155 winealsa: Return minimum period in get_device_period if requested.
156 mmdevapi: Adjust timing in AudioClient_Initialize.
157 winealsa: Remove superfluous timing adjustment.
158 winecoreaudio: Remove superfluous timing adjustment.
159 wineoss: Remove superfluous timing adjustment.
160 winepulse: Remove superfluous timing adjustment.
162 Dmitry Timoshkov (2):
163 comctl32/tests: Create a fully updated ListView window.
164 user32/tests: Add a test to show that SendMessage(LB_SETCOUNT) adds a scrollbar.
166 Elizabeth Figura (21):
167 wined3d: Remove the no longer used STATE_SAMPLER.
168 wined3d: Remove the no longer used STATE_POINTSPRITECOORDORIGIN.
169 wined3d: Remove the FFP blitter.
170 wined3d: Remove some obsolete state invalidations.
171 wined3d: Remove the no longer needed fragment_caps.proj_control flag.
172 d3d9/tests: Remove leftover debugging code.
173 wined3d: Remove the no longer needed fragment_caps.srgb_texture flag.
174 wined3d: Remove the no longer needed fragment_caps.color_key flag.
175 wined3d: Remove the no longer needed wined3d_vertex_caps.xyzrhw flag.
176 wined3d: Remove the no longer needed wined3d_vertex_caps.ffp_generic_attributes flag.
177 wined3d: Remove the no longer used buffer conversion code.
178 wined3d: Remove the no longer used wined3d_context.fog_coord field.
179 wined3d: Remove the no longer used wined3d_context_gl.untracked_material_count field.
180 wined3d: Remove the no longer used wined3d_context.use_immediate_mode_draw field.
181 wined3d: Remove the no longer used WINED3D_SHADER_CAP_VS_CLIPPING flag.
182 wined3d: Remove the no longer used wined3d_context.namedArraysLoaded field.
183 wined3d: Remove the no longer used WINED3D_SHADER_CAP_SRGB_WRITE flag.
184 wined3d: Move the GL_EXTCALL() definition to wined3d_gl.h.
185 wined3d: Remove some no longer used wined3d_context fields.
186 wined3d: Remove no longer used "exponent" and "cutoff" precomputed fields.
187 wined3d: Remove the no longer used ignore_textype argument of wined3d_ffp_get_fs_settings().
190 conhost: Fix display of font preview in 64-bit mode.
191 winedump: Dump correct handle information for minidump.
192 winedump: Don't dump twice.
193 winedump: Dump Memory64List streams in minidumps.
196 gdiplus: Replace HDC check in GdipFlush.
197 gdiplus: Bracket HDC use in GdipMeasureCharacterRanges.
198 gdiplus: Bracket HDC use in GdipMeasureString.
199 gdiplus: Bracket HDC use in GdipDrawString.
200 gdiplus: Bracket HDC use in GDI32_GdipDrawDriverString.
201 gitlab: Add unzip to build image.
202 gdiplus: Replace HDC use in draw_driver_string.
203 gdiplus: Bracket HDC use in get_path_hrgn.
204 gdiplus: Bracket HDC use in gdi_transform_acquire/release.
205 gdiplus: Do not store HDC on HWND Graphics objects.
206 gdiplus: Don't call GetDeviceCaps for NULL dc.
207 user32/tests: Rename winevent_hook_todo to msg_todo.
208 user32/tests: Mark some Wine-todo messages.
209 win32u: Implement EVENT_SYSTEM_FOREGROUND.
212 oleaut32: Add test for invoking a dispatch get-only property with DISPATCH_PROPERTYPUT.
213 oleaut32: Handle cases where invoking a get-only property with INVOKE_PROPERTYPUT returns DISP_E_BADPARAMCOUNT.
214 userenv: Add CreateAppContainerProfile stub.
215 riched20: In para_set_fmt protect against out of bound cTabStop values.
216 user32/tests: Fix ok_sequence succeeding in todo block not giving a test failure.
218 Francis De Brabandere (1):
219 vbscript/tests: Fix error clear call.
222 sane.ds: Add missing color modes setting support.
225 mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlobject.c.
226 mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlscript.c.
227 mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlselect.c.
228 mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlstorage.c.
229 mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlstyle.c.
230 mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlstyleelem.c.
231 mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlstylesheet.c.
232 mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmltable.c.
233 mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmltextarea.c.
234 mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmltextnode.c.
235 mshtml: Use DISPEX_IDISPATCH_IMPL macro in mutation.c.
236 mshtml: Use DISPEX_IDISPATCH_IMPL macro in omnavigator.c.
237 mshtml: Use DISPEX_IDISPATCH_IMPL macro in range.c.
238 mshtml: Use DISPEX_IDISPATCH_IMPL macro in selection.c.
239 mshtml: Use DISPEX_IDISPATCH_IMPL macro in svg.c.
240 mshtml: Use DISPEX_IDISPATCH_IMPL macro in xmlhttprequest.c.
241 ntdll: Use assembly wrapper for unixlib calls on ARM64EC.
242 d3d9/tests: Use GNU assembly syntax on clang x86_64 MSVC target.
243 d3d8/tests: Use GNU assembly syntax on clang x86_64 MSVC target.
244 d3d9: Use GNU assembly syntax on clang x86_64 MSVC target.
245 d3d8: Use GNU assembly syntax on clang x86_64 MSVC target.
246 ddraw: Use GNU assembly syntax on clang x86_64 MSVC target.
247 gitlab: Use --enable-werror for Clang builds.
248 mshtml: Return success in IHTMLWindow2::get_closed stub.
249 mshtml/tests: Add more custom properties tests.
250 mshtml: Factor out alloc_dynamic_prop.
251 mshtml: Use DispatchEx vtbl for elements as window property lookups.
252 mshtml: Use DispatchEx vtbl for all window properties.
253 mshtml: Use macro for window object IDispatch functions implementation.
254 mshtml: Move IDispatchEx forwarding implementation to outer window object.
256 Krzysztof Bogacki (7):
257 win32u: Use separate variable for inner loop.
258 win32u: Log Vulkan GPU's PCI IDs when matching against them.
259 win32u: Log Vulkan UUIDs when adding GPUs.
260 win32u: Remove unused variable from add_vulkan_only_gpus.
261 win32u: Use common name for fake GPUs and prefer Vulkan name over it.
262 win32u: Prefer Vulkan PCI IDs over empty ones.
263 win32u: Prefer Vulkan UUIDs over empty ones.
266 shell32/tests: Fixed sizeof to GetModuleFileName.
269 msvcrt: Fix _kbhit ignoring the last event.
272 gdi32/text: Make GetTextExtentExPointW() return sizes consistent with ExtTextOutW().
273 d3dcompiler/fx: Write empty buffers for compiler versions 33-39.
274 d3dcompiler: Enable D3DCOMPILE_EFFECT_CHILD_EFFECT option.
277 wine.inf: Add InstallationType field to CurrentVersion.
278 wine.inf: Add Explorer\Advanced registry key.
279 mf/tests: Add a test for MFEnumDeviceSources().
280 mf: Implement audio capture device enumeration in MFEnumDeviceSources().
283 ntdll: Fix UNC path handling in alloc_module.
286 win32u: Fix default_update_display_devices return type to NTSTATUS.
287 win32u: Load the graphics driver vulkan functions lazily.
288 win32u: Keep a list of vulkan GPUS in the device manager context.
289 win32u: Match driver GPUs with vulkan GPUS from their ids, or index.
290 win32u: Query GPU memory from vulkan physical device.
291 win32u: Enumerate offscreen vulkan devices as GPU devices.
292 dinput: Dynamically allocate the internal device / event arrays.
293 server: Pass the adjusted vkey to send_hook_ll_message.
294 winegstreamer: Use DMO_MEDIA_TYPE in the WMA decoder.
295 winegstreamer: Implement WMA DMO Get(Input|Output)CurrentType.
296 win32u/tests: Introduce a new run_in_process helper.
297 win32u/tests: Add NtUser(Get|Set)ProcessDpiAwarenessContext tests.
298 win32u: Fix NtUserSetProcessDpiAwarenessContext.
299 user32/tests: Add some SetProcessDpiAwarenessContext tests.
300 user32/tests: Add more SetThreadDpiAwarenessContext tests.
301 user32: Fix SetProcessDpiAwarenessContext.
302 winegstreamer: Use a GstCaps for wg_parser current_format.
303 winegstreamer: Use a GstCaps instead of preferred_format.
304 winegstreamer: Rename get_preferred_format to get_current_format.
305 winegstreamer: Use a GstCaps for wg_parser_stream codec format.
306 win32u: Get rid of the drivers force_display_devices_refresh flag.
307 win32u: Update the display device cache after loading the driver.
308 win32u: Get rid of the UpdateDisplayDevices force parameter.
309 user32: Test and fix IsValidDpiAwarenessContext.
310 user32: Test and implement GetDpiFromDpiAwarenessContext.
311 user32/tests: Add more AreDpiAwarenessContextsEqual tests.
312 user32/tests: Add more GetAwarenessFromDpiAwarenessContext tests.
313 win32u: Use NtUserCallOnParam for SetThreadDpiAwarenessContext.
314 win32u: Return UINT from NtUserGetWindowDpiAwarenessContext.
315 win32u: Use NtGdiDdDDICreateDCFromMemory for gdi16 DIBDRV.
316 wineandroid: Fix NtUserSendHardwareInput parameter order.
317 wineandroid: Use DWORD for pixel pointers.
318 win32u: Flush window surface when it is fully unlocked.
319 win32u: Remove surface recursive locking requirement.
320 win32u: Stop using a recursive mutex for the offscreen surface.
321 wineandroid: Stop using a recursive mutex for the window surfaces.
322 winemac: Stop using a recursive mutex for the window surfaces.
323 winewayland: Stop using a recursive mutex for the window surfaces.
324 winex11: Stop using a recursive mutex for the window surfaces.
325 win32u: Get the thread DPI context instead of the awareness.
326 win32u: Pass the DPI awareness context in win_proc_params.
327 win32u: Fix SetThreadDpiAwarenessContext.
328 win32u: Only keep DPI awareness context with window objects.
329 win32u: Introduce a new window_surface_init helper.
330 win32u: Move the window surface mutex to the surface header.
331 win32u: Use helpers to lock/unlock window surfaces.
332 win32u: Move window surface bounds to the window_surface base struct.
333 winemac: Get rid of unnecessary blit_data / drawn surface members.
334 wineandroid: Hold the lock while reading window surface bits.
335 win32u: Use a helper to flush window surface, factor locking and bounds reset.
336 win32u: Initialize window surfaces with a hwnd.
337 win32u: Split update_surface_region into get_window_region helper.
338 server: Merge get_surface_region / get_window_region requests together.
339 win32u: Intersect the clipping region with the window shape region.
340 server: Update window surface regions when the window is shaped.
341 wineandroid: Remove now unnecessary set_surface_region calls.
342 win32u: Use a helper to set the window surface clipping, within the lock.
344 Vijay Kiran Kamuju (1):
345 ntdll: Add stub RtlLookupGenericTableAvl function.
348 shell32: Make sure array passed to PathResolve is big enough.
349 shell32: Fix ShellExecute for non-filespec paths.
352 comctl32/tests: Add WM_SETFONT tests.
353 comctl32/syslink: Don't delete font when destroying the control.
354 comctl32/tooltips: Don't duplicate font when handling WM_SETFONT.
355 comctl32/ipaddress: Delete font when destroying the control.