我一直在阅读关于OpenGL、GPU和图形方面的内容,三倍缓冲经常被提到可以免费提升性能。我知道它为什么有用;实际上,您可以进行垂直同步而不受60或30或20或15等帧速选择的限制,因此您实际上可以达到55fps。但这样做是否会产生成本?直觉上,我预计三倍缓冲将延迟输出一个帧,从而为所有内容增加非常小的延迟。
我一直在阅读关于OpenGL、GPU和图形方面的内容,三倍缓冲经常被提到可以免费提升性能。我知道它为什么有用;实际上,您可以进行垂直同步而不受60或30或20或15等帧速选择的限制,因此您实际上可以达到55fps。但这样做是否会产生成本?直觉上,我预计三倍缓冲将延迟输出一个帧,从而为所有内容增加非常小的延迟。
以下是《实时渲染》一书(http://www.realtimerendering.com/)中Akenine-Möller等人在第835页提到的一段话,这几乎总结了你在回答自己的问题时已经建议的内容,考虑到延迟:
“三倍缓冲相对于双倍缓冲有一个主要优势。使用它,系统可以在等待垂直重现时访问挂起的缓冲区。使用双倍缓冲,交换可能会中断图形管线[...]三倍缓冲的缺点是延迟增加了整个帧。这种增加会延迟对用户输入(例如按键、鼠标或操纵杆移动)的反应。”