GameMode est un combo démon / lib pour Linux qui permet aux jeux de demander qu'un ensemble d'optimisations soit temporairement appliqué au système d'exploitation hôte et / ou à un processus de jeu.
GameMode a été conçu principalement comme une solution de raccourcis stop-gap aux problèmes avec les gouverneurs Intel et AMD CPU PowerSave ou Ondemand, mais est désormais hébergeant une gamme de fonctionnalités et de configurations d'optimisation.
Actuellement, GameMode comprend la prise en charge des optimisations, notamment:
SCHED_ISO
)Des forfaits de jeu sont disponibles pour Ubuntu, Debian, Solus, Arch, Gentoo, Fedora, OpenSuse, Mageia et peut-être plus.
Les problèmes avec GameMode doivent être signalés ici dans la section des problèmes et non signalés directement à la sauvage.
Pour les jeux / lanceurs qui intègrent la prise en charge de GameMode (voir la liste plus tard), le simple fait de faire fonctionner le jeu activera automatiquement GameMode.
Pour d'autres, vous devez demander manuellement GameMode lors de l'exécution du jeu. Cela peut être fait en lançant le jeu via gamemoderun
:
gamemoderun ./game
Ou modifiez les options de lancement de Steam:
gamemoderun %command%
Remarque: Pour les anciennes versions de GameMode (avant 1.3), utilisez cette chaîne à la place de gamemoderun
:
LD_PRELOAD="$LD_PRELOAD:/usr/$LIB/libgamemodeauto.so.0"
Veuillez noter que la barre arrière ici dans $LIB
est requise.
Le démon est configuré avec un fichier gamemode.ini
. Exemple / gameMode.ini est un exemple de ce à quoi ressemblerait ce fichier, avec des explications pour toutes les variables.
Les fichiers de configuration sont chargés et fusionnés à partir des répertoires suivants, de la plus haute priorité: la plus basse:
$PWD
("dangereux" - [gpu]
Les paramètres ne prennent aucun effet dans ce fichier )$XDG_CONFIG_HOME
ou $HOME/.config/
("danget" - [gpu]
Les paramètres ne prennent aucun effet dans ce fichier )/etc/
/usr/share/gamemode/
Il n'est pas possible d'intégrer automatiquement les commandes comme Optirun à l'intérieur de GameMode, car la demande de jeu de jeu est faite une fois que le jeu a déjà commencé. Cependant, il est possible d'utiliser un emballage GPU hybride comme Optirun en commençant le jeu avec gamemoderun
.
Vous pouvez le faire en définissant la variable d'environnement GAMEMODERUNEXEC
sur la commande de lancement de votre wrapper, donc par exemple GAMEMODERUNEXEC=optirun
, GAMEMODERUNEXEC="env DRI_PRIME=1"
, ou GAMEMODERUNEXEC="env __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia __VK_LAYER_NV_optimus=NVIDIA_only"
. Cette variable d'environnement peut être définie à l'échelle mondiale (par exemple dans / etc / environnement), de sorte que la même commande de préfixe n'a pas à être dupliqué partout où vous souhaitez utiliser gamemoderun
.
GameMode ne sera pas injecté à l'emballage.
Les jeux suivants sont connus pour intégrer la prise en charge de GameMode (ce qui signifie qu'ils ne nécessitent aucune configuration supplémentaire pour activer GameMode pendant l'exécution):
Les autres applications qui peuvent s'intégrer à GameMode comprennent:
La conception de GameMode a une abstraction claire entre le démon de l'hôte et la bibliothèque ( gamemoded
et libgamemode
), et les chargeurs de clients ( libgamemodeauto
et gamemode_client.h
) qui permet une utilisation sûre sans se soucier de savoir si le Daemon est installé ou en cours d'exécution. Cette conception signifie également que si la bibliothèque d'hôtes s'appuie actuellement sur systemd
pour échanger des messages avec le démon, il est tout à fait possible d'implémenter d'autres internes qui travaillent toujours avec les mêmes clients.
Voir les sous-répertoires du référentiel pour des informations sur chaque composant.
GameMode dépend de meson
pour la construction et systemd
pour la communication interne. Ce dépôt contient un script bootstrap.sh
pour permettre une installation rapide dans le bus utilisateur, mais vérifiez meson_options.txt
pour les paramètres personnalisés.
dbus-user-session
) apt install meson libsystemd-dev pkg-config ninja-build git libdbus-1-dev libinih-dev build-essential
Sur Ubuntu 18.04, vous devrez installer le package python3
et installer la dernière version Meson de pip
.
python3 -m venv .venv
source .venv/bin/activate
pip install meson
Plus tard, vous pouvez désactiver l'environnement virtuel et le supprimer.
deactivate
rm -rf .venv
pacman -S meson systemd git dbus libinih
dnf install meson systemd-devel pkg-config git dbus-devel
Gentoo a un Ebuild qui construit une version stable à partir de sources. Il attirera également toutes les dépendances afin que vous puissiez travailler sur le code source.
emerge --ask games-util/gamemode
Vous pouvez également installer en utilisant les dernières sources de GIT:
ACCEPT_KEYWORDS= " ** " emerge --ask ~ games-util/gamemode-9999
Puis cloner, construire et installer une version de version de GameMode à 1.8.2:
git clone https://github.com/FeralInteractive/gamemode.git
cd gamemode
git checkout 1.8.2 # omit to build the master branch
./bootstrap.sh
Pour tester GameMode installé et s'exécutera correctement:
gamemoded -t
À désinstaller:
systemctl --user stop gamemoded.service
ninja uninstall -C builddir
Les demandes de traction doivent correspondre au style de codage trouvé dans le fichier .clang-format
, veuillez exécuter ceci avant de s'engager:
clang-format -i $(find . -name '*.[ch]' -not -path "*subprojects/*")
Interactif sauvage
Voir la section Contributeurs pour une liste étendue de contributeurs.
Copyright © 2017-2024 Feral Interactive
GameMode est disponible en vertu des termes de la licence BSD 3-CLAUSE (révisée)
La bibliothèque "INIH" est distribuée sous la nouvelle licence BSD