flightlessmango / MangoHud

A Vulkan and OpenGL overlay for monitoring FPS, temperatures, CPU/GPU load and more. Discord: https://discordapp.com/invite/Gj5YmBb
MIT License
6.52k stars 287 forks source link

Gamemode status in Mangohud is shown incorrect #591

Closed IrksomeHighlndr closed 1 year ago

IrksomeHighlndr commented 3 years ago

Errorscreenshot

jackun commented 3 years ago

It's not detecting that the process has loaded client libgamemode.so. Check if it is listed in /proc/<game pid>/map_files

IrksomeHighlndr commented 3 years ago

No, there isn't any mention of libgamemode.so in the map_files, though its working just fine with any non steam games

flightlessmango commented 3 years ago

If you don't run the process with gamemoderun it won't inject into the process and you won't have the process specific features like setting niceness. i.e gamemode is not "fully" on

IrksomeHighlndr commented 3 years ago

I both tried passing arguments directly and and enabling via Lutris and adding arguments to steam launch options, none of them isn't working. It works fine (shows the status of the gamemode correct) with non steam games like EGS games or GOG games (games which are called with wine) but in case of steam games its not behaving correctly. Though I have to see whether changing the proton version does address the problem. Update: It doesn't solve the problem Update 2: I reinstalled the entire OS from scratch and it still doesnt shows up

thibaultmol commented 3 years ago

Having this issue as well. I'm running FFXIV online with GE proton and these launch settings: gamemoderun mangohud NOSTEAM=1 %command% And my mangohud also doesn't say gamemode is running. Even though gamemoded -s ays it's active

flightlessmango commented 1 year ago

We only check if gamemode is injected, not if its running on the system

ppascher commented 10 months ago

Not sure if this is something that changes the verdict or MangoHud can check:

Gamemodestatus appears to show up fine for linux native games (i.e. Hollow Knight). It creates two processes and both have the so injected.

Other games (i.e. Last Epoch, Sonic Generations) run through Proton create multiple processes and only one of them has gamemode injected. Mangohud shows status as "off":

username    12637  0.0  0.0  39172  8192 ?        S    11:49   0:00 /home/username/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=899770 -- /home/username/.local/share/Steam/ubuntu12_32/steam-launch-wrapper -- /home/username/.local/share/Steam/steamapps/common/SteamLinuxRuntime_sniper/_v2-entry-point --verb=waitforexitandrun -- /home/username/.local/share/Steam/compatibilitytools.d/GE-Proton8-27/proton waitforexitandrun /home/username/.local/share/Steam/steamapps/common/Last Epoch/Last Epoch.exe
username    12655  0.0  0.0   4764  1536 ?        S    11:49   0:00 /home/username/.local/share/Steam/steamapps/common/SteamLinuxRuntime_sniper/pressure-vessel/bin/pv-bwrap --args 32 /usr/lib/pressure-vessel/from-host/bin/pressure-vessel-adverb --generate-locales --fd 24 --regenerate-ld.so-cache /run/pressure-vessel/ldso --add-ld.so-path /usr/lib/pressure-vessel/overrides/lib/x86_64-linux-gnu --add-ld.so-path /usr/lib/pressure-vessel/overrides/lib/i386-linux-gnu --set-ld-library-path /usr/lib/pressure-vessel/overrides/lib/x86_64-linux-gnu/aliases:/usr/lib/pressure-vessel/overrides/lib/i386-linux-gnu/aliases --exit-with-parent --subreaper --assign-fd=1=6 --assign-fd=2=7 --shell=none --terminal=none --ld-preload=libgamemodeauto.so.0 --ld-preload=/home/username/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so --ld-preload=/home/username/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so --ld-preload=/run/host/usr/lib/mangohud/lib/libMangoHud_opengl.so:abi=x86_64-linux-gnu --ld-preload=/run/host/usr/lib/mangohud/lib32/libMangoHud_opengl.so:abi=i386-linux-gnu -- /home/username/.local/share/Steam/steamapps/common/SteamLinuxRuntime_sniper/pressure-vessel/bin/steam-runtime-launcher-interface-0 container-runtime /home/username/.local/share/Steam/compatibilitytools.d/GE-Proton8-27/proton waitforexitandrun /home/username/.local/share/Steam/steamapps/common/Last Epoch/Last Epoch.exe
username    12750  0.0  0.0  30828  5376 ?        Ss   11:49   0:00 /usr/lib/pressure-vessel/from-host/bin/pressure-vessel-adverb --generate-locales --fd 24 --regenerate-ld.so-cache /run/pressure-vessel/ldso --add-ld.so-path /usr/lib/pressure-vessel/overrides/lib/x86_64-linux-gnu --add-ld.so-path /usr/lib/pressure-vessel/overrides/lib/i386-linux-gnu --set-ld-library-path /usr/lib/pressure-vessel/overrides/lib/x86_64-linux-gnu/aliases:/usr/lib/pressure-vessel/overrides/lib/i386-linux-gnu/aliases --exit-with-parent --subreaper --assign-fd=1=6 --assign-fd=2=7 --shell=none --terminal=none --ld-preload=libgamemodeauto.so.0 --ld-preload=/home/username/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so --ld-preload=/home/username/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so --ld-preload=/run/host/usr/lib/mangohud/lib/libMangoHud_opengl.so:abi=x86_64-linux-gnu --ld-preload=/run/host/usr/lib/mangohud/lib32/libMangoHud_opengl.so:abi=i386-linux-gnu -- /home/username/.local/share/Steam/steamapps/common/SteamLinuxRuntime_sniper/pressure-vessel/bin/steam-runtime-launcher-interface-0 container-runtime /home/username/.local/share/Steam/compatibilitytools.d/GE-Proton8-27/proton waitforexitandrun /home/username/.local/share/Steam/steamapps/common/Last Epoch/Last Epoch.exe
username    12776  0.0  0.0  57828 26356 ?        S    11:49   0:00 python3 /home/username/.local/share/Steam/compatibilitytools.d/GE-Proton8-27/proton waitforexitandrun /home/username/.local/share/Steam/steamapps/common/Last Epoch/Last Epoch.exe
username    12778  0.0  0.3 2118332 103964 ?      Sl   11:49   0:00 c:\windows\system32\steam.exe /home/username/.local/share/Steam/steamapps/common/Last Epoch/Last Epoch.exe
username    12855  155 12.1 26572908 3967624 ?    Ssl  11:49  11:14 Z:\home\username\.local\share\Steam\steamapps\common\Last Epoch\Last Epoch.exe
username    12858  0.0  0.1 1879152 44484 ?       Ssl  11:49   0:00 Z:\home\username\.local\share\Steam\steamapps\common\Last Epoch\UnityCrashHandler64.exe --attach 300 548278272

Only PID 12637 shows the library:

ls -lah /proc/12637/map_files/ | grep libgamemode
lr-------- 1 username username 64 Jan  9 11:52 f5d93000-f5d94000 -> /usr/lib32/libgamemode.so.0.0.0
lr-------- 1 username username 64 Jan  9 11:52 f5d94000-f5d96000 -> /usr/lib32/libgamemode.so.0.0.0
lr-------- 1 username username 64 Jan  9 11:52 f5d96000-f5d97000 -> /usr/lib32/libgamemode.so.0.0.0
lr-------- 1 username username 64 Jan  9 11:52 f5d97000-f5d98000 -> /usr/lib32/libgamemode.so.0.0.0
lr-------- 1 username username 64 Jan  9 11:52 f5d98000-f5d99000 -> /usr/lib32/libgamemode.so.0.0.0
lr-------- 1 username username 64 Jan  9 11:52 f7fa2000-f7fa3000 -> /usr/lib32/libgamemodeauto.so.0.0.0
lr-------- 1 username username 64 Jan  9 11:52 f7fa3000-f7fa5000 -> /usr/lib32/libgamemodeauto.so.0.0.0
lr-------- 1 username username 64 Jan  9 11:52 f7fa5000-f7fa6000 -> /usr/lib32/libgamemodeauto.so.0.0.0
lr-------- 1 username username 64 Jan  9 11:52 f7fa6000-f7fa7000 -> /usr/lib32/libgamemodeauto.so.0.0.0
lr-------- 1 username username 64 Jan  9 11:52 f7fa7000-f7fa8000 -> /usr/lib32/libgamemodeauto.so.0.0.0