GameMode
GameMode 是一個 Linux 下的守護進程和庫組合,允許遊戲請求一組優化暫時應用於主機操作系統和/或遊戲進程。
安裝[編輯 | 編輯原始碼]
安裝 gamemode包 和 lib32-gamemode包。
將自己添加到 gamemode
用戶組。如果沒有這個用戶組,GameMode 用戶守護進程將沒有權限更改 CPU 管理器或進程的優先級。
配置[編輯 | 編輯原始碼]
GameMode 通過以下文件進行配置,這些文件按以下順序讀取並合併:
/etc/gamemode.ini
用於系統範圍的配置;
$XDG_CONFIG_HOME/gamemode.ini
用於用戶本地配置;
./gamemode.ini
用於目錄本地配置。
/usr/share/gamemode/gamemode.ini
不應由用戶創建,因為它保留給包維護者進行手動配置。有關更多詳細信息,請參見 file-hierarchy(7)。改變優先級[編輯 | 編輯原始碼]
GameMode 可以選擇性地調整遊戲進程的優先級(參見 renice(1)),可以超出常規用戶的下限 0
。
這由以下配置選項控制:
[general] renice=0
與使用 renice
命令改變進程優先級不同,GameMode 使用正值並在應用到進程之前取其負值,也就是說,值為 10
將把遊戲進程的優先級改為 -10
。
超頻[編輯 | 編輯原始碼]
GameMode 可以選擇性地在運行時超頻你的 GPU,但需要用戶的特殊配置。
無論使用什麼 GPU,必須適當設置 apply_gpu_optimizations
和 gpu_device
配置選項。
AMD[編輯 | 編輯原始碼]
要改變 AMD GPU 的性能級別,必須手動啟用 超頻,並設置 amd_performance_level
配置選項。
NVIDIA[編輯 | 編輯原始碼]
要改變 NVIDIA GPU 的性能級別,必須手動啟用 超頻,並設置 nv_powermizer_mode
、nv_core_clock_mhz_offset
和 nv_mem_clock_mhz_offset
配置選項。
使用[編輯 | 編輯原始碼]
測試配置[編輯 | 編輯原始碼]
驗證配置文件中的設置是否有效:
$ gamemoded -t
運行單個遊戲[編輯 | 編輯原始碼]
要運行一個遊戲並使用 GameMode,啟動方式如下:
$ gamemoderun ./game
與 MangoHud 一起使用[編輯 | 編輯原始碼]
驗證 GameMode 是否在運行[編輯 | 編輯原始碼]
當你啟動遊戲時,可以使用以下命令驗證 GameMode 是否運行:
$ gamemoded -s
運行單個 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