GamEmode es un combo de demonio/lib para Linux que permite que los juegos soliciten un conjunto de optimizaciones que se apliquen temporalmente al sistema operativo host y/o un proceso de juego.
GamEmode se diseñó principalmente como una solución de detención para los problemas con los gobernadores de PowerSave o OnDemand de CPU Intel y AMD, pero ahora es un rango de características y configuraciones de optimización.
Actualmente, GameMode incluye soporte para optimizaciones que incluyen:
SCHED_ISO
)Los paquetes de GamEmode están disponibles para Ubuntu, Debian, Solus, Arch, Gentoo, Fedora, OpenSuse, Mageia y posiblemente más.
Los problemas con GamEmode deben informarse aquí en la sección de problemas y no informarse directamente a Feral.
Para los juegos/lanzadores que integran el soporte de GamEmode (consulte la lista más adelante), simplemente ejecutar el juego activará automáticamente GameMode.
Para otros, debes solicitar manualmente Gamemode al ejecutar el juego. Esto se puede hacer lanzando el juego a través de gamemoderun
:
gamemoderun ./game
O edite las opciones de lanzamiento de Steam:
gamemoderun %command%
Nota: Para versiones anteriores de Gamemode (antes de 1.3), use esta cadena en lugar de gamemoderun
:
LD_PRELOAD="$LD_PRELOAD:/usr/$LIB/libgamemodeauto.so.0"
Tenga en cuenta que se requiere la barra inalcadora aquí en $LIB
.
El Daemon está configurado con un archivo gamemode.ini
. Ejemplo/gamemode.ini es un ejemplo de cómo se vería este archivo, con explicaciones para todas las variables.
Los archivos de configuración se cargan y fusionan desde los siguientes directorios, desde la prioridad más alta hasta la más baja:
$PWD
("inseguro" - la configuración [gpu]
no tiene efecto en este archivo )$XDG_CONFIG_HOME
o $HOME/.config/
("Unsafe" - [gpu]
La configuración no tiene efecto en este archivo )/etc/
/usr/share/gamemode/
No es posible integrar comandos como Optirun automáticamente dentro de Gamemode, ya que la solicitud de GamEmode se realiza una vez que el juego ya ha comenzado. Sin embargo, es posible usar un envoltorio de GPU híbrido como Optirun comenzando el juego con gamemoderun
.
Puede hacer esto configurando la variable de entorno GAMEMODERUNEXEC
en el comando de lanzamiento de su envoltorio, por lo que, por ejemplo, GAMEMODERUNEXEC=optirun
, GAMEMODERUNEXEC="env DRI_PRIME=1"
, o GAMEMODERUNEXEC="env __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia __VK_LAYER_NV_optimus=NVIDIA_only"
. Esta variable de entorno se puede establecer a nivel mundial (por ejemplo, en /etc /entorno), de modo que el mismo comando de prefijo no tenga que duplicarse en todas partes donde desee usar gamemoderun
.
GameMode no se inyectará al envoltorio.
Se sabe que los siguientes juegos integran el soporte de GameMode (lo que significa que no requieren ninguna configuración adicional para activar GamEmode mientras se ejecutan):
Otras aplicaciones que pueden integrarse con Gamemode incluyen:
El diseño de GamEmode tiene una abstracción clara entre el demonio host y la biblioteca ( gamemoded
y libgamemode
), y los cargadores del cliente ( libgamemodeauto
y gamemode_client.h
) que permite un uso seguro sin preocuparse por si el demonio está instalado o ejecutado. Este diseño también significa que si bien la biblioteca host actualmente depende de systemd
para intercambiar mensajes con el demonio, es completamente posible implementar otras partes internas que aún funcionen con los mismos clientes.
Consulte los subdirectorios del repositorio para obtener información sobre cada componente.
GamEmode depende de meson
para la construcción y systemd
para la comunicación interna. Este repositorio contiene un script bootstrap.sh
para permitir la instalación rápida en el bus de usuarios, pero verifique meson_options.txt
para configuraciones personalizadas.
dbus-user-session
) apt install meson libsystemd-dev pkg-config ninja-build git libdbus-1-dev libinih-dev build-essential
En Ubuntu 18.04, deberá instalar el paquete python3
e instalar la última versión de Meson desde pip
.
python3 -m venv .venv
source .venv/bin/activate
pip install meson
Más tarde puede desactivar el entorno virtual y eliminarlo.
deactivate
rm -rf .venv
pacman -S meson systemd git dbus libinih
dnf install meson systemd-devel pkg-config git dbus-devel
Gentoo tiene un Ebuild que construye un lanzamiento estable de las fuentes. También extraerá todas las dependencias para que pueda trabajar en el código fuente.
emerge --ask games-util/gamemode
También puede instalar utilizando las últimas fuentes de Git:
ACCEPT_KEYWORDS= " ** " emerge --ask ~ games-util/gamemode-9999
Luego clone, cree e instale una versión de lanzamiento de GamEmode a 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
Para probar GameMode instalado y se ejecutará correctamente:
gamemoded -t
Desinstalar:
systemctl --user stop gamemoded.service
ninja uninstall -C builddir
Las solicitudes de extracción deben coincidir con el estilo de codificación que se encuentra en el archivo .clang-format
, ejecute esto antes de comprometerse:
clang-format -i $(find . -name '*.[ch]' -not -path "*subprojects/*")
Interactivo salvaje
Consulte la sección de contribuyentes para obtener una lista extendida de contribuyentes.
Copyright © 2017-2024 Feral Interactive
GamEmode está disponible bajo los términos de la licencia BSD 3 cláusula (revisada)
La biblioteca "inih" se distribuye bajo la nueva licencia BSD