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