Nvidia „G-Sync“ im Praxistest: Grafikkarte und Monitor im Gleichschritt
2/6V-Sync
Bis dato haben Spieler genau eine Wahl, mit der sie das Zusammenspiel von Grafikkarte und Monitor beeinflussen können: sie können die vertikale Synchronisation zwischen Grafikkarte und Monitor, das so genannte „V-Sync“, an- oder ausschalten. Beides hat seine ganz eigenen Vor- und Nachteile.
Funktionsweise
Wird V-Sync aktiviert, stellt die Grafikkarte dem Monitor ein fertiges Bild immer dann zur Verfügung, wenn er ein neues Bild darstellen muss. Bei einem 60-Hz-Monitor liefert die Grafikkarte also maximal 60 Bilder pro Sekunde. Alle 16 Millisekunden genau ein Bild, das der Monitor daraufhin vollständig darstellt. Braucht die Grafikkarte weniger als 16 Millisekunden für das nächste Bild, hält sie es so lange zurück, bis der Monitor wieder bereit ist. Braucht sie länger, stellt der Monitor das letzte Bild noch einmal dar. Das fertige Bild wird einen Zyklus später ausgegeben. Sollte die Grafikkarte bis dahin ein neues erstellt haben, verfällt es.
Wird V-Sync deaktiviert, gibt es keine Synchronisation zwischen der Bildwiederholfrequenz des Bildschirms und der Auslieferung der Bilder durch die Grafikkarte mehr. Die Grafikkarte erstellt Bilder, so schnell sie kann. Sobald ein neues Bild fertig ist, geht es an den Monitor. Ist der gerade dabei, den Bildschirminhalt mit einem Bild zu erneuern und erhält er währenddessen das nächste Bild, stellt er dieses noch im selben Aktualisierungsvorgang dar. Ohne V-Sync können so innerhalb einer Aktualisierung des Bildschirms mehrere Teilbilder gleichzeitig auf den Monitor gezeichnet werden.
Vor- und Nachteile
Die nicht synchronisierte Zusammenarbeit bei deaktiviertem V-Sync führt über die Darstellung von Teilbildern innerhalb eines Refresh-Zyklus zum so genannten „Tearing“: Das auf dem Monitor dargestellte Bild hat an der Stelle, an der ein neuer Frame beginnt, einen „Riss“ („Tear“, siehe rot markierte Bereiche auf dem Screenshot).
Insbesondere bei schnellen vertikalen Bewegungen ist der Versatz zwischen den einzelnen Teilstücken auf dem Monitor wahrnehmbar. Je häufiger eine Engine auf der gegebenen Hardware mehrere Frames innerhalb eines Refresh-Zyklus an den Monitor liefert, desto stärker macht sich Tearing bemerkbar.
Ein weiterer Nachteil der Verarbeitung fertig gerenderter Bilder als Teilstücke: Obwohl die FPS der Grafikkarte hoch liegen, fängt das Bild an zu stottern, weil mehrere Bilder für nur eine Aktualisierung des Monitors verwendet werden. Die effektiv sichtbaren FPS auf dem Monitor liegen niedriger.
Der große Vorteil der deaktivierten Synchronisation ist, dass die Verzögerung zwischen der Interaktion des Spielers (Input) und der Darstellung des darauf basierenden Bildes so wenig Zeit wie möglich vergeht. Der so genannte „Input Lag“ ist minimal.
Wird V-Sync aktiviert, verschwindet „Tearing“. Denn es wird immer genau ein vollständiges Bild je Aktualisierung des Bildschirminhalts wiedergegeben. Das Bild ist ruhig und zeigt keine unschönen Versatzstücke.
Dafür steigt der Input Lag. Zum einen bereits dadurch, dass Bilder nur alle 1 Sekunde / 60 Hz (abhängig von der Bildwiederholfrequenz des Monitors) und nicht sofort dargestellt werden. Zum anderen dadurch, dass der Monitor der Grafikkarte den Takt vorgibt. Wenn die Grafikkarte neue Bilder schneller berechnet als der Monitor den Bildschirminhalt aktualisiert, muss der Pixelbeschleuniger Bilder zurückhalten. Die diesen Bildern zugrunde liegende Eingabe des Anwenders „altert“. Berechnet die Grafikkarte neue Bilder hingegen langsamer als der Monitor zwischen zwei Aktualisierungen benötigt, verpasst sie den Zeitpunkt für die Auslieferung. Der Monitor stellt in diesem Fall noch einmal das alte Bild dar und der neue Frame wird erst einen Zyklus später verwendet – auch in diesem Fall liegt die Eingabe des Nutzers bereits länger zurück.
Im Extremfall fängt die Grafikkarte kurz nach der letzten Aktualisierung auf dem Bildschirm mit dem Bild an, verpasst die nächste Aktualisierung allerdings knapp. Das Bild wird deshalb erst eine weitere Aktualisierung später ausgegeben; es sei denn, bis dahin liegt bereits ein neues vor.
Je nach Engine und FPS-Rate reicht der Input-Lag von „kaum zu spüren“ bis hin zu „unspielbar“. Die Verzögerung von Bildern beziehungsweise die Ausgabe identischer Bilder führt darüber hinaus auch hier dazu, dass das Bild anfängt zu stottern, weil die Bilder trotz offensichtlich hoher FPS in unregelmäßigen Abständen an den Monitor wandern.
Je nach Leistungsfähigkeit des Rechners, Bildwiederholfrequenz des Monitors und verwendetem Spiel können die Probleme bei beiden Einstellungen unterschiedlich stark ausfallen. Mit unserem Testsystem waren in den von uns betrachteten acht Spielen folgende Einschnitte festzustellen:
Auffälligkeiten bei 60 Hz | ||
---|---|---|
V-Sync aus | V-Sync an | |
Anno 2070 | extremes Tearing | extremes Stottern bei < 60 FPS |
Alan Wake | viel Tearing, stottert | stottert |
AC 4 | leichtes Tearing | stottert, Input-Lag |
Battlefield 4 | viel Tearing | hakt |
Crysis 3 | kaum Tearing, hakt | hakt |
Far Cry 3 | kaum Tearing, minimales Stottern | minimales Stottern |
Metro: LL | extremes Tearing | stottert |
Tomb Raider | Tearing, stottert | deutliches Stottern |
Das schlimmste Verhalten mit herkömmlichen Mitteln zeigt Anno 2070. Bei deaktiviertem V-Sync ist Tearing beim Scrollen über die Karte allgegenwärtig, das ganze Bild fängt an zu „wabern“. Bei aktiviertem V-Sync zeigt Anno 2070 darüber als einziges Spiel in der Auswahl ein Verhalten, das die FSP der Grafikkarte in ein festes Verhältnis zur Bildwiederholfrequenz des Monitors setzt. Schafft die Grafikkarte 60 FPS, also analog der 60 Hz des Monitors, darf sie 60 FPS liefern. Schafft sie weniger, werden die FPS auf 30 FPS gedeckelt (ein neues Bild alle 2 Hz), sind auch die in weiter Ferne, sind es 20 FPS (ein Bild alle 3 Hz). Dieser Wechsel findet dynamisch statt, immer abhängig davon, wie aufwändig die Szenerie auf dem Monitor ist. Abgesehen davon, dass 30 oder gar 20 Frames bereits als ruckelnd wahrgenommen werden, ist insbesondere der Wechsel deutlich wahrnehmbar.
Grund für dieses Verhalten ist die Tatsache, dass Anno 2070 nicht mit Double- oder gar Triple-Buffer arbeitet. D.h. die Grafikkarte kann immer nur ein fertiges Bild vorhalten. Um damit nicht dauerhaft fertige Bilder warten lassen zu müssen und so den Input Lag zu erhöhen, wird die Engine gleich darauf angewiesen, in einem festen Verhältnis von FPS zu Hertz Bilder abzuliefern.