1 The Wine development release 5.16 is now available.
3 What's new in this release (see below for details):
4 - Support for x86 AVX registers.
5 - Some ARM64 fixes for macOS.
6 - Still more restructuration of the console support.
9 The source is available from the following locations:
11 https://dl.winehq.org/wine/source/5.x/wine-5.16.tar.xz
12 http://mirrors.ibiblio.org/wine/source/5.x/wine-5.16.tar.xz
14 Binary packages for various distributions will be available from:
16 https://www.winehq.org/download
18 You will find documentation on https://www.winehq.org/documentation
20 You can also get the current source directly from the git
21 repository. Check https://www.winehq.org/git for details.
23 Wine is available thanks to the work of many people. See the file
24 AUTHORS in the distribution for the complete list.
26 ----------------------------------------------------------------
28 Bugs fixed in 5.16 (total 21):
30 21150 Memorex exPressit Label Design Studio 4.x crashes when creating a new project (ieframe 'IOleObject::Advise' is a stub)
31 24320 Cisco Quick VPN Client (QVPN) v1.4.x tool 'DetectEnvStatus.exe' crashes
32 37913 Inconsistent rounding behaviour for sprintf
33 39712 AirDC++: Crash after finishing setup wizard
34 39881 d3dx9_36/tests/mesh.ok: failed on line 4145 Test text
35 44200 Quake Champions Instant Crash To Desktop (Steam)
36 46350 Armored Warfare mouse stutter
37 46994 Firefox doesn't load pages
38 47570 Builtin Split function not implemented (needed by FotoBizX Installer)
39 49400 Multiple Windows 10 applications need IsWow64Process2 to determine real OS architecture (ex: detect WOW64 on ARM64)
40 49564 Tomb Raider I (using DosBox) hangs after starting
41 49631 Wine does not fill in Vulkan device LUID property when running in Virtual Desktop
42 49648 Still Life hangs when player starts moving
43 49698 Unwinding with a PE based ntdll.dll fails in some cases
44 49712 Magic: The Gathering Arena fails to connect to server
45 49716 Toontown Corporate Clash's Windows Installer crashes inside IsWow64Process2
46 49718 ABZU broken with math functions from musl
47 49719 The Bat! v9.2.2.3: The 32bit version and the 64bit version crashed after startup
48 49728 Appear (a 4K rendering demo) crashes on unimplemented function user32.dll.SetWindowFullScreenState
49 49730 Number formatting broken with "nl_NL.UTF-8" (for msmoney)
50 49746 crash when virtual debug channel is enabled
52 ----------------------------------------------------------------
57 urlmon/tests: Work around broken Win10 in test_CoInternetCombineUrlEx.
58 user32: Comment out SetWindowFullScreenState.
60 Alexandre Julliard (21):
61 ntdll: Call NtContinue() from LdrInitializeThunk() instead of returning.
62 ntdll: Don't expect LdrInitializeThunk() to return to the Unix side.
63 ntdll: Unwind the syscall frame when calling KiUserApcDispatcher().
64 ntdll: Unwind the syscall frame in NtSetContextThread().
65 kernel32: Fix user handle conversion in GetConsoleWindow().
66 ntdll: Handle page faults happening during a syscall without dispatching the exception.
67 ntdll: Stop resolving imports for the Unix library.
68 ntdll: Avoid referencing winecrt0 exception handlers from the Unix library.
69 winecrt0: Move setjmpex/longjmp implementation to a separate file.
70 makefiles: Don't implicitly import the module itself when -nodefaultlibs is used.
71 winebuild: Allow syscalls to use the cdecl convention.
72 ntdll: Use syscalls for the server functions.
73 ntdll: Use syscalls for the file path conversion functions.
74 ntdll: Use syscalls for the Wine version functions.
75 ntdll: Use syscalls for a couple of Wine internal functions.
76 ntdll: Get rid of the server_init_process_done() Unix library callback.
77 ntdll: Use exported APIs instead of virtual_map_section() to load PE modules.
78 ntdll: Clear the syscall frame on return instead of popping the previous one.
79 ntdll: Clear the thread stack by hand instead of remapping zero pages.
80 Revert "ntdll: Get rid of the server_init_process_done() Unix library callback."
81 conhost: Fix some pointer cast warnings.
83 Alistair Leslie-Hughes (1):
84 include: Add more eAVEncH264VProfile enums.
87 winepulse: Don't rely on pulseaudio callbacks for timing.
90 Revert "ntdll/tests: Add test to check if GetTickCount is updated after sleeping.".
91 winmm: Add timeGetTime() implementation.
92 winmm: Default to 1ms resolution like we used to.
95 po: Update Lithuanian translation.
96 po: Update Lithuanian translation.
99 include/xaudio2.idl: Use cpp_quote for xaudio2 error codes.
100 include/dxgi.idl: Fix typo in DXGI_SWAP_CHAIN_FLAG_RESTRICTED_CONTENT member name.
101 include/dxgi.idl: Add missing DXGI_DISPLAY_COLOR_SPACE structure.
102 include/dxgi1_2.idl: Add missing values in DXGI_SCALING enum.
103 dxgi: Fix order of functions in IDXGIFactory2 interface.
104 include/dxgi1_5.idl: Add missing values in DXGI_HDR_METADATA_TYPE enum.
105 include/dxgi1_6.idl: Add missing values in DXGI_ADAPTER_FLAG3 enum.
106 include/d3d11sdklayers.idl: Add d3d11 debug feature flags.
107 include/d3d10.idl: Use unions in D3D10_BUFFER_RTV structure.
108 include/d3d10.idl: Use unions in D3D10_BUFFER_SRV structure.
109 include/d3d10sdklayers.idl: Add D3D10Debug interface.
110 include/d3d10sdklayers.idl: Add D3D10SwitchToRef interface.
111 include/d3d11sdklayers.idl: Add D3D11SwitchToRef interface.
114 winevulkan: Fix vkEnumerateInstanceExtensionProperties() behavior when no Vulkan driver is present.
117 kernel32: Remove obsolete comment.
119 Damjan Jovanovic (3):
120 riched20: Implement ITextRange::MoveStart() and ITextRange::MoveEnd() for tomCharacter.
121 riched20: Implement ITextRange::Move() for tomCharacter.
122 riched20: Implement ITextRange::StartOf() and ITextRange::EndOf() for tomCharacter.
125 msvcrt/tests: Add tests for SpecialCasing.
126 ucrtbase/tests: Add tests for SpecialCasing.
129 shcore: Add GetScaleFactorForDevice() stub.
132 vbscript: Implement case-insensitive search in Replace function.
134 Dmitry Timoshkov (2):
135 ole32: Add a check for hglobal pointer to GetHGlobalFromStream.
136 kernelbase: Native machine is optional for IsWow64Process2.
139 user32: Set default user preferences to enable animations.
140 msvcrt/math: In _fcvt/_fcvt_s handle locale decimal separator properly.
143 winapi: Remove obsolete entries from win32.api.
144 winapi: Update win16.api.
146 Gabriel Ivăncescu (13):
147 msscript.ocx: Implement the ScriptProcedure enumerator.
148 msscript.ocx: Add the ScriptError stub implementation.
149 msscript.ocx: Implement IScriptError::Clear.
150 msscript.ocx: Implement IScriptError::get_Number.
151 msscript.ocx/tests: Add initial tests for ScriptError.
152 msscript.ocx: Implement IScriptError::get_Source.
153 msscript.ocx: Implement IScriptError::get_Description.
154 msscript.ocx: Implement IScriptError::get_HelpFile.
155 msscript.ocx: Implement IScriptError::get_HelpContext.
156 msscript.ocx: Implement IScriptError::get_Text.
157 msscript.ocx: Implement IScriptError::get_Line.
158 msscript.ocx: Implement IScriptError::get_Column.
159 msscript.ocx: Uncache the module objects when script is restarted, but not the Procedure count.
162 fsutil: Initialize ret in hardlink() (Coverity).
163 shell32: Free original_dos_name with correct function in TRASH_GetDetails() (Coverity).
164 evr: Fix typo in video_mixer_init_dxva_videodesc() (Coverity).
165 amstream: Return VFW_E_CANNOT_CONNECT in IAMMultiMediaStream::OpenFile() when no renderers are present and AMMSF_NORENDER is not specified.
166 amstream: Return S_FALSE when IMediaSeeking::GetDuration() fails in IAMMultiMediaStream::GetDuration().
167 qcap/tests: Remove unused enumMediaTypes in test_smart_tee_filter() (Coverity).
168 quartz: Close hfile when GetFileSizeEx fails in IFileSourceFilter::Load() (Coverity).
169 amstream: Implement IMediaStreamFilter::ReferenceTimeToStreamTime().
172 kernelbase: Use IOCTL_CONDRV_SET_INPUT_INFO in SetConsoleCP.
173 kernelbase: Use IOCTL_CONDRV_SET_INPUT_INFO in SetConsoleOutputCP.
174 kernelbase: Use IOCTL_CONDRV_SET_TITLE in SetConsoleTitleW.
175 server: Remove no longer used set_console_input_info.
176 wineconsole: Make sure that console process is not attached to another console.
177 server: Use passed console handle to inherit console for created process.
178 conhost: Build with -mwindows.
179 kernel32/tests: Fix tests on some broken Windows versions.
180 server: Introduce console server object.
181 server: Support creating console reference from console server.
182 kernelbase: Add CreatePseudoConsole implementation.
183 kernelbase: Add ClosePseudoConsole implementation.
184 kernel32/tests: Add CreatePseudoConsole tests.
185 kernelbase: Support PROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE.
186 conhost: Add initial main loop implementation.
187 server: Queue console ioctls for execution in host when console server is attached.
188 server: Introduce get_next_console_request request.
189 condrv: Implement initial ioctl processing.
190 conhost: Implement IOCTL_CONDRV_GET_MODE.
191 conhost: Implement IOCTL_CONDRV_SET_MODE.
192 conhost: Implement IOCTL_CONDRV_GET_INPUT_INFO.
193 conhost: Implement IOCTL_CONDRV_SET_INPUT_INFO.
194 conhost: Implement IOCTL_CONDRV_GET_TITLE.
195 conhost: Implement IOCTL_CONDRV_SET_TITLE.
196 conhost: Implement IOCTL_CONDRV_WRITE_INPUT.
197 server: Support blocking console host ioctls.
198 conhost: Implement IOCTL_CONDRV_READ_INPUT.
199 conhost: Implement IOCTL_CONDRV_PEEK.
200 server: Move setting current screen_buffer into a helper.
201 server: Allow passing screen buffer ioctls to conhost.
202 conhost: Initial support for screen buffers.
203 server: Forward screen buffer ioctls to conhost if possible.
204 conhost: Implement IOCTL_CONDRV_GET_MODE.
205 conhost: Implement IOCTL_CONDRV_SET_MODE.
206 conhost: Implement IOCTL_CONDRV_GET_OUTPUT_INFO.
207 conhost: Implement IOCTL_CONDRV_SET_OUTPUT_INFO.
208 conhost: Implement IOCTL_CONDRV_WRITE_OUTPUT.
209 conhost: Implement IOCTL_CONDRV_READ_OUTPUT.
212 qcap/tests: Refactor interface testing.
215 winemine: Rename difficulty to avoid translation issues.
216 winemine: Widen some controls to accomodate translations.
217 po: Update German translation.
220 po: Update Finnish translation.
223 explorerframe: Return S_OK in ITaskbarList::RegisterTab.
226 winebuild: Use the right arm64 page/pageoff relocation syntax for darwin.
227 ntdll: Trust libunwind's returned pc value on arm64.
228 ntdll: Fix the arm64 use of libunwind for macOS.
229 ntdll: Fix arm64 sigcontext access for darwin.
230 loader: Fix the generic case in get_self_exe().
231 winedump: Fix dumping of rare arm64 unwind opcodes.
232 include: Update ARM64 context flag definitions to match current SDKs.
233 ntdll: Add initial tests for arm64 RtlVirtualUnwind.
234 ntdll: Set handler_data correctly in arm64 RtlVirtualUnwind.
235 ntdll/tests: Add defines for the complete set of arm64 unwidning opcodes.
236 ntdll/tests: Support testing float registers in the arm64 virtual unwind test.
237 ntdll: Implement the arm64 machine frame and context unwind opcodes.
238 ntdll/tests: Add a larger testcase covering most arm64 unwinding opcodes.
239 ntdll: Fix arm64 jump buffer float restoration.
240 ntdll: Capture vector registers in arm64 RtlCaptureContext.
241 winedump: Fix the dumping of arm64 packed float restoration.
244 combase: Add a function to allocate OLE thread data.
245 combase: Move GetErrorInfo().
246 combase: Add CoGetErrorInfo() as an alias for GetErrorInfo().
247 combase: Move SetErrorInfo().
248 combase: Add CoSetErrorInfo() as an alias for SetErrorInfo().
249 combase: Move CoGetCallContext().
250 combase: Move CoSwitchCallContext().
251 combase: Move CoRegisterInitializeSpy()/CoRevokeInitializeSpy().
252 combase: Move CoWaitForMultipleHandles().
253 combase: Move CoRegisterMessageFilter().
254 combase: Move local proxy-stub registration functions.
255 combase: Move CoGetContextToken().
256 combase: Move CoGetCurrentLogicalThreadId().
257 kernelbase: Pass inherited handles list when creating new process.
258 combase: Move CoGetCurrentProcess().
259 ole32: Use public symbol for maximum moniker comparison data length.
260 dwrite: Add partial implementation for IDWriteFontFace5::Equals().
261 combase: Expose ROT access helpers.
262 ole32: Use combase for ROT access.
263 ole32: Get rid of typedef'ed type for apartment structure.
264 ole32: Simplify apartment lookup helper.
265 ole32: Move apartment and activation management to a separate file.
266 combase: Move core apartment and activation functionality.
267 combase: Move CoFreeUnusedLibrariesEx().
268 ole32: Use single static instance for ROT.
269 combase: Move initialisation functions.
270 combase: Move MTA usage functions.
271 combase: Move CoGetApartmentType().
272 combase: Move CoGetClassObject().
273 ole32: Use InternalIsProcessInitialized().
274 ole32: Remove unused helper.
275 combase: Move server class registration.
276 combase: Move global apartment state cleanup.
277 combase: Move thread data cleanup.
280 ntdll: Report newer vector processor features on x86 / x64.
281 ntdll: Don't transfer xmm registers explicitly during context save and restore on x64.
282 include: Update _XSTATE_CONFIGURATION structure definition.
283 ntdll: Remove redundant ldmxcsr in set_full_cpu_context() on x86_64.
284 include: Define _XSAVE_FORMAT structure.
285 include: Define extended context structures.
286 include: Implement __cpuidex() function.
287 wineboot: Initialize XState features in user_shared_data.
288 kernel32: Implement GetEnabledXStateFeatures().
289 ntdll/tests: Add test for xstate in extended context.
290 ntdll: Support AVX context in fault exceptions on Linux x86_64.
291 ntdll: Restore AVX registers in NtSetContextThread() on x86_64.
292 ntdll: Support AVX context in fault exceptions on Linux i386.
293 ntdll: Restore AVX registers in NtSetContextThread() on i386.
294 ntdll: Also save unwind info for rbp in call_consolidate_callback() on x64.
295 wmc: Add Null facility.
296 kernel32: Add string for E_NOTIMPL error.
299 msvcrt: Fix acosf implementation when returning Pi or Pi/2.
300 msvcrt: Optimize memmove implementation.
303 vbscript: Implement Split.
304 vbscript: Implement IsArray.
305 vbscript: Support arrays in TypeName.
308 gdiplus: Remove outdated FIXME comment about compositing mode.
309 gdiplus: Add missing allocation failure checks to graphics functions.
310 gdiplus/tests: Add cursory GdipGetClipBoundsI checks to graphics clipping test.
311 gdiplus: Implement GdipGetClipBoundsI in terms of GdipGetClipBounds.
312 gdi32: Pass correct pointer to PolyDraw during EMR_POLYDRAW playback.
313 gdi32: Implement EMR_POLYDRAW16 playback.
316 kernel32: Fix some string leaks (Coverity).
317 kernel32: Free the right variable (Coverity).
320 quartz: Reimplement AM_RENDEREX_RENDERTOEXISTINGRENDERERS by forbidding renderers from IFilterMapper2::EnumMatchingFilters().
321 xactengine3: Reduce code duplication in xact_classes.idl.
322 ntdll: Read the condition variable and manipulate the lock on the PE side.
323 server: Report named pipe device files as type "File".
324 devenum: Correct the size of "name" in register_avicap_devices().
327 winex11.drv: Report a GPU same as the host primary GPU in virtual desktop mode.
328 winex11.drv: Initialize new display device registry display settings.
329 winemac.drv: Initialize new display device registry display settings.
330 user32/tests: Add more registry display mode tests.
331 winex11.drv: Store a full display mode in registry.
332 winex11.drv: Allow setting a 0-bit color depth display mode.
333 winex11.drv: Always update _NET_WM_STATE in update_net_wm_states().
334 winex11.drv: Support full screen windows on non-primary monitors.
335 winex11.drv: Support clipping full screen windows on non-primary monitors.
338 windowscodecs: Introduce get_pixel_format_bpp().
339 windowscodecs: Add tests and initial implementation for DdsFrameDecode_CopyPixels().
340 windowscodecs/tests: Add tests for decoding BC1 format.
341 windowscodecs/tests: Fix a variable name typo in decode_bc1().
342 windowscodecs/tests: Add tests for decoding BC2 format.
343 windowscodecs/tests: Add tests for decoding BC3 format.
344 windowscodecs/tests: Merge decode_bc*() into a single function.
345 windowscodecs/tests: Add macro BLOCK_WIDTH and BLOCK_HEIGHT.
346 windowscodecs: Add a lock for DdsFrameDecode.
347 windowscodecs: In struct DdsFrameDecode, add a new member "pixel_data" and rename member "data" to "block_data".
348 windowscodecs: More complete implementation of DdsFrameDecode_CopyPixels().
349 windowscodecs: Introduce decode_block() for DdsFrameDecode_CopyPixels().
350 windowscodecs: Add WIC pixel format information to struct dds_format.
351 windowscodecs: Introduce get_dds_format() to replace get_dxgi_format().
352 windowscodecs/tests: Expect actual WIC formats for uncompressed image.
353 windowscodecs/tests: Introduce is_compressed().
354 windowscodecs/tests: Add pixel format bpp to test_data.
355 windowscodecs: Remove get_pixel_format_bpp().
356 windowscodecs/tests: Add CopyPixels data tests for uncompressed images.
357 windowscodecs/tests: Fix tests for CopyBlocks.
358 windowscodecs: Fix DdsFrameDecode_Dds_CopyBlocks().
359 windowscodecs: Support uncompressed format in DdsFrameDecode_CopyPixels().
360 windowscodecs: Correctly set pixel format of uncompressed DDS images.
361 windowscodecs: Add more supported formats and fix RGB masks for RGBA1010102.