跳至內容

GameMode

出自 Arch Linux 中文维基
(重新導向自Gamemode

GameMode 是一個 Linux 下的守護進程和庫組合,允許遊戲請求一組優化暫時應用於主機操作系統和/或遊戲進程。

安裝[編輯 | 編輯原始碼]

安裝 gamemodelib32-gamemode

將自己添加到 gamemode 用戶組。如果沒有這個用戶組,GameMode 用戶守護進程將沒有權限更改 CPU 管理器或進程的優先級。

配置[編輯 | 編輯原始碼]

GameMode 通過以下文件進行配置,這些文件按以下順序讀取並合併:

/etc/gamemode.ini 用於系統範圍的配置; $XDG_CONFIG_HOME/gamemode.ini 用於用戶本地配置; ./gamemode.ini 用於目錄本地配置。

提示:可以在 FeralInteractive 的 GitHub 找到帶注釋的示例配置文件。
注意: /usr/share/gamemode/gamemode.ini 不應由用戶創建,因為它保留給包維護者進行手動配置。有關更多詳細信息,請參見 file-hierarchy(7)

改變優先級[編輯 | 編輯原始碼]

GameMode 可以選擇性地調整遊戲進程的優先級(參見 renice(1)),可以超出常規用戶的下限 0

這由以下配置選項控制:

[general]
renice=0

與使用 renice 命令改變進程優先級不同,GameMode 使用正值並在應用到進程之前取其負值,也就是說,值為 10 將把遊戲進程的優先級改為 -10

超頻[編輯 | 編輯原始碼]

GameMode 可以選擇性地在運行時超頻你的 GPU,但需要用戶的特殊配置。

無論使用什麼 GPU,必須適當設置 apply_gpu_optimizationsgpu_device 配置選項。

AMD[編輯 | 編輯原始碼]

要改變 AMD GPU 的性能級別,必須手動啟用 超頻,並設置 amd_performance_level 配置選項。

NVIDIA[編輯 | 編輯原始碼]

要改變 NVIDIA GPU 的性能級別,必須手動啟用 超頻,並設置 nv_powermizer_modenv_core_clock_mhz_offsetnv_mem_clock_mhz_offset 配置選項。

使用[編輯 | 編輯原始碼]

測試配置[編輯 | 編輯原始碼]

驗證配置文件中的設置是否有效:

$ gamemoded -t

運行單個遊戲[編輯 | 編輯原始碼]

要運行一個遊戲並使用 GameMode,啟動方式如下:

$ gamemoderun ./game

與 MangoHud 一起使用[編輯 | 編輯原始碼]

參見 MangoHud#與 GameMode 一起使用

驗證 GameMode 是否在運行[編輯 | 編輯原始碼]

當你啟動遊戲時,可以使用以下命令驗證 GameMode 是否運行:

$ gamemoded -s
注意: gamemoded.service 用戶單元是按需通過 dbus 啟動的 [1]

運行單個 Steam 遊戲[編輯 | 編輯原始碼]

要使 Steam 啟動帶有 GameMode 的遊戲,右鍵單擊庫中的遊戲,選擇 屬性...,然後在 啟動選項 文本框中輸入:

gamemoderun %command%

使用 GameMode 啟動 Steam[編輯 | 編輯原始碼]

為了避免為所有 Steam 遊戲都更改啟動選項,可以直接使用 GameMode 啟動 Steam

$ gamemoderun steam-runtime

這種方法的缺點是 GameMode 將在 Steam 進程打開的整個時間內運行,而不僅僅是在遊戲啟動時。

故障排除[編輯 | 編輯原始碼]

當設置為小於 -10 時 renicing 失敗[編輯 | 編輯原始碼]

默認情況下,GameMode 提供 PAM 限制,允許將調度優先級更改為最大 -10。如果配置文件中的 renice 設置為不受支持的值,則進程的 renicing 將完全失敗。

您可以調整請求的值,或通過編輯 /etc/security/limits.d/10-gamemode.conf 來調整 GameMode 可設置的最大調度優先級。下面的示例將 -19 配置為 GameMode 可設置的最大調度優先級:

/etc/security/limits.d/10-gamemode.conf
@gamemode - nice -19