GameModeは、Linux用のデーモン/LIBコンボであり、ゲームがホストOSおよび/またはゲームプロセスに一時的に適用される一連の最適化を要求できるようにします。
GameModeは、主にIntelおよびAMD CPU PowersaveまたはOndemand Gognelsの問題に対するストップギャップソリューションとして設計されていますが、現在ではさまざまな最適化機能と構成がホストされています。
現在、ゲームモードには、次のような最適化のサポートが含まれています。
SCHED_ISO )GameModeパッケージは、Ubuntu、Debian、Solus、Arch、Gentoo、Fedora、Opensuse、Mageiaなどで利用できます。
GameModeの問題は、問題セクションでここで報告する必要があり、Feralに直接報告されていません。
ゲームモードサポートを統合するゲーム/ランチャーの場合(後でリストを参照)、ゲームを実行するだけでゲームモードが自動的にアクティブになります。
他の人の場合、ゲームを実行するときは手動でゲームモードをリクエストする必要があります。これは、 gamemoderunを介してゲームを起動することで実行できます。
gamemoderun ./gameまたは、蒸気発射オプションを編集します。
gamemoderun %command%注:ゲームモードの古いバージョン(1.3以前)の場合、 gamemoderunの代わりにこの文字列を使用します。
LD_PRELOAD="$LD_PRELOAD:/usr/$LIB/libgamemodeauto.so.0"
$LIBのバックスラッシュが必要です。
デーモンはgamemode.iniファイルで構成されています。 Example/GameMode.iniは、すべての変数の説明とともに、このファイルがどのように見えるかの例です。
構成ファイルは、最高の優先度から最低まで、次のディレクトリからロードおよびマージされます。
$PWD ( "Unsafe" - [gpu]設定はこのファイルで効果がありません)$XDG_CONFIG_HOMEまたは$HOME/.config/ ( "Unsafe" - [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の設計には、ホストデーモンとライブラリ( gamemodedとlibgamemode )と、デーモンがインストールされているか実行されているかを心配することなく安全に使用できるクライアントローダー( libgamemodeautoとgamemode_client.h )の間に明確な抽象化があります。また、この設計は、ホストライブラリが現在、デーモンとメッセージを交換するためにsystemdに依存しているが、同じクライアントと連携している他の内部を実装することは完全に可能であることを意味します。
各コンポーネントの情報については、リポジトリサブディレクトリを参照してください。
GameModeは、内部通信のための構築とsystemd mesonに依存します。このリポジトリには、ユーザーバスに迅速にインストールできるように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から最新のMesonバージョンをインストールする必要があります。
python3 -m venv .venv
source .venv/bin/activate
pip install meson後で仮想環境を無効にして削除できます。
deactivate
rm -rf .venvpacman -S meson systemd git dbus libinihdnf install meson systemd-devel pkg-config git dbus-develGentooには、ソースからの安定した放出を構築するeBuildがあります。また、ソースコードで作業できるように、すべての依存関係を引き込みます。
emerge --ask games-util/gamemodeGITの最新ソースを使用してインストールすることもできます。
ACCEPT_KEYWORDS= " ** " emerge --ask ~ games-util/gamemode-9999次に、1.8.2でGameModeのリリースバージョンを構築してインストールします。
git clone https://github.com/FeralInteractive/gamemode.git
cd gamemode
git checkout 1.8.2 # omit to build the master branch
./bootstrap.shインストールされたゲームモードをテストするには、正しく実行されます。
gamemoded -tアンインストールするには:
systemctl --user stop gamemoded.service
ninja uninstall -C builddirプルリクエストは、 .clang-formatファイルにあるコーディングスタイルと一致する必要があります。コミットする前にこれを実行してください。
clang-format -i $(find . -name '*.[ch]' -not -path "*subprojects/*")
フェラルインタラクティブ
貢献者の拡張リストについては、貢献者セクションを参照してください。
Copyright©2017-2024 Feral Interactive
GameModeは、BSD 3-Clauseライセンス(改訂)の条件で利用できます
「INIH」ライブラリは新しいBSDライセンスの下に配布されます