O GameMode é um combo daemon/lib para Linux que permite que os jogos solicitem que um conjunto de otimizações seja aplicado temporariamente ao sistema operacional host e/ou um processo de jogo.
O GameMode foi projetado principalmente como uma solução de interrupção para problemas com os governadores Intel e AMD CPU PowerSave ou OnDemand, mas agora é hospedeiro a uma variedade de recursos e configurações de otimização.
Atualmente, o GameMode inclui suporte para otimizações, incluindo:
SCHED_ISO
)Os pacotes GameMode estão disponíveis para Ubuntu, Debian, Solus, Arch, Gentoo, Fedora, OpenSuse, Mageia e possivelmente mais.
Os problemas com o GameMode devem ser relatados aqui na seção de problemas e não relatados diretamente a Feral.
Para jogos/lançadores que integram o suporte do GameMode (consulte a lista mais tarde), simplesmente executar o jogo ativará automaticamente o GameMode.
Para outros, você deve solicitar manualmente o GameMode ao executar o jogo. Isso pode ser feito lançando o jogo através do gamemoderun
:
gamemoderun ./game
Ou edite as opções de lançamento do Steam:
gamemoderun %command%
Nota: Para versões mais antigas do GameMode (antes de 1.3), use esta string no lugar do gamemoderun
:
LD_PRELOAD="$LD_PRELOAD:/usr/$LIB/libgamemodeauto.so.0"
Observe que a barra de barragem aqui em $LIB
é necessária.
O daemon está configurado com um arquivo gamemode.ini
. Exemplo/gameMode.ini é um exemplo de como seria esse arquivo, com explicações para todas as variáveis.
Os arquivos de configuração são carregados e mesclados dos seguintes diretórios, da maior a mais baixa prioridade:
$PWD
("Inseguro" - [gpu]
As configurações não têm efeito neste arquivo )$XDG_CONFIG_HOME
ou $HOME/.config/
("não seguro" - [gpu]
As configurações não têm efeito neste arquivo )/etc/
/usr/share/gamemode/
Não é possível integrar comandos como o Optirun automaticamente dentro do GameMode, pois a solicitação do GameMode é feita quando o jogo já foi iniciado. No entanto, é possível usar um invólucro de GPU híbrido como o Optirun, iniciando o jogo com gamemoderun
.
Você pode fazer isso definindo a variável de ambiente GAMEMODERUNEXEC
no comando de lançamento do seu invólucro, por exemplo, 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"
. Essa variável de ambiente pode ser definida globalmente (por exemplo, /etc /ambiente), para que o mesmo comando prefixo não precise ser duplicado em todos os lugares que você deseja usar gamemoderun
.
O GameMode não será injetado no invólucro.
Sabe -se que os jogos a seguir integram o suporte do GameMode (o que significa que eles não exigem nenhuma configuração adicional para ativar o GameMode durante a execução):
Outros aplicativos que podem se integrar ao GameMode incluem:
O design do GameMode possui uma abstração clara entre o daemon e a biblioteca do host ( gamemoded
e libgamemode
) e os carregadores de clientes ( libgamemodeauto
e gamemode_client.h
) que permitem uso seguro sem se preocupar se o daemon está instalado ou em execução. Esse design também significa que, embora a biblioteca host dependa atualmente no systemd
para trocar mensagens com o daemon, é inteiramente possível implementar outros internos que ainda trabalham com os mesmos clientes.
Consulte os subdiretos do repositório para obter informações sobre cada componente.
O GameMode depende de meson
para construção e systemd
para comunicação interna. Este repositório contém um script bootstrap.sh
para permitir a instalação rápida no barramento do usuário, mas verifique meson_options.txt
para configurações personalizadas.
dbus-user-session
) apt install meson libsystemd-dev pkg-config ninja-build git libdbus-1-dev libinih-dev build-essential
No Ubuntu 18.04, você precisará instalar o pacote python3
e instalar a versão mais recente do Meson a partir pip
.
python3 -m venv .venv
source .venv/bin/activate
pip install meson
Mais tarde, você pode desativar o ambiente virtual e removê -lo.
deactivate
rm -rf .venv
pacman -S meson systemd git dbus libinih
dnf install meson systemd-devel pkg-config git dbus-devel
O Gentoo tem um Ebuild que constrói uma liberação estável de fontes. Ele também atrairá todas as dependências para que você possa trabalhar no código -fonte.
emerge --ask games-util/gamemode
Você também pode instalar usando as fontes mais recentes do Git:
ACCEPT_KEYWORDS= " ** " emerge --ask ~ games-util/gamemode-9999
Em seguida, clone, construa e instale uma versão de liberação do GameMode em 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 testar o GameMode instalado e será executado corretamente:
gamemoded -t
Para desinstalar:
systemctl --user stop gamemoded.service
ninja uninstall -C builddir
As solicitações de puxar devem corresponder ao estilo de codificação encontrado no arquivo .clang-format
, execute isso antes de cometer:
clang-format -i $(find . -name '*.[ch]' -not -path "*subprojects/*")
Feral interativo
Consulte a seção Contribuintes para obter uma lista prolongada de colaboradores.
Copyright © 2017-2024 Feral Interactive
O GameMode está disponível nos termos da licença de BSD 3-cláusulas (revisada)
A biblioteca "Inih" é distribuída sob a nova licença BSD