ValveSoftware / Proton

Compatibility tool for Steam Play based on Wine and additional components
Other
24.66k stars 1.07k forks source link

Diablo 2 Resurrected #5225

Closed mwpow3ll closed 1 year ago

mwpow3ll commented 3 years ago

Compatibility Report

System Information

Proton: 1634140039 experimental-6.3-20211013 SteamGameId: 13512922949631344640 Command: ['/home/steam/.local/share/Steam/steamapps/compatdata/4032714062/pfx/drive_c/Program Files (x86)/Diablo II Resurrected/Diablo II Resurrected Launcher.exe', 'PROTON_LOG=1', '%command%'] Options: {'forcelgadd'} depot: 0.20210923.28 pressure-vessel: 0.20210906.2 scripts: v0.20210917.0-0-g1cf127d soldier: 0.20210920.0 soldier 0.20210920.0 Kernel: Linux 5.14.9-200.fc34.x86_64 #1 SMP Thu Sep 30 11:55:35 UTC 2021 x86_64 User settings WINEDEBUG: +timestamp,+pid,+tid,+seh,+debugstr,+loaddll,+mscoree

I confirm:

Symptoms

Occasionally the game will hang. Screen freezes, input goes dead, but sound is audible

I was able to dump two logs: one where the hang occurred and another where the play session was good, except for crackling audio. The amount of log data is massive...

Reproduction

Play Diablo 2 Resurrected for 30+ minutes in Act 1 or 3 until it hangs

mwpow3ll commented 3 years ago

Proton Log where hang was experienced ~4MB

Proton Log where hang was not experienced ~6MB

Windows 10 DX12 trace ~8GB

kisak-valve commented 3 years ago

Hello @mwpow3ll, it might be interesting to test if completely closing Steam, then running PROTON_NO_ESYNC=1 steam from a terminal has an effect on how the game behaves.

mwpow3ll commented 3 years ago

Hello @mwpow3ll, it might be interesting to test if completely closing Steam, then running PROTON_NO_ESYNC=1 steam from a terminal has an effect on how the game behaves.

@kisak-valve thanks for the response, but unfortunately, the game still hangs

log with PROTON_NO_ESYNC=1 ~7MB

DarthShredder commented 3 years ago

Because it is a non-steam game I prefer to use Lutris for the Battle.Net Launcher (to play D2R). Seems to work with Proton-6.19-GE-2 too

mwpow3ll commented 3 years ago

Because it is a non-steam game I prefer to use Lutris for the Battle.Net Launcher (to play D2R). Seems to work with Proton-6.19-GE-2 too

I prefer not using Lutris for several reasons, but I'm curious how often you play and what acts, seeing as it works for you?

I've only seen the hang in Act 1 or Act 3, but sometimes it's within 5 minutes and other times it takes 30-40 minutes.

I'll need to see what the differences are with GE 6.19 and current proton experimental, see see if that is substantial and if so, maybe try it. note: the WINE changes looks significant, 6.3.x vs 6.19.x

DarthShredder commented 3 years ago

I played Act 1 and the middle of Act 2. Playtime 10+hours total (once three hours at a time) @ Lutris with launcher "lutris-ge-lol-6.16-2-x86_64".

I'll need to see what the differences are with GE 6.19 and current proton experimental, see see if that is substantial and if so, maybe try it. note: the WINE changes looks significant, 6.3.x vs 6.19.x

Proton-GE has in its changelog for version 6.15 something to Diablo 2 Resurrected Source: https://github.com/GloriousEggroll/proton-ge-custom/releases/tag/6.15-GE-1

"vkd3d patch added for Diablo II Resurrected (Note: This was added in case it fixes other games. Running non-steam games with proton is -not- supported)."

mwpow3ll commented 3 years ago

Unfortunately, 6.19-GE-2 seems to have the same issue

log with Proton GE 6.19-GE-2 ~1.2MB

mwpow3ll commented 3 years ago

@GloriousEggroll Do you think you could give me some advice on if my logs are helping / might show an actual problem?

I can play D2R Act 2 all day long, but if I play anywhere from 1-30 minutes in Act 1 or Act 3, the application hangs... I'm starting to think this is a more general compat issue with WINE and D2R.

mwpow3ll commented 3 years ago

Here is a steam streaming log of the issue (this issue occurs regardless of streaming):

Diablo 2 app is streamed @ 14:59:24 Diablo 2 app hangs @ 15:03:20 Diablo 2 app self closes @ 15:05:08

Full log ~ 190 kB

Nov 15 15:03:17 steam steam.desktop[2905]: SynchronizeClientState(): setting cursor to 132
Nov 15 15:03:17 steam steam.desktop[2905]: CLIENT: Got control packet k_EStreamControlSetCursor
Nov 15 15:03:17 steam steam.desktop[2905]: SynchronizeClientState(): setting cursor to 133
Nov 15 15:03:17 steam steam.desktop[2905]: CLIENT: Got control packet k_EStreamControlSetCursor
Nov 15 15:03:18 steam steam.desktop[2905]: SynchronizeClientState(): setting cursor to 134
Nov 15 15:03:18 steam steam.desktop[2905]: CLIENT: Got control packet k_EStreamControlSetCursor
Nov 15 15:03:18 steam steam.desktop[2905]: SynchronizeClientState(): setting cursor to 135
Nov 15 15:03:18 steam steam.desktop[2905]: CLIENT: Got control packet k_EStreamControlSetCursor
Nov 15 15:03:20 steam steam.desktop[2905]: src/steamUI/gamestream/gamestreamsystem.cpp (890) : pState->m_nProcess == nProcess
Nov 15 15:03:20 steam steam.desktop[2905]: src/steamUI/gamestream/gamestreamsystem.cpp (890) : pState->m_nProcess == nProcess
Nov 15 15:03:20 steam steam.desktop[2905]: src/steamUI/gamestream/gamestreamsystem.cpp (890) : pState->m_nProcess == nProcess
Nov 15 15:03:20 steam steam.desktop[2905]: src/steamUI/gamestream/gamestreamsystem.cpp (890) : pState->m_nProcess == nProcess
Nov 15 15:03:20 steam steam.desktop[2905]: src/steamUI/gamestream/gamestreamsystem.cpp (890) : pState->m_nProcess == nProcess
Nov 15 15:03:20 steam steam.desktop[2905]: src/steamUI/gamestream/gamestreamsystem.cpp (890) : pState->m_nProcess == nProcess
Nov 15 15:03:20 steam steam.desktop[2905]: src/steamUI/gamestream/gamestreamsystem.cpp (890) : pState->m_nProcess == nProcess
Nov 15 15:03:20 steam steam.desktop[2905]: src/steamUI/gamestream/gamestreamsystem.cpp (890) : pState->m_nProcess == nProcess
Nov 15 15:03:21 steam steam.desktop[2905]: src/steamUI/gamestream/gamestreamsystem.cpp (890) : pState->m_nProcess == nProcess
Nov 15 15:03:21 steam steam.desktop[2905]: src/steamUI/gamestream/gamestreamsystem.cpp (890) : pState->m_nProcess == nProcess
Nov 15 15:03:21 steam steam.desktop[2905]: src/steamUI/gamestream/gamestreamsystem.cpp (890) : pState->m_nProcess == nProcess
Nov 15 15:03:21 steam steam.desktop[2905]: src/steamUI/gamestream/gamestreamsystem.cpp (890) : pState->m_nProcess == nProcess
Nov 15 15:03:28 steam steam.desktop[2905]: Warning: The game hasn't rendered a frame from us in over 10 seconds
Nov 15 15:03:30 steam steam.desktop[2905]: Slow framerate: game 8.00, capture 0.15, convert 2.97, encode 2366.48, network 1.26, decode 7.71, display 7.81 (encode)
Nov 15 15:03:30 steam steam.desktop[2905]: Setting target framerate: 59.75 [timing: game 8.00, capture 0.15, convert 2.97, encode 2366.48, network 1.26, decode 7.71, display 7.81 (encode)]
Nov 15 15:03:30 steam steam.desktop[2905]: CLIENT: Targeting 59.75 FPS
Nov 15 15:03:30 steam steam.desktop[2905]: CLIENT: Got control packet k_EStreamControlSetTargetFramerate
Nov 15 15:03:31 steam steam.desktop[2905]: Setting target framerate: 59.75 [timing: game 8.00, capture 0.00, convert 3.38, encode 4.36, network 1.24, decode 6.63, display 2.35]
Nov 15 15:03:31 steam steam.desktop[2905]: CLIENT: Targeting 59.75 FPS
Nov 15 15:03:31 steam steam.desktop[2905]: CLIENT: Got control packet k_EStreamControlSetTargetFramerate
Nov 15 15:03:39 steam steam.desktop[2905]: Warning: The game hasn't rendered a frame from us in over 10 seconds
Nov 15 15:03:49 steam steam.desktop[2905]: Warning: The game hasn't rendered a frame from us in over 10 seconds
Nov 15 15:04:00 steam steam.desktop[2905]: Warning: The game hasn't rendered a frame from us in over 10 seconds
Nov 15 15:04:04 steam steam.desktop[2905]: Audio mix: start=1778711844, returned=14399040
Nov 15 15:04:04 steam steam.desktop[2905]: Audio source [System Pulse]: init=1778939875, through=14399681, last_start=14399169, mixed=2880256, drop_before=0, drop_after=0
Nov 15 15:04:10 steam steam.desktop[2905]: Warning: The game hasn't rendered a frame from us in over 10 seconds
Nov 15 15:04:21 steam steam.desktop[2905]: Warning: The game hasn't rendered a frame from us in over 10 seconds
Nov 15 15:04:31 steam steam.desktop[2905]: Warning: The game hasn't rendered a frame from us in over 10 seconds
Nov 15 15:04:41 steam steam.desktop[2905]: Warning: The game hasn't rendered a frame from us in over 10 seconds
Nov 15 15:04:52 steam steam.desktop[2905]: Warning: The game hasn't rendered a frame from us in over 10 seconds
Nov 15 15:04:59 steam steam.desktop[2905]: Game Exit Event signaled.
Nov 15 15:04:59 steam steam.desktop[2905]: Saw last dispatch client leave, deleting self
Nov 15 15:04:59 steam steam.desktop[2905]: DeleteFBOFreeList: Removing 8 FBO objects, total 0
Nov 15 15:05:04 steam steam.desktop[2905]: Audio mix: start=1778711844, returned=17278560
Nov 15 15:05:04 steam steam.desktop[2905]: Audio source [System Pulse]: init=1778939875, through=17279425, last_start=17278913, mixed=2879744, drop_before=0, drop_after=0
Nov 15 15:05:08 steam steam.desktop[2905]: DeleteFBOFreeList: Removing 8 FBO objects, total 0
Nov 15 15:05:08 steam steam.desktop[2905]: DeleteFBOFreeList: Removing 8 FBO objects, total 0
Nov 15 15:05:08 steam steam.desktop[2905]: Caching cursor image for left_ptr, serial 2, cache size = 128
Nov 15 15:05:08 steam steam.desktop[2905]: Window title set to Battle.net
eitch commented 3 years ago

I've been able to run Diablo II Resurrected using Lutris for quite a while now. What i do have though is weird artifacts in the game. So when my character is moving, at the same position more or less, i have slight artifacts. They are rectangular, i.e. tall narrow blocks. They are only slightly visible, but clearly there, thus not a big issue.

mwpow3ll commented 3 years ago

@DarthShredder and @eitch What distribution do you use?

I just tried Lutris and it has the same issue... I'm starting to think this is a Fedora, Gnome, Wine, D2 Resurrected issue.

eitch commented 2 years ago

@mwpow3ll I'm using Pop OS 21.10, but with the kisak-mesa PPA, thus running on Mesa 21.3.0 when i wrote the above comment, now on 21.3.1. My Linux kernel was 5.13, now on 5.15.

I have just tested the game now again with these latest updates and it is working much better! I don't see any artifacts, and even in Act IV in town i used to have huge FPS drops, and now it stays stable at about 140. I don't know which update it was, but now it really is much better.

I should also note, that a few days ago i changed the PCIe version on my slots from 4 to 3 as i was having other issues. I then did a geekbench benchmark for Vulkan, and interestingly enough, my synthetic score rose from around 85k to 111k by downgrading to PCIe 3. This on a ASUS Crosshair VII Hero motherboard with latest Bios, AMD 5950x and AMD RX 6800XT. I don't know why, but my system seems to run better now.

ShadwDrgn commented 1 year ago

Game hung for me today as well. i'm on proton GE 8-3 with a 7900 XTX Archlinux: mesa 23.0.3-1 linux 6.3.1-arch2-1

Haven't tested proton experimental or latest non GE stable.

mwpow3ll commented 1 year ago

Really annoying, but the exact same issue occurs with Diablo 4... no other games have issues like this on the same hardware, and no other setup I have can reproduce; Both D2 and D4 work really well on the Steam Deck, so if this is a Proton / WINE issue, it has to be specific to Nvidia drivers or possibly Fedora, but I'm leaning toward Nvidia.

What is really odd is the issue disappeared for almost a year and then it came back. Really frustrating...

mwpow3ll commented 1 year ago

Well, the issue was either my GTX 1080 TI or the nvidia drivers; either way, updated to an AMD 7900 XTX and haven't had the problem