Dreifachpufferung

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 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 abgeschlossen, muss die GPU also bis zum nächsten VSync warten, um mit dem nächsten Frame weiterzumachen. Die effektive Rechenzeit pro Bild ist somit immer gleich der oder ein ganzes Vielfaches der Zeit, die der Monitor zum Anzeigen eines Bilds benötigt. Wenn die Bildrate der GPU also zum Beispiel knapp unter der des Monitors liegt, ist die effektive Bildrate nur die Hälfte der Monitorbildrate (da die GPU bei jedem zweiten VSync noch nicht mit dem Rendern des Bilds fertig ist). Wenn sie unter der Hälfte liegt wird sie ein Drittel der Monitorbildrate usw.

Dreifachpufferung und VSync

Durch einen weiteren Backbuffer kann die Bildrate des Monitors von der GPU entkoppelt werden. Wenn ein Bild fertig gestellt ist, muss die GPU nun nicht mehr warten, bis der Swap-Befehl ausgeführt wird, sondern kann direkt im anderen Backbuffer weiterarbeiten. Beim Auftreten des Swap-Befehls werden also die beiden Backbuffer vertauscht, während beim Auftreten von VSync der Frontbuffer und der fertig berechnete Backbuffer vertauscht werden. Es kommt also zu keinem Leistungsverlust gegenüber dem ungepufferten Fall.

Vor- und Nachteile von Dreifachpufferung und VSync

Vorteile

  • optimale Bildqualität, da kein Tearing auftritt (grafisches Artefakt, 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
  • Geringfügig (maximal um 1 Frame) steigende Latenz

Weblinks


Wikimedia Foundation.

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

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

  • 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

  • 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

  • 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

  • BackBuffer — 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

  • Backbuffering — 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

  • Bildschirmspeicher — Als Grafikspeicher (Videospeicher) wird der gesamte durch die Grafikhardware (Grafikkarte, Onboard Grafikchip) nutzbare Speicher von Computern und Spielkonsolen bezeichnet. Dabei kann es sich um einen reservierten Bereich des Arbeitsspeichers… …   Deutsch Wikipedia

  • Bildspeicher — Der Bildspeicher bzw. Framebuffer (engl. frame – Einzelbild, buffer – Puffer) ist Teil des Video RAM von Computern und entspricht einer digitalen Kopie des Monitorbildes. Das heißt, jedem Bildschirmpixel kann genau ein bestimmter Bereich des… …   Deutsch Wikipedia

  • Bildwiederholspeicher — Der Bildspeicher bzw. Framebuffer (engl. frame – Einzelbild, buffer – Puffer) ist Teil des Video RAM von Computern und entspricht einer digitalen Kopie des Monitorbildes. Das heißt, jedem Bildschirmpixel kann genau ein bestimmter Bereich des… …   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

  • 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

Share the article and excerpts

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