开发者生态
evening
测量 Linux 上的输入延迟:X11 与 Wayland、VRR 和 DXVK
2026-07-14
1 阅读
约7分钟阅读
hoechst
字号:
MARCO NETT MARCO NETT about_me 印记文件夹-sublime-open 使用 Sketch 创建。博客 测量 Linux 上的输入延迟:X11 与 Wayland、VRR 和 DXVK 将旧门铃安装到由门铃本身供电的 Home Assistant 上 为什么“com_maxfps 250x”取消了 Quake Live 的帧速率 测量 Linux 上的输入延迟:X11 与 Wayland、VRR 和 DXVK 2026-07-13 两年前,我在游戏 PC 上切换到 Linux。人们一直告诉我,在 FPS、帧节奏和输入延迟方面,它的表现比 Windows 更好,当我尝试时,它确实感觉好多了。互联网上有很多关于优化 Linux 进行游戏的建议: Wayland 输入延迟很严重,使用 X11 禁用合成(“使用翻转模式”) 使用延迟优化的 DXVK 分支 使用游戏专用的内核调度程序等。我玩竞技 FPS 游戏,因此低延迟、一致的帧时间和高 FPS 对我来说很重要。在 Linux 上,有无数的设置需要调整(magic env vars、gamescope、gamemode,甚至更多 DXVK forks 等等)。但一直困扰我的是,我没有可靠的方法来验证某些东西是否真的降低了系统延迟,或者它只是万金油、安慰剂效应,或者实际上更糟而我没有意识到。设备 这个想法很简单:将带有某种光传感器的设备绑在显示器上,并通过 USB 将其连接到 PC 以模拟鼠标点击。单击时,测量单击与光传感器检测到屏幕上的变化之间的时间。通过这种方式,您可以测量端到端系统延迟。 © NVIDIA 有一张图片很好地总结了这一点。虽然现在有一些这样的开源设备可用,例如 m2p-latency 或 Open-Source-LDAT ,但当我开始这个业余项目时,只有 OSLTT ,并且对硬件一无所知,我很高兴研究它的原理图并松散地将我的设计建立在它的基础上。但本月刚刚完成我的项目,我最终也整合了其他两个项目的很多想法。穿孔板上的 QT Py RP2040、跨阻放大器和 BPW34 光电二极管。外壳有“翅膀”,因此我可以使用松紧带将其绑在显示器上。长话短说,我学到了很多关于微控制器、焊接、Arduino 固件开发、集成时间、跨阻放大器、KiCad(仅一点点)和外壳设计的知识。我的结论是:Adafruit QT Py RP2040 充当 USB HID 鼠标,具有 1000 Hz 轮询率并触发点击。发送点击后,它开始从光电二极管收集样本(每约 24 µs)。每次点击 12,000 个样本通过串行流传输到主机并记录到 CSV。根据样本,主机上的工具建立每次点击基线,然后找到与基线偏离一定量的第一个样本。由于收集 12k 样本所需的时间是固定的,因此现在可以计算发送点击和检测屏幕上的亮度变化之间的时间。测试场景我想测试三个不同的东西。显示服务器(X11 与 Native Wayland) 很多人仍然使用 X11 而不是 Wayland,因为据说 Wayland 的输入延迟要严重得多。刚搜了一下,就有很多人抱怨 Wayland“感觉不舒服”。 VRR(开与关)可变刷新率/G-Sync/FreeSync/无论您如何称呼它。也备受热议。 DXVK 低延迟分叉(打开与关闭) 从现在起称为 dxvk-low-latency 或 low-latency。这个 fork 的维护者 netborg 投入了大量精力来开发这个框架节奏器,它最近被集成到官方的 proton-cachyos 包中,通过环境变量 PROTON_DXVK_LOWLATENCY=1 启用。这个分支的承诺是我想要再次尝试桌面 Linux 的决定因素之一。奖励:dxvk-low-latency 与默认 dxvk uncapped 相比,像 dxvk-low-latency 这样的帧调速器带来的最大优势是吸收帧时间波动并防止渲染队列堆积。使用我使用的测试方法(静态游戏场景,请参阅下文了解更多信息),没有可观察到的帧时间波动,因为所有测试都产生纯粹受 CPU 限制的场景。但这主要并不能反映真实的游戏会话,其中帧时间可能会由于游戏内或游戏外发生的情况(例如使用资源的其他进程)而波动。因此,为了展示工作中的起搏器,我添加了两个无上限的测试用例。奖励:Native Wayland 与 XWayland 我通过本机 Wayland ( PROTON_ENABLE_WAYLAND=1 ) 运行了所有 Wayland 测试用例,因为我已经知道 XWayland 会引入延迟。但为了比较,我添加了两个 XWayland 测试用例(仅在 VRR 关闭的情况下)。测试条件 硬件 AMD Ryzen 7 5800X3D NVIDIA GeForce RTX 4070 SUPER 2x8 GB DDR4(3200 MHz) MSI MAG 272QP QD-OLED X50(2560×1440 / 500 Hz) MSI B450 GAMING PRO CARBON AC 测试期间仅连接一台显示器。软件版本 CachyOS - 内核 7.1.3-2-cachyos NVIDIA 驱动程序 610.43.03-1 KDE Plasma 6.7.2-1.1 xorg-server 21.1.24-1.1 proton-cachyos-n
这篇文章对您有帮助吗?
订阅66必读
每日精选科技资讯,直达你的邮箱