ValveSoftware / steam-for-linux

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

Game overlay broken in non-steam games (invisible, blocks all input) #7012

Open buxel opened 4 years ago

buxel commented 4 years ago

I'm sorry if this is considered rude, but i also posted the issue to lutris/lutris because it's hard for me to tell what exactly causes the problem.

Your system information

Please describe your issue in as much detail as possible:

I added a non-steam game (lutris shortcut) and it starts as expected. I expected the overlay to open when pressing shift-tab. The game is "Totally reliable delivery service", running unity engine 2018.4.14f1 trough wine version lutris-5.5-2. What did happen, is that some kind of invisible overlay opened, which prevented any further input. The game/music kept running.

First, i was investigating, how lutris could interfere but after trying many suggestions from reddit/github/forums in vain, i took a closer look at steam itself.

It looks like it fails to load both, 32bit and 64bit, versions of gameoverlayrenderer.so. Full log here.

ERROR: ld.so: object '/home/buxel/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/buxel/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.

The logs also tell something about losing focus but I'm not sure what to make of that.

I understand that depending on the game one or the other might fail. But could having both fail result in the issue I'm having?. I assume, i accidently created a weird environment for steam, which breaks the overlay but I'm running out of clues where to look. gameoverlayrenderer.so is probably just the first lead.

I installed steam-native in order to get the gamepad working. The overlay didn't work before that either.

Steps for reproducing this issue:

  1. Install a game in Lutris (not sure if that matters)
  2. Create a desktop shortcut
  3. Add the shortcut to steam
  4. Start the game
  5. Open the overlay using shift-tab
Crono141 commented 2 years ago

I know I'm reviving an ancient issue, but I have this problem with all non-steam games. No non-steam game runs with an overlay. Running Manjaro also.

GameAction [AppID 2471487205, ActionID 5] : LaunchApp changed task to SiteLicenseSeatCheckout with ""
GameAction [AppID 2471487205, ActionID 5] : LaunchApp changed task to CreatingProcess with ""
GameAction [AppID 2471487205, ActionID 5] : LaunchApp waiting for user response to CreatingProcess ""
GameAction [AppID 2471487205, ActionID 5] : LaunchApp continues with user response "CreatingProcess"
/bin/sh\0-c\0/home/crono141/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=2471487205 -- "/home/crono141/Games/Master of Orion 2/start.sh"\0
Game process added : AppID 0 "/home/crono141/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=2471487205 -- "/home/crono141/Games/Master of Orion 2/start.sh"", ProcID 290909, IP 0.0.0.0:0
chdir /home/crono141/Games/
GameAction [AppID 2471487205, ActionID 5] : LaunchApp changed task to Completed with ""
ERROR: ld.so: object '/home/crono141/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.

(steam:288099): Gtk-WARNING **: 17:06:06.897: gtk_disable_setlocale() must be called before gtk_init()

(steam:288099): GLib-CRITICAL **: 17:06:06.897: unquote_string_inplace: assertion 'err == NULL || *err == NULL' failed
ERROR: ld.so: object '/home/crono141/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object '/home/crono141/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/crono141/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.

(steam:288099): Gtk-WARNING **: 17:06:06.976: gtk_disable_setlocale() must be called before gtk_init()

(steam:288099): GLib-CRITICAL **: 17:06:06.976: unquote_string_inplace: assertion 'err == NULL || *err == NULL' failed
pid 290912 != 290911, skipping destruction (fork without exec?)
ERROR: ld.so: object '/home/crono141/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/crono141/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/crono141/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
pid 290915 != 290911, skipping destruction (fork without exec?)
ERROR: ld.so: object '/home/crono141/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/crono141/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/crono141/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
pid 290926 != 290911, skipping destruction (fork without exec?)
ERROR: ld.so: object '/home/crono141/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/crono141/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/crono141/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
pid 290934 != 290911, skipping destruction (fork without exec?)
Running Master of Orion 2
ERROR: ld.so: object '/home/crono141/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/crono141/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
pid 290942 != 290941, skipping destruction (fork without exec?)
ERROR: ld.so: object '/home/crono141/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
Starting DOSBox
ERROR: ld.so: object '/home/crono141/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
DOSBox version 0.74
Copyright 2002-2010 DOSBox Team, published under GNU GPL.
---
ThreadGetProcessExitCode: no such process 290947
ThreadGetProcessExitCode: no such process 290943
ThreadGetProcessExitCode: no such process 290936
ThreadGetProcessExitCode: no such process 290935
ThreadGetProcessExitCode: no such process 290937
ThreadGetProcessExitCode: no such process 290929
ThreadGetProcessExitCode: no such process 290927
ThreadGetProcessExitCode: no such process 290928
ThreadGetProcessExitCode: no such process 290916
ThreadGetProcessExitCode: no such process 290918
ThreadGetProcessExitCode: no such process 290917
ThreadGetProcessExitCode: no such process 290913
CONFIG:Loading primary settings from config file dosboxMOO2.conf
CONFIG:Loading additional settings from config file dosboxMOO2_single.conf
MIXER:Got different values from SDL: freq 44100, blocksize 1024
ALSA:Can't subscribe to MIDI port (65:0) nor (17:0)
MIDI:Opened device:none
One joystick reported, initializing with 4axis
Using joystick Wacom Intuos S 2 Pad with 2 axes, 5 buttons and 0 hat(s)
DOSBox switched to max cycles, because of the setting: cycles=auto. If the game runs too fast try a fixed cycles amount in DOSBox's options.
Done.
Game process removed: AppID 0 "/home/crono141/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=2471487205 -- "/home/crono141/Games/Master of Orion 2/start.sh"", ProcID 290909 
ThreadGetProcessExitCode: no such process 290953
ThreadGetProcessExitCode: no such process 290941
ThreadGetProcessExitCode: no such process 290911
Uploaded AppInterfaceStats to Steam

(steam:288099): Gtk-WARNING **: 17:06:19.939: gtk_disable_setlocale() must be called before gtk_init()

(steam:288099): GLib-CRITICAL **: 17:06:19.939: unquote_string_inplace: assertion 'err == NULL || *err == NULL' failed

So I get the same behavior, where neither 32 or 64 bit version of gameoverlayrenderer.so loads. I have a handful of non-steam games and they all behave this way. I also have this problem on multiple systems, even fresh installs.

EDIT: Perhaps my bug is different. I was able to fix the overlay in DOSBOX games by applying OpenGL as the renderer in the dosbox.conf. The other non-steam games I'm having issues with are an RPGMaker game which may or may not be using opengl as renderer. They also aren't running full screen.

ipr commented 2 years ago

Overlay crashes when making a screenshot after upgrading from Mesa 21.3.5 to Mesa 21.3.7 (kernel 5.16.12). After it crashes input (from gamepad) to game is blocked.

[53707.363700] gameoverlayui[103053]: segfault at 0 ip 00000000f10ea058 sp 00000000ffe69190 error 4 in vgui2_s.so[f10b0000+e8000] [53707.363722] Code: ff 89 86 f0 04 00 00 85 c0 74 1f 8b 00 8b 68 10 e8 cd 0f fd ff 8b 86 f0 04 00 00 dd 5c 24 04 89 04 24 ff d5 8b 86 f0 04 00 00 <8b> 10 c7 44 24 0c 01 00 00 00 c7 44 24 08 01 00 00 00 89 7c 24 04

decodecode script (in kernel/scripts) can decode that into assembly instructions.