Valanx schrieb:
@Mimir
"
Ja. Ein FPS Limit garantiert dir nicht, dass deine Frametimes
a) nicht schwanken und
b) synchron zum Display laufen
"
Genau dafür ist freesync doch da:
"Mit AMD FreeSync™ Technologie wird die Wiederholrate eines Displays mit der Bildrate von FreeSync kompatiblen Grafikkarten synchronisiert. Dies reduziert oder eliminiert visuelle Artefakte, die viele Benutzer als besonders störend empfinden: Eingabelatenz, Bildverzerrung und Ruckeln bei Gaming und Videowiedergabe"
https://www.amd.com/de/technologies/free-sync-settings
Ja, aber du hast das Problem nicht verstanden.
FPS sind wie der Name schon sagt der Durchschnittswert der Bilder innerhalb einer Sekunde.
Auf einem 144 Hz Display hast du damit maximal 144 Bilder. Also 144 mal eine bestimmte Frametime.
Und diese Frametime ist von Frame zu Frame leicht unterschiedlich.
Wenn du auf 140 FPS limitierst, dann würde das im idealfall einer Frametime von 7,1 ms pro Frame entsprechen.
Aber das erreichst du in der Praxis nicht. Die Frametime wird um diese 7,1 ms mal mehr mal weniger stark pendeln, so dass du nur im Schnitt auf 7,1 ms bzw. 140 FPS kommen würdest.
Da werden dann Frames dabei sein, die eine Frametime größer 7,1 ms haben. die kann der Monitor dann darstellen, da sich so eine langsamere Bildwechselzeit ergibt und es werden Frametimes dabei sein, die kleiner als 6,944 ms sind. Denn das wäre die schnellste Bildwechselzeit, die ein 144 Hz Display verarbeiten kann.
Hast du also einen Frame der schneller als nach 6,944 ms angezeigt werden muss, hast du Tearing.
Deswegen sag ich ja, je näher du an der Grenze bist, desto weniger dürfen die Frametimes schwanken. Und wenn du dir mal einen Frametime Verlauf angesehen hast, dann siehst du da einen ziemlich unrunden Verlauf mit Ausschlägen in alle Richtungen. Eine perfekte Linie wirst du da nie sehen, das ist praktisch nicht möglich.
Nochmal, Vsync ist zwingend notwendig, da beißt die Maus keinen faden ab. Außerhalb der Sync Range verhält sich so ein Monitor nunmal wie ein klassischer Monitor ohne Sync Technologie. Sobald ein Frame diesen Bereich erwischt, weil er schneller dargestellt werden soll als es die schnelltes Bildwechselzeit des Displays erlaubt, hast du tearing, weil dieser Frame dann nicht mehr von der VRR Range abgedeckt werden kann.
Dein Fehler ist es in FPS und nicht in Frametimes zu denken. Für den Monitor ist nur letzteres entscheidend. Da zählt nur, wie schnell von einem Bild aufs nächste umgeschaltet werden kann.
Um das nochmal etwas zu veranschaulichen.
Hättest du ein klassisches non-VRR Display mit 144 Hz, dann könnte ein Frame immer nur im Zeitraster von 6,9 ms angezeigt werden. Also entweder nach 6,9ms, nach 13,8ms nach 20,7ms usw. Wenn ein Refresh vom Monitor verpasst wurde, dann muss mit aktiven Vsync auf den nächsten Refresh nach weiteren 6,9ms gewartet werden.
Dadurch ergibt sich mit aktivem Vsync leichtes Ruckeln, wenn die Framerate geringer als 144 FPS ist, weil die Frames nicht mehr dann angezeigt werden, wann sie es eigentlich sollten und nicht mehr ins Zeitraster passen. Die dargestellten Bewegungen sind dann einfach unflüssig und ohne Vsync gibts Tearing.
Das was der VRR Monitor jetzt anders macht ist folgendes.
Wurde ein Frame dargestellt, dann kann auf einem 144 Hz VRR Display das nächste Frame ebenfalls frühestens erst nach 6,9ms dargestellt werden. Schneller als 144 Hz bzw. 6,9 ms Bildwechselzeit geht ja nicht.
Was der VRR Screen jetzt besser macht ist, dass er für langsamere Frametimes kein festes Raster hat. Sprich wenn das Bild nicht nach 6,9 ms sondern nach 7,1 ms kommt, dann kann der Monitor es sofort darstellen, weil er mit seinem Refresh immer so lange wartet, bis das nächste Bild kommt. So kann jedes Bild das ankommt just-in-time direkt angezeigt werden, ohne dass auf den nächsten zyklus des Display gewartet werden muss, denn es gibt ja keinen festen zyklus mehr, der bei einem non-VRR Display besagte 6,9 ms @ 144 Hz betragen würde.
Somit vermeidet man das Microruckeln das man vorher mit aktivem Vsync hatte.
VRR braucht also in der Tat kein Vsync, solange die Frametime länger als die schnellste Bildwechselzeit ist, weil der Monitor immer auf das nächste Bild wartet.
Kommt ein Frame aber wie gesagt zu schnell und unterschreitet die 6,9 ms gibts Tearing. Dieser schnellstmögliche zyklus existiert also nach wie vor. Muss ja, sonst hätten wir bereits Displays mit unendlicher Bildfrequenz. Mit aktivem Vsync würde so ein Frame dann so lange verzögert werden, bis der Monitor in der Lage ist den nächsten Bildwechsel zu machen. Also wird der Frame um 0 bis maximal 6,9 ms verzögert.
Ich hoffe es ist halbwegs verständlich. Ich hab jetzt einfach drauf los geschrieben.
Das alles ist kein Hexenwerk, aber dann doch ein bisschen komplexer, um es mal eben verständlich rüber zu bringen. Wer ein bisschen Grundlagen Elektrotechnik hatte und mit Frequenzen und Periodenzeit was anfangen kann, sollte das auch verstehen, wenn er sich etwas reindenkt. Aber das muss man auch nicht von jedem erwarten.
Wie gesagt, mach einfach Vsync an, wenn du VRR nutzt und niemals Tearing haben willst.
"trust me bro!"