was bedeutet vsync oder was bringt es

Onan

Arch-Vile
Überleg doch mal, was bei 59 fps geschieht. Sagen wir, zum Zeitpunkt 0 wurde gerade ein Bild vom backbuffer in den frontbuffer geschrieben. Während der nächsten 16,66666 ms (1/60) wird das Bild auf den Schirm geschrieben. Es kommt der vsync Impuls, und es wird überprüft, ob der pageflip stattfindet. Das zweite Bild ist allerdings erst bei 16,95 ms fertig, das heisst bei 16,666 ms befindet sich im backbuffer ein noch unfertiges Bild. Der pageflip wird also nicht durchgeführt. Bei 16,95 ms ist das Bild fertig berechnet und soll natürlich angezeigt werden. Allerdings wird dafür der nächste vsync Impuls abgewartet, der bei 33,333 ms erfolgt. Was soll der Rechner in dieser Zeit machen? Er kann schlecht anfangen, ein drittes Bild zu berechnen, da er dafür ja in den backbuffer schreiben müsste und das zweite Bild ruinieren würde.


Eine Lösung wäre ein dreifach gepuffertes System: Hinter dem backbuffer müsste noch ein weiterer buffer sein, in dem das Bild berechnet wird. Sobald ein Bild fertig ist, wird es in den backbuffer geschrieben, und von dort bei jedem vsync Imuls in den front buffer geschrieben. Keine Ahnung, ob sowas verwendet wird.
 

CruSAdeR

Maledict
Man kann doch bei vielen Spielen triple buffer einstellen. Hab mich immer gefragt, was das denn bringen soll :D Vielleicht sollte sich ma hier jemand zu Wort melden, der wirklich ahnung von der materie hat ^^
 
Originally posted by Onan@25.01.04, 16:04
Eine Lösung wäre ein dreifach gepuffertes System: Hinter dem backbuffer müsste noch ein weiterer buffer sein, in dem das Bild berechnet wird. Sobald ein Bild fertig ist, wird es in den backbuffer geschrieben, und von dort bei jedem vsync Imuls in den front buffer geschrieben. Keine Ahnung, ob sowas verwendet wird.
Hehe, rate mal, wofür es Triple Buffering gibt *g*. Optimalerweise verwendet man VSync immer mit Triple Buffering. Ansonsten sind deine Ausführungen völlig logisch, so wie ich es mir auch überlegt habe.
 
Top