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包裝器。
您可以通過將環境變量GAMEMODERUNEXEC
設置為包裝器的啟動命令來執行此操作,例如GAMEMODERUNEXEC=optirun
, GAMEMODERUNEXEC="env DRI_PRIME=1"
或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許可證分配的