Gamemode
関連記事
Gamemode は Linux 用のデーモン/ライブラリの組み合わせで、ゲームがホスト OS やゲームプロセスに最適化のセットを一時的に適用することを要求できるようにするものです。
目次
インストール
gamemode と lib32-gamemode をインストールします。
設定
gamemode は次のファイルを介して設定され、次の順序で読み取られてマージされます。
/etc/gamemode.ini
システム全体の設定用;$XDG_CONFIG_HOME/gamemode.ini
ユーザーローカルの設定用;./gamemode.ini
ディレクトリローカルの設定用;
Renicing
gamemode はオプションで、ゲームプロセスの優先度 (renice(1) を参照) を通常のユーザーの下限である 0
を超えて調整できます。
これは、次の構成オプションによって制御されます。
[general] renice=0
renice
コマンドでプロセスを再編集するのとは異なり、Gamemode は正の値を使用し、それをプロセスに適用する前にそれを否定します。つまり、値 10
はゲームプロセス -10
です。
この機能を使用するには、ユーザーが gamemode
ユーザーグループ に所属している必要があります。
オーバークロック
gamemode は、実行中にオプションで GPU をオーバークロックできますが、ユーザー側で特別な設定が必要です。
使用する GPU とは関係なく、apply_gpu_optimizations
および gpu_device
構成オプションを適切に設定する必要があります。
AMD
AMD GPU のパフォーマンスレベルを変更するには、オーバークロック を手動で有効にし、amd_performance_level
構成オプションを設定する必要があります。
NVIDIA
NVIDIA GPU のパフォーマンスレベルを変更するには、オーバークロック を手動で有効にし、nv_powermizer_mode
、nv_core_lock_mhz_offset
、および nv_mem_lock_mhz_offset
オプションを設定する必要があります。
使用方法
テスト設定
設定ファイルの設定が機能しているかどうかを確認します。
$ gamemoded -t
単一のゲームを実行する
gamemode でゲームを実行するには、次のように起動します。
$ gamemoderun ./game
MangoHudと併用する
こちらを参照 MangoHud#gamemode で使用する
ゲームモードが実行されていることを確認します
ゲームを起動したら、コマンドで gamemode が動作していることを確認できます。
$ gamemoded -s
Steam
Steam が gamemode でゲームを起動するようにするには、ゲームを右クリックし、Properties...
を選択し、Launch Options
に次のように入力します。
gamemoderun %command%
Steam を gamemode で実行する
すべての Steam ゲームの起動オプションを変更する必要がないようにするには、gamemode で Steam を直接起動します。
$ gamemoderun steam-runtime
このアプローチの欠点は、ゲームが開かれているときだけではなく、Steam プロセスが開いている間、常に gamemode が実行されることです。
トラブルシューティング
Renicing が -10 より小さい値に設定された場合に失敗する
デフォルトでは、GameMode は PAM 制限を提供しており、スケジューリング優先度を最大で -10 まで変更することができます。設定ファイル内で renice
設定がサポートされていない値に設定した場合、プロセスの renicing は完全に失敗します。
要求される値を調整するか、/etc/security/limits.d/10-gamemode.conf
を編集して GameMode が設定できる最大スケジューリング優先度を調整することができます。以下の例では、GameMode が設定できる最大スケジューリング優先度を -19 に設定しています:
/etc/security/limits.d/10-gamemode.conf
@gamemode - nice -19