软件用户
2012-05-01 09:30:45 +0000 2012-05-01 09:30:45 +0000
818

越洋ping比发个像素到屏幕上还快?

约翰-卡马克 推特,

我可以发送一个IP包到欧洲 比我可以发送一个像素到屏幕上还快。这有多坑爹?

如果这不是John Carmack的话,我会把它归入 "网络愚蠢 "的范畴。

但这是John Carmack。

这怎么可能是真的?

为了避免讨论推特中的确切含义,我想得到的答案是:

*在最好的情况下,从软件触发数据包到驱动级以上的软件接收到一个IP数据包,从美国的服务器到欧洲的某个地方需要多长时间? *

*在最好的情况下,一个像素在屏幕上显示需要多长时间,从高于驱动级别的软件改变该像素的值开始测量? *


即使假设横跨大西洋的连接是用钱能买到的最好的光纤电缆,而且John就坐在他的ISP旁边,数据仍然必须以IP包的形式编码,从主存储器到网卡。从那里通过墙上的电缆进入另一栋楼,可能会跳过那里的几台服务器(但我们假设它只需要一个中继器),被光子化穿过海洋,由光传感器转换回电脉冲,最后由另一个网卡解释。我们就此打住。

至于像素,这是一个简单的机器字,通过PCI Express插槽发送,写入缓冲区,然后再刷新到屏幕上。即使考虑到 "单个像素 "可能会导致整个屏幕缓冲区被传输到显示器,我也不明白这怎么会更慢:它不像比特是 "一个一个 "传输的--相反,它们是连续的电脉冲,它们之间没有延迟地传输(对吗?

答案 [3]

1339
2012-05-01 14:24:00 +0000

向远程主机发送数据包的时间是ping报告时间的一半,ping测量的是往返时间。

我测量的显示器是一个连接到PC的 Sony HMZ-T1 头戴式显示器。

为了测量显示器的延迟,我有一个小程序,坐在旋转循环中轮询游戏控制器,每当有按钮被按下时,就进行一次清除到不同的颜色和交换缓冲区。我用240 fps的摄像头视频记录显示游戏控制器和屏幕,然后计算按钮被按下和屏幕开始显示变化之间的帧数。

游戏控制器的更新频率为250 Hz,但没有直接的方法来测量输入路径上的延迟(我希望我还能把东西连到并行端口,并使用in/out Sam指令)。作为一个控制实验,我在一个旧的CRT显示器上做同样的测试,垂直回溯为170 Hz。Aero和多个显示器可以引入额外的延迟,但在最佳条件下,你通常会看到颜色变化开始在屏幕上的某个点(vsync被禁用)两个240 Hz帧的按钮下去后。似乎有8 ms左右的延迟要经过 USB HID 处理,但我想在未来更好地钉住这一点。

桌面液晶显示器需要10多帧240 Hz的帧数才能在屏幕上显示出变化,这并不稀奇。索尼HMZ平均在18帧左右,也就是70多毫秒的总时间。

这是在多显示器设置中,所以有几帧是驱动的问题。

有些延迟是一种技术的固有特性。LCD面板实际变化需要4-20 毫秒,这取决于技术。单芯片 LCoS 显示器必须缓冲一个视频帧,以从包装像素转换到顺序的颜色平面。激光光栅显示器需要一定量的缓冲,以从光栅返回转换为来回扫描模式。帧序列或上下分离的立体3D显示器不能在一半时间内更新中帧。 OLED 显示器应该是最好的显示器之一,正如 eMagin Z800 所证明的那样,它的延迟与60 Hz的CRT相当,比我测试的其他非CRT都要好。

索尼上的不良表现是由于软件工程不佳造成的。一些电视功能,如运动插值,需要缓冲至少一帧,可能会受益于更多。其他功能,如浮动菜单、格式转换、内容保护等,可以用流媒体的方式实现,但简单的方法是只在每个子系统之间进行缓冲,这在某些系统中会堆积到半打帧。

这是非常遗憾的,但这都是可以解决的,希望以后在延迟方面多向显示器厂商靠拢。

1339
69
2012-05-01 10:26:17 +0000

一些显示器可以有显著的输入滞后

与蹩脚的显示器和显卡组合相比,一个很棒的互联网连接是可能的

来源。 Console Gaming: The Lag Factor - Page 2

因此,在30FPS的情况下,我们得到了8帧/133ms的基准性能,但在第二个片段中,游戏已经降到了24FPS,在我扣动扳机和Niko开始猎枪射击动画之间有明显的12帧/200ms延迟。这200ms加上你屏幕的额外延迟。哎哟。

一个显示器可以增加5-10ms

所以,一个控制台可以有高达210ms的延迟

而且,根据David的评论,最好的情况应该是发送一个数据包的70ms左右。

69
37
2012-05-03 10:31:24 +0000

在显示器上演示输入滞后是非常简单的,只要把一个lcd贴在crt旁边,然后显示一个时钟或动画填充屏幕并记录下来。一个可以落后一秒甚至更多。自从游戏玩家等更多的注意到这一点后,液晶厂商就加强了对这一点的关注。

Eg. Youtube Video: Input Lag Test Vizio VL420M

37