Was ist der Umgang mit VSync?

Ich bin oft begegnet sehr stark gehaltenen Meinungen unter Spielen über die Vertical Sync (VSync) Option in fast allen modernen 3D-Spiele. Die Option soll die Ausgabe des Spiels mit der Bildwiederholrate des Monitors synchronisieren und dadurch ein Reißen der Bilder verhindern.

Manche sagen, es verursacht Verzögerung, andere sagen, man sollte es aktivieren, weil es besser aussieht und sowieso nicht weh tut. Ich habe auch gehört, dass es die Framerate im Allgemeinen reduziert, nicht nur, wenn die Framerate durch die Monitor-Bildwiederholfrequenz begrenzt wäre.

Also, was sind die technischen Nachteile von VSync? Welche gültigen Gründe gibt es, um es in einem Spiel zu deaktivieren?

Dieses Forum Post erklärt VSync in so viel Detail wie man es sich wünschen kann.

http://hardforum.com/showthread.php?t=928593

Der Kern davon ist, dass VSync den Bildschirm reißt.

Screen-Reißen tritt auf, weil der Frame-Puffer mit dem nächsten Frame halb gefüllt ist, wenn er auf den Bildschirm geschrieben wird. VSync führt einen Rückpuffer zwischen der Videokarte und dem Rahmenpuffer ein, der den nächsten Rahmen speichert und dann auf den Bildschirm wartet, um zu aktualisieren, bevor er sich selbst in den Rahmenpuffer kopiert. Das Auffrischsignal wird als VSync-Puls (analog) bezeichnet. Dies hört auf, dass das Aufreißen stattfindet, aber in bestimmten Situationen zu einer signifikanten Verringerung der Videoleistung führen kann. Diese Situationen entstehen, wenn Framerate unter die Bildwiederholrate sinkt. In diesen Situationen kann Ihre Leistung im schlimmsten Fall um bis zu 50% sinken.

Triple Buffered VSync verbessert sich doppelt gepuffert durch Hinzufügen eines weiteren Puffers und führt zu einer viel kleineren Performance-Strafe. In der Tat wirst du Frames sehen, sobald die Karte sie zeichnen kann (immer noch mit Refreshes), weil die Karte niemals im Leerlauf sitzen muss, es hat immer einen Puffer, den es schreiben kann. Die einzige Strafe ist ein kleiner Verlust von VRAM, um die Puffer zu halten und die zusätzliche Zeit, um sie in den Rahmenpuffer zu kopieren. Das ist vernachlässigbar.

Machen Sie sich nur Sorgen um VSync, wenn Sie den Bildschirm reißen. Mach dir keine Sorgen darüber, es auf einem dreifach gepufferten System zu aktivieren. Wenn es nur doppelt gepuffert ist, dann ist es eine persönliche Wahl, ein Kompromiss zwischen Bildwiederholfrequenz und Reißen.

Für mehr interessierte:

Technisch erfordert VSync keinen zweiten Puffer. In Situationen, in denen das Rendern des Bildschirms nur einen Bruchteil der Zeit zwischen den Auffrischungen übernimmt, können VSync-Impulse verwendet werden, um das Schreiben neuer Informationen an den Bildschirmpuffer zu schreiben. Wenn Renderzeit <Refresh Intervall.

Wenn du ein Spiel spielst, ist die Zeit zum Rendern viel größer. Das Schreiben des Puffers auf den VSync-Puls würde zu einem Reißen führen, wann immer Renderzeit> Refresh-Intervall. Der zweite Puffer verhindert, dass dieser Bildschirm reißt, aber bedeutet, dass man den gleichen Rahmen über mehrere Auffrischungen betrachten kann. Es bedeutet auch, dass, sobald der hintere Puffer voll ist, gibt es keinen Platz für die Karte, um den nächsten Render zu schreiben, bis der VSync passiert. Das bedeutet, dass in der Praxis VSync in einem Videospiel immer zusätzliche Puffer einführt.

Das Hinzufügen des dritten Puffers gibt der Karte einen Platz, um das nächste Render zu schreiben, sobald der Rückpuffer voll ist und auf die Auffrischung wartet.

Dieses Wissen kommt von der Programmierung von Anzeigetreibern für eingebettete Systeme.