wine/ANNOUNCE.md
Alexandre Julliard c963c4141a Release 9.1.
2024-01-26 23:56:23 +01:00

22 KiB

The Wine development release 9.1 is now available.

What's new in this release:

  • A number of Input Method improvements.
  • Improved Diffie-Hellman key support.
  • Better Dvorak keyboard detection.
  • Various bug fixes.

The source is available at https://dl.winehq.org/wine/source/9.x/wine-9.1.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 for the complete list.


Bugs fixed in 9.1 (total 42):

  • #17414 user32/dde test crashes if +heap enabled
  • #25759 Polda 1: after intro picture and animation it shows black window
  • #35300 Lego Racers crashes when click on configuration commands for Player 1
  • #36007 oleaut32/vartype tests crash with WINEDEBUG=warn+heap
  • #42784 Lost Planet dx10 demo black screen after starting new game
  • #46074 Visio 2013 crashes with unimplemented function msvcr100.dll.??0_ReaderWriterLock@details@Concurrency@@QAE@XZ
  • #46904 SIMATIC WinCC V15.1 Runtime: Automation License Manager 'almapp64x.exe' crashes on unimplemented function msvcp140.dll.?_XGetLastError@std@@YAXXZ
  • #50297 Blindwrite 7 crashes with a stack overflow
  • #50475 ENM (Externes Notenmodul / external mark module) crashes on opening
  • #50893 Wine cannot see home directory (32-bit time_t overflow)
  • #51285 The bmpcoreimage test in user32:cursoricon fails on most Windows versions
  • #51471 user32:input receives unexpected WM_SYSTIMER messages in test_SendInput()
  • #51473 user32:input Some SendInput() set LastError to ERROR_ACCESS_DENIED on cw-rx460 19.11.3
  • #51474 user32:input SendInput() triggers an unexpected message 0x60 on Windows 10 1709
  • #51477 user32:input test_Input_blackbox() gets unexpected 00&41(A) keystate changes
  • #51931 Dead Rising encounters infinite loading when starting a new game (needs WMAudio Decoder DMO)
  • #52399 SIMATIC WinCC V15.1 Runtime installer: SeCon tool fails with error 5 while trying to create 'C:\windows\Security\SecurityController' (needs '%windir%\security')
  • #52595 GUIDE 7.0 shows black screen on start
  • #53516 user32:input failed due to unexpected WM_TIMECHANGE message
  • #54089 user32:input - test_SendInput() sometimes gets an unexpected 0x738 message on w1064v1709
  • #54223 Unigine Heaven Benchmark 4.0 Severely Low FPS
  • #54323 user32:input - test_SendInput() sometimes gets an unexpected 0xc042 message on Windows 7
  • #54362 BurnInTest calls unimplemented function ntoskrnl.exe.ExAllocatePool2
  • #55000 wineserver crashes below save_all_subkeys after RegUnLoadKey
  • #55268 user32:cursoricon - LoadImageA() fails in test_monochrome_icon() on Windows 8+
  • #55467 MAME 0.257: mame.exe -listxml crashes
  • #55835 putenv clobbers previous getenv
  • #55883 SpeedWave can't draw Window, needs oleaut32.OleLoadPictureFile().
  • #55945 KakaoTalk crashes when opening certain profiles after calling GdipDrawImageFX stub
  • #56054 Microsoft Safety Scanner crashes on exit on unimplemented function tbs.dll.GetDeviceIDString
  • #56055 AVG Antivirus setup crashes on unimplemented function ADVAPI32.dll.TreeSetNamedSecurityInfoW
  • #56062 unimplemented function mgmtapi.dll.SnmpMgrOpen
  • #56078 LibreOffice 7.6.4 crashes on unimplemented function msvcp140_2.dll.__std_smf_hypot3
  • #56093 msys/pacman: fails with "fixup_mmaps_after_fork: VirtualQueryEx failed"
  • #56119 Emperor - Rise of the Middle Kingdom: invisible menu buttons
  • #56135 Dictionnaire Hachette Multimédia Encyclopédique 98 crashes on start
  • #56168 dbghelp hits assertion in stabs_pts_read_type_def
  • #56174 Forza Horizon 4 crashes with concrt140.dll.?_Confirm_cancel@_Cancellation_beacon@details@Concurrency@@QEAA_NXZ
  • #56195 Device name inconsistent casing between GetRawInputDeviceInfo and PnP
  • #56223 winedbg: crashes after loading gecko debug information
  • #56235 Windows Sysinternals Process Explorer 17.05 crashes showing Threads property page.
  • #56236 notepad freezes when displaying child dialog

Changes since 9.0:

Aida Jonikienė (2):
      opengl32: Add a FIXME when doing a mapped buffer copy.
      localspl: Fix a maybe-uninitialized warning in fill_builtin_form_info().

Alex Henrie (8):
      uiautomationcore/tests: Use CRT allocation functions.
      tbs: Add GetDeviceIDString stub.
      advapi32: Add TreeSetNamedSecurityInfoW stub.
      include: Add mgmtapi.h and LPSNMP_MGR_SESSION.
      mgmtapi: AddSnmpMgrOpen stub.
      msvcp140_2: Implement __std_smf_hypot3.
      include: Add POOL_FLAGS and POOL_FLAG_*.
      ntoskrnl: Reimplement ExAllocatePool* on top of ExAllocatePool2.

Alexandre Julliard (33):
      ntdll/tests: Add exception test for int 2d on x86-64.
      user32: Return result through NtCallbackReturn for the DDE message callback.
      user32: Return result through NtCallbackReturn for the thunk lock callback.
      user32: Return result through NtCallbackReturn for the copy image callback.
      user32: Return result through NtCallbackReturn for the load image callback.
      user32: Return result through NtCallbackReturn for the load sys menu callback.
      user32: Return result through NtCallbackReturn for the draw text callback.
      user32: Return result through NtCallbackReturn for the enum monitors callback.
      user32: Return result through NtCallbackReturn for the window hook callback.
      winevulkan: Return result through NtCallbackReturn for the debug callbacks.
      wineandroid.drv: Return result through NtCallbackReturn for the start device callback.
      winex11.drv: Return result through NtCallbackReturn for the drag and drop callbacks.
      winemac.drv: Return result through NtCallbackReturn for the drag and drop callbacks.
      user32: Return a proper NTSTATUS in the load driver callback.
      user32: Return a proper NTSTATUS in the post DDE message callback.
      user32: Return a proper NTSTATUS in all user callbacks.
      opengl32: Return a proper NTSTATUS in the debug callback.
      ntdll: Add NtCompareTokens syscall for ARM64EC.
      msvcp: Consistently use __int64 types in number conversion functions.
      include: Add a typedef for user callback function pointers.
      ntdll: Share KiUserCallbackDispatcher implementation across platforms.
      ntdll: Report failure in KiUserCallbackDispatcher when catching an exception.
      ntdll: Export KiUserCallbackDispatcherReturn.
      ntdll: Use a .seh handler for KiUserCallbackDispatcher exceptions.
      ntdll: Move the process breakpoint to the CPU backends.
      ntdll: Use a .seh handler for the process breakpoint.
      ntdll/tests: Update todos in context tests for new wow64 mode.
      configure: Only check for libunwind on x86-64.
      ntdll: Share the nested exception handler across platforms.
      ntdll: Use a .seh handler for nested exceptions.
      ntdll: Clear CONTEXT_UNWOUND_TO_CALL in signal frames.
      ntdll/tests: Port the exception unwinding tests to ARM64.
      ntdll/tests: Port the exception unwinding tests to ARM.

Alistair Leslie-Hughes (2):
      include: Add more D3D_FEATURE_LEVEL_ defines.
      include: Correct KMTQAITYPE values.

Aurimas Fišeras (1):
      po: Update Lithuanian translation.

Bartosz Kosiorek (2):
      gdiplus/tests: Add GdipDrawImageFX tests except effects or attributes.
      gdiplus: Partially implement GdipDrawImageFX.

Bernhard Übelacker (6):
      wing32: Add tests.
      wing32: Avoid crash in WinGGetDIBPointer when called with NULL bitmap info.
      server: Allow VirtualQueryEx on "limited" handle.
      dbghelp: Return early if HeapAlloc failed.
      ntdll: Fix structure layout in RtlQueryProcessDebugInformation for 64-bit.
      server: Avoid unloading of HKU .Default registry branch.

Biswapriyo Nath (5):
      include: Add D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOURCE_REQUIREMENTS in d3d12video.idl.
      include: Add D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS in d3d12video.idl.
      include: Add D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAGS in d3d12video.idl.
      include: Add D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT in d3d12video.idl.
      include: Add missing macros in devenum.idl.

Brendan McGrath (3):
      gdi32: Ignore Datatype when StartDoc is called.
      d2d1: Use 24-bit FP precision for triangulate.
      d2d1: Fix double free bug when d2d_geometry_sink_Close fails.

Brendan Shanks (5):
      opengl32: Make wglSwapLayerBuffers hookable.
      combase: Make RoGetActivationFactory hookable.
      wined3d: Update reported AMD driver version.
      ntdll: Remove unnecessary NtQueryVirtualMemory call.
      ntdll: Only build the main module and ntdll once on Wow64.

Daniel Hill (3):
      winex11.drv: Dvorak should use QWERTY scancodes.
      winex11.drv: Improve DetectLayout heuristics.
      winex11.drv: Add Dvorak with phantom keys layout.

Daniel Lehman (2):
      msvcp120/tests: Add some tests for _Mtx_t fields.
      msvcp140: Pad _Mtx_t struct to match Windows.

David Kahurani (1):
      gdiplus: Avoid use of temporary variable.

Dmitry Timoshkov (4):
      ntdll: Add NtCompareTokens() stub.
      oleaut32: Do not reimplement OleLoadPicture in OleLoadPicturePath.
      oleaut32: Factor out stream creation from OleLoadPicturePath.
      oleaut32: Implement OleLoadPictureFile.

Dāvis Mosāns (1):
      ntdll/tests: Test NtContinue on x86-64.

Eric Pouech (7):
      dbghelp: Support redefinition of a range statement.
      winedbg: Make some internal data 'static const'.
      winedbg: Print all pid and tid with 4 hex characters.
      appwiz.cpl: Load dynamically wine_get_version().
      user32: Load dynamically wine_get_version().
      include: Avoid defining intrinsic functions as inline.
      include: Avoid redefining _InterlockedCompareExchange128 as inline.

Etaash Mathamsetty (2):
      xinput: Implement XInputGetCapabilitiesEx.
      xinput: Reimplement XInputGetCapabilities.

Fabian Maurer (8):
      dmsynth: Leave critical section when out of memory (Coverity).
      localspl: In fpScheduleJob leave critical section in error case (Coverity).
      wmiutils: Always zero path->namespaces in parse_text (Coverity).
      winedbg: Add missing break inside fetch_value (Coverity).
      wow64win: Add missing break inside packed_result_32to64 (Coverity).
      winegstreamer: Don't check event for NULL, gstreamer already does that.
      include: Add Windows.UI.ViewManagement.InputPane definitions.
      windows.ui: Add stubs for InputPane class.

Fan WenJie (1):
      wined3d: Compile sm1 bytecode to spirv.

Gabriel Brand (3):
      ws2_32/tests: Test binding UDP socket to invalid address.
      server: Return failure in bind if the address is not found.
      kernel32: Add string for WSAEADDRNOTAVAIL error.

Gabriel Ivăncescu (6):
      msvcirt: Use proper operator_new and operator_delete types.
      jscript: Move thread_id from JScript struct to TLS data.
      jscript: Don't use atomic compare exchange when setting the script ctx.
      jscript: Make the garbage collector thread-wide rather than per-ctx.
      jscript: Allow garbage collection between different jscript contexts.
      mshtml: Implement document.lastModified.

Giovanni Mascellani (2):
      wined3d: Expose the image view usage for null views.
      wined3d: Expose the image view usage for non-default views.

Haidong Yu (1):
      loader: Associate folder with explorer.

Hans Leidekker (19):
      bcrypt: Add support for setting DH parameters.
      bcrypt: Add support for retrieving DH parameters.
      bcrypt: Allow or disallow some operations based on whether keys are finalized.
      bcrypt: Add helpers to create a public/private key pair.
      bcrypt: Make DH blob size validation more strict in key_import_pair().
      bcrypt: Reject DH keys smaller than 512 bits.
      bcrypt: Add support for generating DH keys from known parameters.
      bcrypt: Make sure key_asymmetric_derive_key() returns correct size.
      bcrypt: Assume we have a public key in key_export_dh_public().
      bcrypt: Set dh_params in key_import_dh/_public().
      bcrypt/tests: Add DH tests.
      crypt32: Pad R/S values with zeroes if smaller than their counterpart.
      sxs: Use wide character string literals.
      sxs/tests: Use wide character string literals.
      sxs/tests: Get rid of workarounds for old Windows versions.
      sxs/tests: Update QueryAssemblyInfo() test for Windows 10.
      sxs: Skip file copy when assembly is already installed.
      bcrypt: Fix private data size in wow64 thunks.
      dssenh: Finalize the hash if necessary in CPVerifySignature().

Jacek Caban (4):
      winevdm: Use char type for max length assignment.
      kernelbase: Silence -Wsometimes-uninitialized clang warning.
      kernelbase: Silence -Warray-bounds clang warning.
      devenum: Use switch statements for moniker type handling.

Jinoh Kang (2):
      ntdll/tests: Avoid misaligned load in exception handler code in run_exception_test_flags().
      ntdll/tests: Restore x86-64 #AC exception test in test_exceptions().

Martin Storsjö (6):
      ntdll: Fix KiUserCallbackDispatcher on arm.
      ntdll: Reduce fixme logging for large numbers of cores.
      ntdll: Remove libunwind support for aarch64.
      ntdll: Remove libunwind support for ARM.
      ntdll: Remove dwarf unwinding support for aarch64.
      wineps.drv: Avoid invalid unaligned accesses.

Nicholas Tay (1):
      win32u: Preserve rawinput device instance ID case in add_device().

Nikolay Sivov (13):
      mf/tests: Skip tests if video renderer can't be created.
      ntdll: Update RTL_HEAP_PARAMETERS definition.
      ntdll/tests: Add some tests for creating custom heaps.
      scrrun/dictionary: Add support for hashing VT_EMPTY keys.
      scrrun/dictionary: Add support for hashing VT_NULL keys.
      scrrun/dictionary: Handle VT_EMPTY/VT_NULL keys.
      evr/dshow: Handle YUY2 sample copy.
      mf/tests: Fully cleanup when skipping tests.
      d2d1/tests: Add some tests for minimum/maximum input count in effect description.
      d2d1/effect: Handle variable input count attributes in the description.
      d2d1/effect: Use XML description for builtin effects.
      d2d1/effect: Recreate transform graph when input count changes.
      d3d10/effect: Use bitfields for numeric type descriptions.

Paul Gofman (5):
      ntdll: Fix exception list offset in call_user_mode_callback / user_mode_callback_return.
      ntdll: Return STATUS_DEBUGGER_INACTIVE from NtSystemDebugControl() stub.
      winex11.drv: Fix wglSwapBuffers() with NULL current context with child window rendering.
      winhttp: Always return result at once if available in WinHttpQueryDataAvailable().
      winhttp: Always return result at once if available in WinHttpReadData().

Piotr Caban (8):
      msvcp140_2: Fix i386 export names.
      msvcp140_2: Implement __std_smf_hypot3f.
      msvcp140_t/tests: Add __std_smf_hypot3 tests.
      concrt140: Add _Cancellation_beacon::_Confirm_cancel() implementation.
      msvcp140: Add _XGetLastError implementation.
      msvcp140/tests: Fix _Syserror_map(0) test failure in newest msvcp140.
      msvcp140: Recognize no error case in _Syserror_map.
      winex11.drv: Fix xim_set_focus no IC condition check.

Russell Greene (1):
      powrprof: Add PowerWriteACValueIndex stub.

Rémi Bernon (59):
      user32/tests: Remove old Windows versions broken cursoricon results.
      user32/tests: Fix cursoricon tests on recent Windows versions.
      user32/tests: Add flaky_wine to some SetActiveWindow tests.
      user32/tests: Run SendInput tests in a separate desktop.
      user32/tests: Cleanup SendInput keyboard message sequence tests.
      user32/tests: Test SendInput messages with KEYEVENTF_SCANCODE flag.
      user32/tests: Test SendInput messages with other keyboard layouts.
      imm32/tests: Add todo_himc to some ImmTranslateMessage expected calls.
      dinput/tests: Make some failing keyboard test flaky_wine.
      vulkan/tests: Add gitlab Win10 VM results.
      winex11: Return STATUS_NOT_FOUND when IME update isn't found.
      win32u: Move ImeToAsciiEx implementation from winex11.
      win32u: Support posting IME updates while processing keys.
      winemac: Use the default ImeToAsciiEx implementation.
      win32u: Remove now unnecessary ImeToAsciiEx driver entry.
      winebus: Append is_gamepad to the device instance id.
      winebus: Allow specific devices to prefer hidraw backend.
      winebus: Move device identification helpers to unixlib.h.
      winebus: Prefer hidraw backends for DS4 and DS5 gamepads.
      winexinput: Demote BusContainerId FIXME message to WARN.
      winebus: Demote BusContainerId FIXME message to WARN.
      dinput: Add a description to the dinput worker thread.
      windows.gaming.input: Add a description to the monitor thread.
      include: Add HEAACWAVEINFO and HEAACWAVEFORMAT definitions.
      mfplat/tests: Test MFInitMediaTypeFromWaveFormatEx wrt MF_MT_FIXED_SIZE_SAMPLES.
      mfplat/tests: Add MFInitMediaTypeFromWaveFormatEx tests with HEAACWAVEFORMAT.
      mfplat/tests: Test MFWaveFormatExConvertFlag_ForceExtensible with HEAACWAVEFORMAT.
      mfplat: Support AAC format attributes in MFInitMediaTypeFromWaveFormatEx.
      mfplat: Support compressed WAVEFORMATEX in MFCreateWaveFormatExFromMFMediaType.
      win32u: Avoid truncating ToUnicodeEx result if there's room.
      user32/tests: Move KEYEVENTF_UNICODE to test_SendInput_keyboard_messages.
      user32/tests: Test that WH_KEYBOARD_LL are blocking SendInput.
      setupapi: Don't clobber the original filename if .inf is found.
      dinput/tests: Introduce a new helper to create a foreground window.
      dinput/tests: Enforce ordering of concurrent read IRPs.
      dinput/tests: Add a test with a virtual HID mouse.
      dinput/tests: Add a test with a virtual HID keyboard.
      include: Add more HID digitizer usage definitions.
      dinput/tests: Add a test with a virtual HID touch screen.
      winex11: Sync with gdi_display before closing the threads display.
      dinput/tests: Differentiate missing from broken HID reports.
      dinput/tests: Relax the mouse move count test.
      dinput/tests: Add some IRawGameController2 interface tests.
      windows.gaming.input: Stub IRawGameController2 interface.
      imm32/tests: Adjust todo_wine for the new Wine CJK keyboard layouts.
      imm32: Mask the scancode before passing it to ImeToAsciiEx.
      imm32/tests: Test that WM_KEYUP are passed to ImeProcessKey.
      win32u: Also pass WM_KEYUP messages to ImmProcessKey.
      imm32/tests: Test the effect of CPS_CANCEL and CPS_COMPLETE.
      imm32: Complete the composition string when the IME is closed.
      user32/tests: Add an optional hwnd to input messages tests.
      user32/tests: Cleanup the mouse input WM_NCHITTEST / SetCapture tests.
      user32/tests: Run the mouse hook tests in the separate desktop.
      user32/tests: Filter the ll-hook messages with accept_message.
      user32/tests: Test clicking through attribute-layered windows.
      user32/tests: Tests clicking through window with SetWindowRgn.
      winegstreamer: Fix reading MF_MT_USER_DATA into HEAACWAVEFORMAT.
      winegstreamer: Use MFCreateAudioMediaType in the AAC decoder.
      winegstreamer: Use an array for the audio decoder input types.

Sven Baars (2):
      advapi32/tests: Introduce a new has_wow64 helper.
      advapi32/tests: Skip WoW64 tests on 32-bit in test_reg_create_key.

Tim Clem (1):
      winemac.drv: Detect active handwriting and panel IMEs.

Tyson Whitehead (2):
      dinput/tests: Update tests for DIPROP_AUTOCENTER.
      dinput: Implement DIPROP_AUTOCENTER.

Vijay Kiran Kamuju (5):
      concrt140: Add stub for _Cancellation_beacon::_Confirm_cancel().
      wine.inf: Create security directory.
      msvcp140: Add stub for _XGetLastError.
      include: Add Windows.Storage.Streams.InMemoryRandomAccessStream runtimeclass definition.
      msvcr100: Add _ReaderWriterLock constructor implementation.

Yuxuan Shui (4):
      dmime: AudioPathConfig is not AudioPath.
      dmime: Parse AudioPathConfig.
      dmime: IDirectMusicPerformance::CreateAudioPath should fail when config is NULL.
      dmime: Semi-support creating an audio path from config.

Zebediah Figura (14):
      ddraw/tests: Add tests for map pointer coherency.
      ddraw: Sync to sysmem after performing a color fill.
      ddraw: Use the sysmem wined3d texture for sysmem surfaces if possible.
      wined3d: Hook up push constants for Vulkan.
      wined3d/spirv: Hook up sm1 interface matching.
      d3d11: Implement D3D11_FEATURE_D3D11_OPTIONS2.
      wined3d: Report VK_EXT_shader_stencil_export availability to vkd3d_shader_compile().
      wined3d: Implement shader stencil export for GL.
      d3d11: Report support for shader stencil export if available.
      d3d11/tests: Add a test for shader stencil export.
      wined3d: Check the wined3d resource type and usage in find_ps_compile_args().
      wined3d: Set the tex_type field of the FFP fragment settings from the resource's GL type.
      wined3d: Check for WINED3DUSAGE_LEGACY_CUBEMAP instead of checking the GL texture target.
      wined3d: Collapse some trivially nested ifs into a single condition.

Zhiyi Zhang (16):
      wldap32: Fix a possible memory leak (Coverity).
      msi: Fix a memory leak (Coverity).
      bcrypt: Fix an possible out-of-bounds read (Coverity).
      win32u: Fix a possible out-of-bounds write (Coverity).
      compstui: Fix a possible out-of-bounds write (Coverity).
      user32/tests: Add recursive keyboard and mouse hook tests.
      win32u: Avoid calling WH_KEYBOARD and WH_CBT HCBT_KEYSKIPPED hooks recursively.
      win32u: Avoid calling WH_CBT HCBT_CLICKSKIPPED hooks recursively.
      user32/tests: Add recursive WM_SETCURSOR message tests.
      include: Add some ncrypt definitions.
      include: Add some bcrypt definitions.
      ncrypt/tests: Test default RSA key properties.
      ncrypt: Add some missing RSA key properties.
      ncrypt/tests: Add NCryptExportKey() tests.
      user32/tests: Test keyboard layout in CJK locales.
      win32u: Don't set the high word of keyboard layout to 0xe001 in CJK locales.