Closed davidak closed 3 years ago
It's most likely a vulkan related issue. There's another issue, but I'm on mobile
I'm having the same issue, haven't updated NixOS (unstable) in between (but have updated since) so I'm assuming it was a Steam update that broke things with NixOS. Proton 5.13+ does not work anymore.
@davidak do these games work if you force them to run on an older version of proton
? Recently steam
updated on a few of my pcs and I had to force the version of proton
to something older (4.x
IIRC) before any of my kids Lego games would work again. Are you familiar with how to force that?
If you select Steam Linux Runtime - Soldier -> Betas -> previous_release, it works. I have created this ticket: https://github.com/ValveSoftware/steam-runtime/issues/431
There is this issue on the subject: https://github.com/NixOS/nixpkgs/issues/127068 It was a mesa + llvm incompatibility. I don't think that is the issue here.
when I start steam from the command line I get the following:
Running Steam on nixos 21.11.20210718.6797b92 64-bit
STEAM_RUNTIME has been set by the user to: /steamrt
Can't find 'steam-runtime-check-requirements', continuing anyway
WARNING: Using default/fallback debugger launch
/home/narice/.local/share/Steam/ubuntu12_32/steam
[2021-07-20 12:48:52] Startup - updater built Jul 16 2021 18:04:56
Installing breakpad exception handler for appid(steam)/version(1626461631)
libGL error: MESA-LOADER: failed to open radeonsi: /run/opengl-driver-32/lib/dri/radeonsi_dri.so: wrong ELF class: ELFCLASS64 (search paths /run/opengl-driver-32/lib/dri)
libGL error: failed to load driver: radeonsi
libGL error: MESA-LOADER: failed to open radeonsi: /run/opengl-driver-32/lib/dri/radeonsi_dri.so: wrong ELF class: ELFCLASS64 (search paths /run/opengl-driver-32/lib/dri)
libGL error: failed to load driver: radeonsi
libGL error: MESA-LOADER: failed to open swrast: /run/opengl-driver-32/lib/dri/swrast_dri.so: wrong ELF class: ELFCLASS64 (search paths /run/opengl-driver-32/lib/dri)
libGL error: failed to load driver: swrast
SteamUpdateUI: An X Error occurred
X Error of failed request: BadValue (integer parameter out of range for operation)
Major opcode of failed request: 152 (GLX)
Minor opcode of failed request: 3 (X_GLXCreateContext)
Value in failed request: 0x0
Serial number of failed request: 47
xerror_handler: X failed, continuing
Looks like steam didn't shutdown cleanly, scheduling immediate update check
[2021-07-20 12:48:52] Loading cached metrics from disk (/home/narice/.local/share/Steam/package/steam_client_metrics.bin)
[2021-07-20 12:48:52] Failed to load cached hosts file (File 'update_hosts_cached.vdf' not found), using defaults
[2021-07-20 12:48:52] Using the following download hosts for Public, Realm steamglobal
[2021-07-20 12:48:52] 1. http://media.steampowered.com, /client/, Realm 'steamglobal', weight was 1, source = 'baked in'
Installing breakpad exception handler for appid(steam)/version(1626461631)
[2021-07-20 12:48:52] Checking for update on startup
[2021-07-20 12:48:52] Checking for available updates...
[2021-07-20 12:48:52] Downloading manifest: http://media.steampowered.com/client/steam_client_ubuntu12
Installing breakpad exception handler for appid(steam)/version(1626461631)
[2021-07-20 12:48:52] Download skipped: /client/steam_client_ubuntu12 version 1626461631, installed version 1626461631, existing pending version 0
[2021-07-20 12:48:52] Nothing to do
[2021-07-20 12:48:52] Verifying installation...
[2021-07-20 12:48:52] Performing checksum verification of executable files
[2021-07-20 12:48:53] Verification complete
Loaded SDL version 2.0.15-6655637
libGL error: MESA-LOADER: failed to open radeonsi: /run/opengl-driver-32/lib/dri/radeonsi_dri.so: wrong ELF class: ELFCLASS64 (search paths /run/opengl-driver-32/lib/dri)
libGL error: failed to load driver: radeonsi
libGL error: MESA-LOADER: failed to open radeonsi: /run/opengl-driver-32/lib/dri/radeonsi_dri.so: wrong ELF class: ELFCLASS64 (search paths /run/opengl-driver-32/lib/dri)
libGL error: failed to load driver: radeonsi
libGL error: MESA-LOADER: failed to open swrast: /run/opengl-driver-32/lib/dri/swrast_dri.so: wrong ELF class: ELFCLASS64 (search paths /run/opengl-driver-32/lib/dri)
libGL error: failed to load driver: swrast
Steam: An X Error occurred
X Error of failed request: BadMatch (invalid parameter attributes)
Major opcode of failed request: 152
Serial number of failed request: 49
xerror_handler: X failed, continuing
assert_20210720124852_1.dmp[5663]: Uploading dump (out-of-process)
/tmp/dumps/assert_20210720124852_1.dmp
/home/narice/.local/share/Steam/steam.sh: line 772: 5657 Segmentation fault (core dumped) $STEAM_DEBUGGER $DEBUGGER_ARGS "$STEAMROOT/$STEAMEXEPATH" "$@"
assert_20210720124852_1.dmp[5663]: Finished uploading minidump (out-of-process): success = yes
assert_20210720124852_1.dmp[5663]: response: CrashID=bp-bc4634a5-9d6f-4e70-a6a1-2eb652210720
assert_20210720124852_1.dmp[5663]: file ''/tmp/dumps/assert_20210720124852_1.dmp'', upload yes: ''CrashID=bp-bc4634a5-9d6f-4e70-a6a1-2eb652210720''
doing a steam --reset
and then relaunching steam doesn't work.
maybe trying https://github.com/NixOS/nixpkgs/issues/126428 on top of https://github.com/NixOS/nixpkgs/pull/129805 would solve the issue?
woops, my problem might be a bit more than what you are experiencing here, should I open another issue? (steam doesn't run basically)
should I open another issue?
@Narice yes
do these games work if you force them to run on an older version of proton?
@aanderse yes. proton 5.0 and older works
these proton versions don't work:
these proton versions work:
(i actually tested with different proton versions, but only those that don't work)
Are you familiar with how to force that?
yes, in the game properties
If you select Steam Linux Runtime - Soldier -> Betas -> previous_release, it works.
@baracoder yes. that solves the issue for now.
@davidak done with issue #130861.
that solves the issue
*works around
Not a fix.
bwrap: execvp /usr/lib/pressure-vessel/from-host/bin/pressure-vessel-adverb: No such file or directory
is the most suspicious. Is this a missing dependency in the steam-fhs? With commands from https://github.com/NixOS/nixpkgs/issues/100655 I have tried to poke around a bit but didn't get it right yet:
steam-run bash
G_MESSAGES_DEBUG=all ~/.local/share/Steam/steamapps/common/SteamLinuxRuntime_soldier/run-in-soldier -- xterm
While the output is similar to lunching a game (without G_MESSAGES_DEBUG=all
), I can't get anything to start with any version of the Steam Linux Runtime
This issue has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/steam-proton-games-broken/14167/3
pressure-vessel-adverb
is usually in your steam home directory. We could probably add the path
This also happens with Borderlands - The Pre-Sequel.
pressure-vessel-adverb
is usually in your steam home directory. We could probably add the path
I don't think the file itself is missing, but it is instead one of those misleading error messages, that pop up, when a binary can not be executed because a required .so
file can not be found.
I don't think the file itself is missing, but it is instead one of those misleading error messages, that pop up, when a binary can not be executed because a required
.so
file can not be found.
Based on previous pressure-vessel issues, I'm 99% sure you're right. There will be something missing from the library search path in the container created by pressure-vessel, probably for a NixOS-specific reason.
This might be a bug in pressure-vessel or a bug in NixOS' packaging for Steam, we don't have enough information to know which yet. We'll need to see more detailed logs: please see https://github.com/ValveSoftware/steam-runtime/issues/431 for details.
Is there any possible world where we could declaratively package the Proton runtime? Or maybe a fork of it, like GloriousEggroll's?
it has already been stated that valve does not want and will not support us if we package/distribute the steam soldier runtime ourselves
This might be a bug in pressure-vessel or a bug in NixOS' packaging for Steam, we don't have enough information to know which yet.
It seems to be a pressure-vessel bug. Please use the previous_release
on NixOS for now; the next beta release should have a fix.
it has already been stated that valve does not want and will not support us if we package/distribute the steam soldier runtime ourselves
Yes, this. The only supported distribution channel for Steam games, Proton and soldier is Steam's own download mechanism (Steampipe). Similarly, the only supported scout Steam Runtime is the one in ~/.steam/root/ubuntu12_32/steam-runtime
.
Part of the purpose of the soldier runtime is that its content and update cadence is under Valve's control, so if a new version of Proton requires adding or upgrading libraries in soldier, Valve can make sure a suitable version of soldier ships first. That wouldn't work if downstream distributions package an older version of soldier that takes an arbitrary amount of time to update - if we tried to support that, then we'd be limited by the speed of the slowest-updating distribution (or, more realistically, we wouldn't know about all the distributions and would continue anyway, and the slower-updating distributions would stop working).
This should not be news to anyone - Steam is a sales and distribution platform for binary blobs with known content. Some of them (like soldier and Proton) happen to be built from open-source software, but their official, supportable version is a specific binary build, and no other build of them is going to be supported.
It's also not currently possible to have a second, parallel version of soldier, even as an unsupportable tweak: Proton 5.13+ encodes its dependency on soldier as a Steampipe app-ID, not as an abstract runtime ABI identifier that could point to a user-configurable implementation, so the only thing it is going to use is the Steam library directory into which an official soldier build is downloaded. (I have to edit that directory in-place when I'm testing new versions of soldier.)
NixOS has an unusual non-FHS layout that breaks many assumptions that would be true on more typical distros, and pressure-vessel needs detailed knowledge of the filesystem layout, so it is likely that pressure-vessel on NixOS will occasionally regress. I try to keep it working, but my resources are limited and I can't run examples of every distribution. If you want to minimize regressions like this for NixOS users, the best way to do that is to use the beta branches of soldier and Steam, and report regressions early, so that we can fix them before they get into the default branch next time (kudos to @baracoder for reporting https://github.com/ValveSoftware/steam-runtime/issues/431 and working with me to get this fixed).
Or maybe a fork of it, like GloriousEggroll's?
GloriousEggroll's Proton fork does not include a soldier fork: it runs on Valve's official binary builds of soldier, the same as Valve's official and experimental Proton builds. I'm hoping that forking soldier will never be necessary.
@smcv, thanks for the detailed response. I appreciate it :pray:
I'm trying Rocket League through Proton, and while I do get a window, it's black and closes about 15 seconds after launching. The previous_release workaround for Steam Linux Runtime (Soldier) does not work for me. I'm trying it with Proton 5.0. Should I open a separate issue for this, given that a window does indeed open?
Also, I launched Steam with the right env vars (G_MESSAGES_DEBUG=all STEAM_LINUX_RUNTIME_VERBOSE=1 STEAM_LINUX_RUNTIME_LOG=1 steam) but I'm not getting a log in common/SteamLinuxRuntime_soldier/var, I only got this Steam log: https://pastebin.com/fUwHmwGc.
I'm trying it with Proton 5.0
That's not related to this issue. This issue involves a bug in the pressure-vessel container framework, which is used with Proton 5.13+ but not with 5.0, and the failure mode is different. In this issue, Proton doesn't get run at all; in your issue, Proton runs but the game doesn't work.
Your issue is either a bug in NixOS' Steam packaging, or a bug in Proton 5.0. Please follow Proton's debugging steps (involving PROTON_LOG=1
).
STEAM_LINUX_RUNTIME_VERBOSE=1 STEAM_LINUX_RUNTIME_LOG=1
Those environment variables are used by the container framework. Proton 5.0 doesn't use the container framework, so it is normal that you don't get a log from doing this.
This should be fixed in SteamLinuxRuntime_soldier depot 0.20210723.18, currently available in the client_beta
branch. The status of today's versions should be:
previous_release
: 0.20210415.x, worksclient_beta
: 0.20210723.18, worksThe 0.20210723.18 build, or a later version, will be committed to the default branch when more people have had a chance to try it and check for regressions.
The fixed version looks like this (or newer):
$ cat ~/SteamLibrary/steamapps/common/SteamLinuxRuntime_soldier/VERSIONS.txt
#Name Version Runtime Runtime_Version Comment
depot 0.20210723.18 # Overall version number
pressure-vessel 0.20210722.0
scripts v0.20210722.0-0-gb142f90 # Entry point scripts, etc.
soldier 0.20210719.0 soldier 0.20210719.0 # soldier_platform_0.20210719.0/
If you are still getting the error bwrap: execvp .../pressure-vessel-adverb: No such file or directory
with a fixed version, please comment on https://github.com/ValveSoftware/steam-runtime/issues/431 with full details.
If you experience different problems with Proton 5.13+, please open a separate issue.
I can confirm that the client_beta release is working. Rocket League successfully started
I can confirm that the client_beta release is working. Rocket League successfully started
I can also confirm, Mortal Kombat X started with proton 6.3 and I hope to see doom start soon.
Sadly I deleted my steam library in an attempt to fix this.
Thanks for taking care of this, @smcv.
This issue has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/how-to-debug-steam-games-crashing/14420/2
I think client_beta
is also broken again. I had to switch back to previous_release
just now to get it running again.
I think previous_release is now broken too.
if you believe the Steam Runtime might have regressed, please report a separate bug with full details (including logs and version numbers) to https://github.com/ValveSoftware/steam-runtime/.
https://steamdb.info/app/1391110/depots/ says the default and previous_release
branches last changed 20 days ago, and the client_beta
last changed 16 days ago, so this seems more likely to be triggered by a change somewhere else.
This should be fixed in SteamLinuxRuntime_soldier depot 0.20210723.18, currently available in the
client_beta
branch.
soldier depot 0.20210723.18 (Steampipe build ID 7074429) has now been promoted to the default branch.
If you are experiencing similar symptoms with an up-to-date "Steam Linux Runtime - soldier", please open a separate issue with full details, minimally including SteamLinuxRuntime_soldier/VERSIONS.txt
and the error messages from the log. Sorry, "it's broken" is not enough information to diagnose a bug or find a solution.
I am not a NixOS user or developer, so I don't know how NixOS developers prefer to manage their issue reports, but I suspect they would also find it easier for regression reports to be a separate issue with full details.
Yes, it works. Thanks again!
This issue has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/steam-proton-games-broken/14167/6
To Reproduce Steps to reproduce the behavior:
Reported this on their developer site. AMD hasn't been supporting their hardware for years obviously.
To Reproduce Steps to reproduce the behavior:
1. Install any version of Ubuntu in the past half-decade on a machine with an ATI Radeon 6600 XT, (went all the way back to 21.04 thru 23.04) 2. Install Steam. 3. Start Steam.
Reported this on their developer site. AMD hasn't been supporting their hardware for years obviously.
This thread is not the most productive place to ask.
Describe the bug I can't start proton games anymore since some days.
At first it helps to restart steam, but today i have the issue every time.
I haven't done a NixOS update, but there was a Steam update 7 days ago. Maybe that broke something again.
A NixOS update did not fix it.
To Reproduce Steps to reproduce the behavior:
This might be the main error:
Here is the full log: https://gist.github.com/davidak/72f1632ec5b79cb230df06204774a1e6
Workaround
Expected behavior Steam games start as before
Additional context
Pantheon Desktop, AMD Radeon RX 480 GPU
Tested games that fail to start:
Tested games that work:
I tested the open Steam PRs, but they don't fix this issue.
https://github.com/NixOS/nixpkgs/pull/130456 https://github.com/NixOS/nixpkgs/pull/126435
Notify maintainers @jagajaga @jonringer
Metadata
"x86_64-linux"
Linux 5.12.10, NixOS, 21.05.1555.6b940846e99 (Okapi)
yes
yes
nix-env (Nix) 2.3.12
"home-manager-21.05, nixos-21.05.1555.6b940846e99, nixos-hardware, nixos-unstable-21.11pre302501.b59c06dc92f"
/nix/var/nix/profiles/per-user/root/channels/nixos
Maintainer information: