Gamemode still running when I'm exiting games (steam)

Greetings,

The problem is that when I’m exiting a game gamemode still running without stopping. But when I’m exiting Steam the gamemode stops. Is there a nice command or script to make gamemode to stop without closing Steam?

My gamemode config looks like this;

; The reaper thread will check every 5 seconds for exited clients, for config file changes, and for the CPU/iGPU power balance
reaper_freq=5

    ; The desired governor is used when entering GameMode instead of "performance"
    desiredgov=performance

    ; Sets whether gamemode will inhibit the screensaver when active
    ; Defaults to 1
    inhibit_screensaver=1

Regards,

Try command gamemoded -t and give output.

Here is my config file, yours seems missing a lot:

[general]
; The reaper thread will check every 5 seconds for exited clients, for config file changes, and for the CPU/iGPU power balance
reaper_freq=5

; The desired governor is used when entering GameMode instead of "performance"
desiredgov=performance
; The default governor is used when leaving GameMode instead of restoring the original value - powersave - schedutil - performance
defaultgov=powersave

; The iGPU desired governor is used when the integrated GPU is under heavy load
igpu_desiredgov=powersave
; Threshold to use to decide when the integrated GPU is under heavy load.
; This is a ratio of iGPU Watts / CPU Watts which is used to determine when the
; integraged GPU is under heavy enough load to justify switching to
; igpu_desiredgov.  Set this to -1 to disable all iGPU checking and always
; use desiredgov for games.
igpu_power_threshold=0.3

; GameMode can change the scheduler policy to SCHED_ISO on kernels which support it (currently
; not supported by upstream kernels). Can be set to "auto", "on" or "off". "auto" will enable
; with 4 or more CPU cores. "on" will always enable. Defaults to "off".
softrealtime=auto

; GameMode can renice game processes. You can put any value between 0 and 20 here, the value
; will be negated and applied as a nice value (0 means no change). Defaults to 0.
renice=5

; By default, GameMode adjusts the iopriority of clients to BE/0, you can put any value
; between 0 and 7 here (with 0 being highest priority), or one of the special values
; "off" (to disable) or "reset" (to restore Linux default behavior based on CPU priority),
; currently, only the best-effort class is supported thus you cannot set it here
ioprio=0

; Sets whether gamemode will inhibit the screensaver when active
; Defaults to 1
inhibit_screensaver=1

[filter]
; If "whitelist" entry has a value(s)
; gamemode will reject anything not in the whitelist
;whitelist=RiseOfTheTombRaider

; Gamemode will always reject anything in the blacklist
;blacklist=HalfLife3
;    glxgears

[gpu]
; Here Be Dragons!
; Warning: Use these settings at your own risk
; Any damage to hardware incurred due to this feature is your responsibility and yours alone
; It is also highly recommended you try these settings out first manually to find the sweet spots

; Setting this to the keyphrase "accept-responsibility" will allow gamemode to apply GPU optimisations such as overclocks
apply_gpu_optimisations=

; The DRM device number on the system (usually 0), ie. the number in /sys/class/drm/card0/
gpu_device=0

; Nvidia specific settings
; Requires the coolbits extension activated in nvidia-xconfig
; This corresponds to the desired GPUPowerMizerMode
; "Adaptive"=0 "Prefer Maximum Performance"=1 and "Auto"=2
; See NV_CTRL_GPU_POWER_MIZER_MODE and friends in https://github.com/NVIDIA/nvidia-settings/blob/master/src/libXNVCtrl/NVCtrl.h
nv_powermizer_mode=1

; These will modify the core and mem clocks of the highest perf state in the Nvidia PowerMizer
; They are measured as Mhz offsets from the baseline, 0 will reset values to default, -1 or unset will not modify values
;nv_core_clock_mhz_offset=100
;nv_mem_clock_mhz_offset=225

; AMD specific settings
; Requires a relatively up to date AMDGPU kernel module
; See: https://dri.freedesktop.org/docs/drm/gpu/amdgpu.html#gpu-power-thermal-controls-and-monitoring
; It is also highly recommended you use lm-sensors (or other available tools) to verify card temperatures
; This corresponds to power_dpm_force_performance_level, "manual" is not supported for now
;amd_performance_level=high

[supervisor]
; This section controls the new gamemode functions gamemode_request_start_for and gamemode_request_end_for
; The whilelist and blacklist control which supervisor programs are allowed to make the above requests
;supervisor_whitelist=
;supervisor_blacklist=

; In case you want to allow a supervisor to take full control of gamemode, this option can be set
; This will only allow gamemode clients to be registered by using the above functions by a supervisor client
;require_supervisor=0

[custom]
; Custom scripts (executed using the shell) when gamemode starts and ends
;start=notify-send "GameMode started"
;    /home/me/bin/stop_ethmining.sh

;end=notify-send "GameMode ended"
;    /home/me/bin/start_ethmining.sh

start=notify-send -i preferences-desktop-gaming -t 3000 "GameMode started" && sudo nvidia-smi -i 0 -pl 140
end=notify-send -i preferences-desktop-gaming -t 3000 "GameMode ended" && sudo nvidia-smi -i 0 -pl 120

; Timeout for scripts (seconds). Scripts will be killed if they do not complete within this time.
script_timeout=10

You can maybe use it for a test (note that I have some start/stop notification, but also some Nvidia specific commands in it too, maybe adapt to your system then as the nvidia smi commands are for me, maybe remove these commands at the end of file… the " && sudo nvidia-smi xxxxxxxxxx part delete it).

//EDIT: hu, you’re using gamemode how? you do not add gamemode TO STEAM, you add it PER GAME.

By the way, from gamemode/README.md at master · FeralInteractive/gamemode · GitHub

Or edit the Steam launch options:

gamemoderun %command%

Launch options of THE GAME :slight_smile:

gamemoded -t                                                     ✔ 
: Loading config
Loading config file [/home/storm/.config/gamemode.ini]
: Running tests

:: Basic client tests
:: Passed

:: Dual client tests
gamemode request succeeded and is active
Quitting by request...
:: Passed

:: Gamemoderun and reaper thread tests
...Waiting for child to quit...
...Waiting for reaper thread (reaper_frequency set to 5 seconds)...
:: Passed

:: Supervisor tests
:: Passed

:: Feature tests
::: Verifying CPU governor setting
::: Passed
::: Verifying Scripts
::: Passed (no scripts configured to run)
::: Verifying GPU Optimisations
::: Passed (gpu optimisations not configured to run)
::: Verifying renice
::: Passed (no renice configured)
::: Verifying ioprio
::: Passed
:: Passed

: All Tests Passed!

I add the gamemode per game :slight_smile: But it seems that reaper_freq=5 isn’t working on my system or it may be the Gnome gamemode extensions that give false output.

Apparently everything is working for your config file.

Try my config file (adapt it as explained remove the nvidia smi part at minimum), or at least create the start and stop commands to have notification like me when game mode is enabled and disabled. Not sure if notify-send command will work for you maybe try in terminal first notify-send -i preferences-desktop-gaming -t 3000 "GameMode started"and if it gives a notification, use it in the start and stop commands in gamemode.ini. This way you will have confirmation what is not working.

[custom]
; Custom scripts (executed using the shell) when gamemode starts and ends
;start=notify-send "GameMode started"
;    /home/me/bin/stop_ethmining.sh

;end=notify-send "GameMode ended"
;    /home/me/bin/start_ethmining.sh

start=notify-send -i preferences-desktop-gaming -t 3000 "GameMode started" 
end=notify-send -i preferences-desktop-gaming -t 3000 "GameMode ended"

; Timeout for scripts (seconds). Scripts will be killed if they do not complete within this time.
script_timeout=10

Also GameMode - GNOME Shell Extensions is that what you are using? latest comments say it is not working (and anyway I don’t think you need that, if you use the notifications in start/stop commands it will tell you directly from GameMode itself)

Any news?

Ah, sorry. I have been busy with my projects, so I havn’t tested yet.