Linux gaming [Guide]

Wine 6.0 rc1

What’s new in this release (see below for details):

  • Gecko engine update.
  • WindowsCodecs and QCap libraries converted to PE.
  • Faster font initialization at process start.
  • Support for named pipes with empty names.
  • Various bug fixes.

Summary

Bugs fixed in 6.0-rc1 (total 53):

15301 Biliardo 2 installer terminates on launch (32-bit Ghost-based installer uses year 2045 file date for decrypting database, triggering y2038 problem)
21881 iScreensaver Designer 3.5 crashes
28089 exception handling code touches stack for exceptions handled by the debugger
28332 Wazzal 1.2 (2002 release) crashes after clicking ‘Play’
33310 Minimizing window erases chess board in Shredder Classic 4 Windows
33996 Multiple installers fail in VBScript custom actions due to missing support of Properties with Parameters (IncrediMail, LabChart Reader 8, Toad for MySQL Freeware 7.x)
34770 Some WMI applications fail when incorrectly passing WBEM_MASK_CONDITION_ORIGIN to IWbemClassObject::GetNames method
35272 Mortal Kombat Komplete Edition (Steam) crashing to desktop within graphics autoconf.
40146 Mein Verein 2016 Trial fails to install
42095 winamp: skins don’t change unless app is restarted
42623 Changing current dir ~/.wine crashes Far Manager
42741 Multiple Blizzard games fail to launch (StarCraft I & II, Diablo III, Heroes of the Storm)
43567 Vietcong - game crashes during radiocalls (‘kernel32.GetTickCount’ clobbers ECX)
44061 Destiny 2 crashes on launch (needs non-zero TimeDateStamp field in PE file header)
44435 Call of Duty WWII crash
44502 Epic Games Launcher (Fortnight 7.x) reports ‘Error: Initialization failed while advising the language notification sink to the TSF source. (0x80004001)’ (unsupported ITfActiveLanguageProfileNotifySink)
44524 skyrim keypad 0~9,'‘,’/’ is not working causing some shortcut not work.
44882 Call of Duty Infinite Warfare crashes after Splash-Screen with a Direct-X Error
45383 Xanadu Next: movies not working (avi/MPEG-4 (XviD))
45510 Sentinel HASP Runtime v6.6-7.8 driver installer reports Windows error 1053 when starting the 32-bit hardlock kernel driver service (custom imports resolver fails to locate some ntoskrnl exports)
46028 Provide separate debug/symbol info files (.pdb) for 32-bit and 64-bit Wine-Gecko 2.47+ package (unstripped 32-bit ‘xul.dll’ too large to be mapped)
46216 Multiple games need ThreadEnableAlignmentFaultFixup (Lords of the Fallen, Batman: Arkham Knight, Mirror’s Edge: Catalyst)
46236 Far 3.0 x64 crashes starting from build 5200
46237 Far 3.0 x86 crashes starting from build 5288
47950 Ys: Memories of Celceta crashes on launch
48545 SDL GameControllerAddMapping registry keys do not work
49116 Multiple installers using “mbahost.dll” crash due to method invocation on CCW class interface (Windows 10 1903 SDK (10.0.18362.0), SQL Server Management Studio, Raid Shadow Legends)
49437 Segmentation fault (core dumped) even on winecfg or wineconsole on FreeBSD
49969 Videos are not synced in X3 Reunion
49975 Battlefield 1, 4 and V not start from with wine-staging 5.17 on
50031 The Foundation Game crashes with bundled ucrtbase
50037 wineconsole and mingw64 gdb.exe and keyboard input
50080 Burnout Paradise: The Ultimate Box crashes between intros
50094 Rockstar Games Launcher installer hyperlinks don’t work
50096 Performance Regression in Secondhand Lands
50105 New Vegas Heap Replacer crashes with “Call from 0x7bc91c09 to unimplemented function d3dx9_38.dll.D3DXMatrixMultiply”
50134 Steam terminates/crashes in clean prefix.
50154 Allow using SDL_GAMECONTROLLERCONFIG to configure SDL controller mappings
50160 VstHost crashes on unimplemented function avrt.dll.AvSetMmMaxThreadCharacteristicsA
50163 Multiple applications crash with a stack overflow (Mod Organizer 2, World of Tanks, SWTOR, Audacity)
50169 Regression: Microsoft Flight Simulator X hangs on startup (bisected)
50171 32-bit PE entry point no longer called through BaseThreadInitThunk() assembly wrapper when Wine is built with LLVM MinGW
50176 Tracing with ‘msvcrt’ debug channel causes any application to fail with stack overflow in Wine 5.22
50179 Future Pinball: parse_hex_literal invalid literal
50188 Audacity fails to start
50189 Multiple 64-bit applications crash with Wine MinGW PE build due to violation of Windows 64-bit ABI (RSP must be 16-byte aligned when making a call to Win64 API)
50192 Python “import sys” crashes with Unhandled exception
50197 cmd and winedbg: Unable to insert some chars (
, _) with de-adnw keyboard layout
50204 wineserver from Wine 5.22-195-gcbca9f847f6 debug dumps NLS object information on shutdown
50206 Cinebench R23 needs dcomp.dll
50213 Summer Pockets (demo) complains about timezone settings.
50236 Multiple console applications using WriteFile() to write to console don’t show any output since Wine 5.22 (winepath)
50240 CLR console applications loop output infinitely


1 Like

Also, just to add, apparently you can run Red Dead Redemption 2 on native linux/wine if you use the 6.0 rc1.

2 Likes

Cyberpunk 2077 is now playable (requires an AMD GPU and Mesa git).

3 Likes

Well, Cyberpunk launches but I got black characters at character creation. No point going further for me if I can’t make my character.

Seems I have to wait a bit longer for this to be fixed.

I have mesa-git.

Have you enabled vkd3d?

So you cannot play as a white man? That would break the role-playing immersion for me as well. Let’s hope it will be fixed in the future. :rofl:

1 Like

for this to work you also need vulken-radeon-git, this fixed the textures not working for me.

gpu: 5700xt

I fixed my problem. I was using mesa-git from chaotic-aur wish wasn’t the very latest.

Installed mesa-git from the aur which was just a few hours old and then everything was normal.

So far everything looks good. Running at 1080p and everything at medium and so far still at solid 60fps (5700 XT - 2700x). Tonight going to go high per setting and see when my fps dips, but all in all, solid experience.

Also using the proton experimental branch.

About a year ago when i was testing VKD3D in Metro Exodus - it was unplayable, slow, glitchy mess.

Happy to report that now it’s butter-smooth experience of DirectX 12 :partying_face:
Tested with 6.0rc1-staging-tkg :frog: + Fsync

I don’t have too many DirectX 12 games to test, but i’ve got a feeling that soon this disclaimer will go out of guide!

Very good job on devs of VKD3D and Proton team :+1:

P.S. btw, for those who want to play this game, i highly recommend to kill motion blur through config, coz it’s absolute performance killer since it’s applied on per-object basis in Metro games, and in-game settings only allow to lower it, but not turn off.

3 Likes

It really is amazing how fast they are progressing.

Before Proton released I could only dream about using Linux (gaming is something that I just need to do from time to time, and dual boot would mean I would just use Windows and not Linux).

And now, here we are, I switched, can’t ever go back anymore now that I know Linux and made it my new home (+ all the benefits it gives) and gaming now also just works 95% of the time for me (I don’t really play MP games, and the ones I do are WoW/Overwatch).

And now DX12 and Cyberpunk running like a dream on the day of release, amazing.

7 Likes

A post was split to a new topic: Lutris Issue

Wine 6.0

This release is dedicated to the memory of Ken Thomases, who passed
away just before Christmas at the age of 51. Ken was an incredibly
brilliant developer, and the mastermind behind the macOS support in
Wine. We all miss his skills, his patience, and his dark sense of
humor.

  • Core modules in PE format.
  • Vulkan backend for WineD3D.
  • DirectShow and Media Foundation support.
  • Text console redesign.

Summary

What’s new in Wine 6.0

*** PE modules

  • The core DLLs, including NTDLL, KERNEL32, GDI32, USER32, etc. are
    built in PE format. This should help a number of copy protection
    schemes that check that the DLL files on disk match the in-memory
    contents.

  • There is a new mechanism to associate a Unix library with a PE
    module, to make it possible to call Unix libraries from PE for the
    functions that can’t be handled with Win32 APIs.
    These libraries are found by replacing the PE module file extension
    with .so, for instance ntdll.dll -> ntdll.so. They have to be
    located next to the PE file on disk.

  • Winelib modules no longer link against libwine.so, or require it at
    run-time. This is a backwards incompatible change, meaning that
    modules built with Wine 6.0 won’t run on older Wine versions.

  • The libwine library is no longer used, but it’s still provided to
    support running Winelib modules built against older versions. It is
    deprecated however, and will be removed in a future Wine
    release. Applications that explicitly call libwine functions will
    need to be changed to call equivalent Win32 or Unix APIs instead.
    As a consequence, the wine/library.h header has also been removed.

  • PE modules can be built with their debug information split to a
    separate file, to reduce the size of the files installed into the
    Wine prefix.

*** Direct3D

  • An experimental Vulkan renderer for WineD3D is implemented. This
    requires the vkd3d-shader library in order to translate Direct3D
    shaders to SPIR-V shaders. In this release, shader support in the
    Vulkan renderer is limited to shader model 4 and 5 shaders. In
    practice, that limits its usefulness to Direct3D 10 and 11
    applications. The Vulkan renderer can be enabled by setting the
    Direct3D “renderer” registry setting to “vulkan”.

  • The following Direct3D 11 features are implemented:

    • Per render-target (“independent”) blend states.
    • Dual-source blending.
    • Multi-sample anti-aliasing sample masks.
    • Several more capability queries.
  • Support for Direct3D 9 alpha-to-coverage multi-sampling is
    implemented.

  • When the EXT_framebuffer_multisample_blit_scaled OpenGL extension is
    available, scaled multi-sample resolve operations can happen as a
    single operation.

  • When the ARB_buffer_storage OpenGL extension is available, it will
    be used to allocate OpenGL buffer objects. This can result in minor
    performance improvements with some application and driver
    combinations.

  • The Direct3D graphics card database recognizes more graphics cards,
    and the reported driver versions have been updated.

  • New or modified HKEY_CURRENT_USER\Software\Wine\Direct3D registry keys:

    • “renderer” (REG_SZ)
      The backend API to target. This existing setting has an additional
      valid value in this release: “vulkan”. Possible values are now
      “gl” (default) for OpenGL, “gdi” or “no3d” for GDI, and “vulkan”
      for Vulkan.
    • “csmt” (REG_DWORD)
      Enable or disable multi-threaded command stream features. This
      existing setting has an additional valid bit-field value in this
      release. Valid bit-fields in this release are:
      • 0x1 Enable the multi-threaded command stream feature.
      • 0x2 Enable serialization between multiple command streams in the
        same application. This feature is primarily useful for
        applications using multiple Direct3D instances from
        different threads, in combination with OpenGL drivers that
        do not properly support multi-threaded access themselves. As
        of this release, this is known to affect Microsoft Office
        2013 and later versions in combination with the Mesa-based
        Nouveau driver.
        Note that this setting is a bit-field; in order to enable both
        features above, set this to 0x3.
  • Removed HKEY_CURRENT_USER\Software\Wine\Direct3D registry key:

    • “DirectDrawRenderer”
      This setting was previously deprecated in favor of the “renderer”
      setting, and has been removed in this release.

*** D3DX

  • Drawing text using the ID3DXFont interface is implemented.

  • The ID3D12ShaderReflection shader reflection interface is
    implemented.

  • The D3DX10GetImageInfoFromMemory() and related image information
    query functions are implemented.

*** Graphics

  • Drawing arcs, ellipses and rounded rectangles using the Direct2D API
    is implemented.

  • The standard sRGB color profile is installed into the prefix, for
    applications that expect to load it directly.

  • The Null display driver can be used as a proper display driver, for
    cases when a user interface is not needed.

  • WindowsCodecs supports decoding images in DDS (DirectDraw Surface)
    and JPEG-XR formats, as well as encoding images to GIF format.

  • The Vulkan driver creates the JSON manifest and registry entry used
    by the official Vulkan loader.

  • The Vulkan driver supports up to version 1.2.162 of the Vulkan spec.

  • There are a number of improvements in GdiPlus, including support for
    widening lines, more hatch styles, and more record types in
    metafiles.

*** Audio / video

  • The Media Foundation framework is more complete, including:

    • Initial Media Session implementation for state changes and data
      flow.
    • Initial Streaming Audio Renderer (SAR) pipeline component
      implementation.
    • Initial Video Renderer implementation, a pipeline component
      hosting EVR mixer and presenter.
    • Initial Topology Loader implementation.
    • Various fixes for the Source Reader.
    • Initial Media Engine implementation.
    • Asynchronous queues functionality is moved to rtworkq.dll.
  • The AMStream (ActiveMovie Multimedia Streaming) library is more
    fully implemented, including support for streaming and sample
    management.

  • The Video Mixing Renderer supports the following features:

    • Windowless and renderless mode.
    • Automatic stretching and resizing of the video to match the window
      size.
    • Hardware-accelerated color space conversion of YUV formats, if
      supported by the underlying Direct3D implementation.
    • Preservation of video aspect ratio via letterboxing.
  • The Video Mixing Renderer is used as the default video renderer if
    supported by the underlying Direct3D implementation, replacing the
    GDI video renderer.

  • The DirectShow File Writer filter is implemented.

  • The DirectX Media Object (DMO) Wrapper filter is implemented. DMOs
    can be automatically enumerated and plugged into the filter graph.

  • The video capture filter supports reporting more information about
    video formats, including supported sizes and frame rates.

  • More Media Detector APIs are implemented.

  • The GStreamer wrapper filter supports video and audio format
    conversion within the GStreamer pipeline. This obviates the need for
    extra transform filters, and accordingly the GStreamer-based YUV to
    ARGB converter, audio converter, and mp3 decoder have been
    removed. Any video can be output in any of several RGB and YUV
    formats, allowing for better performance in some cases.

  • The Enhanced Video Renderer (EVR) contains an initial default mixer
    and presenter implementation using DXVA2 API.

  • The XACT3 (Cross-platform Audio Creation) engine library and
    interfaces are implemented through FAudio.

*** Text and fonts

  • Text console support is reimplemented, using the architecture of
    recent Windows versions, which is closer to the Unix way of doing
    things. In particular:

    • Pseudo consoles are implemented (equivalent to Unix pseudo TTYs).

    • All console handling is done in the ConHost process. WineConsole
      is now only a thin wrapper around ConHost.

    • ConHost handles VT escape sequences, meaning that the Unix Curses
      library is no longer needed.

  • Default shaping features are enabled for all scripts in
    DirectWrite. All types of GSUB/GPOS lookups are supported.

  • In DirectWrite, CMAP data is read directly from the font without
    global cache or a need to create FreeType objects, for improved
    performance.

  • The font initialization in GDI32 avoids loading fonts through
    FreeType when possible, for faster startup times. The font registry
    cache is also more efficient.

  • The Uniscribe support in the USP10 library is moved into GDI32, as
    per recent Windows versions.

  • An initial version of the Webdings font is implemented, with only a
    few glyphs at this point.

*** Input devices

  • Raw input devices and messages are implemented, and used by
    DirectInput instead of less efficient low-level hooks.

  • An initial USB kernel driver is implemented, based on the LibUSB
    library, to provide access to USB devices.

  • Mouse position history is implemented, for games that want more
    precise mouse positions.

  • SDL controller mappings can be set through the
    ‘SDL_GAMECONTROLLERCONFIG’ environment variable.

  • Plug & Play device notifications are implemented.

*** Desktop integration

  • Display settings are retrieved through XRandR 1.4 if available. This
    also provides support for multiple display orientations.

  • There is a consistent view of the graphics adapters across the X11,
    OpenGL and Vulkan APIs.

  • The desktop work area layout is supported on multi-monitor setups
    using the _GTK_WORKAREAS property.

*** Internationalization

  • Unicode character tables are based on version 13.0.0 of the Unicode
    Standard.

  • Unicode normalization is fully standard-compliant, including support
    for Hangul, supplementary character planes, and IDN normalization.

  • Codepage and other Unicode tables are stored in external NLS files
    compatible with Windows. This makes it possible to test with the
    native files to track down character mapping issues.

  • Codepage mapping tables are generated from Microsoft’s Open
    Specification data for better compatibility.

  • Unicode linguistic case mappings for languages like Turkish are
    implemented.

  • Codepage 708 (Arabic ASMO) is supported.

*** Kernel

  • Windows version compatibility mode is implemented, to only report
    the newest Windows versions to applications that have declared that
    they support them.

  • INI file mappings are implemented, to redirect .ini file entries to
    registry keys.

  • Many more NT kernel objects and functions are implemented, to
    support anti-cheat systems that load kernel drivers.

  • A NetIO.sys kernel driver is implemented, to support copy protection
    drivers that want to access the network.

  • AVX registers are supported in register contexts and exception
    handling on x86 platforms.

  • The Kernel User Shared Data block contains up-to-date timestamps, to
    avoid system calls when retrieving the current time counter.

*** C Runtime

  • The C runtime import libraries provide the necessary runtime support
    so that PE modules no longer depend on the MinGW runtime.

  • The Wine modules are all built against the new UCRT runtime.

  • Winegcc uses the new UCRT runtime by default, unless an older C
    runtime library is explicitly imported.

  • The C runtime supports Windows locales that use the UTF-8 codepage.

  • A number of C runtime math functions are implemented internally
    based on code from the Musl C library, to avoid depending on the
    system math library.

  • Floating point formatting is reimplemented in the C runtime to avoid
    depending on the system printf function.

*** Internet and networking

  • The Gecko engine is updated to version 2.47.2.

  • The WebSocket API is implemented.

  • JScript and VBScript report the correct location for errors in
    scripts.

  • There are various improvements to the LDAP and Active Directory
    Service support.

  • There is an initial implementation of the NDIS network driver.

  • The OLE data link dialog supports configuring the ODBC data
    connection.

*** Cryptography

  • The BCrypt library supports additional algorithms, including DSA
    keys and the 3DES cipher.

  • The DSSENH (Digital Signatures) Cryptographic Provider is
    implemented, and enabled by default.

*** Alternative platforms

  • Support for exception handling and stack unwinding on ARM platforms
    (both 32-bit and 64-bit) should be on par with the x86
    architectures.

  • There is initial support for ARM64 on macOS, for the new Apple
    Silicon.

  • Support for the obsolete 32-bit PowerPC architecture is removed. It
    had been broken for some time already.

  • Case-insensitive filesystem optimizations are enabled on FreeBSD.

*** Builtin applications

  • WineCfg supports querying and modifying the configured Windows
    version through the command line with a new /v option.

  • The Shell Folders configuration in WineCfg also supports the
    Downloads and Templates folders.

  • The removable drive autodetection has been removed in WineCfg, now
    that the dbus dynamic device support is stable.

  • The FSUTIL tool supports a ‘hardlink’ command to create hard links.

  • The FIND tool supports searching multiple files, in addition to
    standard input.

  • The WHOAMI tool is implemented to display the current username.

*** Development tools

  • Winegcc supports generating PDB files when building PE DLLs, for
    compatibility with Windows debuggers.

  • DbgHelp supports GNU-style debug information also in PE files.

  • Winegcc can generate an import library directly when building a DLL,
    with the ‘-Wl,–out-implib’ option.

  • The various build tools also look for include and library files in
    paths relative to the tool binary, to allow relocatable Winelib
    installations.

  • The Resource Compiler (wrc) and Message Compiler (wmc) use the
    external NLS files for codepage conversions. If necessary, the path
    to the external files can be specified with the ‘–nls-dir’ option.

  • There are various improvements in the gdb proxy mode in WineDbg,
    including support for hardware watchpoints, and for loading symbols
    from PE modules.

  • The Message Compiler (wmc) handles the Unicode BOM to detect the
    input file format.

  • The Resource Compiler (wrc) has a ‘–utf8’ option to specify UTF-8
    input, as an alternative to putting #pragma codepage inside the
    file.

  • The IDL compiler (widl) supports a WinRT mode, and various
    constructs specific to that mode.

  • The IDL compiler (widl) supports custom attributes in type
    libraries.

*** Build infrastructure

  • Makefiles are no longer recursive; a single Makefile is generated to
    build the entire tree, with correct dependencies between modules.

  • Automake-style silent build rules are supported. They are disabled
    by default, but can be enabled by passing the ‘–enable-silent-rules’
    option to configure.

  • The new LLVM-MinGW compiler is supported for PE cross-compilation.

  • Building with the Clang compiler in MSVC mode is supported.

  • A ‘-syscall’ entry point flag is supported in spec files, to
    generate NT-style system call entry points.

*** Miscellaneous

  • The Mono engine is updated to version 5.1.1, containing the open
    sourced parts of the WPF framework, and initial replacements for
    some of the closed source parts.

  • Most modules have been converted to use wide-character string
    constants like L"abc" instead of explicit arrays, for more readable
    code.

  • Many of the less common timezones (for various remote islands) are
    supported.

  • Listviews and image buttons are supported in MSI installers.

  • There is initial support for the Print Ticket API.

*** New external dependencies

  • The LibUSB library is used to implement the USB driver.

  • The VkD3D-Shader library is used to translate Direct3D shaders to
    SPIR-V shaders for the WineD3D Vulkan renderer.

  • The Curses, GLU, and Zlib libraries are no longer used.


Very important release, especially for those who can’t play with DXVK due to older cards, it should improve performance or make some games actually work on such systems!

2 Likes

I thought this project deserved some exposure, it’s a native linux gui client for epic games that goes on top of legendary. It also lets you easily choose wine and proton versions for the games.

2 Likes

New version of GE Proton

1 Like

Say I did do this, how would I revert the changes?

That’s good question…manually remove all that auto-crap i’m afraid, it might be here:

~/.local/share/applications/

here

~/.local/share/icons/

And some other places in ~ which i memory-blocked already :laughing:


Oh and you can remove:

~/.wine

If you don’t use it, coz each time your run without enviroment variables it will be auto-created most likely

You can search for it in file names.

find ~ -name "*wine*" 2> /dev/null

Or in file content.

grep -irm1 "wine" ~/* 2> /dev/null

-m1 will stop grep after first match so there could be multiple wine entries in that file.

This methods may not be optimal if you have a lot of wine pictures, movies about wines or large collection of assorted wines. :wine_glass:

I also have something in ~/.local/share/mime/.

1 Like

Yep, @vlkon is correct :+1:

@OrangeBoy
Just don’t accidentally delete anything not auto-created or not wine-related :slight_smile:
Also sometimes i think this auto-garbage doesn’t have anything “wine” in it, but that depends

1 Like

dxvk v1.8

Bug Fixes and Improvements
  • Fixed some build system warnings with newer Meson versions.
  • CPU-based Vulkan implementations such as Lavapipe will now always be enumerated last. This should avoid issues on systems without a dedicated GPU where games could potentially default to a CPU rasterizer.
  • Optimized image layout transitions, which may improve performance on Intel GPUs in some games.
  • D3D9: Improved performance of texture uploads and occlusion queries in some cases.
  • D3D9: Fixed an issue where supported back buffer formats would be reported incorrectly.
  • DXGI: Enabled multi-monitor support. This requires a relatively recent Wine version with XRandR 1.4 support to work correctly.
  • D3D11: Fixed a number of reference counting issues that could potentially lead to stability issues (PR #1887, PR ##1888).
  • D3D11: Improved correctness of NaN handling in shaders with VK_KHR_shader_float_controls, and removed most app workarounds setting d3d11.enableRtOutputNanFixup.
  • Enabled d3d11.enableRtOutputNanFixup by default on older RADV versions.
  • Enabled d3d11.invariantPosition option by default to fix common Z-fighting issues, especially on RDNA2 GPUs.
  • Atelier Ryza 2: Added workaround for video playback breaking D3D11 rendering, like in other games of the series.
  • Battle Engine Aquila: Fixed broken textures (PR #1759).
  • Dark Messiah of Might & Magic: Work around out-of-memory issues on startup.
  • Everquest: Work around performance issues.
  • F1 2018/2020: Work around broken compute shaders causing artifacts on AMD drivers, similar to F1 2019 (#1897).
  • Hitman 3: Work around AMDAGS issues on AMD GPUs similar to Hitman 2 (PR #1909).
  • Nioh 2: Work around black screen issues.
  • Tomb Raider Legend: Work around performance issues (#1685).
1 Like

New version of proton though it only seems to benefit MK11 and Injustice 2.

2 Likes