protonscr

Steam does not start with optimus when preferring system libraries

steamopen bumblebee
ValveSoftware/steam-for-linux#4822 · opened 2017-01-22 by pluma · updated 2019-07-18 · 5 comments · github
Ppluma 2017-01-22 github

Your system information

  • Steam client version: whatever the .deb file on the steam website is as of Sun, Jan 22 2017
  • Distribution (e.g. Ubuntu): Ubuntu 16.04 LTS
  • Opted into Steam client beta?: [Yes/No] No
  • Have you checked for system updates?: [Yes/No] Yes

Please describe your issue in as much detail as possible:

I've probably run sudo apt-get upgrade at some point in the past. Steam also auto-updated. After the auto-update I rebooted my computer for an unrelated issue, now it's just showing me this when launched from the console (no GUI loads, obviously, because it's broken):

$ LIBGL_DEBUG=verbose steam
Running Steam on ubuntu 16.04 64-bit
STEAM_RUNTIME is enabled automatically
Installing breakpad exception handler for appid(steam)/version(1484790260)
libGL: screen 0 does not appear to be DRI2 capable
libGL: OpenDriver: trying /usr/lib/i386-linux-gnu/dri/tls/swrast_dri.so
libGL: OpenDriver: trying /usr/lib/i386-linux-gnu/dri/swrast_dri.so
libGL: Error in /home/pluma/.drirc line 1, column 0: no element found.
libGL: Error in /home/pluma/.drirc line 1, column 0: no element found.
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast

I've tried the usual steps:

  • tried glxgears to make sure GL is working (it's working fine with ridiculous FPS)
  • re-installed nvidia-367 (also tried switching to nvidia-340 but for some reason nvidia-340 locks PRIME into Intel mode)
  • uninstalled steam, nuked .steam and .local/share/Steam and reinstalled from official .deb
  • switched PRIME to Intel mode -- this made Steam launch (obviously) but of course defeats the entire point of having an nvidia card
  • followed the various AskUbuntu etc instructions to delete random files (this has worked for this exact problem in the past but did nothing)
  • started steam with LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/lib32/nvidia-367:/usr/lib/nvidia-367" (this too had worked in the past)

This isn't a new problem (I've been running into this randomly after steam updates since 2015). This isn't a problem that's unique to me. As far as I can tell everyone suffering from this problem ends up either fixing it by ripping out (or overriding) random bundled libraries until Steam uses the correct system libraries or just giving up and using the on-board Intel GPU with the expected shitty performance.

Steps for reproducing this issue:

  1. Install Ubuntu 16.04 LTS with nvidia-367 driver
  2. Install and launch Steam
  3. Cry softly as you reevaluate your life choices
Ppluma 2017-01-22 github

This might be a duplicate of #3801, which is where the LD_LIBRARY_PATH tip came from originally.

The LD_PRELOAD hack beautifully fails with a cascade of these two lines:

ERROR: ld.so: object '/lib/i386-linux-gnu/libgpg-error.so.0' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/i386-linux-gnu/libstdc++.so.6' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.

...which I'm taking to mean that it's not an option either.

Ppluma 2017-01-22 github

Okay, the new workaround in #4820 works, so even though the console output is different, the issue seems to have the same fix:

STEAM_RUNTIME_PREFER_HOST_LIBRARIES=0 LD_LIBRARY_PATH="/usr/lib32/nvidia-367" steam

I'm guessing whatever STEAM_RUNTIME_PREFER_HOST_LIBRARIES=0 overrides broke the old workaround. Good job.

You can close this issue as duplicate I guess. It would be awesome if Steam updates wouldn't randomly break existing workarounds for Steam being broken without fixing the problem they, y'know, work around.

Kkisak-valve maintainer 2017-01-22 github

Hello @pluma, the workaround do not make sense to me for the symptoms, but thanks for finding the workaround. I do not understand why nvidia's libGL.so.1 would try to use mesa's swrast unless steam is linking against mesa's libGL.so.1 and otherwise trying to use nvidia's proprietary driver.
#4820 is tracking a separate issue that happened to have a workaround in a comment. We'll track this issue here.

Can you explain how you switch the PRIME setting you refer to a little more? Many optimus users run steam on the intel chipset, and use something like optirun -b primus %command% in the per-game launch options to only run specific games with the nvidia gpu.

Rrafaelsoaresbr 2017-02-25 github

Hello guys, i've had a similar problem with a fresh install of Linux Mint 18.1

  • Steam version: the repository's version
  • Distribution (e.g. Ubuntu): Linux Mint 18.1
  • Opted into Steam client beta?: [Yes/No] No
  • Have you checked for system updates?: [Yes/No] Yes

System specs

Using proprietary graphics drivers (nvidia-367), when I run steam for the first time I've got the same error as above, then I was able to start steam with:

LD_LIBRARY_PATH="/usr/lib32/nvidia-367" steam

After downloading steam updates, I was not able to start steam anymore, with the following error:

LIBGL_DEBUG=verbose LD_LIBRARY_PATH="/usr/lib32/nvidia-367" steam

Running Steam on linuxmint 18.1 64-bit
STEAM_RUNTIME is enabled automatically
[2017-02-25 13:58:29] Startup - updater built Jan 19 2017 01:22:13
SteamUpdateUI: An X Error occurred
X Error of failed request: BadValue (integer parameter out of range for operation)`

Since then, I'm using the following workaround:

STEAM_RUNTIME_PREFER_HOST_LIBRARIES=0 LD_LIBRARY_PATH="/usr/lib32/nvidia-367" steam

Iildella 2017-02-28 github

Ubuntu 16.10 up-to-date, nvidia 750 Ti, driver 367.57.
Steam up to date that runs ok with Mesa, give me the same error with nvidia:

Running Steam on ubuntu 16.10 64-bit
STEAM_RUNTIME is enabled automatically
Installing breakpad exception handler for appid(steam)/version(1484790260)

and stays like that with no additional errors.
Still no workaround is changing the status quo.

Nothing extracted yet.