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 library (gamemoded and libgamemode), and the client loaders (libgamemodeauto and gamemode_client.h) that allows for safe usage without worrying about whether the daemon is installed or running. This design also means that while the host library currently relies on systemd for exchanging 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.
libgamemodeauto.so.0 can be pre-loaded into any program to request gamemoded begin or end the mode, like so:
Or by setting the Steam launch options for a game:
The library can be manually preloaded if needed:
It is possible to set additional start commands to gamemoderun by setting the environment variable:
When this is set, gamemoderun will execute the command given by that environment variable, and the command line passed to gamemoderun will be passed as arguments to that command. GameMode will not be applied to the wrapper command, just the game itself.
GameMode source can be found at https://github.com/FeralInteractive/gamemode.git
Feral Interactive (email@example.com)