GameMode是Linux的守护程序/LIB组合,允许游戏请求将一组优化暂时应用于主机OS和/或游戏过程。
GameMode主要是针对Intel和AMD CPU PowerSave或OnDemand Consostors问题的定格间隙解决方案,但现在托管了一系列优化功能和配置。
当前GameMode包括对优化的支持:包括:
SCHED_ISO
)GameMode软件包可用于Ubuntu,Debian,Solus,Arch,Gentoo,Fedora,Opensuse,Mageia等。
GameMode的问题应在此处报告,而不是直接向Feral报告。
对于集成GameMode支持的游戏/启动器(请参阅稍后的列表),只需运行游戏即可自动激活GameMode。
对于其他人,您必须在运行游戏时手动请求GameMode。这可以通过gamemoderun
启动游戏来完成:
gamemoderun ./game
或编辑Steam启动选项:
gamemoderun %command%
注意:对于GameMode的较旧版本(1.3之前),请使用此字符串代替gamemoderun
:
LD_PRELOAD="$LD_PRELOAD:/usr/$LIB/libgamemodeauto.so.0"
请注意,需要在$LIB
中的后斜切。
守护程序配置为gamemode.ini
文件。示例/gamemode.ini是此文件的外观示例,并对所有变量进行了解释。
配置文件已加载并从以下目录合并,从最高优先级到最低:
$PWD
(“不安全” - [gpu]
设置在此文件中无效)$XDG_CONFIG_HOME
或$HOME/.config/
(“不安全” - [gpu]
设置在此文件中没有效果)/etc/
/usr/share/gamemode/
由于游戏已经启动后,就不可能在GameMode内部自动集成Optirun之类的命令。但是,可以通过gamemoderun
启动游戏来使用像Optirun这样的混合GPU包装器。
You can do this by setting the environment variable GAMEMODERUNEXEC
to your wrapper's launch command, so for example GAMEMODERUNEXEC=optirun
, GAMEMODERUNEXEC="env DRI_PRIME=1"
, or GAMEMODERUNEXEC="env __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia __VK_LAYER_NV_optimus=NVIDIA_only"
。可以在全球设置此环境变量(例如 /etc /环境),因此不必在您想要使用gamemoderun
任何地方重复相同的前缀命令。
GameMode不会注入包装器。
已知以下游戏会集成GameMode支持(这意味着它们不需要任何其他配置即可在运行时激活GameMode):
可以与GameMode集成的其他应用程序包括:
GameMode的设计在主机守护程序和库( gamemoded
和libgamemode
)之间具有明确的抽象,而客户端加载程序( libgamemodeauto
and gamemode_client.h
)可以安全使用,而不必担心守护程序是否已安装还是运行。该设计还意味着,虽然主机库当前依靠systemd
与守护程序交换消息,但完全有可能实现仍然与同一客户端一起使用的其他内部设备。
有关每个组件的信息,请参见存储库子目录。
GameMode依靠用于建筑物的meson
和用于内部通信的systemd
。此存储库包含一个bootstrap.sh
脚本,可以快速安装到用户总线,但请检查meson_options.txt
以获取自定义设置。
dbus-user-session
) apt install meson libsystemd-dev pkg-config ninja-build git libdbus-1-dev libinih-dev build-essential
在Ubuntu 18.04上,您需要安装python3
软件包,并从pip
安装最新的介子版本。
python3 -m venv .venv
source .venv/bin/activate
pip install meson
稍后,您可以停用虚拟环境并将其删除。
deactivate
rm -rf .venv
pacman -S meson systemd git dbus libinih
dnf install meson systemd-devel pkg-config git dbus-devel
Gentoo拥有一个EBUILD,可以从来源建立稳定的版本。它还将吸引所有依赖项,以便您可以处理源代码。
emerge --ask games-util/gamemode
您还可以使用Git中的最新资源安装:
ACCEPT_KEYWORDS= " ** " emerge --ask ~ games-util/gamemode-9999
然后克隆,构建并安装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
要测试GameMode已安装并将正确运行:
gamemoded -t
卸载:
systemctl --user stop gamemoded.service
ninja uninstall -C builddir
拉请求必须与.clang-format
文件中的编码样式匹配,请在提交之前运行此操作:
clang-format -i $(find . -name '*.[ch]' -not -path "*subprojects/*")
野性互动
有关贡献者的扩展列表,请参见贡献者部分。
版权所有©2017-2024 Feral Interactive
GameMode可根据BSD 3条款许可(修订)的条款获得。
“ Inih”库是根据新的BSD许可证分配的