三倍缓冲真的是免费的性能提升吗?

9

我一直在阅读关于OpenGL、GPU和图形方面的内容,三倍缓冲经常被提到可以免费提升性能。我知道它为什么有用;实际上,您可以进行垂直同步而不受60或30或20或15等帧速选择的限制,因此您实际上可以达到55fps。但这样做是否会产生成本?直觉上,我预计三倍缓冲将延迟输出一个帧,从而为所有内容增加非常小的延迟。

2个回答

6
在55 FPS时,一个帧的时间略低于20毫秒。所以它并不完全是免费的,但几乎总是值得这个代价。
然而,在15 FPS时,它可能非常明显。(顺便说一下,这是一台糟糕的笔记本电脑。对我来说,大多数3D游戏运行速度都差不多。有些甚至更慢。)
有些人会注意到延迟,特别是在较低的帧率下,有时三重缓冲也无法像预期的那样工作。(特别是在OpenGL中,一些硬件无法很好地支持,可能会退回到(潜在非常慢的)软件仿真。这些日子应该不会有太大问题,但嗯,你可能想考虑禁用它的选项。)

6

以下是《实时渲染》一书(http://www.realtimerendering.com/)中Akenine-Möller等人在第835页提到的一段话,这几乎总结了你在回答自己的问题时已经建议的内容,考虑到延迟:

“三倍缓冲相对于双倍缓冲有一个主要优势。使用它,系统可以在等待垂直重现时访问挂起的缓冲区。使用双倍缓冲,交换可能会中断图形管线[...]三倍缓冲的缺点是延迟增加了整个帧。这种增加会延迟对用户输入(例如按键、鼠标或操纵杆移动)的反应。”


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接