ValveSoftware / steam-for-linux

Issue tracking for the Steam for Linux beta client
4.19k stars 174 forks source link

64 bit steam overlay not working #5822

Open SolitudeSF opened 5 years ago

SolitudeSF commented 5 years ago
ERROR: ld.so: object '/home/solitude/.data/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.

This results in absence of overlay in following titles. Doesn't occur on every game, but occurs consistently. Also applies for SteamPlay games running with proton. For example this happens in Dead Cells, Tekken 7, Dota 2, Warframe. Doesn't happen in CS:GO, Broforce, Aragami, but the last two are unity games, so they could be a special case. Steam Hardware Report

kisak-valve commented 5 years ago

Hello @SolitudeSF, Steam LD_PRELOADS a 32 bit and 64 bit variant of the steam overlay when starting any game. One silently succeeds while the other harmlessly fails. This message is a red herring and the issue is elsewhere.

Please copy your system information from steam (Steam -> Help -> System Information) and put it in a gist, then include a link to the gist in this issue report.

SolitudeSF commented 5 years ago

https://gist.github.com/SolitudeSF/5c4c7bd1f693ba727821c354f10a861d

SolitudeSF commented 5 years ago

also, it doesnt work only on steam games. 64-bit nonsteam games launched from steam have the overlay.

terroreek commented 5 years ago

I am also having this issue. When I try to play games like Civilization 6, Doom, Stellaris, For the King, Bomber Crew, steam overlay doesn't work. However when I play CS:GO the overlay works fine. Shift+Tab does nothing and the FPS counter is also missing from the game when play.

https://gist.github.com/terroreek/9836bcc26ab5f7bdaff88e41ad4df19a

terroreek commented 5 years ago

Ok, I think you can ignore my bug, it looks like the overlay does work for the other games as long I don't try to play civ 6 before it. Playing Civ 6 breaks the overlay.

sheepdestroyer commented 5 years ago

Same problem here ; fedora 30 The problem does not exist when using flathub's steam. Only with rpmfusion's rpm

Everything works beside the overlay

Super Meat Boy: Installed in '/home/sheepdestroyer/.local/share/Steam/steamapps/common/Super Meat Boy'.
ERROR: ld.so: object '/home/sheepdestroyer/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
Super Meat Boy: Using amd64 version.
ERROR: ld.so: object '/home/sheepdestroyer/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.

System info :

Computer Information:
    Manufacturer:  Unknown
    Model:  Unknown
    Form Factor: Laptop
    No Touch Input Detected

Processor Information:
    CPU Vendor:  GenuineIntel
    CPU Brand:         Intel(R) Core(TM) i7-3520M CPU @ 2.90GHz
    CPU Family:  0x6
    CPU Model:  0x3a
    CPU Stepping:  0x9
    CPU Type:  0x0
    Speed:  3600 Mhz
    4 logical processors
    2 physical processors
    HyperThreading:  Supported
    FCMOV:  Supported
    SSE2:  Supported
    SSE3:  Supported
    SSSE3:  Supported
    SSE4a:  Unsupported
    SSE41:  Supported
    SSE42:  Supported
    AES:  Supported
    AVX:  Supported
    CMPXCHG16B:  Supported
    LAHF/SAHF:  Supported
    PrefetchW:  Unsupported

Operating System Version:
    "Fedora release 30 (Thirty)" (64 bit)
    Kernel Name:  Linux
    Kernel Version:  5.0.11-300.fc30.x86_64
    X Server Vendor:  Fedora Project
    X Server Release:  12004000
    X Window Manager:  GNOME Shell
    Steam Runtime Version:  <Runtime disabled>

Video Card:
    Driver:  Intel Open Source Technology Center Mesa DRI Intel(R) Ivybridge Mobile 
    Driver Version:  3.0 Mesa 19.0.3 (git-f163900f7c)
    OpenGL Version: 3.0
    Desktop Color Depth: 24 bits per pixel
    Monitor Refresh Rate: 60 Hz
    VendorID:  0x8086
    DeviceID:  0x166
    Revision Not Detected
    Number of Monitors:  2
    Number of Logical Video Cards:  1
    Primary Display Resolution:  1920 x 1080
    Desktop Resolution: 3840 x 1080
    Primary Display Size: 23.62" x 13.39" (27.13" diag)
                                            60.0cm x 34.0cm (68.9cm diag)
    Primary VRAM Not Detected

Sound card:
    Audio device: Realtek ALC269VC

Memory:
    RAM:  15851 Mb

Miscellaneous:
    UI Language:  English
    LANG:  en_US.UTF-8
    Total Hard Disk Space Available:  403043 Mb
    Largest Free Hard Disk Block:  21993 Mb
    VR Headset: None detected

Recent Failure Reports:
dreamer commented 5 years ago

@sheepdestroyer I just tested it using Fedora 29, using steam installed from rpmfusion (not flatpak) and Steam Overlay works while running Super Meat Boy.

I think this is your problem: Steam Runtime Version: <Runtime disabled>

[edit] my Steam Runtime version is jenkins-steam-runtime-beta-release_0.20190320.2

sheepdestroyer commented 5 years ago

Yes, I was running with STEAM_RUNTIME=0 My runtime in Fedora 30 when not running with this trick is also "jenkins-steam-runtime-beta-release_0.20190320.2".

Either way, the overlay is not working in both cases. I think I have a library problem as it works with flatpack...

dreamer commented 5 years ago

I am also using Intel integrated GPU, so am not sure what's the difference besides newer Fedora version and newer Mesa (I am using 18.3.6). Did you compile Mesa yourself? It would explain the difference between flatpak and rpm.

sheepdestroyer commented 5 years ago

Yes I just compiled mesa, but I have had the exact same problem with stock mesa and on fedora 29

Unaccounted4 commented 5 years ago

I'm having this issue in Solus, as well. However, if I use the Linux System Integration application, which comes included, and set it to use the native libraries the overlay works. I just don't like using it since it breaks some proton games.

https://gist.github.com/Unaccounted4/09729c0034599856a9c083311a779c66

luziferius commented 4 years ago

I’m affected by this, too. It seems that it is related to the used graphics API.

I tested some games:

Overlay not working:

Overlay working fine (the FPS meter shows up):

sheepdestroyer commented 4 years ago

I want to report that my previous overlay problem was caused by the driconf performance option "mesa_no_error" set to true in ~/.drirc This explains why I had the behavior on different versions of mesa but not with flatpak

I just confirmed the bug still exists on Fedora 31 with stock mesa 19.2.2 : Overlay working great with default setting "mesa_no_error" set to false Overlay NOT working with optimisation "mesa_no_error" set to true

If I am not mistaken this mesa optimisation why developed by Valve. Ideally I would love to have perf + Overlay ;) I opened a bug specifically for this issue : https://github.com/ValveSoftware/steam-for-linux/issues/6691

kisak-valve commented 3 years ago

Besides @sheepdestroyer's issue which is being tracked at #6691, is anyone still experiencing this issue with an up to date system and the Steam runtime enabled?

Unaccounted4 commented 3 years ago

I'm not using Solus anymore but it has been working on KDE Neon with the default runtime settings.

Except for a few odd games like Jedi: Fallen Order and Jumpala.

kisak-valve commented 3 years ago

Hello @Unaccounted4, Jedi:Fallen Order looks like it would be affected by https://github.com/ValveSoftware/Proton/issues/4009. Please open a new issue report to track the issue you encountered with Jumpala.

luziferius commented 3 years ago

I still have the same situation as outlined in Nov 2019

Re-tested using Borderlands: The Pre-Sequel The Overlay appears, if I select the Steam Linux Runtime, but then crashes later when trying to enter the main menu with this helpful message. Screenshot_20210306_171440 But that’s unrelated to this issue, but portraits why I can’t use that option. (I think that crash is related to network access, as it crashes at a location where it normally connects with the multiplayer servers.)

Back to this issue: The overlay works for titles using Vulkan API to render. This includes native titles, like The Talos Principle and any title rendering via DXVK. I tried two Windows-only titles running via Proton, and the overlay works in both.

It works for titles rendering OpenGL if and only if the Steam Linux Runtime compatibility tool is enabled.

kisak-valve commented 3 years ago

Hello @luziferius, please copy your system information from Steam (Steam -> Help -> System Information) and put it in a gist, then include a link to the gist in this issue report.

luziferius commented 3 years ago

There it is: https://gist.github.com/luziferius/3f4314c2cefb52c27b19b8e1f1a51296

There is something fishy going with the architecture seletion…

i386 applications try to load x86_64 libraries

  "architectures" : {
    "i386-linux-gnu" : {
[…]
"messages" : "ERROR: [Loader Message] Code 0 : /usr/lib/x86_64-linux-gnu/libvulkan_intel.so: wrong ELF class: ELFCLASS64\nERROR: [Loader Message] Code 0 : /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so: wrong ELF class: ELFCLASS64\nERROR: [Loader Message] Code 0 : /home/thomas/.steam/Steam/ubuntu12_64/steamoverlayvulkanlayer.so: wrong ELF class: ELFCLASS64\n",
[…]
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/nvidia_drv_video.so
[…]

While x86_64 applications try to load i386 libraries

    "x86_64-linux-gnu" : {
[…]
"messages" : "ERROR: [Loader Message] Code 0 : /usr/lib/i386-linux-gnu/libvulkan_radeon.so: wrong ELF class: ELFCLASS32
[…]
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/nvidia_drv_video.so
[…]

I suspect that it simply loads the wrong steam overlay shared library because of that, causing all OpenGL titles to not render the overlay.