John Carmack发了推文,


我向欧洲发送IP数据包的速度比向屏幕发送像素更快。



如果不是约翰·卡马克(John Carmack),我会把它归类为“愚蠢的网际网路”。

但这就是约翰·卡马克(John Carmack)。

这怎么可能呢?

为了避免讨论推文中的确切含义,我希望得到以下答复:

在最佳情况下,要从美国的服务器将单个IP数据包发送到欧洲某个地方需要多长时间,该时间是从软件触发数据包的时间到从驱动程序级别以上的软件开始算起,最好在多长时间内将像素显示在屏幕上?

改变像素值吗?


即使假设跨大西洋连接是金钱可以买到的最好的光缆,并且约翰正坐在他的ISP旁边,数据仍然必须被编码为IP数据包,从主存储器获取到他的网卡通过墙壁上的电缆从那里到另一座建筑物,可能会跳到那里的几台服务器上(但假设它只需要一个中继),就可以在整个海洋中被光子化,并通过光电传感器,最后由另一张网卡解释。让我们在这里停下来。

关于像素,这是一个简单的机器字,它通过PCI Express插槽发送并写入缓冲区,然后刷新到屏幕。即使考虑到“单个像素”可能会导致整个屏幕缓冲区传输到显示器这一事实,我也看不出这会变慢:这不像比特是“一一传输”的,而是是连续的电脉冲,它们之间没有延迟地传输(对吗?)。

评论

他是疯了还是这是不寻常的情况。由于光纤中的光速,您无法通过一种方式在不到60毫秒的时间内从美国到欧洲获取数据。您的视频卡每隔17毫秒左右就会显示出一个全新的像素屏幕。即使使用双重缓冲,您仍然可以击败数据包很多。

@DavidSchwartz:您正在孤立地考虑GPU。是的,GPU可以在不到60毫秒的时间内完成很多工作。但是John抱怨涉及监视器的整个链条。您是否知道从图像数据传输到显示器并在屏幕上显示之前会涉及多少延迟? 17ms的数字毫无意义且无关紧要。是的,GPU每17毫秒准备一次新图像,是的,屏幕每17毫秒显示一次新图像。但这并没有说明图像在显示之前已经走了多长时间

他是一名游戏程序员,他说的速度比我将像素发送到屏幕的速度还快...所以也许可以解释3D图形渲染的延迟?尽管在大多数视频游戏中这应该是相当低的;它们针对性能而非质量进行优化。当然,他极有可能被夸大了(我说的很明显很高兴?)。

到百思买(Best Buy)看一些时间,观看所有电视机,将它们全部调谐到同一室内频道。甚至显然相同的集合也将相对于彼此具有明显的(也许是四分之一秒)滞后。但是除此之外,还必须在UI内实现整个“绘制”循环(这可能涉及重新渲染图像的多个“层”)。而且,当然,如果需要3-D渲染或类似的渲染会大大增加延迟。

有很多问题值得思考,除非您知道J.Carmack真正在说什么,否则我认为没有完美的答案。也许他的推文只是对他遇到的某些情况的愚蠢评论。

#1 楼

将数据包发送到远程主机的时间是ping所报告的时间的一半,而ping是往返时间。

我正在测量的显示器是一台与HMZ-T1头戴式显示器相连的显示器。 PC。要测量显示延迟,我有一个小程序,它位于旋转循环中,轮询游戏控制器,清除不同的颜色,并在每次按下按钮时交换缓冲区。我用240 fps摄像机录制了视频,同时显示了游戏控制器和屏幕,然后计算了按下的按钮和屏幕之间的帧数,开始显示更改。

游戏控制器在以下位置更新250 Hz,但没有直接方法来测量输入路径上的延迟(我希望我仍然可以将东西连接到并行端口并使用in / out Sam指令)。作为对照实验,我在具有170Hz垂直回扫的旧CRT显示器上进行了相同的测试。 Aero和多台显示器可能会带来额外的延迟,但是在最佳条件下,您通常会在按钮按下后两个240 Hz帧处的某个点开始看到颜色变化(禁用垂直同步)。 USB HID处理似乎有8毫秒左右的延迟,但我希望将来能更好地解决这一问题。

台式LCD显示器需要10倍以上的时间并不少见240 Hz帧以在屏幕上显示更改。索尼HMZ平均大约18帧,或70毫秒以上。

这是在多显示器设置中,所以驱动程序有几帧是故障。

某些延迟是固有的技术。 LCD面板实际更改需要4到20毫秒,具体取决于技术。单芯片LCoS显示器必须缓冲一个视频帧才能从压缩的像素转换为顺序的色彩平面。激光光栅显示器需要一定数量的缓冲才能从光栅返回转换为来回扫描模式。逐帧顺序或上下拆分的立体3D显示器无法一半时间更新中间帧。

eMagin Z800证明了OLED显示器应该是最好的,它的延迟时间可与60 Hz CRT相媲美,比我测试过的任何其他非CRT都要好。

索尼的性能不佳是由于软件工程不佳所致。一些电视功能(例如运动插值)需要缓冲至少一帧,并且可能会受益于更多。其他功能(例如浮动菜单,格式转换,内容保护等)可以以流方式实现,但简单的方法是仅在每个子系统之间进行缓冲,在某些系统中可以堆积多达六帧。

这是非常不幸的,但是都可以解决,我希望将来更多地依赖于显示器制造商。

评论


我不想因为过多的离题评论而锁定此答案。约翰提供了这个答案,我们都很高兴,但是我们不需要25条都表达他们的感激,怀疑或兴奋的评论。谢谢。

–nhinkle
2012年5月2日在8:48



您的USB触发器可能作为低速USB设备(总线总线速率为125usec)运行,导致最小8ms的延迟(硬件问题)。也许可以尝试使用PS2键盘?

–鲍里斯(Boris)
2012年5月2日,9:10

@Marcus Lindblom被狩猎,你的意思是读吗?我认为在这种情况下,他如何获得号码与号码一样重要-有关推文的怀疑不会通过引用其他号码来解决。上下文也有帮助-此特定监视器及其次优软件最直接地使他烦恼。

–杰里米
2012年5月3日,11:54

听起来您似乎在说,当LCD制造商声称响应时间为5毫秒时,这可能是原始面板更换所需的时间,但是显示器在实际驱动显示器之前增加了更多的时间来缓冲和处理信号。 LCD。这是否意味着制造商发布了虚假/误导性的规格?

–psusi
2012年5月3日18:19

@psusidoubledeej.blogspot.com/2009/07/…zdnet.com/blog/ou/…gizmodo.com/5669331/why-most-hardware-specs-are-total-bullshit maximumpc.com/article/features/display_myths_shattered

–丹在火光中摆弄
2012年5月4日12:48

#2 楼

与笨拙的显示器和视频卡相结合,某些显示器可能会有很大的输入滞后

原因是令人惊叹的Internet连接

资料来源:

主机游戏:滞后因素•第2页


因此,在30FPS时,我们获得了8帧/ 133ms的基准性能,但是在第二个剪辑中,游戏下降到了24FPS时,在拉动扳机和Niko
开始between弹射击动画之间存在明显的
12帧/ 200ms延迟。这是200毫秒,加上屏幕的
额外延迟。哎呀。


显示器可以再增加5-10毫秒

因此,控制台最多可以有210毫秒的延迟。

根据David的评论,最好的情况是发送数据包的时间约为70ms

评论


-1我不认为John Carmack使用笨拙的显示器或视频卡。请通过可靠的来源引用您的声明。

– Baarn
2012年5月1日上午10:41

抱歉,我仍然看不到这真的在回答问题。这句话引述了“拉动触发器”,这意味着在输入处理,场景渲染等方面的工作要比仅仅向屏幕发送像素还要多。而且,与现代硬件性能相比,人类的反应速度相对较差。从家伙认为他扣动扳机到实际扣动扳机之间的时间很可能是瓶颈。

–康拉德·鲁道夫(Konrad Rudolph)
2012年5月1日在10:57



链接的文章显示,该分析的作者购买了一种特殊的设备,可以准确地向您显示按钮的按下时间,因此,我认为他们并没有随心所欲。

–美乐思
2012年5月1日13:40

@KonradRudolph:感知是非常奇怪的东西。不久前,我读了一篇有关实验控制器的文章,该控制器直接从脊髓读取脉冲。人们会觉得计算机在单击之前就已经在运行,即使单击它是对他们的反应是他们自己的神经命令。

–赞·山猫
2012年5月1日16:48

@Zan Lynx:这是一个已知的效果。 Google对于“ Benjamin Libet的Half Second Delay”的提出。人的意识需要大量的处理时间。现在,所有正在发生的事情实际上都发生在过去。半秒钟前,您的所有感官都将为您提供事件的“集成多媒体体验”。此外,事件似乎被大脑“打上了时间戳”。相对于触觉刺激,必须延迟直接的大脑刺激,以使受试者同时报告感觉!

–卡兹
2012年5月1日21:24



#3 楼

在显示器上演示输入滞后非常简单,只需将LCD贴在crt旁边,然后在屏幕上显示时钟或动画并进行记录。一个人可能落后一秒钟或更长时间。自从游戏玩家等注意到这一点以来,LCD制造商就加大了对它的关注。

例如。 YouTube视频:输入延迟测试Vizio VL420M