Bei einer ATI Grafikkarte lässt sich Triple Buffering fast jedem Spiel über die ATI Tray Tools aufzwingen.
Vsync + Triple Buffering hat übrigens den Nachteil, dass die Bildausgabe je nach Timing um ein bis zwei Frames verzögert wird. DEr zusätzlich benötige Bildspeicher dürfte zumindest bei einem SLI System keine Rolle mehr spielen
Triple Buffering selbst ist auch schnell erklärt. Bleiben wird mal wieder bei den Zetteln.
Nehmen wir an Peter
muss pro Minute einen Zettel von Anfang bis Ende vorlesen, was er auch kann.
Jetzt haben wir noch Max und Moritz, die die Zettel handschriftlich mit Inhalt füllen. Im Idealfall schaffen sie das innerhalb von 60 (oder weniger) Sekunden.
Max sowie Moritz müssen wenn sie fertig sind zu Peter gehen und ihm den Zettel hinhalten damit dieser ihn vorlesen kann. Sagen wir mal, das Max fertig ist und den Zettel zum Vorlesen hinhält. Während Peter den Zettel vorliest schreibt Moritz einen neuen und ist im Idealfall vor Peter fertig und wartet auf seinen Einsatz. Wenn Peter fertig ist mit Vorlesen, dann hält sofort Moritz seinen vorbereiteten Zettel zum Vorlesen hin und Max verschwindet um den nächsten Zettel zu schreiben.
Das wäre jetzt noch perfektes Vsync gewesen aber bringen wir die Sache jetzt mal etwas durcheinander
Während Max jetzt den nächsten Zettel schreibt kommt er irgendwie nicht schnell genug voran. Peter ist plötzlich fertig und Max hat keinen neuen Zettel. Da Peter aber immer einen Zettel vorlesen
muss bleibt ihm nichts anderes übrig als den aktuellen Zettel von Moritz nochmal vorzulesen. Jetzt ist Max fertig und kann zu Peter gehen. Moritz wiederum wird ebenfalls mit seinem neuen Zettel nicht rechtzeitig fertig. Peter muss den aktuellen Zettel also erneut ein zweites Mal vorlesen.
Das ist der Punkt, wo wir 50% an Produktivität verlieren bzw. die Frames in den Keller gehen weil einfach nicht schnell genug neue Zettel nachkommen.
Dabei kann es unter umständen auch so aussehen, dass Max und Moritz evtl. nur minimal zu langsam waren - in der Realität also z.B. 59/74Hz. Das reicht bereits für das Chaos.
Triple Buffering sieht nun so aus, dass wir neben Max und Moritz jetzt noch das Rumpelstilzchen haben, das ebenfalls Zettel schreibt und dann zum Vorlesen hinhält. Es hält jetzt also einer den Zettel hin und zwei Leute schreiben wobei es rechnerisch immer so sein wird, dass ein Schreiberling rechtzeitig seinen Zettel fertig hat. Peter wird es also nicht mehr passieren, dass er einen Zettel zweimal vorlesen muss.
Mit etwas Phantasie erkennt man jetzt hier auch das Problem der Verzögerung. Max hält den Zettel hin, Moritz hat seinen gerade fertig und wartet, dass er drankommt, und Rumpelstilzchen schreibt gerade einen neuen Zettel. Genau dieser Zettel braucht jetzt aber noch eine Weile bis er drankommt den erstmal ist Moritz an der Reihe.
Wenn das mal nicht eine schöne Gute-Nacht-Geschichte war
edit: das Beispiel bitte nicht auf die echte Frequenz übertragen. Ich bin jetzt mal von 1Hz = 1 Minute ausgegangen damit es verständlicher ist.