1 The Wine development release 8.7 is now available.
3 What's new in this release:
4 - DXBC shader parsing delegated to vkd3d.
5 - More spool file improvements in the PostScript driver.
8 The source is available at:
10 https://dl.winehq.org/wine/source/8.x/wine-8.7.tar.xz
12 Binary packages for various distributions will be available from:
14 https://www.winehq.org/download
16 You will find documentation on https://www.winehq.org/documentation
18 You can also get the current source directly from the git
19 repository. Check https://www.winehq.org/git for details.
21 Wine is available thanks to the work of many people. See the file
22 AUTHORS in the distribution for the complete list.
24 ----------------------------------------------------------------
26 Bugs fixed in 8.7 (total 17):
28 - #9932 Listview highlight issues when drag&drop enabled
29 - #23647 Street Fighter 4 Benchmark: Flickering screen with parallel rendering enabled
30 - #32089 Window resize enters endless cycle
31 - #32958 ReVolt 1207: Crashes when trying to play Stunt Arena
32 - #33487 Davar bible software not working
33 - #43672 Airscout program 1.2.0.5 does not load under wine 2.0.2
34 - #50249 Shapes On A Plane crashes on start
35 - #51625 Unravel fails to load
36 - #52322 wineserver memory leak during HTTPs download (Genshin Impact Launcher, Qt5)
37 - #54424 user32:edit - test_dbcs_WM_CHAR() fails on Windows in mixed locales
38 - #54464 Multiple games crash on launch (Sekiro: Shadows Die Twice GOTY, Dark Souls III)
39 - #54799 wininet:internet - test_InternetGetConnectedStateExA() fails in the Japanese and Chinese locales in Wine
40 - #54808 Access violation in ntdll when running Adolix Split and Merge PDF with .NET Framework installed
41 - #54815 wininet:internet - test_InternetErrorDlg() fails on Windows 10 1607
42 - #54844 Existing prefixes keep resetting to Win10 when wine is updated
43 - #54856 Final Fantasy XI Online: Opening movie doesn't play (redux part II).
44 - #54882 Conemu fails to start (cannot attach to process)
46 ----------------------------------------------------------------
51 kernel32/tests: Check that lpSectionBase != NULL before dereferencing.
52 ntdll: Increment offset by len in build_clr_surrogate_section.
54 Alexandre Julliard (18):
55 include: Add some CHPE definitions.
56 winedump: Dump hybrid metadata also for i386 CHPE modules.
57 include: Add the ARM64EC context structure.
58 include: Update the PEB and TEB structures.
59 zlib: Run source files through zlib2ansi to avoid K&R function definitions.
60 makedep: Avoid generating empty dependencies.
61 winedump: Print entry point names in code range lists.
62 kernelbase: Move to a higher address on 64-bit.
63 kernel32: Move to a higher address on 64-bit.
64 ntdll: Reimplement RtlSetBits() to set 32 bits at a time.
65 ntdll: Reimplement RtlClearBits() to clear 32 bits at a time.
66 ntdll: Reimplement RtlAreBitsSet() to check 32 bits at a time.
67 ntdll: Reimplement RtlAreBitsClear() to check 32 bits at a time.
68 ntdll: Reimplement RtlNumberOfSetBits() to check 32 bits at a time.
69 ntdll: Use a separate memory allocation for the kernel stack.
70 ntdll: Use nameless unions/structs for register contexts.
71 include: Add some new ProcThreadAttribute definitions.
72 winedump: Fix printing of code ranges in hybrid modules.
74 Alexandros Frantzis (5):
75 winewayland.drv: Initialize display devices once after process init.
76 tools: Support building Wayland protocol source files.
77 winewayland.drv: Use the output name reported by the compositor.
78 winewayland.drv: Basic support for Windows monitor positioning.
79 winewayland.drv: Infer and report Windows monitor positions.
81 Alistair Leslie-Hughes (1):
82 widl: Suppress a coverity warning.
85 dxgi: Update TRACE in dxgi_device_create_resource().
88 ntdll: Print RPC_S_SERVER_UNAVAILABLE exceptions.
91 winegstreamer: Fix negative height image size calculation.
92 winegstreamer: Call init_gstreamer() in winegstreamer_create_video_decoder().
93 dsound: Remove the unused nAvgBytesPerSec field.
94 dsound: Remove redundant assignments to freqAdjustNum and freqAdjustDen.
95 dsound: Preserve freqAccNum value in DSOUND_RecalcFormat().
96 dsound: Acquire the lock when setting 3D buffer parameters.
97 dsound: Allocate big enough committedbuff up front.
100 po: Update Lithuanian translation.
102 Bernhard Übelacker (1):
103 ntoskrnl: Do not leak memory by setting input buffer to NULL.
106 winemac: Refactor constrain_window_frame() to use separate origin and size arguments.
107 winemac: Set the Cocoa window contentMaxSize to the size limits from constrain_window_frame().
108 winemac: Don't constrain surface dimensions to the onscreen part of a window.
109 msvcrt: Fix crash when rethrowing after a non-C++ exception on x86_64.
112 imm32: Stop updating INPUTCONTEXT hWnd member in ImmGetContext.
113 imm32: Avoid updating INPUTCONTEXT hWnd on ImmSetActiveContext deactivation.
116 uiautomationcore: Implement UIA_ControlTypePropertyId for default HWND provider.
117 uiautomationcore: Implement UIA_BoundingRectanglePropertyId for default HWND provider.
118 uiautomationcore: Implement NavigateDirection_Parent navigation for default HWND provider.
119 uiautomationcore: Add a default ProviderType_Proxy MSAA bridge clientside provider.
120 uiautomationcore: Implement UiaGetRootNode.
121 uiautomationcore: Implement IUIAutomation::GetRootElement.
122 uiautomationcore: Implement conditional NavigateDirection_Parent navigation.
123 uiautomationcore: Add normalization navigation to UiaGetUpdatedCache.
124 uiautomationcore: Add UiaNodeFromFocus stub.
125 uiautomationcore: Implement UiaNodeFromFocus.
126 uiautomationcore: Implement IUIAutomation::GetFocusedElement{BuildCacheRequest}.
127 uiautomationcore: Retrieve runtime ID on UiaReturnRawElementProvider thread to prevent a deadlock.
129 Davide Beatrici (22):
130 winealsa: Export function to get AudioSessionWrapper object.
131 winecoreaudio: Export function to get AudioSessionWrapper object.
132 wineoss: Export function to get AudioSessionWrapper object.
133 winepulse: Export function to get AudioSessionWrapper object.
134 mmdevapi: Import GetAudioSessionWrapper() from driver.
135 mmdevapi: Implement AudioSessionManager.
136 winealsa: Remove AudioSessionManager.
137 winecoreaudio: Remove AudioSessionManager.
138 wineoss: Remove AudioSessionManager.
139 winepulse: Remove AudioSessionManager.
140 winealsa: Implement functions to lock and unlock sessions.
141 winecoreaudio: Implement functions to lock and unlock sessions.
142 wineoss: Implement functions to lock and unlock sessions.
143 winepulse: Implement functions to lock and unlock sessions.
144 winealsa: Use dedicated macros to call interface functions.
145 winecoreaudio: Use dedicated macros to call interface functions.
146 wineoss: Use dedicated macros to call interface functions.
147 winepulse: Use dedicated macros to call interface functions.
148 winealsa: Move AudioSessionControl into mmdevapi.
149 winecoreaudio: Use mmdevapi's AudioSessionControl.
150 wineoss: Use mmdevapi's AudioSessionControl.
151 winepulse: Use mmdevapi's AudioSessionControl.
154 winegstreamer: Cache wg_parser input data.
156 Dmitry Timoshkov (1):
157 shell32/tests: Add SHBindToFolderIDListParent() tests.
160 mf/tests: Add tests about (negative) stride handling.
161 winegstreamer: In video_processor, activate a videoflip converter.
162 winedbg: Let 'break symbol : line' command work again.
163 dbghelp: Use source file path as stored in debug info format.
164 winedbg: Simplify watch command implementation.
165 winedbg: Improve size management in watch command.
168 user32/tests: Fix the DBCS WM_CHAR tests in mixed locales.
169 dnsapi/tests: Make DnsQuery()'s CNAME tests more compatible with CDNs.
170 wininet: Add constants for DetectAutoProxyUrl().
171 wininet/tests: Add more proxy tests.
172 kernel32/tests: Fix the ScrollConsoleScreenBuffer() tests on Windows 10 1909.
173 msi/tests: Fix the ok() formats so they match the size of their arguments.
174 msi/tests: Ok_() takes printf-style arguments.
176 Gabriel Ivăncescu (12):
177 mshtml: Implement MediaQueryList's addListener method.
178 mshtml: Implement MediaQueryList's removeListener method.
179 mshtml: Use proper event type for PageTransition events.
180 mshtml: Do not release the principal returned by GetPrincipal.
181 mshtml: Fix factory leak in init_nsio.
182 mshtml: Fix nsIFile dir leak in init_xpcom.
183 mshtml: Fix URI leak in NewURI on failure.
184 mshtml: Store minimum compat mode required for events in the ctor table.
185 mshtml: Support cycle collection for nsChannel.
186 mshtml: Fix nsChannel's load_info leak.
187 mshtml: Pass actual node_ccp to ccref_decr for nodes.
188 mshtml/tests: Fix element leak in elem_fire_event.
190 Giovanni Mascellani (11):
191 mfplat/tests: Test Lock2D() on a locked D3D9 surface buffer.
192 mfplat/tests: Test locking flags for D3D9 buffers.
193 mfplat/tests: Independently test that locking flags are ignored for D3D9 buffers.
194 mfplat: Fix locking flags usage for D3D9 buffers.
195 mfplat/tests: Test Lock2D() on a locked DXGI surface buffer.
196 mfplat/tests: Test locking flags for DXGI buffers.
197 mfplat: Do not mark a DXGI buffer as locked if surface mapping fails.
198 mfplat: Fix locking flags usage for DXGI buffers.
199 mfplat: Only download surface data from GPU for DXGI buffers when reading.
200 mfplat: Only upload surface data to GPU for DXGI buffers when writing.
201 mfplat/tests: Test that the content of DXGI buffers is discarded when locking for writing.
204 wine.inf: Use FLG_ADDREG_NOCLOBBER for CurrentMajor/MinorVersionNumber.
207 d3dcompiler: Check for minimum bytecode size in d3dcompiler_get_blob_part().
208 d3dcompiler: Check for minimum bytecode size in d3dcompiler_strip_shader().
209 d3dcompiler: Store DXBC sections as vkd3d_shader_dxbc_section_desc structures.
210 d3dcompiler: Use vkd3d_shader_serialize_dxbc() in d3dcompiler_get_blob_part().
211 d3dcompiler: Use vkd3d_shader_serialize_dxbc() in d3dcompiler_strip_shader().
212 d3dcompiler: Use vkd3d_shader_parse_dxbc() in d3dcompiler_get_blob_part().
213 d3dcompiler: Use vkd3d_shader_parse_dxbc() in d3dcompiler_strip_shader().
214 d3dcompiler: Use vkd3d_shader_parse_dxbc() in d3dcompiler_shader_reflection_init().
215 wined3d: Implement shader_extract_from_dxbc() on top of vkd3d_shader_parse_dxbc().
216 vkd3d: Update the version information for release 1.7.
217 d3d10: Implement d3d10_effect_parse() on top of vkd3d_shader_parse_dxbc().
218 d3d10: Implement parse_fx10_preshader() on top of vkd3d_shader_parse_dxbc().
221 appwiz.cpl: Process messages while waiting for the uninstaller to terminate.
222 appwiz.cpl: Handle WM_CLOSE and WM_COMMAND(IDCANCEL) in the support info dialog.
225 kernel32/tests: Test for activation context switching between fibers.
226 ntdll: Factor out reading current activation context into a helper function.
227 ntdll: Store current activation context stack pointer into a local variable.
228 ntdll: Use ActivationContextStackPointer instead of referencing ActivationContextStack directly.
229 ntdll: Implement RtlFreeActivationContextStack().
230 kernelbase: Implement activation context switching for fibers.
233 msvcrt: Fix typo in #define.
236 d3dcompiler/tests: Add a couple tests for minimum size in D3DGetBlobPart().
237 d3dcompiler/tests: Add a couple tests for minimum size in D3DStripShader().
239 Michael Stefaniuc (3):
240 threadpoolwinrt: Forward a Release() to a Release() method.
241 uiautomationcore: Drop superfluous TRUE : FALSE conditional expression.
242 win32u: Use ARRAY_SIZE() instead of open coding it.
245 include: Add windows.graphics.capture.interop.idl file.
246 include: Add appnotify.h file.
247 twinapi.appcore: Add stub DLL.
248 twinapi.appcore: Add RegisterAppStateChangeNotification stub.
249 twinapi.appcore: Add UnregisterAppStateChangeNotification stub.
250 apisetschema: Add api-ms-win-core-psm-appnotify-l1-1-0.
251 shell32: Implement SHBindToFolderIDListParent().
252 shell32/tests: Test SHBindToParent() last parameter behavior.
253 shell32: Fix last parameter behavior in SHBindToFolderIDListParent().
256 ntdll: Mind LFH pending blocks in RtlDestroyHeap().
257 ntdll: Avoid integer overflow in block_get_subheap().
258 mfplat: Fix returned buffer length in dxgi_surface_buffer_lock().
259 wined3d: Add a comment about mismatched samplers.
262 wineps: Rename handle count parameter in hmf_proc.
263 wineps: Set text and background color during device creation.
264 wineps: Handle EMR_EXTCREATEFONTINDIRECTW record in spool files.
265 wineps: Handle font selection in spool files.
266 wineps: Store text justification info in print processor data.
267 wineps: Handle EMR_EXTTEXTOUTW record in spool files.
268 wineps: Add BiDi support in EMR_EXTTEXTOUTW record.
269 wineps: Clip visible rectangle to bitmap size in get_vis_rectangles.
270 wineps: Handle EMR_CREATEPALETTE record in spool files.
271 wineps: Handle EMR_SELECTPALETTE record in spool files.
272 wineps: Handle EMR_SETDIBITSTODEVICE record in spool files.
273 wineps: Handle EMR_STRETCHDIBITS record in spool files.
274 wineps: Handle EMR_REALIZEPALETTE record in spool files.
275 wineps: Handle EMR_RESIZEPALETTE record in spool files.
276 wineps: Handle EMR_SETPALETTEENTRIES record in spool files.
277 gdi32: Use EMR_REALIZEPALETTE to record RealizePalette.
278 gdi32: Fix EMR_CREATEPALETTE recording.
279 gdi32: Store palette in EMR_EOF record.
280 gdi32/tests: Add EMF palette tests.
281 wineps: Fix default device font selection.
282 wineps: Fix return value in path drawing routines.
283 wineps: Continue printing if path drawing function returns error.
284 wineps: Reset memory DC state on every page.
285 localspl: Add support for PRINTER_ATTRIBUTE_RAW_ONLY printer attribute.
286 localspl: Validate datatype in StartDocPrinter.
287 wineps: Reset current position on every page.
288 gdi32: Store the printer info in a structure.
289 gdi32: Improve EMF DC cleanup when CloseEnhMetafile is not called.
290 gdi32: Factor out emf_eof helper.
291 gdi32: Factor out emf_create helper.
292 gdi32: Add support for creating EMF spool files.
293 gdi32: Add GdiIsMetaPrintDC implementation.
294 localspl: Add partial support for PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS attribute.
295 gdi32: Implicitly call StartPage while drawing on printer DC.
296 gdi32: Support creating EMRI_DEVMODE records in spool files.
297 wineps: Handle EMRI_DEVMODE record in spool files.
300 imm32/tests: Test that ImmSetOpenStatus doesn't set IMMGWL_IMC.
301 imm32/tests: Check IME UI visibility vs ImmSetCompositionWindow.
302 imm32/tests: Check ImmSetActiveContext effect on INPUTCONTEXT hWnd member.
303 imm32: Forward ImmGetContext to NtUserGetWindowInputContext directly.
304 user32: Move WM_IME_COMPOSITION DefWindowProc handlers in separate helpers.
305 user32: Ignore WM_IME_COMPOSITION from the IME UI window in DefWindowProc.
306 imm32: Don't hide/show IME UI window in ImmSetCompositionWindow.
307 imm32: Move ImmAssociateContext(Ex) around.
308 imm32: Update IME UI window IMMGWL_IMC when focus or HIMC changes.
309 imm32/tests: Add some ImmGenerateMessage tests.
310 imm32: Send messages one by one in ImmGenerateMessage.
313 include: Add more sapi structs and enums.
314 include: Add ISpTTSEngineSite and ISpTTSEngine interfaces.
316 Stefan Dösinger (14):
317 d3dx9: Use __VA_ARGS__ instead of GCCs named variadics.
318 d3dx9/tests: Use __VA_ARGS__ instead of GCCs named variadics.
319 wined3d: Sync depth stencils to both early and late depth test.
320 wined3d: Avoid VK_IMAGE_LAYOUT_GENERAL.
321 wined3d: Fall back to general layout if necessary.
322 d3d9/tests: Radeon GPUs don't draw from sysmem textures.
323 d3d9/tests: Accept AMD GPU sysmem sample failure in test_mipmap_upload.
324 d3d8/tests: Radeon GPUs don't draw from sysmem textures.
325 d3d8/test: Accept AMD GPU sysmem sample failure in test_mipmap_upload.
326 d3dx9: Load D3DAssemble via GetProcAddress.
327 d3dcompiler/tests: Load D3DAssemble via GetProcAddress.
328 d3dcompiler: Make D3DAssemble a private export.
329 d3d9/tests: AMD GPUs sample the border color of cube textures.
330 d3d9/tests: Accept random depth when using a 3D texture with a 2D sampler.
332 Vova Mshanetskiy (2):
333 winhttp: Support WINHTTP_OPTION_PARENT_HANDLE in request_query_option().
334 winhttp: Avoid unnecessary cast in connect_query_option().
337 wined3d: Allow retrieving the frontbuffer from a wined3d swapchain.
338 ddraw: Retrieve the frontbuffer directly from wined3d.
339 wined3d: Disable shaderTessellationAndGeometryPointSize.
340 dxgi: Introduce IWineDXGIDeviceParent::register_swapchain_texture() and use it in IDXGIDevice::CreateSurface().
341 dxgi: Create d3d11 swapchain textures directly from d3d11_swapchain_init().
342 d3d9: Move surface allocation to d3d9_surface_create().
343 d3d9: Create sub-resource surfaces manually.
344 d3d9: Pass the container to d3d9_surface_create().
347 winegstreamer: Implement wg_format_from_caps_video_wmv.
348 wingstreamer: Create extra decodebin to decode compressed stream.
349 mfreadwrite: Fix an address of operator typo.