dwww Home | Manual pages | Find package

gamemoded(8)                  gamemoded man page                  gamemoded(8)

NAME
       gamemoded - daemon that optimises system performance on demand

SYNOPSIS
       gamemoded [OPTIONS...]

DESCRIPTION
       GameMode is a daemon/lib combo for Linux that allows games to request a
       set of optimisations be temporarily applied to the host OS.

       The design has a clear cut abstraction between the host daemon and  li-
       brary  (gamemoded and libgamemode), and the client loaders (libgamemod-
       eauto and gamemode_client.h) that allows for safe usage without  worry-
       ing  about whether the daemon is installed or running. This design also
       means that while the host library currently relies on systemd  for  ex-
       changing  messages with the daemon, it's entirely possible to implement
       other internals that still work with the same clients.

       GameMode was designed primarily as a stop-gap solution to problems with
       the  Intel and AMD CPU powersave or ondemand governors, but is intended
       to be expanded beyond just CPU governor states, as there are  a  wealth
       of automation tasks one might want to apply.

OPTIONS
       -r[PID], --request=[PID]
               Toggle  gamemode  for  process.   When  no  PID given, requests
               gamemode and pauses

       -s[PID], --status=[PID]
               Query the status of gamemode for process  When  no  PID  given,
               queries the status globally

       -d, --daemonize
               Run the daemon as a separate process (daemonize it)

       -l, --log-to-syslog
               Log to syslog

       -h, --help
               Print help text

       -t, --test
               Run diagnostic tests on the current installation

       -v, --version
               Print the version

USAGE
       libgamemodeauto.so.0  can  be  pre-loaded  into  any program to request
       gamemoded begin or end the mode. See gamemoderun(1) for details.

       The gamemode_client.h header can be used by developers to build the re-
       quests into a program:

           #include "gamemode_client.h"

               if( gamemode_request_start() < 0 ) {
                   fprintf( stderr, "gamemode request failed: %s\n", gamemode_error_string() )
               }

               /* run the process */

               /* Not required, gamemoded can clean up after game exits */
               gamemode_request_end();

       Atlernatively  developers  can define GAMEMODE_AUTO to mimic the behav-
       iour of libgamemodeauto.so.0:

           #define GAMEMODE_AUTO
           #include "gamemode_client.h"

       Or, distribute libgamemodeauto.so.0 and either link with -lgamemodeauto
       or inject it as above with LD_PRELOAD.

CONFIG
       gamemoded  will load and merge gamemode.ini config files from these di-
       rectories in the following order:

           /usr/share/gamemode/
           /etc/
           $XDG_CONFIG_HOME or $HOME/.config/
           $PWD

       Behaviour of the config file can be explained by presenting a commented
       example:

           [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
           ;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=off

           ; 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=0

           ; 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=0

           ; 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=0
           ;nv_mem_clock_mhz_offset=0

           ; 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

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

SEE ALSO
       gamemoderun(1), systemd(1)

ABOUT
       GameMode   source  can  be  found  at  https://github.com/FeralInterac-
       tive/gamemode.git

AUTHOR
       Feral Interactive (linux-contact@feralinteractive.com)

1.6.1                             4 May 2020                      gamemoded(8)

Generated by dwww version 1.14 on Fri Jan 24 09:44:44 CET 2025.