Arch Linux+niri+NVIDIA 笔记本游戏性能排查:4K HDR 从约 45 FPS 提升到 75 FPS

本文最后更新于 2026年9月19日 晚上

最近, 空之轨迹2nd 发售了,我也第一时间在 steam 上购买下载了,开始游玩。我的主力笔记本是 Archlinux 2024款的翼龙15pro 4070版本, 现在用的 niri+dms+wayland. 听说 cachyOS 的 proton 支持走wayland 而不是 Xwayland 了,因此我也装了 proton-cachyos. 进入游戏之后发现游戏支持HDR, 又让 GPT6 帮我找了一个 niri 的分支,自行构建开启了HDR支持

但是进入游戏之后,帧率很低,尤其我用4k 中画质的话,大约只有45帧,开启HDR会更低。听闻前段时间Linux上能用上 dlss5, 我也尝试了一下,于事无补,而且帧率进一步降低,可能我的显卡太差了(对应的资源也放在我的 openlist了。

找AI帮我调了一些参数,也没有什么明显效果,所以在 Linux下我就先用着2k高画质玩着,差不多60FPS. 我又想要不回 Windows 得了,结果 windows下4k中画质有60fps, 但是没有HDR了(我的显示器是支持的)。所以我又回Linux了,想着怎么提升一下帧数。

排查过程

下面的排查过程是让 GPT帮我总结的,大致上没问题。

最终有效的调整是:指定 niri 使用 NVIDIA 独显作为主渲染设备。 游戏本身一直运行在独显上,但 niri 原先使用的是另一块 GPU。

记录一下 Windows/Linux 对照、排查过程和解决办法,供双显卡笔记本用户参考。

使用环境

  • 系统:Arch Linux
  • 桌面:niri+DMS,niri 为自行编译的 HDR 分支
  • niri 版本:26.04 (641335f)
  • 显卡:RTX 4070 Laptop,8GB 显存
  • NVIDIA 驱动:615.71.09
  • Proton:proton-cachyos-slr 1:11.0.20260703-1
  • 显示器:ASUS PG32UCDM3,通过 HDMI 连接
  • 桌面输出:3840×2160、240Hz,缩放 200%
  • VRR:配置为按需启用

后期 Linux 对照测试主要使用 4K 输出、中画质、DLSS Performance。这里的 4K 指输出分辨率,启用 DLSS 后并非原生 4K 渲染。

最初的疑问:为什么 Windows 能接近 4K 60 FPS,Linux 却不行?

在 Windows 11 下,使用 4K+DLSS Performance,帧率能够勉强达到 60 FPS。

但 Windows 下还有一个 HDR 问题:

  • Windows 系统设置中的 HDR 已开启。
  • 游戏内 HDR 显示为 Off,而且不能调整。
  • Linux 下使用支持 HDR 的 niri 分支后,游戏内 HDR 可以调整。

所以,Windows 的这个结果不能算作“游戏 HDR 开启时的 4K 60 FPS”。当时也没有把两边所有画质选项逐项记录下来,它主要是排查起点,并非严格控制全部变量的跨系统基准测试。

Linux 下做过的帧率对照

早期在 4K、中画质、DLSS Performance,HDR 关闭 的条件下:

运行方式 实测帧率
XWayland 约 60 FPS
Proton 原生 Wayland 43–49 FPS

这让我最初怀疑是 Proton 的原生 Wayland 路径存在明显性能损失,考虑过重新编译 Proton,或者添加环境变量。

之后另一次测试中,原生 Wayland 的表现是:

HDR 状态 实测帧率
开启 约 45 FPS
关闭 约 52 FPS 以上

这些是不同轮次的观察,因此没有把早期的 43–49 FPS 与后来的 52 FPS 以上当作完全相同条件下的重复测量。

中间排查了哪些方向?

  1. 显卡功耗与 Dynamic Boost

    游戏时经常看到 GPU 只有约 105W,而 nvidia-smi 显示上限为 140W,因此怀疑没有释放全部功耗。

    检查发现:

    • Notebook Dynamic Boost 显示 Supported。
    • nvidia-powerd 已启动。
    • 一次详细采样中,平均功耗达到 139.59W
    • 另一次连续采样虽然只有约 103–104W,但核心频率稳定在 2520MHzSW Power CapNot Active

    因此,不能因为某段游戏只有 105W,就判断显卡被锁在 115W,或者需要“解锁 140W”。

  2. 关闭 Wine fullscreen hack

    测试了:

    1
    PROTON_ENABLE_WAYLAND=1 WINE_DISABLE_FULLSCREEN_HACK=1 gamemoderun %command%

    帧率仍为 43–49 FPS,没有观察到改善。

  3. HDR 分支的 scanout-post-blend-encode

    单独尝试了:

    1
    2
    3
    debug {
    scanout-post-blend-encode
    }

    添加和移除都没有观察到帧率变化,因此它不是这次解决问题的关键。

真正的线索:niri 使用的渲染设备

检查 niri 日志:

1
2
journalctl -b _COMM=niri --no-pager |
rg 'using as the render node'

原先显示:

1
using as the render node: "/dev/dri/renderD128"

随后确认 NVIDIA 独显对应的节点:

1
readlink -f /dev/dri/by-path/pci-0000:01:00.0-render

结果是:

1
/dev/dri/renderD129

也就是说,游戏使用 NVIDIA,但 niri 的主渲染设备并不是 NVIDIA。

之前在 nvidia-smi 的进程列表里也能看到 niri,但这不足以证明 niri 把 NVIDIA 作为主渲染设备。这里需要看 niri 启动日志。

最终解决方案

在自己维护的 ~/.config/niri/config.kdl 中加入:

1
2
3
debug {
render-drm-device "/dev/dri/by-path/pci-0000:01:00.0-render"
}

如果已经有 debug 配置块,就把这一项合并进去。

这里使用 PCI 对应的 by-path 路径,避免依赖可能随启动变化的 renderD128renderD129 编号。其他机器需要先确认自己的独显 PCI 地址,不能直接照抄。

然后注销并重新进入 niri 会话。主渲染设备在启动时选择,仅重新加载配置不够。

重新检查日志,确认变成:

1
using as the render node: "/dev/dri/renderD129"

Steam 启动参数保持为:

1
PROTON_ENABLE_WAYLAND=1 gamemoderun %command%

这次改善不依赖重新编译 Proton,也没有使用 DLSS5 helper 的效果来提高帧率。

修改后的结果

继续使用 4K 输出、中画质、DLSS Performance:

原生 Wayland 修改前,后期测试 指定 niri 使用 NVIDIA 后
HDR 开启 约 45 FPS 约 75 FPS
HDR 关闭 约 52 FPS 以上 约 80 FPS

这是此次测试场景中的结果,不代表整个游戏所有场景都能维持同样帧率。不过,已经超过了我最初希望达到的 4K HDR 60 FPS。

补充确认:HDMI 本来就是独显直出

我还怀疑过 HDMI 是否经过核显,以及换成 Type-C 连接是否能改善性能。

检查外接屏接口:

1
2
3
for p in /sys/class/drm/card*-HDMI-A-*; do
[ "$(cat "$p/status")" = connected ] && readlink -f "$p"
done

返回路径中的关键部分是:

1
0000:01:00.0/drm/card0/card0-HDMI-A-1

这说明 HDMI 接口本来就属于 NVIDIA 独显

内屏 eDP 则位于另一块 GPU:

1
0000:07:00.0/drm/card1/card1-eDP-1

所以这次修改改变的是 niri 使用哪块 GPU 渲染,并没有切换笔记本内屏的硬件 MUX。

修复之后,游戏、niri 主渲染设备和 HDMI 输出都落在 NVIDIA 上。没有必要仅为解决这次帧率问题而更换 Type-C 连接。

另一个问题
游戏失去焦点之后最小化,丢给GPT排查之后说是我的设置问题,niri配置加一个阻止最小化.

1
2
3
4
window-rule {
match app-id="^steam_app_4225980$"
block-minimize true
}

同时 proton 启动命令也加一个变量变成下面这样

1
WAYLANDDRV_FOCUS_LOSS=0 PROTON_ENABLE_WAYLAND=1 %command%

这次排查得到的结论

从主渲染设备日志和修改后的大幅提升来看,主要瓶颈指向 niri 的 GPU 选择以及跨 GPU 显示路径,不能简单归因于“Proton 原生 Wayland 性能差”。

没有进行 GPU 跟踪,因此不能精确断言其中发生了几次复制、各自耗时多少;修复后也没有进一步确认外接屏是否进入直接扫描输出。接口属于独显,与合成器成功直接扫描输出,是两件不同的事。

对于双显卡笔记本,尤其是外接显示器接在独显上的情况,如果游戏已经使用独显,Wayland 性能却明显异常,值得同时检查:

  • 游戏使用哪块 GPU。
  • 合成器使用哪块 GPU。
  • 显示器接口实际属于哪块 GPU。

本例中,调整第二项就解决了主要性能问题。

参考:niri 的 render-drm-device 配置说明


Arch Linux+niri+NVIDIA 笔记本游戏性能排查:4K HDR 从约 45 FPS 提升到 75 FPS
https://blog.askk.cc/2026/09/19/linux-wayland-gaming/
作者
sukanka
发布于
2026年9月19日
许可协议