Issues Running Steam Games & Sanity Check

121 views
Skip to first unread message

Michael Lustfield

unread,
Apr 30, 2022, 2:03:43 AM4/30/22
to VirtualGL User Discussion/Support
[Before posting this, everything but waiting for shaders to process seemed to start working. However, things still seem wrong (described below, after "sigh") and I'm not sure where my mistake is.]

I'm quite new to VirtualGL and not entirely sure what information is needed for a support request like this so I apologize for information overload (and anything required that I'm missing).

The device I'm attempting to use as a VirtualGL server is an incredibly loud laptop (Blade Pro 17 [Fall 2019]) with an RTX-2080 Max-Q video card, which is apparently capable of producing hearing loss.

I tried to follow the steps outlined here:

On a fresh Debian 11 install (with no graphical/desktop stuff) ...

# dpkg --add-architecture i386
# apt-get update
# dpkg -i virtualgl_3.0_amd64.deb virtualgl32_3.0_amd64.deb
# apt-get install -f
# apt-get install openbox lightdm mesa-utils vulkan-tools steam
# apt install -t bullseye-backports xserver-xorg-video-nvidia nvidia-xconfig nvidia-driver-libs:i386
# reboot  # probably not needed, but it felt "safe"
# service lightdm stop
# nvidia-xconfig --query-gpu-info
  Number of GPUs: 1
  GPU #0:
    Name      : GeForce RTX 2080 with Max-Q Design
    UUID      : GPU-813ea29e-3cba-cc46-de3c-ce6527a5c265
    PCI BusID : PCI:1:0:0

    Number of Display Devices: 0
# nvidia-detect
  Detected NVIDIA GPUs:
  01:00.0 VGA compatible controller [0300]: NVIDIA Corporation TU104M [GeForce RTX 2080 Mobile] [10de:1e90] (rev a1)
# nvidia-xconfig -a --allow-empty-initial-configuration --use-display-device=None --busid PCI:1:0:0 --virtual=1920x1200
# vim /etc/X11/xorg.conf
    ^ Added: Option "HardDPMS" "false"
    ^ Attached the generated xorg.conf to this post
# reboot

# service lightdm stop
# /opt/VirtualGL/bin/vglserver_config
    ^ Option 1: Configure server for use with VirtualGL (GLX + EGL back ends)
    ^ From here, I selected defaults (Y) for all options presented

The output from this:
... Creating vglusers group ...
... Granting read permission to /etc/opt/VirtualGL/ for vglusers group ...
... Creating /etc/modprobe.d/virtualgl.conf to set requested permissions for
    /dev/nvidia* ...
... Granting write permission to /dev/nvidia-caps /dev/nvidia-modeset /dev/nvidia0 /dev/nvidiactl for vglusers group ...
... Granting write permission to /dev/dri/card0 for vglusers group ...
... Granting write permission to /dev/dri/renderD128 for vglusers group ...
... Modifying /etc/X11/xorg.conf.d/99-virtualgl-dri to enable DRI permissions
    for vglusers group ...
... Modifying /etc/X11/xorg.conf to enable DRI permissions
    for vglusers group ...
... Adding greeter-setup-script=vglgenkey to /etc/lightdm/lightdm.conf ...

# usermod -a -G vglusers michael
# usermod -a -G vglusers root

michael@toast:~$ xauth merge /etc/opt/VirtualGL/vgl_xauth_key
michael@toast:~$ xdpyinfo -display :0 >xdpyinfo.txt
michael@toast:~$ /opt/VirtualGL/bin/glxinfo -display :0 -c >glxinfo.txt
michael@toast:~$ /opt/VirtualGL/bin/eglinfo /dev/dri/card0 >eglinfo.txt

Both of these commands finished without error. The only parts I really understood from this output was that glxinfo shows a "P" in the last column for all configs (because the documentation says to look for it) and:
    name of display: :0
    display: :0  screen: 0
    direct rendering: Yes
    server glx vendor string: NVIDIA Corporation

michael@toast:~$ grep -E '(X11Forwarding|UseLogin)' /etc/ssh/sshd_config
    X11Forwarding yes
    UseLogin no

So ... at this point, it seems the server should be set up and running correctly.

From my client:
michael@chill:~$ vglconnect -s 10.41.2.202
    VirtualGL Client 64-bit v3.0 (Build 20211119)
    vglclient is already running on this X display and accepting unencrypted
       connections on port 4242.

    Making preliminary SSH connection to find a free port on the server ...
    Making final SSH connection ...

michael@toast:~$ vglrun /opt/VirtualGL/bin/glxspheres64
    Polygons in scene: 62464 (61 spheres * 1024 polys/spheres)
    GLX FB config ID of window: 0xad (8/8/8/0)
    Visual ID of window: 0x24
    Context is Direct
    OpenGL Renderer: GeForce RTX 2080 with Max-Q Design/PCIe/SSE2
    983.932791 frames/sec - 1098.068994 Mpixels/sec
    993.987875 frames/sec - 1109.290469 Mpixels/sec
    998.617510 frames/sec - 1114.457141 Mpixels/sec
    1000.632126 frames/sec - 1116.705453 Mpixels/sec
    1000.039000 frames/sec - 1116.043524 Mpixels/sec
michael@toast:~$ vglrun /opt/VirtualGL/bin/glxspheres
    Polygons in scene: 62464 (61 spheres * 1024 polys/spheres)
    GLX FB config ID of window: 0xad (8/8/8/0)
    Visual ID of window: 0x24
    Context is Direct
    OpenGL Renderer: GeForce RTX 2080 with Max-Q Design/PCIe/SSE2
    1022.527050 frames/sec - 1141.140187 Mpixels/sec
    990.543120 frames/sec - 1105.446122 Mpixels/sec
    959.934664 frames/sec - 1071.287085 Mpixels/sec

So ... I'm ready to run steam, yeah? I ran into issues and came across this issue:

michael@toast:~$ export VGL_SUBSAMP=4x
michael@toast:~$ cd ~/.steam/steam
michael@toast:~/.steam/steam$ vglrun -c xv -fps 60 ./steam.sh

Attempting to launch Valheim from steam offers "Play Valheim" and "Play Valheim Using OpenGL". I tried with both; the attached log shows the latter.

This hangs at "Processing Vulkan shaders..."

*sigh* Of course /this/ time I select Skip and it actually works. Every other time I tried this, the game just crashed and console log stopped until further interaction with the steam client.

I'm still not convinced I actually have things set up correctly. The shaders bit hanging and the following error makes me think I'm doing something wrong.
    ERROR: ld.so: object '/home/michael/.steam/debian-installation/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.

I noticed that running vulkaninfo right after vglconnect seems to mention mesa:
michael@toast:~$ vulkaninfo --summary
    ERROR: [Loader Message] Code 0 : /usr/lib/i386-linux-gnu/libvulkan_radeon.so: wrong ELF class: ELFCLASS32
    ERROR: [Loader Message] Code 0 : /usr/lib/i386-linux-gnu/libvulkan_lvp.so: wrong ELF class: ELFCLASS32
    ERROR: [Loader Message] Code 0 : /usr/lib/i386-linux-gnu/libvulkan_intel.so: wrong ELF class: ELFCLASS32
    MESA-INTEL: warning: Performance support disabled, consider sysctl dev.i915.perf_stream_paranoid=0

    ERROR at /build/vulkan-tools-oFB8Ns/vulkan-tools-1.2.162.0+dfsg1/vulkaninfo/vulkaninfo.h:248:vkGetPhysicalDeviceSurfaceFormats2KHR failed with ERROR_INITIALIZATION_FAILED

I also see a similar error from the steam log:
    GameAction [AppID 892970, ActionID 1] : LaunchApp waiting for user response to CreatingProcess ""
    GameAction [AppID 892970, ActionID 1] : LaunchApp continues with user response "CreatingProcess"
 /bin/sh\0-c\0LD_PRELOAD="${LD_PRELOAD#libdlfaker.so:libvglfaker.so:}:libdlfaker.so:libvglfaker.so" /home/michael/.steam/steam/ubuntu12_32/reaper SteamLaunch AppId=892970 -- '/home/michael/.steam/debian-installation/steamapps/common/Valheim/valheim.x86_64' -force-glcore\0
    Game process added : AppID 892970 "LD_PRELOAD="${LD_PRELOAD#libdlfaker.so:libvglfaker.so:}:libdlfaker.so:libvglfaker.so" /home/michael/.steam/steam/ubuntu12_32/reaper SteamLaunch AppId=892970 -- '/home/michael/.steam/debian-installation/steamapps/common/Valheim/valheim.x86_64' -force-glcore", ProcID 1585, IP 0.0.0.0:0
    chdir /home/michael/.steam/debian-installation/steamapps/common/Valheim
    GameAction [AppID 892970, ActionID 1] : LaunchApp changed task to WaitingGameWindow with ""
    ERROR: ld.so: object '/home/michael/.steam/debian-installation/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
    ERROR: ld.so: object '/home/michael/.steam/debian-installation/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
    ERROR: ld.so: object '/home/michael/.steam/debian-installation/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.

If I 'su -' and run the same command, I see ... a lot, including nvidia instead of mesa. I attached this log as well.

and ...
#  apt policy xserver-xorg-video-nvidia nvidia-xconfig nvidia-driver-libs:i386 | grep -B1 Installed
    xserver-xorg-video-nvidia:
      Installed: 470.103.01-1~bpo11+1
    nvidia-xconfig:
      Installed: 460.32.03-1
    nvidia-driver-libs:i386:
      Installed: 470.103.01-1~bpo11+1

Again, I apologize if this is an excessive amount of information, but I'm feeling like an idiot right now and want to share as much as possible. If it would help, I'm perfectly happy to start over from another fresh install. I can use any recommended OS, although I had many issues with an Ubuntu install on this hardware.
xorg.conf
glxinfo.txt
vulkaninfo.txt
xdpyinfo.txt
steamlog.txt
eglinfo.txt

DRC

unread,
Apr 30, 2022, 10:56:27 AM4/30/22
to virtual...@googlegroups.com
    ERROR: ld.so: object '/home/michael/.steam/debian-installation/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.

This error message is suspicious. It suggests that the 32-bit version of VGL is not working. Can you try 'vglrun /opt/VirtualGL/bin/glxspheres' (instead of glxspheres64) and see if you encounter any errors? Also try to run 'ldd /home/michael/.steam/debian-installation/ubuntu12_32/gameoverlayrenderer.so' and see if it is missing any dependencies.

Also, VirtualGL unfortunately doesn’t support Vulkan. If the game’s OpenGL mode uses 100% OpenGL, then it may work with VirtualGL, but if it is mixing Vulkan and OpenGL, it probably won’t work. :(

Also, you do need to make the tweak to LD_PRELOAD in the game settings as described here: https://github.com/ValveSoftware/steam-for-linux/issues/4630.

On Apr 30, 2022, at 1:03 AM, Michael Lustfield <mic...@lustfield.net> wrote:


--
You received this message because you are subscribed to the Google Groups "VirtualGL User Discussion/Support" group.
To unsubscribe from this group and stop receiving emails from it, send an email to virtualgl-use...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/virtualgl-users/48ba534f-c3f0-4b27-8074-65aa05390177n%40googlegroups.com.
xorg.conf
eglinfo.txt
glxinfo.txt
vulkaninfo.txt
xdpyinfo.txt
steamlog.txt

Michael Lustfield

unread,
May 1, 2022, 9:49:18 PM5/1/22
to VirtualGL User Discussion/Support
I ended up doing a fresh install just to make sure the process I claimed to follow was absolutely the process I actually followed. The end result is exactly what I shared. This time around, I paid special attention to order because of the note mentioned about mesa and linking.

On Saturday, April 30, 2022 at 9:56:27 AM UTC-5 DRC wrote:
    ERROR: ld.so: object '/home/michael/.steam/debian-installation/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.

This error message is suspicious. It suggests that the 32-bit version of VGL is not working. Can you try 'vglrun /opt/VirtualGL/bin/glxspheres' (instead of glxspheres64) and see if you encounter any errors? Also try to run 'ldd /home/michael/.steam/debian-installation/ubuntu12_32/gameoverlayrenderer.so' and see if it is missing any dependencies.

I tried both glxspheres and glxspheres64 and both worked without errors.

michael@toast:~$ ldd /home/michael/.steam/debian-installation/ubuntu12_32/gameoverlayrenderer.so
    linux-gate.so.1 (0xf7f21000)
    libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf7e97000)
    libstdc++.so.6 => /lib/i386-linux-gnu/libstdc++.so.6 (0xf7ccc000)
    libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf7caa000)
    librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xf7c9f000)
    /lib/ld-linux.so.2 (0xf7f23000)
    libGL.so.1 => /lib/i386-linux-gnu/libGL.so.1 (0xf7c32000)
    libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf7b2e000)
    libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf7945000)
    libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf7926000)
    libGLdispatch.so.0 => /lib/i386-linux-gnu/libGLdispatch.so.0 (0xf78a9000)
    libGLX.so.0 => /lib/i386-linux-gnu/libGLX.so.0 (0xf786d000)
    libX11.so.6 => /lib/i386-linux-gnu/libX11.so.6 (0xf7719000)
    libxcb.so.1 => /lib/i386-linux-gnu/libxcb.so.1 (0xf76eb000)
    libXau.so.6 => /lib/i386-linux-gnu/libXau.so.6 (0xf76e6000)
    libXdmcp.so.6 => /lib/i386-linux-gnu/libXdmcp.so.6 (0xf76df000)
    libbsd.so.0 => /lib/i386-linux-gnu/libbsd.so.0 (0xf76c7000)
    libmd.so.0 => /lib/i386-linux-gnu/libmd.so.0 (0xf76b8000)

I noticed another ELFCLASS32 error in vulkaninfo.txt, so I ran ldd on those three files and didn't see any missing dependencies.
 
Also, VirtualGL unfortunately doesn’t support Vulkan. If the game’s OpenGL mode uses 100% OpenGL, then it may work with VirtualGL, but if it is mixing Vulkan and OpenGL, it probably won’t work. :(

This seems to make sense. Despite the shaders bit "freezing," clicking "Skip" proceeds with loading and then everything else seems to work perfectly fine.
 
Also, you do need to make the tweak to LD_PRELOAD in the game settings as described here: https://github.com/ValveSoftware/steam-for-linux/issues/4630.

I followed this on a different game and this game works perfectly fine without any prompts, skips, or anything, but I still see the same error produced.

GameAction [AppID 1510, ActionID 1] : LaunchApp continues with user response "CreatingProcess"
/bin/sh\0-c\0LD_PRELOAD="${LD_PRELOAD#libdlfaker.so:libvglfaker.so:}:libdlfaker.so:libvglfaker.so" /home/michael/.steam/steam/ubuntu12_32/reaper SteamLaunch AppId=1510 -- '/home/michael/.steam/debian-installation/steamapps/common/Uplink/run_steam.sh'\0
Game process added : AppID 1510 "LD_PRELOAD="${LD_PRELOAD#libdlfaker.so:libvglfaker.so:}:libdlfaker.so:libvglfaker.so" /home/michael/.steam/steam/ubuntu12_32/reaper SteamLaunch AppId=1510 -- '/home/michael/.steam/debian-installation/steamapps/common/Uplink/run_steam.sh'", ProcID 23861, IP 0.0.0.0:0
chdir /home/michael/.steam/debian-installation/steamapps/common/Uplink

ERROR: ld.so: object '/home/michael/.steam/debian-installation/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
GameAction [AppID 1510, ActionID 1] : LaunchApp changed task to WaitingGameWindow with ""

ERROR: ld.so: object '/home/michael/.steam/debian-installation/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object '/home/michael/.steam/debian-installation/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
GameAction [AppID 1510, ActionID 1] : LaunchApp changed task to Completed with ""

ERROR: ld.so: object '/home/michael/.steam/debian-installation/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.

I'm wondering if this is "just some steam thing" that I should just ignore, perhaps?

DRC

unread,
May 2, 2022, 12:30:35 PM5/2/22
to virtual...@googlegroups.com
On 5/1/22 8:49 PM, Michael Lustfield wrote:
Also, you do need to make the tweak to LD_PRELOAD in the game settings as described here: https://github.com/ValveSoftware/steam-for-linux/issues/4630.

I followed this on a different game and this game works perfectly fine without any prompts, skips, or anything, but I still see the same error produced.

GameAction [AppID 1510, ActionID 1] : LaunchApp continues with user response "CreatingProcess"
/bin/sh\0-c\0LD_PRELOAD="${LD_PRELOAD#libdlfaker.so:libvglfaker.so:}:libdlfaker.so:libvglfaker.so" /home/michael/.steam/steam/ubuntu12_32/reaper SteamLaunch AppId=1510 -- '/home/michael/.steam/debian-installation/steamapps/common/Uplink/run_steam.sh'\0
Game process added : AppID 1510 "LD_PRELOAD="${LD_PRELOAD#libdlfaker.so:libvglfaker.so:}:libdlfaker.so:libvglfaker.so" /home/michael/.steam/steam/ubuntu12_32/reaper SteamLaunch AppId=1510 -- '/home/michael/.steam/debian-installation/steamapps/common/Uplink/run_steam.sh'", ProcID 23861, IP 0.0.0.0:0
chdir /home/michael/.steam/debian-installation/steamapps/common/Uplink
ERROR: ld.so: object '/home/michael/.steam/debian-installation/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
GameAction [AppID 1510, ActionID 1] : LaunchApp changed task to WaitingGameWindow with ""
ERROR: ld.so: object '/home/michael/.steam/debian-installation/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object '/home/michael/.steam/debian-installation/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
GameAction [AppID 1510, ActionID 1] : LaunchApp changed task to Completed with ""
ERROR: ld.so: object '/home/michael/.steam/debian-installation/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.

I'm wondering if this is "just some steam thing" that I should just ignore, perhaps?

Yeah, Steam traditionally was 32-bit only, but it appears that it now has some 32-bit and some 64-bit components.  It might be executing a script in order to load the games, and the script might invoke both 32-bit and 64-bit programs.  That would explain the "wrong ELF class" errors and also why the games work despite those errors.  If you are able to make the games work, then I wouldn't worry about the errors.


Michael Lustfield

unread,
May 2, 2022, 11:48:56 PM5/2/22
to VirtualGL User Discussion/Support
This is excellent. Thanks for taking the time to look over this and to respond further on the github issue! :)
Reply all
Reply to author
Forward
0 new messages