Vsync on - ohne 30 fps - cap?

lead341

Lt. Commander
Registriert
Apr. 2005
Beiträge
1.877
In diversen PC-Spielen, aktuell etwa prominent Battlefield Bad Company 2, besteht das Problem des "tearings", wenn die vertikale Synchronisation insbesondere bei TFTS "off" geschalten ist.
Vsync on hat nun zur Folge, dass man das Tearing unterbindet. Dies wäre in der Tat eine optimale Lösung, sofern die Einstellung "Vsync" nur mit einer einzigen "Cap", nämlich bei 60 fps, arbeiten würde. Aus Gründen, die ich als Laie bisher noch nicht verstanden habe, werden - wenn man Vsync on stellt - meist jedoch 2 "Caps" aktiviert: einmal die Obergrenze 60 fps sowie 30 fps.
Die 30 fps sind nun das zentrale Problem: sinkt die framerate leicht unter die 60 fps kann es sehr oft sein (wie sehr deutlich am Beispiel Battlefield), dass die frames plötzlich und unvermittelt auf 30 fps gecapt werden: der Effekt ist die Beinahe-Unspielbarkeit in gewissen Szenen. Mit anderen Worten ausgedrückt: hätte man in besagte Szene mit vsync off bspw. 48 fps (und damit noch eine gute Spielbarkeit), sind es mit vsync on dann eben 30 fps.
An verschiedenen Stellen wurde nun vorgeschlagen, das sogenannte Triple-Buffering zu aktivieren. Dies erzielt aber bspw. bei mir keinerlei Effekt - die Performance geht eher noch stärker runter.

Fazit: warum setzt vsync-on also diese häßliche 30 fps cap und gibt es noch irgendeine Alternative, diese zu eliminieren. Oder nochmal anders ausgedrückt: kann ich vsny on stellen, wobei als einziger Parameter lediglich die Obergrenze von 60 fps fungiert?

Gruß lead
 
Soweit mir bekannt...ist der Vsync an die Bildwiederholrate Deines TFTs gebunden. Läuft dieser also mit 60Hz und Du hast Vsync aktiviert, überträgt Deine Grafikkarte auch nur 60 Bilder.

Das Problem ist bei Dir aber wohl eher, das Deine Grafikkarte einfach nicht in der Lage zu sein scheint diese 60 Bilder zu halten in allen Situationen. Wenn deine Karte zu schwach ist um 60 Bilder zu liefern, kannst Du Vsync aktivieren, aber Deinen gewünschten Effekt einer konstanten Bildrate wirst Du somit nicht hin bekommnen.
 
Zuletzt bearbeitet:
Nein, bei einigen Spielen besteht ein VSyncLock von 30FPS, Bioshock war meine ich damals das erste dieser Art.
In diesem ich habe ich dass damals auch erfolgreich durch editieren einer cfg datei umgehen können.

Spontan würd ich also erstmal alle cfg/ini Files nach "30" durchsuchen und schauen ob dabei irgendeine Einstellungen zu finden ist die das "Problem" beheben könnte.
 
@ Dragonbalione: Danke für die Schilderung, aber genau das ist nicht das Problem. Ich weiß, dass die 285 GTX bei hohen Einstellungen nicht die 60 fps immer konstant halten kann - und das ist auch unproblematisch. Dies ist ja der Fall bei vsync off: es gibt Szenen, da gehen die fps schon mal auf 45 runter - aber dies ist tragbar und beeinflußt den "Spielfluß" nicht stark. Das Problem ist vielmehr dieser 30fps - caps lock.

@ survivor: das könnte das epochale Stichwort sein ;-) Ich werde mal schauen, ob ich etwas finde.

Also könnte man als Fazit schon mal ziehen, dass diese 30 fps kein universales Problem darstellen, sondern je nach Programmierung (Spiel) entweder vorhande sind oder nicht? Interessant...
 
die funktionsweise der synchronisierung erlaubt afaik als frame-rate nur die hertz-zahl des monitors,
oder einen teiler daraus.

fallen die fps von 60 auf einen anderen wert als 30, ists ein frame-limit, das sich per config
umgehen lassen sollte.

n.
 
Zuletzt bearbeitet:
@Threadersteller: du hast VSync scheinbar nicht ganz verstanden ;)
Es eliminiert das Tearing, indem nur ganzzahlige Vielfache/Teiler der Bildschirmwiederholrate an den Monitor gesendet werden. Und bei 60 Hz ist das eben dann 60/30/20/15/12/10... usw. Bilder pro Sekunde.

Einzige Möglichkeit trotzdem mehr fps zu bekommen: Triple Buffering aktivieren. Leider muss auch das Spiel da mitmachen, und BC ist glaube ich ein Kandidat der das nicht tut...
 
lead341 schrieb:
Also könnte man als Fazit schon mal ziehen, dass diese 30 fps kein universales Problem darstellen, sondern je nach Programmierung (Spiel) entweder vorhande sind oder nicht? Interessant...

Kann man leider nicht. Die 30 ode 60 FPS liegen in der Natur von V-Sync. Der Monitor wird normalerweise mit 60 FPS betrieben, V-Sync garantiert dass die Grafikkarte erst ein neues Frame sendet wenn das letzte komplett dargestellt wurde. D.h. die Grafikkarte wird dadurch an die Taktfrequenz des Monitors geknuepft.

Ist es der Grafikkarte nun nicht moeglich direkt nach dem letzten vollen Frame das naechste zu senden, weil dieses noch nicht gerendert wurde, muss sie komplett zum bis zum uebernaechsten Frame warten. Damit halbiert sich die Anzahl FPS von 60 auf 30. Ist die Problematik klar?
 
@ inflagranti: Danke - ja, jetzt habe ich es verstanden.
Und da Triple-Buffering bspw. bei BF nicht funktioniert, muß man dann eben mit dem Tearing leben.
 
Zurück
Oben