Ist Triple Buffering wirklich ein kostenloser Leistungsschub?

8

Ich habe also viel über openGL und gpus und Grafiken im Allgemeinen gelesen, und die dreifache Pufferung wird halb so häufig erwähnt, um einen freien Leistungsschub zu geben. Ich weiß, warum es hilft; In der Tat können Sie v-sync machen, ohne auf eine Bildrate von 60 oder 30 oder 20 oder 15 oder etc beschränkt zu sein, so dass Sie z. B. 55 fps erreichen können. Aber gibt es tatsächlich eine Kosten? Intuitiv würde ich erwarten, dass die dreifache Pufferung die Ausgabe um einen Frame verzögert, was zu einer sehr kleinen Verzögerung führt.

    
naiad 21.06.2010, 05:48
quelle

2 Antworten

6

Bei 55 FPS ist ein Frame etwas unter 20ms. Es ist also nicht ganz kostenlos, aber es ist fast immer die Kosten wert.

Bei 15 FPS kann es jedoch ziemlich auffällig sein. (Übrigens, das ist ein POS-Laptop. Die meisten 3D-Spiele laufen für mich so schnell. Einige sogar langsamer.)

Manche Leute bemerken die Verzögerung, besonders bei niedrigeren Bildraten, und manchmal funktioniert die dreifache Pufferung nicht ganz wie erwartet. (Insbesondere in OpenGL kann etwas, das von der Hardware nicht gut unterstützt wird, auf (potentiell sehr langsame) Softwareemulationen zurückgreifen. Sollte heutzutage kein großes Problem sein, aber eh.) Also die meisten Programme, die auch Triple-Buffering verwenden Fügen Sie eine Option hinzu, um es zu deaktivieren. Vielleicht möchten Sie das Gleiche tun.

    
cHao 21.06.2010, 06:14
quelle
5

Ein Zitat aus dem ausgezeichneten Buch "Real-Time Rendering" ( Ссылка ) von Akenine-Möller und anderen, Seite 835, welches fasst ziemlich genau das zusammen, was Sie bereits in der Antwort auf Ihre eigene Frage vorgeschlagen haben, in Anbetracht der Verzögerung:

"Dreifache Pufferung hat einen großen Vorteil gegenüber der doppelten Pufferung Das System kann auf den ausstehenden Puffer zugreifen, während es auf die Vertikale wartet zurückverfolgen. Bei Doppelpufferung kann ein Swap die Grafikpipeline blockieren Der Nachteil des Triple-Bufferings besteht darin, dass die Latenz auf eine ganze Länge ansteigt Rahmen. Dieser Anstieg verzögert die Reaktion auf Benutzereingaben, z. B. Tastenanschläge und Maus oder Joystick bewegt sich. "

    
Greg S 21.06.2010 06:46
quelle

Tags und Links