
作者用光电二极管硬测:X11只快0.14–0.22毫秒,真正的黑锅在XWayland。截图:marco-nett.de
你按下鼠标那一下,到屏幕上真出反应,中间隔着多少时间?大多数人从没想过这个问题,因为它短到没法用感觉去衡量。但如果你打过快节奏的射击游戏,或者只是拖窗口时总觉得"手感发黏",那你其实早就在跟这段时间较劲了。它有个名字,叫输入延迟。
最近我翻到一篇挺硬核的实测,作者Marco Nett在Linux上把X11和Wayland这两套显示协议、再加上VRR和DXVK,逐个量了一遍输入延迟。数字很有意思,但更有意思的是,它顺手把一个流传了很多年的说法给戳破了。这篇我想借着他的数据,把"输入延迟"这件事从头讲清楚。

延迟从你按下这一下开始计时——鼠标、键盘只是这条链的第一环。图:Wikimedia Commons / CC BY-SA
延迟到底是从哪冒出来的
输入延迟不是某一个零件的锅,它是一路累加出来的。你按下按键,先得由鼠标或键盘的芯片采样、打包,通过USB送进系统;系统的输入子系统收到,转交给正在运行的程序;程序算完这一帧画面,交给一个叫合成器(compositor,负责把各个窗口拼成一整屏画面的那层软件);合成器再把成品推给显卡,最后由显示器一行行扫描点亮。输入设备到系统、系统到程序、程序到合成器、合成器到屏幕——每一段都吃掉一点点毫秒,加起来就是你手感上的那口"黏"。
所以谈延迟,得看整条链。而Linux桌面这几年吵得最凶的一段,恰恰卡在"合成器"这里——也就是X11和Wayland之争。
怎么才算"量"过了
先说方法,因为方法决定了数字可不可信。Marco没用软件去估,他做了个硬件:一块Adafruit的RP2040单片机,接一个光电二极管贴在屏幕上。单片机自己模拟一次鼠标点击,同时死死盯着光电二极管,等屏幕那块区域亮起来的一瞬间,记下从"发出点击"到"检测到变亮"过了多久。每种配置点300次,跑的是游戏Diabotical,屏幕是500Hz的QD-OLED。
这套办法的好处是它量的是真实的端到端延迟,从点击到出光,中间所有环节一个不落,比看软件日志实在得多。单位是毫秒(ms),一毫秒是千分之一秒——作为参照,一块60Hz的普通屏幕,每帧就要16.7毫秒才刷新一次。所以下面这些零点几毫秒的差别,你得放在这个尺子上看。

真正端到端的延迟,要靠贴在屏幕上的光电二极管来量。图:Dinkun Chen / CC BY-SA
X11和Wayland,差多少
先解释这俩是什么。它们是Linux桌面画图的两套"地基协议"。X11是老前辈,几十年的历史,为了兼容什么都往上堆;Wayland是后来的重写,架构更干净,被当成未来的方向。江湖上一直有个说法:Wayland手感更黏、延迟更高,玩游戏还是X11。
Marco的实测结果是:X11确实更快,但只快0.14到0.22毫秒。X11中位数落在4.21到4.93毫秒,Wayland是4.38到4.93毫秒。零点几毫秒,说白了就是没差。这点差距根本撑不起"Wayland明显更卡"那种体感。
那"Wayland卡"的锅是谁的?答案藏在XWayland上。XWayland是个兼容层,让老的X11程序能在Wayland底下跑。一旦走这条路,延迟直接多出3.13毫秒——原生Wayland中位数4.93毫秒,套上XWayland跳到8.06毫秒。想想早年很多游戏都是X11的,跑在Wayland上就得过XWayland,那口黏,多半是它加的,不是Wayland协议本身的问题。这个区分,很多人这些年一直没搞清。
VRR和DXVK各自能省下什么
VRR全称可变刷新率(Variable Refresh Rate),意思是让屏幕的刷新节奏跟着显卡出帧的速度走,而不是死守一个固定频率。实测里,开VRR每一组配对都更快,省下0.26到0.45毫秒,而且——这点我觉得比数字本身更值钱——它让延迟的波动变小了,也就是手感更稳定,不会一会儿快一会儿慢。
DXVK是另一样东西。它把游戏里的DirectX指令实时翻译成Vulkan(一套跨平台的现代图形接口),这样一堆原本只跑Windows的游戏,就能在Linux上跑起来。作者用的是它的低延迟分支dxvk-low-latency。在锁帧的场景下,它能再抠出0.10到0.29毫秒;不锁帧时收益更大,一个测试里把延迟从5.27毫秒压到4.43毫秒,省了0.84毫秒。
把这几样叠起来——用X11、开VRR、上dxvk-low-latency,相比"什么都不调的Wayland",总共能快大约0.72毫秒。作者最实在的一条建议反而是那句反话:无论如何别走XWayland,那3.13毫秒才是真正该躲开的。
这些数字,别当成圣旨
我得给这套漂亮的数据泼点冷水,作者自己其实也留了口子。这是一次测量,不是定论。最大的变量是那块500Hz的屏。刷新越快,每帧的时间越短,各种延迟差距被压得越扁。有人算过一笔账:同样一个环节的开销,在500Hz上多出的可能只有4毫秒、几乎感觉不到,可换到60Hz的普通屏上,就可能放大成三十几毫秒——那连休闲玩家都能察觉。所以这批"零点几毫秒"的结论,强绑定在高刷屏这个前提上。
还有,Wayland只是个协议,具体实现有KDE的、有GNOME的,各家合成器脾气不一样,一家的数字不能代表全部。测试环境也很干净——单开一个游戏、CPU吃满、没有杂七杂八的程序抢资源,可日常用起来,后台一堆东西挂着,情况会复杂得多。另外顺一句,之前也有人拿高速摄像机测过光标延迟,得出Wayland慢一整帧的结论,但那测的是光标,光标和游戏画面在系统里是两套处理路径,不能直接画等号。测量方法不同,结论就能差出好几毫秒,这正是这类数字最该小心的地方。
普通人和玩家,各该在意到哪
我的判断分两档。你要只是日常用Linux、写点东西、刷刷网页,那这整篇你可以当科普看完就忘——零点几毫秒的差别,人手根本感知不到,X11还是Wayland,随便。真要说,Wayland架构更新、以后走得更远,没理由为了想象中的延迟去守着老协议。
你要是认真打竞技游戏、追那种极限手感的玩家,那这套调法值得照做:留在原生渲染路径上、开VRR求稳、需要跑Windows游戏就用低延迟版的DXVK,最关键是躲开XWayland。但心里也得清楚,这里省的是零点几到几毫秒,真正决定你上不上分的,还是屏幕刷新率、鼠标本身、和你的网络。软件这一层能抠的,早就到了以毫秒计的尽头。把它当锦上添花可以,指望它救手感,就想多了。
资料来源:Marco Nett《Measuring input latency on Linux: X11 vs Wayland, VRR, and DXVK》(marco-nett.de,2026)、Hacker News相关讨论、mort.coffee光标延迟测量。数字为单次实测,随硬件、刷新率、合成器实现不同会有出入,不作定论。
你用Linux玩游戏吗,真感觉得出X11和Wayland的手感差别?说说你的看法。