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 Binary packages for various distributions will be available from You will find documentation on 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. ```