steam-runtime icon indicating copy to clipboard operation
steam-runtime copied to clipboard

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

Open at46 opened this issue 4 years ago • 11 comments

Your system information

  • Steam Runtime Version: v0.20210309.0-0-gb38a1fb
  • Distribution (e.g. Ubuntu 18.04): debian testing
  • Link to your full system information (Help -> System Information) in a GIST: https://gist.github.com/at46/51134de8e41a8aa24351b8a47a1344f4
  • Have you checked for system updates?: yes
  • Are you using the Steam Linux Runtime compatibility tool?: yes - Proton 5.13 or newer uses the linux runtime soldier

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%):

  • Floating Point (32 bit) --> works fine
  • Omega Strike (32 bit) --> crash slr-app680340-s812d1b89f67d7e3a.log
  • Life is Strange (32 bit) --> works fine
  • Life Is Strange: Before the Storm (64 bit) --> works fine
  • Stories: The Path of Destinies (64 bit) --> works fine
  • Warhammer: Chaosbane (64 bit) --> works fine
  • Warstone TD (64 bit) --> works fine

at46 avatar Apr 03 '21 16:04 at46

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?

RyuzakiKK avatar Apr 05 '21 11:04 RyuzakiKK

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%.

at46 avatar Apr 05 '21 19:04 at46

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

smcv avatar Apr 06 '21 14:04 smcv

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 avatar Apr 06 '21 16:04 at46

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.

at46 avatar Apr 10 '21 15:04 at46

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:

  • native Linux, no container runtime (Properties... -> Compatibility -> disable "Force the use of" etc.)
  • native Linux, container runtime (Properties... -> Compatibility -> "Force the use of" -> "Steam Linux Runtime")
  • Windows via Proton/DXVK, container runtime (Properties... -> Compatibility -> "Force the use of" -> Proton 5.13 or 6.3)
  • Windows via Proton/DXVK, no container runtime (Properties... -> Compatibility -> "Force the use of" -> Proton 5.0)

which might help to narrow down where the problem is.

smcv avatar Apr 14 '21 16:04 smcv

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:

  • Proton 5.13 with DXVK, container runtime and strangle 55 %command%-> still crash (there's no coredump file for LiS2 in /var/lib/systemd/coredump/)
  • Proton 5.13 with DXVK, container runtime and strangle 55 mangohud %command%-> works fine

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.

at46 avatar Apr 14 '21 18:04 at46

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.

smcv avatar Apr 14 '21 18:04 smcv

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

at46 avatar Apr 14 '21 19:04 at46

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.

smcv avatar Apr 14 '21 19:04 smcv

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

at46 avatar May 26 '21 12:05 at46