apa zei:
Mjah.. Maar dan heeft VSync ook geen nut he: het houdt de kaart tegen wanneer die meer frames per seconde genereert dan je scherm kan tonen (dus als fps > refresh-rate). Zolang de fps lager is, doet VSync helemaal niets... dus dan maakt het gewoon niet uit of je het nu aan of afzet.
In ieder geval is het aantal frames per seconde die een systeem genereert niet constant tijdens een game. Daarom kan je eigenlijk niet absoluut zeggen dat de fps-rate lager is dan de refresh-rate van je scherm in een bepaalde game.
Als je fps lager is dan de refreshrate doet vsync wel iets. Het kan in dat geval je fps gewoon met een sprong halveren!
Stel dat je refreshrate 60 Hz is. En stel dat het spel een dubbele buffer gebruikt, zodat terwijl de ene buffer gebruikt wordt om een beeld op het scherm te tonen, in de andere buffer het volgende beeld opgebouwd wordt. Nu, als vsync niet actief is, dan is het eenvoudig: zodra het beeld in de andere buffer afgewerkt is, toont de videokaart die buffer. De buffer die daarvoor op het scherm weergegeven werd is dan onmiddellijk beschikbaar om het volgende beeld in te berekenen.
Als vsync wel actief is, en het vraagt minder dan 1/60 s om een beeld te berekenen, dan zal 60 keer per seconde het beeld vervangen worden. fps vast op 60 Hz, zelfde als refreshrate.
Maar als het te lang duurt, en het beeld niet volledig berekend werd in de tijdsperiode voor de refresh, dan moet gewacht worden tot de volgende refresh voordat de buffers uitgewisseld kunnen worden. Wat dus betekent dat elk beeld gedurende twee refreshperiodes getoond wordt, waardoor je fps halveert naar 30 fps. Volgende stap is 20 fps, dan 15,...
Dit is vooral irriterend als je net op de grens zit, en het spel zo regelmatig overschakelt tussen 60 en 30 fps.
Door triple buffering kan het probleem beperkt worden, met wel als nadeel dat het beeld op het scherm telkens twee frames achterloopt, in plaats van 1 zoals bij double buffering. Meer dan 3 buffers kan ook, maar dan begint control lag wat te groot te worden.