Skip to content

libgamemode.so unavailable inside pressure-vessel container, game process cannot self-register with GameMode #814

@smithyyang

Description

@smithyyang

Environment

  • OS: Arch Linux
  • Kernel: 6.19.11-zen1-1-zen
  • GPU: NVIDIA (driver 595.58.03)
  • umu-launcher: 1.4.0 (system) / 1.4.0 (Faugus bundled)
  • GE-Proton: 10-34
  • steamrt3 runtime
  • GameMode: active (gamemoded -s confirms)

Problem

When launching a game through pressure-vessel (via umu-launcher, Steam, or directly), the following error appears repeatedly in logs:

gamemodeauto: dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory

GameMode IS active on the host — gamemoded -s returns gamemode is active — but game processes inside the container cannot load libgamemode.so, so they cannot self-register with the GameMode daemon. As a result, per-process optimizations such as renice and CPU pinning do not apply to the game process.

Reproduction

The issue is reproducible regardless of launcher. Even when bypassing all third-party launchers and launching directly:

PROTONPATH=GE-Proton10-34 WINEPREFIX=~/.local/share/wineprefixes/test gamemoderun umu-run /path/to/game.exe

The error still appears, confirming this is not a launcher configuration issue.

What was attempted

  1. LD_PRELOAD=/usr/lib/libgamemodeauto.so — no effect inside container
  2. PRESSURE_VESSEL_FILESYSTEMS_RW=/usr/lib/libgamemode.so.0.0.0 — rejected:

    pressure-vessel-wrap: W: Not sharing path because "/usr" is reserved by the container framework

  3. Copying libgamemode.so to pressure-vessel overrides directory — no effect
  4. LD_PRELOAD=/usr/lib/libgamemodeauto.so:/usr/lib/libgamemode.so (via Faugus) — dlopen failed disappears, but game process still not registered with GameMode daemon

Tested launchers

Launcher dlopen failed GameMode active Process registered
Faugus + LD_PRELOAD workaround ✅ gone
Steam + gamemoderun ❌ present
Direct umu-run + gamemoderun ❌ present

Expected behavior

Game processes inside the pressure-vessel container should be able to load libgamemode.so and self-register with the GameMode daemon, similar to how native Linux games work.

Related

some logs:


 PROTONPATH=GE-Proton10-34 WINEPREFIX=~/Games/Faugus/wutheringwaves gamemoderun umu-run \
           ~/Games/WutheringWaves/Client/Binaries/Win64/Client-Win64-Shipping.exe
INFO: umu-launcher version 1.3.0 (3.14.3 (main, Feb 13 2026, 15:31:44) [GCC 15.2.1 20260209])
INFO: No GAMEID set, using umu-default
INFO: steamrt3 is up to date
gamemodeauto: dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory
gamemodeauto: dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory
gamemodeauto: dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory
ProtonFixes[107373] INFO: Running protonfixes on "GE-Proton10-34", build at 2026-03-23 03:55:11+00:00.
ProtonFixes[107373] INFO: Running checks
ProtonFixes[107373] INFO: All checks successful
ProtonFixes[107373] WARN: Game title not found in CSV
ProtonFixes[107373] INFO: Non-steam game UNKNOWN (umu-default)
ProtonFixes[107373] INFO: No store specified, using UMU database
ProtonFixes[107373] INFO: Using early stage global defaults for UNKNOWN (umu-default)
ProtonFixes[107373] INFO: Non-steam game UNKNOWN (umu-default)
ProtonFixes[107373] INFO: No store specified, using UMU database
ProtonFixes[107373] INFO: No early stage global protonfix found for UNKNOWN (umu-default)
ProtonFixes[107373] INFO: Running protonfixes on "GE-Proton10-34", build at 2026-03-23 03:55:11+00:00.
ProtonFixes[107373] INFO: Running checks
ProtonFixes[107373] INFO: All checks successful
ProtonFixes[107373] INFO: Non-steam game UNKNOWN (umu-default)
ProtonFixes[107373] INFO: No store specified, using UMU database
ProtonFixes[107373] INFO: Using main stage global defaults for UNKNOWN (umu-default)
ProtonFixes[107373] INFO: Non-steam game UNKNOWN (umu-default)
ProtonFixes[107373] INFO: No store specified, using UMU database
ProtonFixes[107373] INFO: No main stage global protonfix found for UNKNOWN (umu-default)
gamemodeauto: dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory
gamemodeauto: dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory
Proton: /home/youngshine/Games/WutheringWaves/Client/Binaries/Win64/Client-Win64-Shipping.exe
Proton: Executable a unix path, launching with /unix option.
gamemodeauto: dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory
gamemodeauto: dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory
gamemodeauto: dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory
gamemodeauto: dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory
fsync: up and running.
gamemodeauto: dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory
gamemodeauto: dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory
gamemodeauto: dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory
gamemodeauto: dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory
gamemodeauto: dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory
gamemodeauto: dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory
gamemodeauto: dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory
gamemodeauto: dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory
gamemodeauto: dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory
gamemodeauto: dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory
gamemodeauto: dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory
gamemodeauto: dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory
^CTraceback (most recent call last):
  File "/usr/bin/umu-run", line 8, in <module>
    sys.exit(main())
             ~~~~^^
  File "/usr/lib/python3.14/site-packages/umu/__main__.py", line 90, in main
    return umu_run(args)
  File "/usr/lib/python3.14/site-packages/umu/umu_run.py", line 910, in umu_run
    return run_command(command)
  File "/usr/lib/python3.14/site-packages/umu/umu_run.py", line 666, in run_command
    ret = run_in_steammode(proc) if is_steammode else proc.wait()
                                                      ~~~~~~~~~^^
  File "/usr/lib/python3.14/subprocess.py", line 1278, in wait
    return self._wait(timeout=timeout)
           ~~~~~~~~~~^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.14/subprocess.py", line 2083, in _wait
    (pid, sts) = self._try_wait(0)
                 ~~~~~~~~~~~~~~^^^
  File "/usr/lib/python3.14/subprocess.py", line 2041, in _try_wait
    (pid, sts) = os.waitpid(self.pid, wait_flags)
                 ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
KeyboardInterrupt

log of steam:

chdir "/home/youngshine/Games/WutheringWaves/Client/Binaries/Win64/"
ERROR: ld.so: object '/home/youngshine/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/youngshine/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/youngshine/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
Game Recording - would start recording game 17697682656126304256, but recording for this game is disabled
Adding process 101893 for gameID 17697682656126304256
ERROR: ld.so: object '/home/youngshine/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
gamemodeauto: 
ERROR: ld.so: object '/home/youngshine/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
gamemodeauto: 
ERROR: ld.so: object '/home/youngshine/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/youngshine/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
Adding process 101954 for gameID 17697682656126304256
Adding process 101955 for gameID 17697682656126304256
gamemodeauto: dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory
gamemodeauto: dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory
ProtonFixes[102045] INFO: Running protonfixes on "GE-Proton10-34", build at 2026-03-23 03:55:11+00:00.
ProtonFixes[102045] INFO: Running checks
ProtonFixes[102045] INFO: All checks successful
ProtonFixes[102045] INFO: Using early stage global defaults for UNKNOWN (0)
ProtonFixes[102045] INFO: No early stage global protonfix found for UNKNOWN (0)
Adding process 102045 for gameID 17697682656126304256
ProtonFixes[102045] INFO: Running protonfixes on "GE-Proton10-34", build at 2026-03-23 03:55:11+00:00.
ProtonFixes[102045] INFO: Running checks
ProtonFixes[102045] INFO: All checks successful
ProtonFixes[102045] INFO: Using main stage global defaults for UNKNOWN (0)
ProtonFixes[102045] INFO: No main stage global protonfix found for UNKNOWN (0)
Adding process 102046 for gameID 17697682656126304256
gamemodeauto: dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory
gamemodeauto: dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory
gamemodeauto: dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory
gamemodeauto: dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory
gamemodeauto: dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory
gamemodeauto: dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory
fsync: up and running.
Adding process 102051 for gameID 17697682656126304256
Adding process 102052 for gameID 17697682656126304256
gamemodeauto: dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory
gamemodeauto: dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory
Adding process 102053 for gameID 17697682656126304256
Adding process 102056 for gameID 17697682656126304256
gamemodeauto: dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory
gamemodeauto: dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory
Adding process 102058 for gameID 17697682656126304256
Adding process 102061 for gameID 17697682656126304256
gamemodeauto: dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory
Adding process 102070 for gameID 17697682656126304256
gamemodeauto: dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory
Adding process 102075 for gameID 17697682656126304256
Adding process 102082 for gameID 17697682656126304256
gamemodeauto: dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory
gamemodeauto: dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory
gamemodeauto: dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory
gamemodeauto: dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory
Adding process 102114 for gameID 17697682656126304256
Adding process 102124 for gameID 17697682656126304256
gamemodeauto: dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory
Adding process 102126 for gameID 17697682656126304256
gamemodeauto: dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory
Adding process 102135 for gameID 17697682656126304256
gamemodeauto: dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory
Adding process 102300 for gameID 17697682656126304256

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions