Gibt es noch Grafiksystem ohne Doublebuffer?

Nilson

Grand Admiral
Registriert
Dez. 2008
Beiträge
26.307
Guten Tag,

Ich bin grad dabei mich etwas tiefer in die VSync Thematik einzulesen und bin dabei über was gestolpert, wozu ich keine Antwort finden konnte.

Der Unterscheid zwischen VSync an und aus ist (u.A.) der Unterschied, wann zwischen Front- und Backbuffer umgeschalten wird*. Doch gibt es es noch (PC-)Systeme, die ohne ein solches umschalten auskommen? Also die Ausgabe an den Monitor und das Speichern des neuen Bildes über den gleichen Speicherbereich erfolgt?

*VSync aus = immer wenn ein Frame fertig ist
*VSync an = all 1/60s (oder 1/30s, 1/15s etc.)
 
Zuletzt bearbeitet:
Nilson schrieb:
Doch gibt es es noch (PC-)Systeme, die ohne ein solches umschalten auskommen? Also die Ausgabe an den Monitor und das Speichern des neuen Bildes über den gleichen Speicherbereich erfolgt?
Unter Windows XP bei einigen Anwendungen kann man das noch sehen: da flackert der Bildaufbau beim Aufbau von z.B. Listen dermaßen, dass man Kopfschmerzen bekommt...

Nilson schrieb:
*VSync aus = immer wenn ein Frame fertig ist

Das stimmt so nur, wenn auch Triple-Buffering an ist.
Ansonsten heißt v-sync aus, dass alle 1/60 Sekunden das Bild soweit es gerade ist an den Monitor gesandt wird. Im Zweifel ist es nur 1/3 fertig und du siehst dann noch 2/3 vom alten Bild. Dass ist dann das berüchtigte "Tearing" bzw. das zerrissene Bild.
 
Zuletzt bearbeitet:
Da liegt der Kern der Frage. Wenn die beiden umgeschaltet werden und die ausgabe (z.B.) 1/3 des alten Bildes fertig hat, macht die dann einfach bei 1/3 weiter beim neuen?

Sagen wir unser Buffer hat "10" Adressen und der aktuelle Frontbuffer beginnt bei "00". -> Backbuffer beginnt bei "10".

1. Grafikkarte gibt Frontbuffer aus und "füllt" gleichzeigt den Backbuffer mit dem neuen Frame
2. Ausgabe ist gerade bei Adresse "06" aber der neue Frame ist fetig -> umschalten
3. Frontbuffer beginnt jetzt bei "10" und der Backbuffer beginnt bei "00"
4. Ausgabe macht einfach bei "16" weiter -> Tearing

Tearing trotz Doublebuffer (ohne VSync). und zwar an genau der Bildstelle die in "06" bzw. "16" hinterlegt ist

So hab ich da zumindest verstanden.

Danke für den Hinweis mit XP.

3murmeln schrieb:
Ansonsten heißt v-sync aus, dass alle 1/60 Sekunden das Bild soweit es gerade ist an den Monitor gesandt wird. Im Zweifel ist es nur 1/3 fertig und du siehst dann noch 2/3 vom alten Bild.

Ganz kann das auch nicht sein, wenn immer nur der "neue" Teil geschickt wird, und ich immer mehr FPS als Hz habe, würde ein Bildteil ja nie aktualisiert.
 
Zuletzt bearbeitet:
Ganz kann das auch nicht sein, wenn immer nur der "neue" Teil geschickt wird, und ich immer mehr FPS als Hz habe, würde ein Bildteil ja nie aktualisiert.
Naja, wie das so ist mit Computertechnik - nichts genaues weiß man nicht...

Soweit ich weiß werden 2 Buffer immer im Wechsel verwendet. Und um Zeit und Rechenleistung zu sparen, werden die Buffer direkt überzeichnet ohne vorher gelöscht zu werden. So oder so ähnlich kommt dann das Tearing zustande...
Tearing passiert auch, wenn die Grafikkarte mehr als 60 FPS schafft und v-sync aus ist - durch die ausreichende Geschwindigkeit fällt dann das halt bloß nicht mehr so auf...
 
Zuletzt bearbeitet:
Das kann auch sein. Spart man sich ein Schreibzyklus.

Das mit dem "nix genauen" hab ich schon festgestellt. Man findet viel grobes, sobald man mal etwas tiefer rein will, wird es schnell dünn mit (guten) Infos.
 
Das kann auch sein. Spart man sich ein Schreibzyklus.
Ein Schreibzyklus alle 1/60 Sekunden!
Das mag zwar für heutige Grafikkarten kein Problem darstellen, ist aber mathematisch ne ganze Menge Holz:

1920*1080*60 = 124.416.000 Pixel/Sekunde

...für eine normale CPU ist das ne ganze Menge Arbeit, dafür dass man nichts davon hat...
 
sag ich ja. Und VRAM ist langsam (zumindest im Vergleich zu Registern und Cache). Je weniger man machen muss desto besser.
 
Zurück
Oben