Wine Announcement

The Wine development release 3.13 is now available.

What's new in this release (see below for details):
  - Vulkan support on macOS using MoltenVK.
  - Initial support for performance data in the registry.
  - Mono engine updated with some bug fixes.
  - Support for fetching BIOS information on Linux.
  - GnuTLS also used on macOS when available.
  - Improvements in the standard Task Dialog.
  - Various bug fixes.

The source is available from the following locations:

Binary packages for various distributions will be available from:

You will find documentation on

You can also get the current source directly from the git
repository. Check for details.

Wine is available thanks to the work of many people. See the file
AUTHORS in the distribution for the complete list.


Bugs fixed in 3.13 (total 28):

   5657  EVE Online reports VM Size as 0 while on Windows it reports the memory usage (NtQueryInformationProcess ProcessVmCounters info class: actual value for 'PagefileUsage' required)
  18734  DlgDirList(DDL_DRIVES|DDL_DIRECTORY) on 16-bits displays files on listbox in Windows but not Wine.
  24374  Driller crashes in process PE entry point due to Wine's mis-align workaround for 32-bit entry point asm wrapper (MoleBox Ultra v4.x)
  30141  1848 (strategy game) becomes unresponsive after the first mouse click
  31829  Ad Astra fails to start when music enabled (MThd chunk support missing)
  35928  Crash handlers/debuggers fail to display user-interface when invoked for crashing (non-interactive) service processes (inherited Wine service window station/desktop)
  39566  Missing player model on Raiden III
  40742  cmd.exe: buffer overflow while parsing qualifiers
  42304  Caladrius Blaze, Raiden IV: Overkill show black screen on title menu (needs native vcrun2013)
  42669  SolveigMM Video Splitter Business Edition v6.1: Crashes inside gdi32.GetCharacterPlacementW
  43642  Internet Download Manager TDI Driver 'idmtdi.sys' crashes on unimplemented function ntoskrnl.exe.IoReleaseRemoveLockAndWaitEx
  43759  Adobe Lightroom 6 doesn't start (runtime error)
  44305  GetSystemFirmwareTable() API returns empty SMBIOS records on Ubuntu 16.04 x86_64
  44952  cmd.exe skips statements after if statement inside for loop
  45067  UNORM/SNORM immediate constants not supported for UAV stores (Claybook,  Just Cause 3)
  45095  Planetside 2 needs SPI_GETAUDIODESCRIPTION SystemParametersInfo action support
  45274  Multiple applications crash on unimplemented function msvcp140.dll.?_Syserror_map@std@@YAPEBDH@Z (Native Instruments Traktor Pro 2)
  45292  SuperTux 0.5.1 does not start
  45295  toolbag 3.x crashes on unimplemented function api-ms-win-crt-runtime-l1-1-0.dll._crt_at_quick_exit
  45333  Add diagnostic 'mscoree.dll.CorIsLatestSvc' stub (NGEN service) to hint at broken Microsoft .NET Frameworks installation (Wine-Mono not uninstalled and/or 'mscoree.dll' placeholders not removed prior install)
  45370  redefinition of typedef 'DWRITE_GLYPH_RUN_DESCRIPTION'
  45378  vSphere 5.5 client 'hcmon.sys' driver crashes on unimplemented function ntoskrnl.exe.IoUnregisterPlugPlayNotification
  45393  TextureCookerService.exe (part of ArcGIS Desktop 10.6) needs api-ms-win-crt-stdio-l1-1-0.dll.gets_s
  45394  Reinstalling ArcGIS Desktop 10.6 calls unimplemented function msvcr120.dll._SetWinRTOutOfMemoryExceptionCallback
  45428  Crash Bandicoot N. Sane Trilogy (Steam) crashes while entering main menu in ntdll.NtGetContextThread() with NULL context
  45439  Visual Basic setup toolkit fails to run if path contains a voiced Katakana character.
  45445  1C:Enterprise 8 platform doesn't install
  45448  vSphere 5.5 client 'hcmon.sys' driver crashes on unimplemented function ntoskrnl.exe.KeFlushQueuedDpcs


Changes since 3.12:

Akihiro Sagawa (8):
      winmm: Don't allow to set time division property while playing.
      winmm: Preserve fractions in microseconds to compensate rounding errors.
      winmm: Use microsecond unit in MIDI stream position variable to simplify the code.
      winmm/tests: Add more MIDI stream position tests.
      winmm: Make TIME_TICKS position continuous.
      winmm: Support TIME_MIDI position in MIDI stream.
      kernel32/tests: Add more LCMapString tests.
      kernel32: Fix LCMapString(LCMAP_HALFWIDTH) in some cases.

Alex Henrie (9):
      ole32: Return IUnknown from GITCF_CreateInstance if requested.
      ntdll/tests: Add SystemFirmwareTableInformation tests.
      kernel32/tests: Add GetSystemFirmwareTable tests.
      ntdll: Return BIOS info from NtQuerySystemInformation on Linux.
      kernel32: Connect GetSystemFirmwareTable to NtQuerySystemInformation.
      ntdll: Return system info from NtQuerySystemInformation on Linux.
      ntdll: Return board info from NtQuerySystemInformation on Linux.
      ntdll: Return chassis info from NtQuerySystemInformation on Linux.
      winevulkan: Correct spelling of "of" in a comment.

Alex Villacís Lasso (1):
      user.exe16: Fix handling of DDL_DRIVES flag in DlgDirList.

Alexandre Julliard (13):
      server: Store the surface rectangle in the server.
      server: Clip visible region to the surface rectangle instead of the desktop.
      server: Return the surface rect as top clipping rect.
      user32: Remove FIXMEs from physical<->logical mapping functions.
      oleaut32: Remove unnecessary consts.
      user32: Return the full MINMAXINFO data from WINPOS_GetMinMaxInfo().
      user32: Retrieve the screen metrics from the monitor information.
      user32: Move monitor functions to sysparams.c.
      user32: Implement monitor rectangle filtering on the user32 side.
      user32: Take DPI awareness into account in GetDpiForMonitorInternal().
      user32: Fetch client and window rectangles in a single call.
      user32: Make the MonitorFromRect() argument const.
      winedump: Print the imports thunk address also for 64-bit.

Alistair Leslie-Hughes (1):
      include: Add more DSOP defines.

Andrew Eikum (1):
      winemac: Implement Vulkan driver on top of MoltenVK.

Andrey Gusev (1):
      po: Update Ukrainian translation.

André Hentschel (1):
      winedbg: Check for visible window station before displaying crash dialog.

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

Austin English (2):
      ntoskrnl.exe: Add a stub for KeFlushQueuedDpcs.
      ntoskrnl.exe: Add IoReleaseRemoveLockAndWaitEx stub.

Charles Davis (1):
      shell32: Don't use Carbon on Mac OS to find the Trash.

Daniel Lehman (5):
      msvcr110/tests: Add GetNumberOfVirtualProcessors tests.
      msvcr110: Create current scheduler in _CurrentScheduler::_GetNumberOfVirtualProcessors.
      gdi32/tests: Add test for clipped polygon.
      gdi32: Update edgetable limits with top and bottom.
      msvcr110: Create current scheduler in _CurrentScheduler::_Id.

Detlef Riekenberg (1):
      winhttp/tests: Skip the tests when we encounter a failure.

Dmitry Timoshkov (16):
      winedump: Correctly declare the array of segments.
      winedump: Avoid sign extension in tlb_read_short().
      winedump: Stop prepending every line of information with an offset.
      winedump: Consistently print hex numbers with leading zeros and 'h' suffix.
      winedump: Fix version printing.
      winedump: Add print_string() helper.
      winedump: Use common binary dumper for typelib.
      winedump: Add support for SLTG typelibs.
      advapi32/tests: Add more tests for performance counters.
      include: Add more definitions for performance counters.
      winspool: Add performance counters service stubs.
      advapi32: Add initial support for querying performance counters data.
      advapi32: Performance providers' Open() expects to see the configured name as its parameter.
      advapi32: If the query is not specified the default query is "Global".
      advapi32: Read the configured object list for the performance provider.
      kerberos: SpInstanceInit() doesn't need a special implementation.

Fabian Maurer (2):
      user32/menu: Release menu in HiliteMenuItem() to avoid deadlock.
      wrc: Don't crash when parsing COMBOBOX element without style.

Hans Leidekker (5):
      msi: Use msi_get_package_code in msi_publish_product_properties.
      bcrypt: Move GnuTLS support to a new file.
      bcrypt: Move macOS support to a new file.
      bcrypt: Default to building with GnuTLS support on macOS, if present.
      bcrypt: Move the ASN1 buffer functions to gnutls.c.

Henri Verbeet (1):
      include: Avoid redefining the DWRITE_GLYPH_RUN_DESCRIPTION typedef.

Hugh McMaster (6):
      regedit: Remove array already present in main.h.
      regedit: Don't check if heap_xalloc() succeeded in the caller.
      regedit: Free allocated memory after calling GetValueName().
      regedit: Always display DWORD values in hexadecimal when initializing the editor dialog.
      regedit: Replace Hungarian notation used with struct edit_params members.
      regedit: Do not overwrite a hex data type with REG_BINARY when modifying a value.

Huw D. M. Davies (1):
      winspool: Remove ordinals from the performance functions.

Jacek Caban (6):
      mshtml: Add IHTMLPerformance::navigation property implementation.
      mshtml: Add IHTMLPerformance::timing property implementation.
      mshtml: Expose window.performance property to scripts.
      mshtml: Use DWORD for event id argument in node-specific event handlers.
      winegcc: Check also for unsuffixed lib/ dir in get_lib_dir.
      wine/vulkan.h: Properly declare enum values that use value attribute in spec.

Jactry Zeng (2):
      riched20/tests: Rewrite tests for ITextServices_TxGetNaturalSize().
      riched20: Some cleanup for CHARFORMAT convertor functions.

Jason Edmeades (4):
      cmd: Fix handle leak in if exists.
      cmd: Handle special case tokens=* in for /f.
      cmd: Expand the storage space for qualifiers.
      cmd: Fix statements after 'else' inside for loops.

Johannes Brandstätter (1):
      ntdll: Check for NULL context in NtGetContextThread.

Julian Rüger (1):
      po: Update German translation.

Józef Kucia (28):
      winevulkan: Generate code for supported core commands.
      winevulkan: Pull in required types into Vulkan header.
      winevulkan: Pull in 1.1 structures and enums into Vulkan header.
      winevulkan: Convert VkDeviceGroupDeviceCreateInfo.
      winevulkan: Implement VK_KHR_device_group_creation.
      vulkan-1/tests: Introduce for_each_device() helper.
      vulkan-1/tests: Add test for VK_KHR_device_group_creation.
      winevulkan: Add TRACE() for created devices.
      winevulkan: Allow running make_vulkan from any working directory.
      winevulkan: Add driver functions for VK_KHR_device_group.
      winevulkan: Implement VK_KHR_device_group.
      winevulkan: Implement vkEnumerateInstanceVersion().
      winevulkan: Use WINE_VK_VERSION to limit supported features.
      winevulkan: Downgrade ERR() to WARN() in wine_vkEnumerateInstanceExtensionProperties().
      winevulkan: Implement vkEnumerateInstanceLayerProperties() in ICD.
      vulkan-1: Forward all functions directly to winevulkan.
      wined3d: Separate feature level checks from shader model checks.
      wined3d: Take into account all shader stages when determining feature level.
      d3d11/tests: Add more tests for multisample resolve.
      winevulkan: Remove vkEnumerateInstanceVersion() from Vulkan driver functions.
      winevulkan: Remove vkAcquireNextImageKHR() from Vulkan driver functions.
      winemac: Add missing entries to vulkan_funcs.
      winevulkan: Generate get_vulkan_driver_*_proc_addr() helper functions.
      winevulkan: Avoid FIXMEs for unsupported Vulkan functions.
      vulkan-1/tests: Enumerate queue families.
      d3d10core/tests: Add more tests for multisample resolve.
      wined3d: Add GPU information for AMD Radeon RX Vega.
      wined3d: Add GPU information for Intel HD Graphics 630.

Ken Thomases (6):
      winemac: Extract a new class, WineBaseView, to be the superclass of WineContentView and future view classes.
      winemac: Implement WineMetalView class.
      winemac: Don't change the window's color space.
      winemac: Interpret Windows bitmap data, especially window surfaces, as sRGB.
      winemac: Disable macOS's App Nap energy-saving feature by default for Wine GUI processes.
      dbghelp: Fix loading of Mach-O load commands for 64-bit binaries.

Louis Lenders (1):
      mscoree: Add stub for CorIsLatestSvc to hint user at broken .NET installation.

Mark Jansen (3):
      ntdll/tests: Tests for RtlIpv6StringToAddressEx.
      ntdll/tests: Tests for RtlIpv4StringToAddressEx.
      ntdll/tests: Add tests for RtlIpv6AddressToString and RtlIpv6AddressToStringEx.

Mathew Hodson (1):
      msvcp90: Use the ARRAY_SIZE() macro.

Michael Müller (3):
      browseui: Implement IProgressDialog::SetAnimation.
      gdi32: Treat lpResults as optional in GetCharacterPlacement.
      ole32: Support reading VT_BOOL, VT_R8 and VT_I8 into propery storage.

Michael Stefaniuc (44):
      riched20: Avoid an ARRAY_SIZE-like macro.
      winmm: Avoid an ARRAY_SIZE-like macro.
      jscript: Use the ARRAY_SIZE() macro.
      comctl32: Remove redundant NULL checks before Free().
      atl: Use the ARRAY_SIZE() macro.
      mlang: Use the ARRAY_SIZE() macro.
      pdh: Use the ARRAY_SIZE() macro.
      dmime: Simplify the track list parser.
      dmime: Reimplement the track form parser.
      imaadp32.acm: Avoid ARRAY_SIZE-like macros.
      l3codeca.acm: Avoid ARRAY_SIZE-like macros.
      msacm32: Avoid an ARRAY_SIZE-like macro.
      dbghelp: Use the ARRAY_SIZE() macro.
      msadp32.acm: Avoid ARRAY_SIZE-like macros.
      msg711.acm: Avoid ARRAY_SIZE-like macros.
      msgsm32.acm: Avoid an ARRAY_SIZE-like macro.
      dxerr9: Use the ARRAY_SIZE() macro.
      wineconsole: Use the ARRAY_SIZE() macro.
      xcopy: Use the ARRAY_SIZE() macro.
      winemine: Use the ARRAY_SIZE() macro.
      wscript: Use the ARRAY_SIZE() macro.
      winefile: Use the ARRAY_SIZE() macro.
      dxerr8: Use the ARRAY_SIZE() macro.
      wmic: Use the ARRAY_SIZE() macro.
      start: Use the ARRAY_SIZE() macro.
      dmusic: Sync up the dmobject.[ch] files.
      dmusic: Reimplement ParseDescriptor() for DirectMusicCollection.
      dmband: Reimplement ParseDescriptor() for DirectMusicBand.
      dmcompos: Reimplement ParseDescriptor() for DirectMusicChordMap.
      dmloader: Reimplement ParseDescriptor() for DirectMusicContainer.
      dmstyle: Reimplement ParseDescriptor() for DirectMusicStyle.
      dmime: Don't crash when DMSegment loads a MIDI file.
      ole32: Use the ARRAY_SIZE() macro.
      quartz: Use the ARRAY_SIZE() macro.
      ntdll/tests: Avoid temp variables holding ARRAY_SIZE results.
      oledlg: Use the ARRAY_SIZE() macro.
      dswave: Reimplement ParseDescriptor() for DirectSoundWave.
      oleacc: Use the ARRAY_SIZE() macro.
      oledb32: Use the ARRAY_SIZE() macro.
      secur32: Use the ARRAY_SIZE() macro.
      sxs: Use the ARRAY_SIZE() macro.
      wintrust: Use the ARRAY_SIZE() macro.
      wbemdisp: Use the ARRAY_SIZE() macro.
      vbscript: Use the ARRAY_SIZE() macro.

Michał Janiszewski (2):
      ntdll/tests: Add RtlFindNextForwardRun{Set, Clear} tests.
      ntdll: Prevent Find{Set, Clear}Run from reading past the end of bitmap.

Mingcong Bai (1):
      po: Update Simplified Chinese translation.

Nikolay Sivov (7):
      crypt32: Fix key buffer leak (Coverity).
      po: Update Russian translation.
      user32/button: Use per-window dpi settings.
      comctl32/button: Use per-window dpi settings.
      comctl32/taskdialog: Use per-window dpi settings.
      comctl32/trackbar: Scale thumb size with resolution.
      po: Update Russian translation.

Piotr Caban (10):
      msvcp120: Fix concurrent_vector_int_dtor helper.
      msvcp120: Test values returned by _Concurrent_vector_base_v4::_Internal_clear.
      inetcpl.cpl: Add support for setting automatic proxy configuration.
      ucrtbase: Don't fail if path ends with '\' character in stat functions family.
      msi: Fix condition evaluation when comparing literal and integer.
      msvcr80: Add gets_s implementation.
      include/msvcrt: Add POSIX error codes to errno.h.
      msvcp110: Add _Syserror_map implementation.
      msvcp90: Don't set failbit in basic_istream::tellg.
      msvcp60: Don't set failbit in basic_istream::tellg.

Roderick Colenbrander (1):
      winevulkan: Implement vkGetDeviceQueue2.

Serge Gautherie (3):
      windowscodecs: Fix an MSVC warning about get_decoder_info().
      guiddef.h: REF* types do not depend on CINTERFACE.
      shell32: Fix 2 MSVC warnings about flags.

Stefan Dösinger (3):
      msvcp140: Implement _Temp_get.
      msvcp120: Tr2::_Rename_wchar NULL ptr handling differs from tr2::_Rename.
      msvcp140: Export _Rename.

Vincent Povirk (2):
      mscoree: Use upgrade code to find installed Wine Mono version.
      appwiz.cpl: Update Wine Mono to 4.7.3.

Zebediah Figura (5):
      msi: Avoid starting the RPC server more than once for a given package.
      msi: Create the custom action thread inside msiexec.exe.
      msi: Avoid connecting to the RPC server more than once.
      msi: Reuse the custom action server process where possible.
      kernel32/tests: Load GetSystemFirmwareTable() dynamically.

Zhiyi Zhang (11):
      user32/tests: Fix a memory leak.
      user32: Send notification for the focused button in IsDialogMessage().
      user32: Fix menu item rectangle calculation in GetMenuItemRect().
      user32/tests: Sleep when sending mouse clicks too fast.
      user32: Return FALSE for invalid handle in IsWindowEnabled().
      comctl32/taskdialog: Use window handle to identify control internally.
      comctl32/taskdialog: Add support for expanded information.
      comctl32/taskdialog: Add support for expando button.
      comctl32/taskdialog: Add support for verification box.
      comctl32/taskdialog: Add support for footer icon.
      comctl32/taskdialog: Add support for footer text.

Alexandre Julliard