GameMode
GameMode 是 Linux 的守护进程和库的组合,允许游戏请求将一组优化临时应用于主机操作系统和/或游戏进程。
安装
将您自己添加到 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 一起使用
请参阅 MangoHud#Use with GameMode
验证 GameMode 正在运行
当您启动游戏后,可以使用以下命令验证 GameMode 是否正在运行
$ gamemoded -s
运行单个 Steam 游戏
要使 Steam 使用 GameMode 启动游戏,请在“库”中右键单击游戏,选择“属性...”,然后在“启动选项”文本框中输入
gamemoderun %command%
使用 GameMode 运行 Steam
为了避免必须更改所有 Steam 游戏的启动选项,您可以直接使用 GameMode 启动 Steam
$ gamemoderun steam-runtime
这种方法的缺点是 GameMode 将在 Steam 进程打开期间一直运行,而不仅仅是在游戏打开时运行。
故障排除
当设置为小于 -10 时,重新设置优先级失败
默认情况下,GameMode 提供 PAM 限制,允许将调度优先级更改为最多 -10。 如果配置文件中的 renice
设置设置为不支持的值,则进程的重新设置优先级将完全失败。
您可以通过编辑 /etc/security/limits.d/10-gamemode.conf
来调整请求的值或调整 GameMode 可以设置的最大调度优先级。 以下示例将 -19 配置为 GameMode 可以设置的最大调度优先级
/etc/security/limits.d/10-gamemode.conf
@gamemode - nice -19