59 FPS ruckeln auf nem 60 Hz Monitor technisch bedingt. Genau deswegen gibt es ja G-Sync und Free sync. Allerdings mag ich bezweifeln, dass dir das sofort als stottern auffällt. Um den einen Frame mit 33,33 ms zu erkennen, musst du schon ganz genau drauf achten.
Der Punkt ist nunmal, dass ein 60 Hz Monitor nur alle 16,66 ms ein Bild ausgeben kann. Du kannst Frames also nur einfach, doppelt oder dreifach anzeigen, sprich 60, 30 und 20 FPS sind die einzig darstellbaren Frameraten. Alles dazwischen wird beim Triple Buffering durch einen schnellen Wechsel erzeugt.
Triple Buffering: Wenn du Frameraten zwischen 30 und 60 FPS erreichst, werden abwechseln Frames mit 16,66 ms und 33,33 ms ausgegeben, wodurch du im Schnitt auf z.B. 45 FPS kommen kannst. Je näher du bei 60 FPS bist, desto größer der Anteil der 16,66 ms Frames, je näher bei 30 FPS, desto größer der Anteil an 33,33 ms Frames.
Man hat ganz leichtes microruckeln, das wohl den wenigsten auffällt. Das Prinzip ist im Grundsatz vergleichbar mit der Pulsweitenmodulation in der Elektrotechnik.
Double Buffering: Wenn du Frameraten zwischen 30 und 60 FPS erreichst, werden die FPS sofort auf konstante 30 FPS, also 33,33 ms begrenzt. Kann also gut sein, dass die FPS so ~10 Frames lange bei 33,33 ms bleiben, auch wenn nur ein Frame nicht die 16,66 ms marke erreicht hat, spich wenn du nur kurz unter 60 FPS kommst, hast du sofort 30 FPS und das merkt man sehr deutlich. Wenn sich dein FPS zähler aber nur 1x pro sekunde aktualisiert, dann wirst der davon meist nicht viel mitbekommen, und zeigt irgend nen Unsinn an.
Schlussfolgerung: Höchstwahrscheinlich ist bei dir Double Buffering aktiv.
Du musst also zusehen, dass du Triple Buffering aktivieren kannst.
- Meistens funktioniert das, wenn du in den (Randlosen) Fenstermodus schaltest.
- Wenn du mit ALT+TAB aus dem Spiel rein und wieder raus wechselst.
- Wenn du Vsync im Spiel aus und im Treiber einschaltest.
- Wenn du Vsync + Triple buffering über das Tool "d3doverrider" erzwingst.
Nilson schrieb:
Das ist Typisch für V-Sync mit dualbuffer.
Hast du theoretisch über 60 FPS, hast du mit VSync eine Frametime von 16,66 ms. Jetzt dauert ein Frame mal länger. Ohne V-Sync ist das kein Problem, da wäre die Frametime z.B. einmal kurz 20 ms. Mit VSync aber bricht die Frametime auf 33,33 ms ein. Verdoppelt sich also, da die Frametime immer ein vielfaches der Refreshrate sein muss. Und das spürtst du als Ruckler.
b) Bei spielen, die das unterstützen tripple-Buffer aktivieren. (erhöht aber den Inputlag)
c) einen Framelimiter statt VSync nutzen
Nicht ganz, ein Framelimiter bingt gar nichts. Erst, wenn die FPS mit dem Monitor synchron laufen, dann ist es flüssig. Was bringen mir konstant 16,66 ms Frametimes durch den FPS limitier, wenn sie nicht zeitlich synchron zu dem 16,66 ms des Monitors laufen. Wenn sie irgendwo dazwischen sind, dann hast du wieder genauso Tearing und ruckeln.
Und genauso wenig verhindert Triple Buffering, dass man 33,33 ms Frames hat. Triple buffering erzeugt Frameraten nur durch den schnellen Wechsel zwischen 16,66 ms und 33,33 ms, während Double Buffering entweder konstant 16,66 ms oder konstant 33,33 ms ausgibt. Ein schneller Wechsel der Frametimes von Frame zu Frame ist mit Double Buffering nicht möglich.