Das stimmt nicht und genau das wird hier seit einigen Posts versucht zu erklären. Man muss bei diesem Thema zwischen vorhandenem und subjektiv nicht wahrgenommenem oder sichtbarem Tearing unterscheiden.Nolag schrieb:Wenn man in der Adaptive-Sync Range bleibt, hat man somit auch ohne VSync kein Tearing.
Vorhanden ist das Tearing grundsätzlich auch mit aktivem adaptive sync. Egal wie hoch die fps sind und egal wie hoch die Hz-Zahl des Monitors ist. Jedoch sinken die Chancen, dass man es sieht, mit steigender Frequenz des Monitors und/oder mit steigender/sinkender fps Zahl, je nach Szenario.
Bei Tearing geht es nicht allein um fps > Hz. Es geht um eine Abstimmung zwischen Bereitstellungszeit des Bildes seitens GPU und der benötigten Darstellungsdauer seitens Display. Es geht um konsequentes Zuendezeichnen eines Bildes, bevor ein neues angefangen wird. Es geht darum, dass die GPU das Bild im Puffer nicht ersetzt, bevor es nicht zu Ende dargestellt wurde.
Mit adaptive Sync erfolgt das nicht. Hier stellt sich das Display, abgeleitet aus der jeweiligen Bildzeit der GPU, nur auf eine durchschnittliche Hz-Zahl ein um die Wahrscheinlichkeit von Bildrissen drastisch zu reduzieren. Es wird aber nicht darauf gewartet, bis Bild x zu Ende gezeichnet wurde, sodass erst dann mit Bild x+1 angefangen wird. Genau dieses fehlende Stückchen im Prozess wird durch das zusätzliche Aktivieren von V-Sync gedeckt.
Es sei ein Monitor mit starren 240 Hz und ein fps-cap sei auf 100 fps gesetzt. Die 100 fps seien durchgehend erreicht.
Der Monitor braucht zum Zeichnen von ganz oben links bis ganz unten rechts 4,167 ms.
Deine GPU legt im Puffer alle 10 ms (wg. 100 fps) ein Bild ab. Der Monitor fängt an zu zeichnen, die 4,67 ms sind um, das Bild wurde vollständig gezeichnet. Bis zum nächsten Bild vergehen aber noch 10 ms - 4,67 ms = 5,33 ms. Das selbe Bild liegt also noch im Puffer. Also zeichnet der Monitor dieses Bild erneut. Nun müssen noch 0,66 ms vergehen, bis ein neues Bild im Puffer vorliegt. Der Monitor stoppt aber nicht. Es fängt an, dieses Bild wieder zu zeichnen, und zwar 0,66 ms lang. Dabei ist er bei rund 3,5% unterhalb vom oberen Bildschirmrand angekommen. Just hat die GPU jetzt das Bild im Puffer ersetzt. Der Monitor fängt jetzt an, mit diesem Bild zu zeichnen und da das vom vorigen Verschieden ist, hat sich jetzt ab der o.g. Position des Monitors ein Riss gebildet.
Was würde mit adaptive sync passieren?
Der Monitor würde sich auf 100 Hz bzw. auf ein mögliches, ganzzahliges Vielfaches davon einstellen, sprich 200 Hz. Bei 100 Hz würde er das Bild im Puffer nur einmal zeichnen, weil es selbst 10 ms dafür braucht. Bei 200 Hz würde es das Bild zwei mal zeichnen.
Wunderbar, kein Tearing, ist doch schön?
Nicht ganz richtig, weil wir die ganze Zeit davon ausgegangen sind, dass das Bild im Puffer der GPU auch wirklich exakt alle 10 ms ersetzt wird. In Realität wird das Bild aber durchgehend zu unterschiedlichen Zeiten ersetzt. Mal nach 10 ms, mal nach 9,8 ms, mal nach 10,4 ms, mal etwas stärker abweichend mit 12 ms etc. pp.
Auf genau diese Abweichungen kann der Monitor trotz adaptive Sync nicht in vollem Maße reagieren. Es entsteht Tearing. Je näher diese Abweichungen zu den Zeitpunkten am oberen und unteren Bildschirmrand auftreten, umso unwahrscheinlich wird die Sichtbarkeit für den Nutzer. Sie sind aber vorhanden.
Ein jetzt aktiviertes V-Sync sorgt dafür, dass die GPU das Bild nur dann austauscht, wenn der Monitor es zu Ende gezeichnet hat. Weil dieser Bildwechsel bei zusätzlich aktivem adaptive sync dann nur noch Bruchteile von milisekunden betrifft, wie z.B. 6,90 ms statt 6,94 ms, beschränkt sich die dadurch verursachte Latenz auch nur auf zusätzliche 0,04 ms. Da der Nutzer bei 144 Hz aber eh von 6,94 ms ausgeht, ändert sich für ihn nichts bzw. verliert er dadurch nichts. Deshalb bezeichnet man diese Latenz auch als virtuelle Latenz.