短按和长按的触摸屏输入延迟之间存在巨大差异(>100ms)

短按和长按的触摸屏输入延迟之间存在巨大差异(>100ms)

这种现象可以体现在这个视频(希望 YouTube 不要对视频进行太多压缩)。这个视频是 30FPS 的视频。在视频中,我用触控笔(与手指效果相同,但比手指更容易知道触控笔触到屏幕的时间)触摸了触摸屏 3 次。触摸事件测试是在 Chrome 中运行的网页上进行的,每当触发 touchstart 事件时,网页都会生成一个白色方块。图形每 1/60 秒更新一次,显示器的延迟也相当短,因此如果我们考虑触摸输入的延迟,这些延迟可以忽略不计。我们可以在视频中看到

  • 如果短暂点击触摸屏(视频中第一次触摸),则在触控笔实际接触屏幕后 4 帧(~133 毫秒)会触发 touchstart 事件,因此如果是短暂点击,touchstart 的输入延迟约为 133 毫秒;
  • 如果长时间按下触摸屏(视频中的第 3 次触摸),则在触控笔实际击中屏幕后 8 帧(~267ms)会触发 touchstart 事件,因此如果长按,touchstart 的输入延迟约为 267ms。

因此,短按和长按的输入延迟存在巨大差异,大于100ms,这个差异大到在1.0倍速视频中可见,在玩节奏游戏时更是致命的(作为参考,节奏游戏中完美判断的典型判断窗口半径为50ms)。

我认为这是 GNOME 的一个错误,因为当我使用evtestxinput testlibinput debug-events等命令检查输入事件时,或者当我在 Weston(DRM 后端)中测试触摸输入时,延迟差异不可见。我甚至猜测这不是一个错误,而是一个功能,但我只想禁用该“功能”,因为它破坏了我使用触摸屏玩游戏的体验。

相关内容