ValveSoftware / steam-for-linux

Issue tracking for the Steam for Linux beta client
4.24k stars 175 forks source link

Can't bring up overlay since the Jan 19 update #4827

Closed lowlyocean closed 4 years ago

lowlyocean commented 7 years ago

Your system information

Please describe your issue in as much detail as possible:

Describe what you expected should happen and what did happen. Please link any large code pastes as a Github Gist

When pressing Shift+Tab in game I expect to see Steam overlay and FPS counter. This was working fine before latest client update released on January 19th.

Steps for reproducing this issue:

  1. Install Steam from apt on an up-to-date Ubuntu 16.04 64-bit system using nvidia-378 proprietary drivers
  2. Make sure Steam -> Settings -> In-Game indicates that in-game overlay is enabled
  3. Start any game (e.g., Counter-Strike: Global Offensive) and attempt to bring up the overlay using shortcut keys
kisak-valve commented 7 years ago

Hello @radical-equanimity, after running a game with the overlay, please copy the stdout log from either /tmp/dumps/<username>_stdout.txt or completely close steam, then run steam from a terminal and put it in a gist.

Does the overlay have a problem if you run steam from a terminal with STEAM_RUNTIME_PREFER_HOST_LIBRARIES=0 steam?

lowlyocean commented 7 years ago

The overlay is still not accessible if I run with STEAM_RUNTIME_PREFER_HOST_LIBRARIES=0 steam.

https://gist.githubusercontent.com/radical-equanimity/070aefb9222acf7a4574410499c92cdf/raw/12125d5d6d2cbb65435408988fa196d4d9497d17/gistfile1.txt

ghost commented 7 years ago

@kisak-valve Something has gone wrong with the update and Steam wasn't able to find correct libs after. @radical-equanimity was able to make Steam start but some libs might be still missing in action. FYI http://steamcommunity.com/app/221410/discussions/0/143388344304227393/

lowlyocean commented 7 years ago

@triage-valve @kisak-valve I have some more information. At the moment I launch CS:GO, I notice that .steam/error.log reports the following error: ERROR: ld.so: object '/home/daniel/.steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored

Tried preloading the 64-bit version; the message in error.log goes away but I still can't bring up overlay or see my FPS. LD_PRELOAD='~/.steam/ubuntu12_64/gameoverlayrenderer.so' steam

Has something recently changed with the way the overlay libraries are loaded on a 64-bit Linux machine?

kisak-valve commented 7 years ago

Steam preloads both the 32 bit variant and 64 bit variant of the overlay when starting a steam game. One works while the other harmlessly fails. This is not an indicator of a problem.

lowlyocean commented 7 years ago

I understand, thank you. I've removed the .steam directory and installed the latest .deb from steampowered.com. After installing, I launched CS:GO. I've attached the output of "lsof -p | grep .so" for the pids of the steam client as well as the Counter-Strike executable. The output of this command shows the shared libraries that are being accessed by each of those running processes, including their paths on the filesystem. Do you notice any combination of libraries that would cause the overlay to fail? Please let me know what else is needed- some game functionality relies on overlay to be working.

loaded_libraries_overlay_issue.txt

lowlyocean commented 7 years ago

@kisak-valve This is odd- I ran a trace on gameoverlayui and it references something called WinAppMain. Has the Linux overlay been built using Windows source code in latest update, explaining the segfault below?

daniel@daniel-desktop:~$ ltrace -f  /home/daniel/.local/share/Steam/ubuntu12_32/gameoverlayui
[pid 11357] __libc_start_main(0x56630550, 1, 0xffbd3204, 0x566307c0 <unfinished ...>
[pid 11357] dlopen("libtier0_s.so", 2)           = 0
[pid 11357] dlopen("libvstdlib_s.so", 2)         = 0
[pid 11357] dlopen("gameoverlayui.so", 2)        = 0
[pid 11357] dlsym(0, "WinAppMain")               = 0
[pid 11357] dlclose(0 <no return ...>
[pid 11357] --- SIGSEGV (Segmentation fault) ---
[pid 11357] +++ killed by SIGSEGV +++
daniel@daniel-desktop:~$

Edit: If I add $HOME/.local/share/Steam/ubuntu12_32 to /etc/ld.so.conf.d/steam.conf and run ldconfig, I get different output and seems to execute normally. However, I don't see the same output when launching CS:GO

lowlyocean commented 7 years ago

Are these versions of the system C/C++ components (latest from Ubuntu 16.04) compatible with Steam?

daniel@daniel-desktop:~$ dpkg -l libstdc++6:i386 libc6:i386
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name           Version      Architecture Description
+++-==============-============-============-=================================
ii  libc6:i386     2.23-0ubuntu i386         GNU C Library: Shared libraries
ii  libstdc++6:i38 6.2.0-3ubunt i386         GNU Standard C++ Library v3
lowlyocean commented 7 years ago

The overlay works for Rocket League, but not for Counter-Strike: Global Offensive

kisak-valve commented 4 years ago

Hello @lowlyocean, are you still experiencing this issue on an up to date system?

kisak-valve commented 4 years ago

Closing pending feedback.