Triple buffering

Triple buffering

Die Dreifachpufferung (englisch triple buffering) beschreibt ein Konzept in der Computergrafik, bei dem der Framebuffer des Video-RAM bei Grafikkarten - auch Rahmenpuffer genannt - in drei Bereiche unterteilt wird. Ziel des Verfahrens ist es, die bei gleichzeitiger Verwendung von VSync (vertikale Synchronisation) und Doppelpufferung (double buffering) auftretenden Nachteile während des Bildaufbaus zu kompensieren.

Der Unterschied zwischen Doppel- und Dreifachpufferung liegt in der Einteilung des Framebuffers. Während bei der Doppelpufferung der Framebuffer aus zwei Pufferspeichern (Front- und Backbuffer) besteht, sind es derer drei bei der Dreifachpufferung (ein Frontbuffer und zwei Backbuffer).

Inhaltsverzeichnis

Funktionsweise

Im Frontbuffer liegt das Bild, das durch den RAMDAC gerade auf den Bildschirm gebracht wird. Im Backbuffer 1 wird das nächste Bild gerendert (berechnet). Der weitere Ablauf ist davon abhängig, wann der Swap-Befehl umgesetzt wird. Dieser wird von der GPU initiiert, wenn der nächste Frame zur Ausgabe bereitsteht und bewirkt das Vertauschen der Speicheradressen von Front- und Backbuffer (Page Flip).

  • Dieser Vorgang entspricht VSync = off
    Der Swap-Befehl wird direkt bei Beendigung der Berechnungen im Backbuffer 1 umgesetzt und damit Front- und Backbuffer vertauscht. Dabei kann es zum sogenannten Tearing kommen, bei dem das auf dem Monitor ausgegebene Bild aus u.U. mehreren aufeinanderfolgenden Frames besteht. Der Backbuffer 2 bleibt bei dieser Kombination ungenutzt. Dreifachpufferung ohne VSync ist somit Ressourcenverschwendung.
  • Dieser Vorgang entspricht VSync = on
    Die Berechnungen im Backbuffer 1 sind abgeschlossen und es wurde bereits mit dem Rendern des nächstfolgenden Bildes im Backbuffer 2 begonnen. Jetzt erfolgt die Umsetzung des Swap-Befehls. Der neue Frontbuffer (ehemals Backbuffer 1) enthält das fertig berechnete Bild und wird auf dem Monitor ausgegeben. Im neuen Backbuffer 1 (ehemals Backbuffer 2) findet die Berechnung des nächsten Frames statt. Der neue Backbuffer 2 (ehemals Frontbuffer) wurde gelöscht und steht zur weiteren Benutzung bereit.

Doppelpufferung und VSync

Durch den Einsatz von VSync wird der Swap-Befehl, der Front- und Backbuffer tauscht, so lange nicht umgesetzt, bis das aktuelle Bild aus dem Frontbuffer komplett auf dem Bildschirm dargestellt wurde. Ist die Berechnung des neuen Frames im Backbuffer bereits abgeschlossen (die GPU hat zum Rendern des neuen Frames weniger Zeit benötigt als der RAMDAC zur Darstellung des aktuellen Frames), dann kann mit weiteren Berechnungen nicht fortgefahren werden, da keine freien Ressourcen zur Verfügung stehen. Die GPU muss also mit der Umsetzung des Swap-Befehls auf das nächste VSync warten und wird somit eines Teils ihrer vollen Leistungsfähigkeit beraubt.

Dreifachpufferung und VSync

Steht ein weiterer Backbuffer zur Verfügung, dann tritt das eben beschriebene Warten nicht auf, weil die Berechnungen eben in diesem fortgesetzt werden können. Es kommt also zu keinem Leistungsverlust.

Vor- und Nachteile von Dreifachpufferung und VSync

Vorteile

  • optimale Bildqualität, da kein Tearing auftritt (grafischer Effekt, wenn während der Bildausgabe mehrere aufeinander folgende Bilder benutzt werden)
  • kein Performanceverlust

Nachteile

  • Der Framebuffer ist um bis zu 50% größer als bei Doppelpufferung
  • Die Bildausgabe ist um ein Frame verzögert

Weblinks


Wikimedia Foundation.

Игры ⚽ Поможем сделать НИР

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Triple buffering — In computer graphics, triple buffering is a variant on double buffering, a technique for drawing graphics that shows no (or less) flicker, shearing, and tearing artifacts.Triple buffering attempts to provide a speed improvement over double… …   Wikipedia

  • Triple Buffering — Die Dreifachpufferung (englisch triple buffering) beschreibt ein Konzept in der Computergrafik, bei dem der Framebuffer des Video RAM bei Grafikkarten auch Rahmenpuffer genannt in drei Bereiche unterteilt wird. Ziel des Verfahrens ist es, die bei …   Deutsch Wikipedia

  • Multiple buffering — In computer science, multiple buffering is the use of more than one buffer to hold a block of data, so that a reader will see a complete (though perhaps old) version of the data, rather than a partially updated version of the data being created… …   Wikipedia

  • Double buffering — In computer science, double buffering (or ping pong buffering) is a widely used technique for minimizing the delay (flicker) in input/output operations which use a buffer. Single buffering is affected by buffer underrun and buffer overflow.… …   Wikipedia

  • Double Buffering — Doppelpufferung (englisch double buffering) beschreibt ein Konzept in der Computergrafik, bei dem der Framebuffer (Bildspeicher) des Video RAM bei Grafikkarten in zwei Bereiche unterteilt wird. Ziel des Verfahrens ist die Gewährleistung einer… …   Deutsch Wikipedia

  • Double buffering — Doppelpufferung (englisch double buffering) beschreibt ein Konzept in der Computergrafik, bei dem der Framebuffer (Bildspeicher) des Video RAM bei Grafikkarten in zwei Bereiche unterteilt wird. Ziel des Verfahrens ist die Gewährleistung einer… …   Deutsch Wikipedia

  • Dreifachpufferung — Die Dreifachpufferung (englisch triple buffering) beschreibt ein Konzept in der Computergrafik, bei dem der Framebuffer des Video RAM bei Grafikkarten in drei Bereiche unterteilt wird. Ziel des Verfahrens ist es, die bei gleichzeitiger Verwendung …   Deutsch Wikipedia

  • Triplebuffering — Die Dreifachpufferung (englisch triple buffering) beschreibt ein Konzept in der Computergrafik, bei dem der Framebuffer des Video RAM bei Grafikkarten auch Rahmenpuffer genannt in drei Bereiche unterteilt wird. Ziel des Verfahrens ist es, die bei …   Deutsch Wikipedia

  • Titan Quest — Éditeur THQ Développeur Iron Lore Concepteur Brian Sullivan Date de sortie 30 juin 2006 (France) Version 1.30 …   Wikipédia en Français

  • VESA BIOS Extensions — (VBE) comprise a VESA standard, currently at version 3, that defines the interface that can be used by software to access compliant video boards at high resolutions and bit depths. This is opposed to the traditional int 10h BIOS calls, which are… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”