Tearing - ich bekomms nicht weg...

  • Ersteller Gelöschtes Mitglied 37078
  • Erstellt am
G

Gelöschtes Mitglied 37078

Guest
Hi Leute,

ich habe einen 60Hz-Monitor und haben den Frame-Limiter auf 30FPS gestellt.

Ich habe aber trotzdem Tearing...:(

Kann mir jemand sagen wie ich weg bekomme, möglichst ohne den Framelimiter auszuschalten (und VSync zu benutzten)?

Vielen Dank!
Joerg
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Wieso installierst du nicht einfach EVGA Precision und stellst ein Frame limit auf 55 oder so. Dann brauchst du weder vsync noch Sorgen um tearing haben.
 
Weil das Tearing nur mit nem Limiter und ohne VSync nicht weg geht.
 
Natürlich tut es das. Tearing bekommst du nur, wenn du über 60FPS bei einem 60Hz LCD erreichst. Limitierst du die Frames auf unter 60 ist alles paletti.
Funktioniert bei mir tadellos. Kein Tearing mehr. Schalte ich den Framelimiter aus, fällt das Tearing sofort wieder auf.

Edit: Muss mich wohl korrigieren. Laut einigen Seiten tritt Tearing ohne vsnyc wohl immer auf.
Persönlich fällt mir das jedoch nicht auf, so daß ich auf Vsync verzichten werde (finde sowieso, dass vsync sich nicht besonders gut "anfühlt"). Wenn ich die Frames auf 57 limitiere kann ich persönlich kein Tearing ausfindig machen. Wohl aber, wenn ich den Limiter abstelle.
 
Zuletzt bearbeitet von einem Moderator:
Kann ich nicht bestätigen. Die Dirt-Reihe ist da der Klassiker. Nur mit Limiter zerreißt's das Bild ohne Ende. Mit aktiviertem VSync ist das Tearing weg.
 
Siehe Edit. In meinen Spielen (BF3, Assasins Creed 1-2.5, Supreme Commander 1+2, Wargame) fällt mir Tearing jedenfalls nicht auf, solange ich die Frames auf etwa 57 limitiere.
 
Jo, ist wohl tatsächlich auch stark Game-abhängig. Dirt 1-3 ist bei mir schon seit Jahren und unabhängig von Monitor und gerade verbauter Graka ein Extremfall. Evtl bin ich da auch besonders empfindlich... :)
 
Tearing wird ohne V-Sync zwangsläufig immer mehr oder weniger auftreten.

Wie auch schon bei der guten alten Röhre wird das Bild auch heute noch zeilenweise aufgebaut (Vertikal -> V-Sync -> klingelt's? *g*)

Das Problem ist, dass die Grafikkarte generell erstmal mit zwei Bildpuffern arbeitet. im Frontbuffer liegt das Bild, das gerade an den Monitor ausgegeben wird und im Backbuffer wird gerade das neue Bild berechnet und abgelegt. Ohne V-Sync vertauscht die Grafikkarte ohne Rücksicht auf Verluste die beiden Buffer immer sobald ein neues Bild fertig ist. Das Problem dabei ist, dass das Bild aus dem Frontbuffer möglicherweise noch gar nicht komplett an den Monitor übertragen wurde; dann kommt der Wechsel und somit auch das Tearing denn zwischenzeitlich bewegt man sich im Spiel auch...

Zum besseren Verständnis.

Sagen wir mal das wären unseren beiden Buffer und deren Inhalt mit einer gigantischen Auflösung von 5 x 5 Pixeln :d

Frontbuffer:
1XXXXX
2XXXXX
3XXXXX <- Aktuelle Zeilenausgabe
4XXXXX
5XXXXX


Backbuffer:
1XXXXX
2XXXXX
3XXXXX
4XXXXX
5XXXXX


Wie man unschwer erkennen kann spielen wir FarCry. Oben der Himmel, in der Mitte was sandiges samt rotem Fadenkreuz und unten etwas Vegetation. Das Bild aus dem Frontbuffer wurde schon ca. bis zur Hälfte an den Monitor übermittelt. Zwischenzeitlich haben wir aber die mit Lenkraketen ausgestattete Killermöwe am Himmel erspäht und das Fadenkreuz ruckartig nach oben gezogen, so dass sich im noch nicht sichtbaren Backpuffer passend dazu ein neues Bild aufbaut.

So, das Bild ist fertig und ohne Rücksicht auf Verluste tauscht die Grafikkarte jetzt die Bildpuffer und ihr ist es dabei sch...egal, wo sich die Bildausgabe gerade befindet. Das aktuelle Bild kommt also nie vollständig beim Monitor an und die Bildausgabe wird jetzt an gleicher Stelle im Backbuffer fortgesetzt, der jetzt durch den Tausch zum Frontbuffer geworden ist.

Das Bild, was auf dem Monitor landet sieht dann am Ende also z. B. so aus:

1XXXXX
2XXXXX
3XXXXX
4XXXXX
5XXXXX


Wir erhalten einen Mix aus zwei Bildern. An der Schnittstelle (hier links vom Fadenkreuz) überschneiden sich die beiden Bilder und passen nicht so ganz zusammen. Dieses abgehackte Stück nehmen wir dann als Tearing wahr. Das Problem tritt im Prinzip so häufig auf wie auch die Framerate hoch ist. Also durchaus auch gerne 100+ mal, was dann schon verdammt nervt.

Ein Framelimiter kann das Problem im Prinzip nur begrenzen aber nicht umgehen. Durch den Framelimiter hält man nur die Chance einer Überschneidung geringer, aber der eigentliche Grund für das Tearing liegt technisch bedingt in den beiden Bildpuffern. V-Sync wiederum zwingt die Grafikkarte dazu mit dem Buffer-Tausch zu warten bis der Monitor das Bild aus dem aktuellen Frontbuffer vollständig ausgegeben hat.

Und wenn ich schon dabei bin: fällt mit aktiviertem Vsync die Framerate unter die Frequenz des Monitors (z. B. 60 Hz bei den meisten TFTs), dann fängt es an zu ruckeln. Wo jetzt normalerweise ein Buffer-Tausch anstehen würde ist aber im Backbuffer noch kein neues Bild vollständig berechnet worden und somit muss der aktuelle Frontbuffer erneut ausgegeben werden. Das (alte) Bild landet also zwei mal auf dem Bildschirm.

Die Lösung heißt Triple-Buffer: zu dem Front- und Backpuffer kommt noch ein dritter Buffer, so dass das Problem, das kein neues Bild für die Ausgabe bereit steht, rechnerisch nicht mehr auftreten kann. Gravierender Nachteil: benötigt mehr Videospeicher und die Bildausgabe erfolgt verzögert da die Grafikkarte im Prinzip bis zu zwei Bilder zwischenspeichert, was bei 60 Hz direkt mal rund 33 ms sein können. Für einen waschechten Pro der sichere Tod :haha:
 
Zuletzt bearbeitet:
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh