ValveSoftware / steam-runtime

A runtime environment for Steam applications
Other
1.16k stars 86 forks source link

Some games crash when using libstrangle in combination with proton 5.13 or newer #389

Open at46 opened 3 years ago

at46 commented 3 years ago

Your system information

Please describe your issue in as much detail as possible:

I tested some games with Proton 5.13 and libstrangle/mangohud:

Proton 5.13 with libstrangle (strangle 55 %command%):

Proton 5.13 with libstrangle and mangohud (strangle 55 mangohud %command%):

RyuzakiKK commented 3 years ago

I tried Life Is Strange: Before the Storm and a dozen other games that I currently have installed but unfortunately I was not able to reproduce this issue.

By checking your System Information report it seems like libstrangle is correctly imported into the container though.

@at46 Can you please try to run Life Is Strange: Before the Storm with these two setups:

  1. stranglevk 55 %command% (stranglevk skips the GL part)
  2. ENABLE_VK_LAYER_TORKEL104_libstrangle=1 STRANGLE_FPS=55 %command% (manually enables libstrangle)

And report back if by any luck either one of them fixes the crash?

at46 commented 3 years ago

Unfortunately Life Is Strange: Before the Storm also crashed with those commands:

  1. stranglevk 55 %command% --> slr-app554620-s8e3b5f80e978a5bd.log
  2. ENABLE_VK_LAYER_TORKEL104_libstrangle=1 STRANGLE_FPS=55 %command% --> slr-app554620-s650e8a7e52465fcb.log

Not sure if it is any helpful but here are the game crash dump 2021-04-05_205926.zip and the proton log steam-554620.log when starting with PROTON_LOG=1 strangle 55 %command%.

smcv commented 3 years ago

What version of libstrangle are you using, and where did you get it? Please be as specific as possible.

at46 commented 3 years ago

I got libstrangle from https://gitlab.com/torkel104/libstrangle which is the official repository as far as I know. The installed version is 0.1.1 and I compiled it at 2020-05-03. There were no new commits during the last year so it should be the latest version. Since I'm a newbie to building software it's possible I did something wrong but everything works fine with native games or proton 5.0-10. I hope that Debian will provide a package in the future (I even made a request for that https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=962905) but that's off topic.

at46 commented 3 years ago

Today I had some time for more testing and I've made a new installation of debian testing on an external hdd, upgraded mesa to 21.0.2, installed libstrangle, steam and Life is Strange 2 (just realized today that Before the Storm does not have a free first episode). On this new installation I also have a crash with proton 5.13+ and strangle 55 %command%. After that I plugged the hdd into another system with an intel haswell processor, used the igpu of that cpu and there Life is Strange 2 runs fine (well with 6 fps but at least no crash). Then I tried another system with an integrated vega gpu and there I've a crash again (log: slr-app532210-s7a2fd117b5b5deca.log and sysinfo of that system: steam_sys_info.txt) So for me it seems that radv handles things different than anv and this leads in combination with libstrangle and proton 5.13+ to a crash.

smcv commented 3 years ago

If you're able to get a backtrace from the crash (on Debian testing, systemd-coredump is a good way to achieve that) then that would be a useful way to point at the component(s) that are most likely to be triggering this.

It's weird that enabling MangoHud seems to mostly work around this for you. That makes me wonder whether it's tied up with #363 in some way.

It would also be interesting if you could try a game where the native Linux version uses Vulkan, like Artifact (always Vulkan, I think) or DOTA 2 (special configuration required). With a game like that, you'd be able to switch between:

which might help to narrow down where the problem is.

at46 commented 3 years ago

There was a steam runtime soldier update and my following test results were obtained with this version:

cat .steam/steam/steamapps/common/SteamLinuxRuntime_soldier/VERSIONS.txt 
#Name   Version     Runtime Runtime_Version Comment
SteamLinuxRuntime   v0.20210309.0-4-ge09b2e6            # Entry point scripts, etc.
pressure-vessel 0.20210317.0+srt1   scout   0.20210317.0    # pressure-vessel-bin.tar.gz
soldier 0.20210317.0    soldier 0.20210317.0    # com.valvesoftware.SteamRuntime.Platform-amd64,i386-soldier-runtime.tar.gz

I tested Artifact Classic on my main system (GIST) with strangle 55 %command%:

Since Artifact surprisingly worked fine with proton 5.13 and libstrangle I also retested Life is Strange 2:

I've no idea why artifact works fine with proton 5.13 and why mangohud seems to work around the problem. Since I'm using Mesa 21.0 since it entered experimental I already have the mentioned fix from #363.

smcv commented 3 years ago

Thanks, knowing that native Linux Artifact crashes in a SteamLinuxRuntime container is really useful - this way, we can remove Proton and DXVK from the list of potential things to blame.

A core dump isn't something I can analyze unless I happen to have exactly the same packages and versions as you, but if you're able to get a backtrace of the crash from coredumpctl gdb (see https://wiki.debian.org/HowToGetABacktrace) then that would be quite useful - potentially even without installing debug symbols.

at46 commented 3 years ago

I probably did this wrong: https://gist.github.com/at46/8df458759e3c1626170a9352ab817bf2

smcv commented 3 years ago

Hmm, yes, that stack trace doesn't tell us much - I'll have to write some better instructions for getting backtraces from things that run in the container, or try to reproduce this locally.

One thing that it does tell us is that this crash is probably a call to a NULL function pointer.

at46 commented 3 years ago

If there's anything I can do to help fixing this issue please let me know.