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.
The executable starts gamemode, sleeps for 10 seconds and stops it. It will exit with zero if everything works fine, else it will print an error and exit with one.
To use this with a CI you might need to start a dbus session by hand. This can be done with:
dbus-run-session -- gamemode-simulate-game
Note that this might output to stderr, even if it exits with zero.
gamemoded(8), gamemoderun(1), dbus-run-session(1)
GameMode source can be found at https://github.com/FeralInteractive/gamemode.git
Feral Interactive (firstname.lastname@example.org)