代码之家  ›  专栏  ›  技术社区  ›  amara

三重缓冲真的是一种免费的性能提升吗?

  •  8
  • amara  · 技术社区  · 16 年前

    因此,我已经阅读了很多关于OpenGL、GPU和图形的一般内容,并且三重缓冲半经常被提到可以提高性能。我知道为什么它有帮助;实际上,您可以在不限制为60或30或20或15等帧速率选择的情况下进行v-sync,这样您就可以实现,比如说,55fps。但这确实有代价吗?直观地说,我希望三重缓冲将输出延迟一帧,这会给每件事情增加一个非常小的延迟。

    2 回复  |  直到 16 年前
        1
  •  6
  •   cHao    16 年前

    在55帧每秒,一帧是有点低于20毫秒。所以它不是完全免费的,但它几乎总是很值得的成本。

    不过,在15帧每秒的速度下,它可以非常明显。(顺便说一句,这是一台POS笔记本电脑。对我来说,大多数3D游戏都运行得那么快。有些更慢。)

    有些人注意到这种延迟,特别是在较低的帧速率下,有时三重缓冲并不能像预期的那样工作。(尤其是在OpenGL中,硬件不支持的东西可能会退回到软件仿真(可能非常慢)。这些天不应该是个大问题,但是eh.)所以大多数使用三重缓冲的程序也包括一个禁用它的选项。你也可以考虑这样做。

        2
  •  5
  •   Greg S    16 年前

    《实时渲染》一书中的一句话( http://www.realtimerendering.com/ )由Akenine-M_ller等人,第835页,它几乎总结了你在回答自己问题时已经提出的建议,考虑到滞后:

    “三重缓冲比双缓冲有一个主要优势。使用 它,系统可以在等待垂直 回扫。通过双缓冲,交换可以暂停图形管道。…] 三重缓冲的缺点是延迟增加到一个整体 框架。这一增加延迟了对用户输入的反应,例如击键 鼠标或操纵杆移动。”