The Wine development release 9.7 is now available.
What's new in this release:
- Build system support for ARM64X.
- Some restructuration of the Vulkan driver interface.
- WIDL improvements for ARM support as well as SLTG typelibs.
- Various bug fixes.
The source is available at <https://dl.winehq.org/wine/source/9.x/wine-9.7.tar.xz>
Binary packages for various distributions will be available
from <https://www.winehq.org/download>
You will find documentation on <https://www.winehq.org/documentation>
Wine is available thanks to the work of many people.
See the file [AUTHORS][1] for the complete list.
[1]: https://gitlab.winehq.org/wine/wine/-/raw/wine-9.7/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 9.7 (total 18):
- #37246 Old C&C titles freeze after the map is loaded.
- #44699 Clang 6.0 fails to run under wine
- #44812 Multiple applications need NtQueryInformationProcess 'ProcessQuotaLimits' class support (MSYS2, ProcessHacker 2.x)
- #48080 Oregon Trail II will not start in 32-bit mode
- #50111 osu! crashes since 20201110 version with wine-mono (needs native -> managed byref array marshalling)
- #54759 Notepad++: slider of vertical scrollbar is too small for long files
- #54901 Medieval II Total War some units partly invisible with d3dx9_30 as builtin
- #55765 The 32-bit d2d1:d2d1 frequently crashes on the GitLab CI
- #56133 explorer.exe: Font leak when painting
- #56361 Geovision Parashara's Light (PL9.exe) still crashes in wine
- #56369 Advanced IP Scanner crashes on unimplemented function netapi32.dll.NetRemoteTOD
- #56442 Totem Arts Launcher.exe garbled text
- #56491 Videos in BURIKO visual novel engine
- #56493 PresentationFontCache.exe crashes during .Net 3.51 SP1 installation
- #56536 UI: Applications using ModernWPF crash, Windows.Ui.ViewManagment.InputPane.TryShow not implemented
- #56538 Mspaint from Windows XP needs imm32.CtfImmIsCiceroEnabled
- #56551 HP System Diagnostics crashes when clicking the Devices tab
- #56554 ON1 photo raw installs but wont run the application
### Changes since 9.6:
```
Alex Henrie (2):
win32u: Also reset the unnamed values in prepare_devices.
explorer: Fix font handle leaks in virtual desktop.
Alexandre Julliard (16):
winhttp/tests: Fix some compiler warnings with non-PE build.
widl: Pass 16-byte structures by value on ARM64.
widl: Only pass power of 2 structures by value on x86-64.
widl: Correctly align stack parameters on ARM.
widl: Don't use a structure for NdrClientCall2 parameters on ARM.
widl: Output register parameter assignments on ARM platforms.
widl: Clear RobustEarly flag also for data structure conformance.
rpcrt4/tests: Add some more parameter passing tests.
rpcrt4: Export NdrpClientCall2.
rpcrt4: Implement NdrClientCall2 in assembly on all platforms.
rpcrt4: Implement NdrClientCall3 in assembly on all platforms.
rpcrt4: Implement NdrAsyncClientCall in assembly on all platforms.
rpcrt4: Implement Ndr64AsyncClientCall in assembly on all platforms.
rpcrt4: Support calling server functions with floating point arguments on ARM platforms.
widl: Use x64 calling convention for ARM64EC.
rpcrt4: Leave some space on the stack for varargs when called from ARM64EC code.
Alfred Agrell (8):
winegstreamer: Create decodebin instead of avidemux.
winegstreamer: Use decodebin instead of wavparse.
winegstreamer: Delete now-meaningless wg_parser_type enum.
winegstreamer: Reduce CLSID_decodebin_parser merit, so the MPEG splitter is chosen instead for MPEGs.
quartz/tests: Test that compressed formats are offered for MPEGs.
quartz: Fix error code on empty filename.
quartz/tests: Test the new error codes.
quartz: Fix memory leak on failure path.
Brendan Shanks (4):
winecoreaudio: Correctly handle devices whose UID contains non-ASCII characters.
dxgi: Add IDXGISwapChain2 stubs for D3D11.
dxgi: Add IDXGISwapChain3 stubs for D3D11.
dxgi: Add IDXGISwapChain4 stubs for D3D11.
Dmitry Timoshkov (4):
widl: In old style typelibs all types are public.
widl: Add support for recursive type references to SLTG typelib generator.
widl: Add support for interfaces to SLTG typelib generator.
widl: Add support for inherited interfaces to SLTG typelib generator.
Eric Pouech (10):
msvcrt/tests: Add tests for check buffering state of standard streams.
ucrtbase/tests: Add tests for checking buffering state of standard streams.
ucrtbase: Let stderr be always be unbuffered.
dbghelp: Test thread names in minidump.
dbghelp: Store thread names in minidump.
winedump: Add helpers to print DWORD64 integers.
winedump: Simplify unicode string printing (minidump).
winedump: Support a couple of 'section' options (minidump).
winedump: Tidy up dumping minidump.
winedump: Extend dumping of some minidump parts.
Fabian Maurer (1):
imm32: Add CtfImmIsCiceroEnabled stub.
Hans Leidekker (4):
msi/tests: Use the helpers from utils.h in more modules.
msi/tests: Try restarting tests elevated.
msi/tests: Get rid of workarounds for old Windows versions.
msi: Install global assemblies before running deferred custom actions.
Isaac Marovitz (1):
ntdll: Implement NtQueueApcThreadEx().
Jacek Caban (5):
winebuild: Add -marm64x option for generating hybrid ARM64X import libraries.
winegcc: Pass target and resources as arguments to build_spec_obj.
winegcc: Add -marm64x option for linking ARM64X images.
makedep: Use hybrid ARM64X images for ARM64EC.
ntdll: Use mangled function names in ARM64EC assembly.
Jinoh Kang (3):
kernel32/tests: Test module refcounting with forwarded exports.
kernel32/tests: Fix argument order in subtest_export_forwarder_dep_chain() calls.
kernel32/tests: Document which fields may be overwritten later in gen_forward_chain_testdll().
Liam Middlebrook (1):
krnl386.exe: Start DOSVM timer on GET_SYSTEM_TIME.
Mohamad Al-Jaf (1):
windows.ui: Return success in IInputPane2::TryShow().
Nikolay Sivov (6):
d2d1/effect: Zero value buffer on size or type mismatch.
d2d1/tests: Use distinct types for vector and matrix values.
d2d1/effect: Make it possible to set render info for draw-transform nodes.
d2d1: Implement GetEffectProperties().
d2d1/effect: Add 'Rect' property to the Crop effect description.
d2d1: Fix GetPropertyNameLength() return value.
Paul Gofman (9):
winhttp: Set actual default receive response timeout to 21sec.
winhttp/tests: Add some tests for actual connection caching.
winhttp: Do not cache connection if suggested by request headers.
wow64: Support generic xstate in call_user_exception_dispatcher().
ntdll: Preserve untouched parts of xstate in set_thread_wow64_context().
winegstreamer: Try to handle broken IStream_Stat implementation in WM reader OpenStream().
mmdevapi: Implement SAC_IsAudioObjectFormatSupported().
winegstreamer: Destroy wg_transform in video_decoder/transform_SetInputType().
ntdll: Return STATUS_NO_YIELD_PERFORMED from NtYieldExecution() on Linux if no yield was performed.
Piotr Caban (1):
gdiplus: Fix IWICBitmapFrameDecode reference leak in decode_frame_wic.
Rémi Bernon (27):
include: Add MFTOPOLOGY_DXVA_MODE enum definition.
mf/tests: Fix printf format warning.
mf/tests: Split topology loader tests to a new file.
mf/tests: Test D3D awareness handling in the topology loader.
mf/tests: Test device manager handling in the topology loader.
mfmediaengine/tests: Test that effects allow converters between them.
mfmediaengine: Allow decoder / converter to be resolved between topology nodes.
winevulkan: Add a manual vkQueuePresent wrapper.
winevulkan: Move vkQueuePresent FPS trace out of the drivers.
winevulkan: Return VK_SUBOPTIMAL_KHR from vkQueuePresentKHR after resize.
winevulkan: Return VK_SUBOPTIMAL_KHR from vkAcquireNextImage(2)KHR after resize.
winevulkan: Remove unnecessary vkGetSwapchainImagesKHR driver entry.
winevulkan: Pass surface info for each vkQueuePresent swapchain to win32u.
win32u: Introduce a new vulkan_surface_presented driver entry.
winewayland: Remove now unnecessary swapchain extents checks.
winewayland: Remove now unnecessary swapchain wrapper.
win32u: Move vkQueuePresent implementation out of the user drivers.
winevulkan: Remove now unnecessary vkDestroySwapchain driver entry.
winevulkan: Remove now unnecessary vkCreateSwapchainKHR driver entry.
win32u: Close device manager source key in write_source_to_registry.
win32u: Remove fake source creation when adding display mode.
win32u: Keep the primary current mode in the device manager context.
win32u: Add all display device source modes at once.
winegstreamer: Introduce a new set_sample_flags_from_buffer helper.
winegstreamer: Introduce a new sample_needs_buffer_copy helper.
winegstreamer: Split read_transform_output_data in two helpers.
winegstreamer: Pass optional GstVideoInfo to read_transform_output_video.
Sam Joan Roque-Worcel (1):
win32u: Make SCROLL_MIN_THUMB larger.
Tim Clem (1):
winemac.drv: Hide app's dock icon when it wouldn't have a taskbar item on Windows.
Vijay Kiran Kamuju (4):
mscms: Add stub for WcsGetDefaultColorProfile.
ntdll: Add NtQueryInformationProcess(ProcessQuotaLimits) stub.
ntdll/tests: Add NtQueryInformationProcess(ProcessQuotaLimits) tests.
netapi32: Add NetRemoteTOD stub.
Zebediah Figura (4):
wined3d: Enable EXT_extended_dynamic_state3.
wined3d: Use dynamic state for multisample state if possible.
wined3d: Use dynamic state for blend state if possible.
wined3d: Use dynamic state for rasterizer state if possible.
Zhiyi Zhang (4):
opengl32/tests: Add default framebuffer tests.
winemac.drv: Update OpenGL context immediately after the window content view is visible.
uxtheme/tests: Test that scrollbar parts should have very few #ffffff pixels.
light.msstyles: Use #fefefe instead of #ffffff for scrollbar parts.
Ziqing Hui (3):
winegstreamer: Merge audio_mpeg1 into audio field.
winegstreamer: Merge audio_mpeg4 into audio field.
winegstreamer: Merge audio_wma into audio field.
```
The Wine development release 9.6 is now available.
What's new in this release:
- Support for advanced AVX features in register contexts.
- More Direct2D effects work.
- Support for RSA OAEP padding in BCrypt.
- Interpreted mode fixes in WIDL.
- Various bug fixes.
The source is available at <https://dl.winehq.org/wine/source/9.x/wine-9.6.tar.xz>
Binary packages for various distributions will be available
from <https://www.winehq.org/download>
You will find documentation on <https://www.winehq.org/documentation>
Wine is available thanks to the work of many people.
See the file [AUTHORS][1] for the complete list.
[1]: https://gitlab.winehq.org/wine/wine/-/raw/wine-9.6/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 9.6 (total 18):
- #20694 Mozart 10/11: Cannot save gif jpg or tiff, png + bmp are empty, emf only partial.
- #26372 TI-83 Plus Flash Debugger buttons are not visible
- #28170 "Text Service and Input Languages" needs unimplemented function USER32.dll.LoadKeyboardLayoutEx called
- #41650 SolidWorks 2016 crashes on launch
- #43052 ChessBase 14 - crashes right after start
- #46030 Trackmania Unlimiter 1.3.x for TrackMania United Forever 2.11.26 crashes at account selection screen (heap manager differences, incorrect assumptions of mod on internal game engine data structures)
- #47170 nProtect GameGuard Personal/Anti-Virus/Spyware 3.x/4.x kernel drivers crash due to 'winedevice' PE module having no export table
- #49089 nProtect Anti-Virus/Spyware 4.0 'tkpl2k64.sys' crashes on unimplemented function 'fltmgr.sys.FltBuildDefaultSecurityDescriptor'
- #50296 Multiple 32-bit applications fail due to incorrect handling of 'HKLM\\Software\\Classes' key in 64-bit WINEPREFIX (shared key under Windows 7+ WOW64)(Autocad 2005)
- #53810 [Regression] Visual Novel Shin Koihime Eiyuutan crashes after opening movie plays
- #54378 VrtuleTree calls unimplemented function ntoskrnl.exe.ExGetPreviousMode
- #56188 d2d1:d2d1 frequently fails on the GitLab CI
- #56376 Nerf Arena Blast Demo only displays a black screen
- #56394 Final Fantasy XI Online: Mouse/pointer cursor activates at unintended times.
- #56438 Multiple games have texture glitches (Iron Harvest, The Hong Kong Massacre)
- #56469 configure incorrectly setting ac_cv_lib_soname_vulkan value on macOS
- #56487 wshom tests timeout on Wine
- #56503 CryptStringToBinary doesn't adds CR before pad bytes in some cases
### Changes since 9.5:
```
Aida Jonikienė (2):
wbemprox: Stub most of the Win32_VideoController properties.
sapi: Only print GetStatus() FIXME once.
Alexandre Julliard (21):
ntdll: Copy the context contents instead of the pointer on collided unwind.
ntdll: Use a common wrapper to call exception handlers on x86-64.
ntdll: Use a common wrapper to call unwind handlers on x86-64.
wshom.ocx: Don't show a message box on ShellExecute error.
widl: Don't skip a pointer level for pointers to pointers to strings.
include: Fix a parameter type in the IEnumTfUIElements interface.
idl: Use IPSFactoryBuffer instead of a non-existent IFactoryBuffer.
widl: Merge interpreted stubs header and parameters output into a single function.
widl: Don't output the explicit handle argument.
widl: Fix method number for call_as functions.
rpcrt4: Return the correct failure for a NULL binding handle.
rpcrt4: Make sure that the stack is set when catching an exception.
msi/tests: Delete the temp .msi file in all failure cases.
widl: Always use new-style format strings in interpreted mode.
widl: Add /robust flags in correlation descriptors.
widl: Output more correct /robust flags.
widl: Use the correct type for non-encapsulated union discriminants.
widl: Always pass the top-level attributes to detect interface pointers.
widl: Use padding instead of alignment in structure format strings.
widl: Clear /robust flags when no descriptor is present.
widl: Map VT_USERDEFINED to VT_I4 for default values in typelibs.
Alistair Leslie-Hughes (6):
fltmgr.sys: Implement FltBuildDefaultSecurityDescriptor.
fltmgr.sys: Create import library.
ntoskrnl/tests: Add FltBuildDefaultSecurityDescriptor test.
include: Add STORAGE_HOTPLUG_INFO structure.
include: Add some DWMWA_* enum values.
include: Add more DBCOLUMN_ defines.
Aurimas Fišeras (2):
po: Update Lithuanian translation.
po: Update Lithuanian translation.
Brendan Shanks (10):
mmdevapi: Make IMMDeviceCollection immutable after creation.
ntdll: Simplify creation of the server directory.
server: Simplify creation of the server directory.
server: Replace some malloc/sprintf/strcpy calls with asprintf.
server: Replace sprintf with snprintf to avoid deprecation warnings on macOS.
server: Clarify that registry files are always in the current directory, and simplify save_branch().
win32u: Enlarge buffer size in _CDS_flags.
win32u: Enlarge buffer size in format_date.
win32u: Use PATH_MAX for Unix paths instead of MAX_PATH (from Win32).
win32u: Replace sprintf with snprintf to avoid deprecation warnings on macOS.
Dmitry Timoshkov (6):
windowscodecs: Silence fixme for IID_CMetaBitmapRenderTarget.
widl: Use generic 'struct sltg_data' for collecting data.
widl: Add more traces.
widl: Add support for structures.
widl: Properly align name table entries.
widl: Add support for VT_USERDEFINED to SLTG typelib generator.
Eric Pouech (4):
evr: Remove useless code.
evr: Fix YUY2 image copy in evr_copy_sample_buffer().
cmd: Add test for substring handling in 'magic' variable expansion.
cmd: Fix substring expansion for 'magic' variables.
Esme Povirk (1):
user32/tests: Revert test updates for win11.
Hans Leidekker (6):
bcrypt: Add support for RSA OAEP padding.
wbemprox: Zero-initialize table data.
wmic: Make an error message more general.
wmic: Strip spaces once.
wmic: Handle failure from CommandLineToArgvW().
wmic: Handle multiple properties separated by whitespace.
Jacek Caban (2):
ntdll: Use __ASM_GLOBAL_IMPORT for RtlUnwind.
widl: Don't use old typelib format in do_everything mode.
Louis Lenders (2):
wmic: Support interactive mode and piped commands.
wbemprox: Add property 'Status' to Win32_BIOS.
Nikolay Sivov (22):
dwrite/shape: Fully initialize shaping context when getting glyph positions (Valgrind).
d2d1: Fix a double free on error path (Valgrind).
gdi32/emf: Zero-initialize handles array (Valgrind).
d3d10: Use older compiler for D3D10CompileEffectFromMemory().
d3d10/tests: Add a test for effect compilation containing empty buffers.
d2d1/tests: Get rid of test shader blobs.
d2d1/effect: Use effect property types identifier directly in initializers.
d2d1/effect: Use a helper internally instead of IsShaderLoaded().
d2d1/tests: Add a test for a custom effect using a pixel shader.
d2d1/tests: Add a basic test for ID2D1DrawInfo instance.
d2d1/tests: Add a test for transform graph input count.
d2d1/effect: Keep input count as a graph property when recreating it.
d2d1/effect: Implement offset transform object.
d2d1/effect: Implement blend transform object.
d2d1/effect: Implement node list for the transform graph.
d2d1/effect: Implement ConnectToEffectInput().
d2d1/effect: Implement SetOutputNode().
d2d1/effect: Implement SetSingleTransformNode().
d2d1/effect: Fix property value size for empty or missing string values.
d2d1/effect: Implement border transform object.
d2d1/effect: Implement bounds adjustment transform.
d2d1/tests: Add supported interface checks for transform objects.
Paul Gofman (23):
ntdll: Only save AVX xstate in wine_syscall_dispatcher.
ntdll: Preserve untouched parts of xstate in NtSetContextThread().
ntdll: Support generic xstate in Unix-side manipulation functions.
ntdll: Factor out xstate_from_server() function.
ntdll: Factor out context_to_server() function.
ntdll: Mind generic xstate masks in server context conversion.
ntdll: Support more xstate features.
ntdll/tests: Add more tests for xstate.
windows.perception.stub: Add stub IHolographicSpaceInterop interface.
wintypes: Report some API contracts as present in api_information_statics_IsApiContractPresentByMajor().
ddraw: Store material handles in the global table.
ddraw: Store surface handles in the global table.
ddraw: Store matrix handle in the global table.
ddraw: Don't apply state in ddraw_surface_blt().
wined3d: Factor out wined3d_texture_set_lod() function.
ddraw: Store wined3d state in d3d_device.
ddraw: Sync wined3d render target in d3d_device_sync_rendertarget().
ddraw: Support multiple devices per ddraw object.
ddraw/tests: Add tests for multiple devices.
win32u: Avoid writing past allocated memory in peek_message().
win32u: Avoid leaking previous buffer in get_buffer_space().
ddraw: Don't demand WINED3D_BIND_SHADER_RESOURCE for making surface in vidmem.
avifil32: Update lCurrentFrame in IGetFrame_fnGetFrame().
Piotr Caban (1):
gdi32: Implicitly call StartPage in ExtEscape on printer DC.
Rémi Bernon (35):
configure: Quote ac_cv_lib_soname_MoltenVK when setting SONAME_LIBVULKAN.
mf/tests: Check that pan scan and geometric apertures are set.
evr/tests: Split create_d3d_sample to a separate helper.
evr/tests: Split check_presenter_output to a separate helper.
evr/tests: Add more video mixer input media type aperture tests.
evr/mixer: Respect input media type MF_MT_GEOMETRIC_APERTURE.
win32u: Open adapters in NtGdiDdDDIEnumAdapters2 outside of the display devices lock.
winex11: Initialize D3DKMT vulkan instance only once.
winex11: Introduce a new get_vulkan_physical_device helper.
winex11: Introduce a new find_adapter_from_handle helper.
win32u: Move D3DKMT vulkan implementation out of winex11.
winegstreamer: Set GST_DEBUG if not set, based on WINEDEBUG channels.
win32u: Split writing adapter to registry to a separate helper.
win32u: Use a symlink for the logically indexed adapter config key.
win32u: Use named adapters instead of struct gdi_adapter.
win32u: Rename struct adapter to struct source.
winevulkan: Strip surface extensions in vkEnumerateInstanceExtensionProperties.
winevulkan: Remove now unnecessary vkEnumerateInstanceExtensionProperties driver entry.
winevulkan: Introduce a new get_host_surface_extension driver entry.
winevulkan: Remove now unnecessary vkCreateInstance driver entry.
winevulkan: Remove now unnecessary vkDestroyInstance driver entry.
winegstreamer: Create the transform parsed caps from wg_format.
winegstreamer: Fallback to input caps only when no parser was found.
mf/session: Avoid leaking samples in transform_node_deliver_samples.
mfreadwrite/reader: Use MFTEnumEx to enumerate stream transforms.
mfreadwrite/reader: Make the GetTransformForStream category parameter optional.
mfreadwrite/tests: Test the source reader stream change events.
mfreadwrite/tests: Test the D3D awareness of source reader transforms.
mfreadwrite/reader: Avoid accessing an invalid stream index.
mfreadwrite/reader: Keep the output subtypes when propagating media types.
winex11: Keep the client window colormap on the GL drawable.
winex11: Get rid of ref held from the HWND to its Vk surface.
winex11: Introduce a new detach_client_window helper.
winex11: Introduce a new destroy_client_window helper.
winex11: Introduce a new attach_client_window helper.
Santino Mazza (1):
crypt32: Fix CryptBinaryToString not adding a separator.
Tuomas Räsänen (1):
winebus: Ignore udev events of devices which do not have devnodes.
Zebediah Figura (11):
d3d11/tests: Test discarding a buffer in test_high_resource_count().
wined3d: Recreate buffer textures when renaming the existing buffer storage.
wined3d: Skip bindless samplers with no uniform location.
wined3d: Enable EXT_extended_dynamic_state2.
wined3d: Use dynamic state for primitive type if possible.
wined3d: Use dynamic state for patch vertex count if possible.
wined3d: Require EXT_framebuffer_object.
wined3d: Remove the OffscreenRenderingMode setting.
wined3d: Require GLSL 1.20 support.
wined3d: Remove the "arb" and "none" shader_backend options.
wined3d: Require ARB_texture_non_power_of_two.
Zhiyi Zhang (6):
mfmediaengine: Implement IMFMediaEngineEx::SetCurrentTime().
mfmediaengine: Implement IMFMediaEngineEx::SetCurrentTimeEx().
mfmediaengine/tests: Test IMFMediaEngineEx::SetCurrentTime/Ex().
gdiplus/tests: Add tests for GdipPrivateAddMemoryFont().
gdiplus: Search microsoft platform names first in load_ttf_name_id().
winemac.drv: Show the window after setting layered attributes.
```