winex11: Don't use the vulkan driver interface for xrandr.
[wine.git] / ANNOUNCE.md
blob8fcab7e1fa7253f9503f5219d1d8f899aadeac29
1 The Wine development release 9.11 is now available.
3 What's new in this release:
4   - C++ exception handling on ARM platforms.
5   - More DPI Awareness support improvements.
6   - Various bug fixes.
8 The source is available at <https://dl.winehq.org/wine/source/9.x/wine-9.11.tar.xz>
10 Binary packages for various distributions will be available
11 from <https://www.winehq.org/download>
13 You will find documentation on <https://www.winehq.org/documentation>
15 Wine is available thanks to the work of many people.
16 See the file [AUTHORS][1] for the complete list.
18 [1]: https://gitlab.winehq.org/wine/wine/-/raw/wine-9.11/AUTHORS
20 ----------------------------------------------------------------
22 ### Bugs fixed in 9.11 (total 27):
24  - #42270  Settlers 4 Gold - Hardware Rendering mode not working
25  - #49703  Ghost Recon fails to start
26  - #50983  Multiple games stuck playing cutscenes (The Long Dark, The Room 4: Old Sins, Saint Kotar)
27  - #51174  api-ms-win-core-version-l1-1-0: Missing GetFileVersionInfoW and GetFileVersionInfoSizeW
28  - #52585  Multiple applications need NtQueryDirectoryObject to return multiple entries (Cygwin shells, WinObj 3.01)
29  - #53960  ucrt has different struct layout than msvcrt
30  - #54615  dwrite:layout - test_system_fallback() gets unexpected "Meiryo UI" font name in Japanese and Chinese on Windows
31  - #55362  NeuralNote: Crashes and Rendering issues (alson in VST3 form)
32  - #55472  DTS Encoder Suite gets stuck with encode pending from Wine 8.14
33  - #56095  Clanbomber 1.05 starts after a long (30 seconds) delay
34  - #56397  Numlock status not recognized when using winewayland.drv
35  - #56451  catch block fetches bogus frame when using alignas with 32 or higher
36  - #56460  Multiple games have stutter issues (Overwatch 2, Aimbeast)
37  - #56591  Steam doesn't render individual game pages correctly
38  - #56606  PhysX installer fails to start
39  - #56640  Genshin Impact: The game-launcher cannot be started anymore
40  - #56744  Serial number in smbios system table is not filled on Linux in practice
41  - #56747  Steam won’t load in the new wow64 mode when using DXVK
42  - #56755  White textures in EverQuest  (Unsupported Conversion in windowscodec/convert.c)
43  - #56764  Empire Earth Gold doesn't start in virtual desktop mode
44  - #56766  CDmage 1.01.5 does not redraw window contents fully
45  - #56781  srcrrun: Dictionary setting item to object fails
46  - #56788  ComicRackCE crashes when viewing "info" for a comic file
47  - #56800  Nomad Factory plugins GUI is broken
48  - #56813  Hard West 2 crashes before entering the main menu (OpenGL renderer)
49  - #56824  Postal 2 (20th Anniversary update) crashes when loading the map
50  - #56828  Moku.exe crashes on startup
52 ### Changes since 9.10:
53 ```
54 Adam Rehn (1):
55       wineserver: Report non-zero exit code for abnormal process termination.
57 Alex Henrie (12):
58       ntdll/tests: Delete the WineTest registry key when the tests finish.
59       ntdll/tests: Rewrite the RtlQueryRegistryValues tests and add more of them.
60       ntdll: Succeed in RtlQueryRegistryValues on direct query of nonexistent value.
61       ntdll: Don't call QueryRoutine if RTL_QUERY_REGISTRY_DIRECT is set.
62       ntdll: Don't call a null QueryRoutine in RtlQueryRegistryValues.
63       ntdll/tests: Remove unused WINE_CRASH flag.
64       ntdll: Copy the correct number of bytes with RTL_QUERY_REGISTRY_DIRECT.
65       ntdll: Calculate the default size even without RTL_QUERY_REGISTRY_DIRECT.
66       ntdll: Don't accept a query routine when using RTL_QUERY_REGISTRY_DIRECT.
67       ntdll: Set the string size when using RTL_QUERY_REGISTRY_DIRECT.
68       ntdll: Only allow string default values with RTL_QUERY_REGISTRY_DIRECT.
69       ntdll: Replace the whole string when using RTL_QUERY_REGISTRY_DIRECT.
71 Alexandre Julliard (40):
72       faudio: Import upstream release 24.06.
73       msvcrt: Share a helper macro to print an exception type.
74       msvcrt: Share the dump_function_descr() helper between platforms.
75       msvcrt: Fix the ip_to_state() helper for out of bounds values.
76       msvcrt: Don't use rva_to_ptr() for non-RVA values.
77       msvcrt: Use the copy_exception() helper in __CxxExceptionFilter.
78       msvcrt: Share the __CxxExceptionFilter implementation between platforms.
79       msvcrt: Share the common part of _fpieee_flt between platforms.
80       msvcrt: Consistently use the rtti_rva() helper.
81       winedump: Fix dumping of catchblocks for 32-bit modules.
82       msvcrt: The catchblock frame member isn't present on 32-bit.
83       msvcrt: Use pointer-sized types instead of hardcoding 64-bit in __CxxFrameHandler.
84       msvcrt: Share __CxxFrameHandler implementation with ARM platforms.
85       msvcrt: Add platform-specific helpers to call C++ exception handlers.
86       msvcrt: Add platform-specific helpers to retrieve the exception PC.
87       msvcrt: Use platform-specific handlers also for __CxxFrameHandler4.
88       ntdll: Fix stack alignment in __C_ExecuteExceptionFilter on ARM.
89       ntdll: Fix a couple of compiler warnings on ARM64EC.
90       ntdll: Fix inverted floating point masks on ARM64EC.
91       ntdll: Support x87 control word in __os_arm64x_get_x64_information().
92       kernel32/tests: Add test for FPU control words on ARM64EC.
93       msvcrt: Reimplement __crtCapturePreviousContext() based on RtlWalkFrameChain().
94       msvcrt: Use the __os_arm64x functions to get/set mxcsr on ARM64EC.
95       msvcrt: Implement asm sqrt functions on ARM platforms.
96       msvcrt: Disable SSE2 memmove implementation on ARM64EC.
97       kernelbase: Implement the GetProcAddress wrapper on ARM64EC.
98       kernel32: Implement the GetProcAddress wrapper on ARM64EC.
99       winex11: Fix build error when XShm is missing.
100       ntdll: Look for hybrid builtins in the PE directory for the host architecture.
101       ntdll: Remove some unnecessary asm macros on ARM plaforms.
102       winecrt0: Remove some unnecessary asm macros on ARM plaforms.
103       makedep: Build and install ARM64EC-only modules.
104       tests: Use ARM64 as architecture in manifests on ARM64EC.
105       ntdll: Also load arm64 manifests for amd64 architecture on ARM64EC.
106       ntdll: Reimplement __os_arm64x_check_call in assembly.
107       ntdll: Move some security Rtl functions to sec.c.
108       ntdll: Move some synchronization Rtl functions to sync.c.
109       ntdll: Move the error mode Rtl functions to thread.c.
110       ntdll: Move the PEB lock Rtl functions to env.c.
111       ntdll: Move the memory copy Rtl functions to string.c.
113 Alexandros Frantzis (4):
114       server: Pass desktop to get_first_global_hook.
115       server: Check message target process for raw input device flags.
116       server: Implement key auto-repeat request.
117       win32u: Implement keyboard auto-repeat using new server request.
119 Alistair Leslie-Hughes (2):
120       odbccp32: Check if a full path was supplied for Driver/Setup/Translator entries.
121       odbccp32: Stop handle leak on error paths.
123 Benjamin Mayes (1):
124       windowscodecs: Add conversions from PixelFormat32bppBGRA->PixelFormat16bppBGRA5551.
126 Brendan McGrath (4):
127       kernel32/tests: Test error code when FindFirstFileA uses file as directory.
128       ntdll/tests: Test error code when NtOpenFile uses file as directory.
129       server: Don't always return STATUS_OBJECT_NAME_INVALID on ENOTDIR.
130       ntdll: Treat XDG_SESSION_TYPE as special env variable.
132 Brendan Shanks (1):
133       ntdll: On macOS, check for xattr existence before calling getxattr.
135 Connor McAdams (7):
136       d3dx9: Refactor WIC GUID to D3DXIMAGE_FILEFORMAT conversion code.
137       d3dx9: Refactor WIC image info retrieval code in D3DXGetImageInfoFromFileInMemory().
138       d3dx9: Introduce d3dx_image structure for use in D3DXGetImageInfoFromFileInMemory().
139       d3dx9: Use d3dx_image structure in D3DXLoadSurfaceFromFileInMemory().
140       d3dx9: Introduce d3dx_load_pixels_from_pixels() helper function.
141       d3dx9: Use d3dx_pixels structure in decompression helper function.
142       d3dx9: Use d3dx_load_pixels_from_pixels() in D3DXLoadVolumeFromMemory().
144 Daniel Lehman (3):
145       secur32: Allow overriding GnuTLS debug level.
146       bcrypt: Allow overriding GnuTLS debug level.
147       crypt32: Allow overriding GnuTLS debug level.
149 Danyil Blyschak (4):
150       wineps.drv: Call ResetDCW() to update Devmode in the Unix interface.
151       opcservices: Provide memory allocator functions to zlib.
152       opcservices: Suppress unnecessary zlib deflate warnings.
153       opcservices: Check for memory allocation failure before deflating.
155 Dmitry Timoshkov (2):
156       server: Remove limitation for waiting on idle_event of the current process.
157       win32u: Limit GDI object generation to 128.
159 Elizabeth Figura (25):
160       widl: Assign to the right location variable.
161       widl: Allow using UDTs with the keyword even when the identifier is also a typedef.
162       widl: Invert "declonly".
163       widl: Factor out a define_type() helper.
164       widl: Update the type location in define_type().
165       widl: Do not write type definitions for types defined in an imported header.
166       include: Add more types to windows.networking.connectivity.idl.
167       wined3d: Update multisample state when the sample count changes.
168       wined3d: Invalidate the vertex shader when WINED3D_FFP_PSIZE is toggled.
169       wined3d: Just check the vertex declaration for point size usage.
170       wined3d: Just check the vertex declaration for colour usage.
171       wined3d: Just check the vertex declaration for normal usage.
172       wined3d: Just check the vertex declaration for texcoord usage.
173       wined3d: Default diffuse to 1.0 in the vertex shader.
174       server: Ignore attempts to set a mandatory label on a token.
175       server: Inherit the source token's label in token_duplicate().
176       advapi32/tests: Test token label inheritance.
177       wined3d: Handle a null vertex declaration in glsl_vertex_pipe_vdecl().
178       wined3d: Always output normalized fog coordinates from the vertex shader.
179       wined3d: Do not create a framebuffer with attachments whose clear is delayed.
180       wined3d: Use separate signature elements for oFog and oPts.
181       server: Don't set error in find_object_index if the object is not found.
182       ntdll: Implement reading multiple entries in NtQueryDirectoryObject.
183       server: Generalize get_directory_entries to single_entry case.
184       ntdll: Move IOCTL_SERIAL_WAIT_ON_MASK to the server.
186 Eric Pouech (13):
187       cmd: Introduce a helper to set std handles.
188       cmd: Introduce structure CMD_REDIRECTION.
189       cmd: Create helper to execute a command.
190       cmd: Let errorlevel be a signed integer.
191       cmd: Separate IF command parsing from execution.
192       kernelbase/tests: Fix typo in tests.
193       msvcrt/tests: Don't print a NULL string.
194       quartz/tests: Fix typo in tests.
195       quartz/tests: Add new tests about fullscreen handling.
196       quartz: Always expose that non fullscreen mode is supported and active.
197       quartz: Fix result in put_FullScreenMode().
198       conhost: Handle WM_CHAR for window console.
199       conhost: Support IME input in window mode.
201 Esme Povirk (4):
202       win32u: Send EVENT_OBJECT_FOCUS in more cases.
203       win32u: Implement EVENT_OBJECT_LOCATIONCHANGE.
204       gdiplus: Fix DIB stride calculation in GdipDrawImagePointsRect.
205       win32u: Implement EVENT_SYSTEM_MINIMIZESTART/END.
207 Fabian Maurer (7):
208       msvcrt: Fix _libm_sse2_sqrt_precise not using SSE2 sqrt.
209       mmdevapi/tests: Add tests for IAudioSessionControl2 GetDisplayName / SetDisplayName.
210       mmdevapi/tests: Add tests for IAudioSessionControl2 GetIconPath / SetIconPath.
211       mmdevapi/tests: Add tests for IAudioSessionControl2 GetGroupingParam / SetGroupingParam.
212       mmdevapi: Implement IAudioSessionControl2 GetDisplayName / SetDisplayName.
213       mmdevapi: Implement IAudioSessionControl2 GetIconPath / SetIconPath.
214       mmdevapi: Implement IAudioSessionControl2 GetGroupingParam SetGroupingParam.
216 Giovanni Mascellani (1):
217       d3d11/tests: Add a test for NV12 textures.
219 Hans Leidekker (8):
220       wmic: Sort the alias list.
221       wmic: Add csproduct and systemenclosure aliases.
222       ntdll: Provide fallback values for DMI fields only readable by root.
223       odbc32: Use a fixed size buffer for parameter bindings.
224       odbc32: Support SQLSetStmtAttr(SQL_ATTR_ROW_ARRAY_SIZE).
225       odbc32: Turn SUCCESS() into a static inline function.
226       odbc32/tests: Add tests for fetching multiple rows at once and parameter binding.
227       winscard: Pass ATR buffer to unixlib in SCardStatusA().
229 Jacek Caban (4):
230       mshtml: Use DispatchEx vtbl for document node GetDispID implementation.
231       mshtml: Use DispatchEx for document node InvokeEx implementation.
232       mshtml: Use DISPEX_IDISPATCH_IMPL macro for document object implementation.
233       mshtml: Use DispatchEx for exposing document node IDispatchEx interface.
235 Jacob Pfeiffer (1):
236       wininet: Unify timeout values closer to hInternet.
238 Jinoh Kang (2):
239       user32/tests: Print regions in test_swp_paint_regions failure cases.
240       wow64: Implement reading multiple entries in wow64_NtQueryDirectoryObject.
242 Lucas Chollet (1):
243       dnsapi: Add a stub for DnsServiceBrowse.
245 Mohamad Al-Jaf (3):
246       coremessaging: Add stub DLL.
247       include: Add dispatcherqueue.idl file.
248       coremessaging: Add CreateDispatcherQueueController() stub.
250 Nikolay Sivov (3):
251       scrrun/dictionary: Implement putref_Item() method.
252       dwrite/tests: Fix a test failure on some Win10 machines with CJK locales.
253       gdi32/text: Handle null partial extents pointer in GetTextExtentExPointW().
255 Paul Gofman (12):
256       ntdll: Fix test_NtQueryDirectoryFile() on Win11.
257       ntdll: Do not ignore trailing dots in match_filename().
258       ntdll/tests: Test NtQueryDirectoryFile() masks with more files.
259       ntdll: Ignore leading dots in hash_short_file_name().
260       ntdll: Mind all the wildcards in has_wildcard().
261       ntdll: Match wildcard recursively in match_filename().
262       ntdll: Add a special handling for .. in match_filename().
263       ntdll: Implement matching DOS_STAR in NtQueryDirectoryFile().
264       ntdll: Implement matching DOS_DOT in NtQueryDirectoryFile().
265       ntdll: Properly match DOS_QM in match_filename().
266       ntdll: Skip name search for wildcards in asterisk handling in match_filename().
267       kernelbase: Preprocess wildcarded mask and pass it with NtQueryDirectoryFile().
269 Piotr Caban (8):
270       wineps.drv: Don't use dynamic buffer when writing new page info.
271       wineps.drv: Write page orientation hint for every page.
272       wineps.drv: Take all pages into account when computing bounding box.
273       wineps.drv: Write PageBoundingBox for every page.
274       wineps.drv: Add partial support for changing page size.
275       msvcp140: Use _get_stream_buffer_pointers() to access FILE internal buffers.
276       ucrtbase: Fix _iobuf struct layout.
277       msvcrt: Don't use custom standard streams definition.
279 Rémi Bernon (65):
280       widl: Use mangled namespace names in typedef pointer types.
281       win32u: Move the window surface color bits to the common struct.
282       win32u: Pass BITMAPINFO and a HBITMAP to window_surface_init.
283       winex11: Simplify the XSHM extension function calls.
284       winex11: Create XImage before initializing the window surface.
285       winex11: Create a HBITMAP for the allocated surface pixels.
286       win32u: Create a HBITMAP backing the window surface pixels.
287       win32u: Restore surface rect, which may offsetted from the window rect.
288       win32u: Use a dedicated helper to move bits from a previous surface.
289       win32u: Don't map points to the parent window in move_window_bits_parent.
290       win32u: Get rid of move_window_bits_parent, using move_window_bits.
291       winemac: Merge RESET_DEVICE_METRICS and DISPLAYCHANGE internal messages.
292       win32u: Fix a restorer_str typo.
293       win32u: Send display change messages when host display mode changes.
294       win32u: Move desktop resize on WM_DISPLAYCHANGE out of the drivers.
295       gdi32: Use an internal NtUser call for D3DKMTOpenAdapterFromGdiDisplayName.
296       wineandroid: Always clear UpdateLayeredWindow target rectangle.
297       wineandroid: Use the surface bitmap directly in UpdateLayeredWindow.
298       winemac: Always clear UpdateLayeredWindow target rectangle.
299       winemac: Use the surface bitmap directly in UpdateLayeredWindow.
300       winemac: Blend alpha with NtGdiAlphaBlend instead of window opacity.
301       winex11: Always clear UpdateLayeredWindow target rectangle.
302       winex11: Use the surface bitmap directly in UpdateLayeredWindow.
303       win32u: Introduce a new CreateLayeredWindow driver entry.
304       win32u: Move UpdateLayeredWindow implementation out of the drivers.
305       server: Avoid calling set_event from within msg_queue_add_queue.
306       win32u: Introduce new helpers to convert server rectangle_t.
307       win32u: Introduce NtUserAdjustWindowRect call for AdjustWindowRect*.
308       win32u: Pass desired DPI to NtUserGet(Client|Window)Rect.
309       win32u: Introduce a new get_monitor_rect helper.
310       win32u: Pass the rect DPI to NtUserIsWindowRectFullScreen.
311       winex11: Wrap more window surface formats with NtGdiDdDDICreateDCFromMemory.
312       winex11: Fix some incorrect usage of NtGdiDdDDICreateDCFromMemory.
313       gdi.exe16: Fix some incorrect usage of NtGdiDdDDICreateDCFromMemory.
314       winegstreamer: Allow to clear video decoder input/output types.
315       winegstreamer: Enforce default stride value in the video decoder.
316       winegstreamer: Enforce default stride presence in the video processor.
317       winegstreamer: Rename allow_size_change to allow_format_change.
318       winegstreamer: Only report format changes when frontend supports it.
319       winegstreamer: Use a caps to store the desired output format.
320       winegstreamer: Request the new transform output format explicitly.
321       winevulkan: Remove some unnecessary casts.
322       winevulkan: Fix size mismatch when writing to return pointer.
323       include: Add and fix some WGL prototypes.
324       winewayland: Force the DPI context when restoring cursor clipping.
325       winex11: Force the DPI context when restoring cursor clipping.
326       win32u: Use get_monitor_rect in more places.
327       win32u: Parameterize get_clip_cursor dpi.
328       win32u: Parameterize get_monitor_info dpi.
329       win32u: Use window monitor DPI in get_windows_offset when dpi is 0.
330       winex11: Use NtUserMapWindowPoints instead of NtUserScreenToClient.
331       win32u: Call NtUserMapWindowPoints with per-monitor DPI from the drivers.
332       winemac: Force thread DPI awareness when calling NtUserSetWindowPos.
333       winewayland: Force thread DPI awareness when calling NtUserSetWindowPos.
334       winex11: Force thread DPI awareness when calling NtUserSetWindowPos.
335       winex11: Force thread DPI awareness when calling NtUserRedrawWindow.
336       winex11: Force thread DPI awareness when calling NtUserChildWindowFromPointEx.
337       win32u: Remove unused insert_after WindowPosChanging parameter.
338       wineandroid: Remove unnecessary visible_rect initialization.
339       winemac: Remove unnecessary visible_rect initialization.
340       winex11: Remove unnecessary visible_rect initialization.
341       win32u: Split WindowPosChanging driver call to a separate CreateWindowSurface.
342       winex11: Move layered window mapping to X11DRV_UpdateLayeredWindow.
343       winemac: Move layered window mapping to macdrv_UpdateLayeredWindow.
344       win32u: Move WM_WINE_DESKTOP_RESIZED into driver internal messages range.
346 Shengdun Wang (3):
347       ucrtbase/tests: Add FILE structure tests.
348       ucrtbase: Always use CRITICAL_SECTION for FILE locking.
349       ucrtbase: Fix FILE _flag values.
351 Tim Clem (1):
352       gitlab: Update configuration for the new Mac runner.
354 Zhiyi Zhang (2):
355       ws2_32/tests: Test fromlen for recvfrom().
356       ntdll: Don't zero out socket address in sockaddr_from_unix().
358 Ziqing Hui (7):
359       qasf/tests: Add more tests for dmo_wrapper_sink_Receive.
360       qasf/dmowrapper: Introduce get_output_samples.
361       qasf/dmowrapper: Introduce release_output_samples.
362       qasf/dmowrapper: Return failure in dmo_wrapper_sink_Receive if samples allocating fails.
363       qasf/dmowrapper: Allocate output samples before calling ProcessInput().
364       qasf/dmowrapper: Return VFW_E_WRONG_STATE in dmo_wrapper_sink_Receive.
365       qasf/dmowrapper: Sync Stop() and Receive() for dmo wrapper filter.