https://bugs.winehq.org/show_bug.cgi?id=55169
Bug ID: 55169 Summary: Diablo 4: latest game patch causes D4 to crash on startup Product: Wine Version: 8.5 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: kurtosis.jones@gmail.com Distribution: ---
Created attachment 74749 --> https://bugs.winehq.org/attachment.cgi?id=74749 Wine console log Diablo4 crash
I've been playing Diablo 4 using Lutris on NixOS 23.05 since the game launched, using the standard Lutris installer [1] with the following version modifications:
lutris-GE-Proton-8-5-x86_64 lutris-GE-Proton-8-7-x86_64 lutris-GE-Proton-8-8-x86_64 All with DXVK 2.2 and VKD3D 2.8.
This config worked perfectly, stably, with no crashes, artifacts, or performance problems.
However, the latest D4 patch broke the game, and now it crashes on startup before reaching the title screen. The patch in question is:
1.0.3 Build #42677 (All Platforms) - June 27, 2023 [2]
Wine console log attached. The final five lines in the log are the error that occurred at the moment the game crashed. Looks like a race condition. Here are those last five lines:
0128:err:seh:call_stack_handlers invalid frame 0000000036405F70 (0000000036212000-0000000036310000) 0128:err:seh:NtRaiseException Exception frame is not in stack limits => unable to dispatch exception. Fatal glibc error: ../nptl/pthread_mutex_lock.c:460 (__pthread_mutex_cond_lock_full): assertion failed: robust || (oldval & FUTEX_OWNER_DIED) == 0 0c18:err:seh:call_stack_handlers invalid frame 000000001990E500 (0000000019712000-0000000019810000) 0c18:err:seh:NtRaiseException Exception frame is not in stack limits => unable to dispatch exception.
[1]:https://lutris.net/games/diablo-iv/ [2]:https://news.blizzard.com/en-us/diablo4/23964909/diablo-iv-patch-notes
https://bugs.winehq.org/show_bug.cgi?id=55169
--- Comment #1 from kurtosis kurtosis.jones@gmail.com --- At D4 launch there were problems getting D4 working, but folks on the Lutris forums figured out some configurations that worked. Those discussions here in case useful:
https://forums.lutris.net/t/solved-diablo-iv-diablo-4-no-gpus-found/17435/20 https://forums.lutris.net/t/solved-diablo-4-installer-missing-dependency-bli...
https://bugs.winehq.org/show_bug.cgi?id=55169
kurtosis kurtosis.jones@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Distribution|--- |Other
https://bugs.winehq.org/show_bug.cgi?id=55169
Olivier F. R. Dierick o.dierick@piezo-forte.be changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |o.dierick@piezo-forte.be
--- Comment #2 from Olivier F. R. Dierick o.dierick@piezo-forte.be --- Hello,
Lutris, GE-proton wine forks and DXVK are unsupported here.
Please retest and try to go the farthest you can with Wine only (>=8.10, preferably development version, or staging version if it goes further) and report the first blocking issue you encounter.
We'll work from there, one issue after another, until the game runs. Once the game runs with Wine, the other projects will get the update and you can switch back to them. This is the only way to make Wine better for everyone.
There are currently no demo, trial or free-to-play version of the game to test with. Unless a dev/tester owns the game (I don't), we'll depend on user feedback.
Regards.
https://bugs.winehq.org/show_bug.cgi?id=55169
--- Comment #3 from kurtosis kurtosis.jones@gmail.com --- Will do, thanks. I can use Lutris to download and test Wine >= 8.10 dev and staging? Or does that testing need to be outside of Lutris?
https://bugs.winehq.org/show_bug.cgi?id=55169
--- Comment #4 from Olivier F. R. Dierick o.dierick@piezo-forte.be --- (In reply to kurtosis from comment #3)
Will do, thanks. I can use Lutris to download and test Wine >= 8.10 dev and staging? Or does that testing need to be outside of Lutris?
Hello,
The test should be made without Lutris.
I advise you to install the system-wide Wine from your distro. It'll be easier to use from the terminal and can also be used as a runner in Lutris.
The NixOS package you need is 'wineWowPackages.staging' [1]. 8.5 is a few weeks old, but it should be fine for initial testing.
Once you've installed the package and made sure it's working ('wine --version' should return something wine-8.5-X-gYYYYYYY), you'll have to create a new wineprefix, copy the battlenet and diablo 4 directories from the Lutris installation into the new prefix (to avoid re-downloading everything) and run battlenet from the command-line. Battlenet should update itself and find the game file.
Regards.
[1] https://search.nixos.org/packages?channel=23.05&from=0&size=50&b...
https://bugs.winehq.org/show_bug.cgi?id=55169
--- Comment #5 from kurtosis kurtosis.jones@gmail.com --- Thanks, though why isn't the package I need just 'wine-staging'? [1] I'm unclear what the difference with 'wineWoWPackages.staging' is.
https://search.nixos.org/packages?channel=23.05&show=wine-staging&fr...
(also fwiw I'll create a NixOS 23.11 Unstable build for testing this, where wine-staging is 8.10)
https://bugs.winehq.org/show_bug.cgi?id=55169
--- Comment #6 from Olivier F. R. Dierick o.dierick@piezo-forte.be --- (In reply to kurtosis from comment #5)
Thanks, though why isn't the package I need just 'wine-staging'? [1] I'm unclear what the difference with 'wineWoWPackages.staging' is.
https://search.nixos.org/packages?channel=23.05&show=wine- staging&from=0&size=50&sort=relevance&type=packages&query=wine-staging
Hello,
It is my understanding of the Wine page on NixOS wiki [1], that the 'wine-*' packages have 32-bit support only, while wineWowPackages.* have 32-bit & 64-bit support.
I verified that by comparing the list of programs included in the packages:
--- wineWowPackages.staging --- winecfg winedbg regsvr32 msiexec winecpp wine wine64-preloader wineconsole wineboot winepath winebuild regedit wmc notepad function_grep.pl msidb winefile wineg++ winedump winemine winegcc wine-preloader wineserver widl wrc winemaker wine64 --- end ---
--- wine-staging --- notepad wine winefile winegcc winemaker wineserver regsvr32 winepath regedit msiexec function_grep.pl winedump wineconsole winecfg widl wineboot wrc wmc wineg++ msidb winedbg wine-preloader winemine winebuild winecpp --- end ---
(the difference is 'wine64-preloader wine64' in wineWowPackages.staging)
(also fwiw I'll create a NixOS 23.11 Unstable build for testing this, where wine-staging is 8.10)
Ok, nice. I would have suggested that later but this is great if you can do that right away.
Regards.
[1] https://nixos.wiki/wiki/Wine
https://bugs.winehq.org/show_bug.cgi?id=55169
--- Comment #7 from kurtosis kurtosis.jones@gmail.com --- Thanks. I'm trying to test it with NixOS 23.11 unstable with wineWowPackages.staging now, but running into problems with wine. Maybe I'm doing something wrong here, but winecfg crashes on startup, and wine crashes when I try to start battle.net installer with it. Maybe too unstable in this NixOS build? Here's some output:
wine --version
wine-8.10 (Staging)
wine --help
Usage: wine PROGRAM [ARGUMENTS...] Run the specified program wine --help Display this help and exit wine --version Output version information and exit
wine
Usage: wine PROGRAM [ARGUMENTS...] Run the specified program wine --help Display this help and exit wine --version Output version information and exit
winecfg --help
... errors & crash, log attached
winetricks
------------------------------------------------------ WINEPREFIX INFO: Drive C: total 54 drwxr-xr-x 6 kurtosis users 6 Sep 4 2021 . drwxr-xr-x 4 kurtosis users 9 Jul 2 13:54 .. drwxr-xr-x 3 kurtosis users 3 Sep 4 2021 ProgramData drwxr-xr-x 6 kurtosis users 6 Sep 4 2021 Program Files drwxr-xr-x 4 kurtosis users 4 Sep 4 2021 users drwxr-xr-x 17 kurtosis users 28 Apr 8 2022 windows
Registry info: /home/kurtosis/.wine/system.reg:#arch=win32 /home/kurtosis/.wine/userdef.reg:#arch=win32 /home/kurtosis/.wine/user.reg:#arch=win32 ------------------------------------------------------ ------------------------------------------------------ warning: wine cmd.exe /c echo '%AppData%' returned empty string, error message "" ------------------------------------------------------
Am I doing something wrong, or is Nix unstable's wine build currently broken?
https://bugs.winehq.org/show_bug.cgi?id=55169
--- Comment #8 from kurtosis kurtosis.jones@gmail.com --- Created attachment 74777 --> https://bugs.winehq.org/attachment.cgi?id=74777 winecfg crash log
winecfg crashes on startup, this is the terminal output when calling it from commandline.
https://bugs.winehq.org/show_bug.cgi?id=55169
--- Comment #9 from Olivier F. R. Dierick o.dierick@piezo-forte.be --- (In reply to kurtosis from comment #7)
winetricks
WINEPREFIX INFO: Drive C: total 54 drwxr-xr-x 6 kurtosis users 6 Sep 4 2021 . drwxr-xr-x 4 kurtosis users 9 Jul 2 13:54 .. drwxr-xr-x 3 kurtosis users 3 Sep 4 2021 ProgramData drwxr-xr-x 6 kurtosis users 6 Sep 4 2021 Program Files drwxr-xr-x 4 kurtosis users 4 Sep 4 2021 users drwxr-xr-x 17 kurtosis users 28 Apr 8 2022 windows
Hello,
I think the problem is that the ~/.wine directory is too old and Wine is unable to replace the DLLs. I'm not 100% sure so we need to check.
To check that, you may create a new wineprefix:
WINEPREFIX=~/Temporary.wine wineboot -u
And try to run winecfg on that new wineprefix:
WINEPREFIX=~/Temporary.wine winecfg
(You may delete 'Temporary.wine' from your home directory afterward.)
Regards.
https://bugs.winehq.org/show_bug.cgi?id=55169
Maciej Stanczew maciej.stanczew+b@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |maciej.stanczew+b@gmail.com
--- Comment #10 from Maciej Stanczew maciej.stanczew+b@gmail.com --- Testing this in plain Wine will be problematic, as the game doesn't launch there at all – it always required VKD3D-Proton.
However, it did launch for me on version 1.0.3.42677, and still does on 1.0.3.42936. I'm using Arch with Wine Staging from the repos + DXVK DXGI + VKD3D-Proton. This would suggest the problem you're experiencing is either with the specific Wine version that Lutris provides, or it's a distro-related issue.
You should try with Wine (Staging) from your distro's repositories and a clean wineprefix, and work from there (you don't need to install D4 in the new prefix, just go into game directory and run "wine 'Diablo IV.exe' -launch").
https://bugs.winehq.org/show_bug.cgi?id=55169
--- Comment #11 from kurtosis kurtosis.jones@gmail.com --- Thanks Oliver and Maciej. Quick update, I found D4 actually works on a different workstation, but using almost the exact same NixOS config as the first one. Same NixOS version, 99% same configuration.nix, same GPU, different but same brand mobo (Asus), slightly different CPU (both Xeons).
It's my work workstation that I don't normally install games on, but figured I test D4 on it, and it works there. So this doesn't look like a Wine issue, or even a Lutris one, but a configuration or hardware issue. Thanks and I'll hack at it a bit more and see if I can narrow down the diff.