komisches problem mit vsynch

SILV3R

Neuling
Thread Starter
Mitglied seit
13.09.2002
Beiträge
735
Ort
EF
hi,

ich weis garnicht wie ich es beschreiben soll, also immer wenn ich vsynch einstelle, dann hab ich in manchen situationen, zb wenn ich bei mohaa in die bäume sehe, nur exakt 43,7 fps. ohne vsynch, hab ich in der selben situation ~90fps. es ist bei jeden game so, ohne vsynch immer so um die 100fps und mit vsynch läuft es zwar zum größten teil auch mit 85fps, aber in manchen situationen eben nur exakt 43,7fps obwohl es in der selben situ. ohne vsynch immer viel mehr fps hatt.

hatt einer nen plan was das sein könnte und wie ich es beheben kann?
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Ja.

VSync bremst deine Grafikkarte aus. Diese rendert immer nur dann ein neues Bild. Wenn der Monitor bereits das gerenderte Bild deiner Grafikkarte angezeigt hat. Wenn du VSync aus stellst. Passiert das nicht. Und deine Grafikkarte nutzt die Voller Power, ohne die Pausen einzunehmen die er wahrscheinlich warten würde auf dem monitor. Das erklärt den Leistungsschub. Grob erklärt.

Jedoch habe ich festgestellt das D3D mit Vsync aus immer paar Probleme hat. Naja wenn du Vsync an hast, kannst du auch nur die maximal fps erhalten wie dein Monitor Hz hat. Sprich wenn dein monitor auf 85Hz läuft. Kriegst du auch nur maximal 85fps.

EDIT:
Weil du von Behebn sprichst. Da ist kein fehler oder so :d Nicht umsonst wird gesagt wenn du BEnchst VSync immer aus. Lass doch mal ein Bench in 3DMark2001 durchlaufen, einmal mit und einmal mit VSync aus. Dann siehst den Unterschied der Leistung.
 
Hi SILV3R,

Hi Sid :d...

VSync bremst deine Grafikkarte aus. Diese rendert immer nur dann ein neues Bild. Wenn der Monitor bereits das gerenderte Bild deiner Grafikkarte angezeigt hat. Wenn du VSync aus stellst. Passiert das nicht.
Ich weiß jetzt zwar nicht ob das einfach nur schlecht formuliert ist oda du mal wieda falsch liegst.... :d Ich gehe mal von schlecht formuliert aus.

Richtig, VSync kann die Leistung verringern. Falsch ist allerdings das die Graka immer nur dann ein Bild rendert, wenn das vorherige bereits angezeigt wurde...

Ihr müsst euch das so vorstellen...

VSync syncronisiert die Frames mit der Hz Frequenz des Monitors. D.h. die Graka wartet mit dem Senden des fertig gerenderten Bildes bis der Monitor soweit ist, also wieda anfängt das Bild von oben links nach recht, Zeile für Zeile, nach unten rechts aufzubauen. Durch den Vsync werden die FPS durch die Hz Frequen des Monitors beschränkt. Also, es können nicht mehr Bilder angezeigt werden wie der Monitor aufbauen kann.

100 Hz = 100 Bilder / Sekunde

Wenn die Graka also in diesem Moment genau 50 FPS schafft, wird jedes einzelne Bild vom Monitor (bei 100 Hz) genau 2x aufgebaut. Wenn es allerdings nur 40 FPS sind, wird das Bild auch komplett 2x vom Monitor refresht. Da die Graka noch nicht mit dem Rendern des neuen Bilds fertig ist, wird das alte zum 3. mal refresht, was natürlich die Leistung drückt. Bei aktiviertem VSync wartet die Graka also bis der 3. Refresh abgschlossen ist und schickt dann erst das neue Bild.

Wenn allerdings VSync deaktiviert ist, wird mitten im 3. Refresh das neue Bild reingeschoben. Die Graka wartet also nicht bis der Monitor soweit ist. Dadurch entstehen auch die sogenannten Abrisseffekte. Aba man erhält dadurch eine höhere FPS Leistung.

Also, wenn VSync nicht an ist, schickt die Graka das fertig gerenderte Bild sofort zum Monitor. Die erreichten FPS können somit auch höher sein als die Bildwiederholungsfrequenz des Monitors...

Je nach Treiber und 3D-Engine werden die FPS allerdings auch einfach auf einen Teiler der Monitor Hz Frequenz beschränkt um auf einen gemeinsamen Nenner zu kommen. Also, wenn du 100 Hz als Bildwiederholfrequenz eingestellt hast, aba deine Graka nur 90 FPS schaft, werden die FPS radikal auf 50 heruntergesetzt. Dadurch wird die syncronisation zwischen FPS und Monitor Hz Frequenz gewährleistet. Denn bei 50 FPS kann ein Bild bei 100 Hz genau 2x refresht werden!

Die FPS schwanken natürlich in der Praxis extrem, also bitte nur als Beispiel ansehen.

@Sid
Ich glaube du hast Rendern mit Senden verwechselt. Es gibt außerdem 2 Buffer, den Front und den Back Buffer....
 
Zuletzt bearbeitet:
also immer wenn meine graka nicht die 85fps schafft (bei 85hz monitor refresh), wird sie automatisch auf die 43,7 fps runtergesetzt? is das richtig? wenn ja, dann war's bei nvidia nicht so. (oder is mir nicht aufgefallen)
 
Genau @Silver Wäre aber schön wenn man das erzwingen könnte, wie ich es mir ja schon lange wünsche.

Dann könnte man z.B. schön 120hz einstellen und stabil mit 60fps zocken.
 
och, das is aber blöd! :(

und wegmachen kann ich das nicht irgendwie? das er nicht immer gleich so derb runtergeht, wenn die 85fps nicht ereicht werden. und mit 60hz will ich auch nicht spielen.
 
Zuletzt bearbeitet:
@Madnex
Also ich hab die Antwort in ca. 2 Minuten geschrieben. Naja und sagte ja grob Erklärt.

Also ich kenne es aber wirklich nur so das die Grafikkate auch wirklich wartet, solange das bld noch nciht gesendet wurde. Wenn die Grafikkarte nämlich nicht warten würde. Und sagen wir mal im Hintergrund schon 30fps weiter ist. Wo soll der Speicher den her kommen? So viel Speicher ist gar nicht da. Also eigentlich schon. Aber der wird für andere wichtige dinge benutzt anstatt 30 fps zu speichern. Von daher ist es naheligend das die grafikkarte nicht weiter Rendert solange das neue Bild nciht gesendet wird. Aber stiimt nur zum Teil. Den wie du mit dem Front und Back Buffer sagst. Zuerst wild das Bild gerendert. und gesendet. Die GraKa Rendert aber weiter und füllt den BAck Buffer auf. Wenn alle Buffer aufgefüllt sind. Hört die Grafikkarte erst auf zu Rendern. Nachher wird durch das switschen sozsuagen. Der Back Buffer nach vorne geholt. Und das bild angezeigt was im back Buffer ist. Ob der Back Buffer dabei in den Front Buffer Rutscht. Oder der Zeiger jetzt einfach von den Front Buffer auf dem Back Buffer Zeigt weiß ich nicht. Ist auch egal. Naja 1 Bild ist immer schon vorgerendert, und eins wird angezeigt. Jedoch auch nciht mehr. Danach hört die Grafikkarte auf zu rendern. Wenn alle Buffer schon gefüllt sind.

Es git auch ein Triple Buffer. Da werden dann schon eben 1 Bild mehr im hintergrund berechnet. Wenn man VSync aus hat. Macht sich diese Methode wirksam. Denn dann sieht man das aprubte abbrechen mitten im Bild nicht mehr. Bei schnellen schwenks zum Beispiel.

Naja und durch die Pausen die die Grafikkarte eben erleiden muss. Kommen die niedrigeren FPS raten zu stande. Naja dies ist gerade bei sehr Performance starken Grafikkarten schade. Da diese doch dann ziemlich stark ausgebremst werden. Jedoch hat das wieder ein anderen Effekt. Man spiel das Spiel Flüssig mit VSync an. Ud 85fps. und dann schlatet man FSAA und Af dazu. Und hat immer noch 85fps. Liegt daran das die KArte immer noch nicht ausgereizt ist. und immer noch Pausen durch VSync erleidet.

Andersherum kann es die Karte auch nochmal zusätzlich ausbremsen wenn sie zu schwach ist. Aber naja dazu habe ich jetzt keine Lust nochmal was zu schreiben. Bin Müde und wir haben ja auc schon wieder. 4:41Uhr :eek: Mißt zu lange NWN gezockt. :)
 
Jo, wenn die Buffer voll sind hört die Graka wohl auf zu rendern.

Also, wollen wir mal den Vorgang grob beschreiben. Das Bild das im Front Buffer liegt, wird vom RAMDAC ausgelesen, umgewandelt in analoge Signale und zum Monitor gesendet. Währendessen wird im Back Buffer das nächste Bild gerendert. Ohne VSync wird sofort, nach dem das Bild im Back Buffer fertig gerendert wurde, zum Back Buffer gewechselt (Page Flipping), der dann als Front Buffer dient und das zu darstellende Bild liefert. Der Monitor ist aba in dem Augenblick meist noch mitten im Aufbau des vorherigen Bildes, was zum sogenannten Abrisseffekt (tearing) führt.

Bei aktiviertem VSync allerdings wartet die Graka mit dem wechseln des Buffers bis der Monitor ein VSync-Signal sendet. Erst dann wird zwischen Front und Back Buffer geswitcht. Wenn das Bild im Back Buffer bereits fertig ist, bevor das VSync-Signal kommt, hört sie wohl auf zu rendern. Erst wenn umgeschaltet wurde, wird das neue Bild im Back Buffer erstellt.

Durch das kurzzeitige warten entsteht allerdings eine Lücke. Die Bilder werden in unterschiedlich großen Abständen geliefert. Was wiederum zu einem gewissen Timing Problem führt (@Marc Wessels: Ich glaube, dass hast du damals auch gemeint oda?). Denn das Bild, das dann angezeigt wird, ist eigentlich ein paar 10tel Sekunden zu alt.

Das Begrenzen, der FPS auf einen Teiler der Monitor Hz-Frequenz (bei aktiviertem VSync), verhindert dies. Dadurch wird gewährleistet, dass zwischen den gelieferten Bildern in etwas der gleiche Abstand gehalten wird und die angezeigten Bilder auch aktuell sind.

Bei deaktiviertem VSync hat man das Problem allerdings nicht, weil jedes Bild sofort nach der Fertigstellung gesendet bzw. sofort zwischen Front und Back Buffer gewechselt wird.

Soweit ich weiß, gabs den Triple Buffer aba nur bei Voodoo Karten, wenn ich mich jetzt nicht irre.

EDIT:
Jedoch hat das wieder ein anderen Effekt. Man spiel das Spiel Flüssig mit VSync an. Ud 85fps. und dann schlatet man FSAA und Af dazu. Und hat immer noch 85fps. Liegt daran das die KArte immer noch nicht ausgereizt ist. und immer noch Pausen durch VSync erleidet.
Ich glaub jetzt hast dus verstanden (GFFX Thread)! :)

Man könnte nämlich jetzt die Treiber bzw. 3D-Engine Limitierung in diesem Beispiel, durch die CPU Limitierung ersetzen. Das Ergebnis wäre das gleiche ;)....
 
Zuletzt bearbeitet:
@SILV3R
Du kannst ja versuchsweise die Hz-Frequenz auf 100 oda 120 stellen. Dann dürftes du so um die 50 - 60 FPS haben!

Aba eigentlich ist es nix schlimmes sondern eher was gutes, solange es nicht zu weit runter geht. Und mit 43 FPS kann man noch leben und auch ruckelfrei zocken...
 
mein monitor macht leider nur 85Hz, und 43fps kommt mir schon ganz schön rucklig vor
 
Aba das liegt dann wohl an was anderem. Schlecht optimierte 3D-Engine usw... die Engine von MOHAA läuft sowieso nicht besonders flüssig....

Es kommt natürlich auch auf die Art des Spiels an. Bei manchen reichen 30 FPS mindest Framerate um flüssig zu erscheinen. Bei anderen müssen es wiederum 60 FPS sein (mindest Framerate)...
 
@Madnex
:d

Also ich denke die Vsync kann man nicht gleichsetzten mit der CPU Limitierung. Denn wenn die CPU runter eght und die Limitiert. Wird auch die gesamtleistung gedrückt, und man kommt nicht mehr auf die selben FPS. Trotz selebr Grafikarte etc.

Aber will hier nicht das gleich wieder ein Krieg aus bricht.
attack003.gif
attack006.gif
attack007.gif
attack016.gif
attack013.gif
attack019.gif
attack027.gif
attack030.gif
attack041.gif

attack044.gif
fantasy025.gif


:fresse:
 
Naja, du musst das so sehen. Wenn der Monitor sagt "mehr geht net" und riegelt bei sagen wir mal 60 FPS (60 Hz) ab, kann man das auch auf den Prozessor beziehen. Nämlich in dem Sinne das die übrig gebliebene Leistung der Graka, die vorhanden ist wenn die CPU die Endleistung limitiert, für FSAA und AF genutzt werden kann ohne das die FPS extrem oda, je nachdem wie lahm der Prozy is, gar nicht runter geht... ;)

Natürlich limitiert ein lahmer Prozesser die Grafikleistung nicht auf einen festen Wert (60 FPS z. B.). Aba du weißt ja was ich meine, denk ich mal... Es geht mir um die übrig gebliebenen Leistung bzw. Bandbreite der Graka... und das ist durchaus mit der Limitierung durch VSync vergleichbar!
 
Zuletzt bearbeitet:
@Madnex
Ich verstehe genau was du meinst. Und Theoretisch kann man dann denken das die Radeon9700Pro die übrig gebliebene Leistung für AA benutzt. Aber wenn der CPU limitiert hängt davon viel zu viel ab. So das das gleich läuft mit oder ohne AA. hab zwar nur ne GF2Ti. Aber mit den P3 700 den ich vorher hatte und AA... Konnte ich nichtmal dran denken. Die Leistung suckte sowas von derbe. Und okay ist zwar nur ne GF2Ti, aber die ist bei 700Mhz keineswegs ausgereizt gewesen. Aber das hängt ja auch wieder mit der Grafikkarte zusammen. Den die Ti bessasen ja nicht gerade vom Core her so gute Leistung zum Render mit AA. Naja jedenfalls wenn ich demnächst ne Radeon9700Pro habe. So nächsten monat werde ich die Ausgiebig testen. Mit dem langsamsten CPU einstellungen die bei mir Möglich sind, und eben so wie jetzt meine Einstellungen sind (2400). Mal schauen was dann dabei raus kommt. Dann haben wir ja einen Praktischen Test. :d
 
Du dürfst aba nicht vergessen, dass die Berechnung von FSAA ausschließlich von der GPU durchgeführt wird. Also von der Graka, die CPU hat damit nix zu tun.

Außerdem war eine GF2 nie für FSAA ausgelegt. Dieses Feature wurde nur nachgeschoben, weil die Voodoo5 damals dieses Feature als Marketing Argument genutzt hat. Weil zugegebnermaßen die V5 damit eine sehr gute Qualität lieferte und den Leistungseinbruch durch FSAA "relativ" gut wegstecken konnte. FSAA war nie vorgesehen für die GF2...

Also, die GF2 ist zu Speicherbandbreitenlimitiert um FSAA vernünftig nutzen zu können. Dementsprechen wird sie durch FSAA so extrem beansprucht, dass sie dann auch durch langsamere CPUs bis an ihre Grenzen getrieben werden kann. ;)
 
@Madnex
Joo deswegen mache ich den test ja nciht mit der GF2. Sondern warte noch auf meine Radeon9700 Pro. Überlgee auch gearde ob es ne Pro oder ne non Pro werden soll. Theoretisch ist ne non Pro ja sehr viel Günstiger und hat auch nur 10% weniger Leistung. Aber auch nur Theoretisch :d :fresse:

Naja aber eins dürfen wir bei der ganzen Sache nciht vergessen. Den das ist die Software. DAs mit der CPU und der Graka mag ja eine schöne Theroie sein, nur spielt das alles nciht mit wenn die Software nciht mit spielt. Auch sieht es wieder schlecht aus wenn die Software sehr CPU Lastig ist. Dann kommt die Theorie auch cniht mehr auf.

Und das meinte ich immer. Theroie ist ne schöne Sache. Nur Versuch das mal Praktisch immer umzusetzten. Sicher bei CS sieht mein kein Unterschied ob mit oder ohne AA. Aber stell dir vor da wäre diese Limitierung nicht drin. Dann würden vielleicht in CS 200 anstatt 300fps laufen. Jedoch ist da ne Limitierung drinne. und es werden nur 100fps angezeigt. Ähnlich wie bei VSync. Jedoch kann man dann nciht sagen das AA und kein AA keinen Leistungsunterschied bringt. Wir könnend en aufgrund der schlechten Engine nur nicht sehen, den Leistungsunterschied.
 
Mhh... irgendwie hast dus mit deiner Theorie. Nicht alle Werte sind immer Theorie! Nehmen wir z.B. den Unterschied zwischen einer RadeOn 9700pro und 9700 non pro. Wenn Benchmarks belegen das die 9700 bei dem einen Spiel 10% langsamer is als die 9700pro, dann ist das keine Theorie sondern ein in der Praxis nachgewiesener Leistungsunterschied. Also wenns nachgewiesen ist, ist es keine Theorie mehr. Denn dann nennt man sowas Praxis!

Natürlich schwankt der Leistungsunterschied je nach Auflösung und 3D-Engine. Man kann nicht verallgemeinern das der Leistungsunterschied 10% beträgt, das ist klar. Aba es wurde belegt das bei der Auflösung, bei dem Game bzw. bei dem Szenario, der Unterschied so und soviel Prozent beträgt...

Auch ist es keine Theorie, dass man mit einer langsameren CPU einen prozentual geringeren Leistungsunterschied zwischen aktiviertem / deaktiviertem FSAA oda den Auflösungen hat. Und dass das soweit geht (bei geringerer CPU Leistung), bis kein Unterschied mehr besteht. Ich habe da meine Erfahrungen gemacht die ich dir auch schon mitgeteilt habe. Wenn du dich an das Beispiel mit der Voodoo2 und dem Cyrix PR166+ erinnerst. Zudem haben diese von dir sogenannten Theorien mehrere Leute bestätig. Und zwar aus Praxiserfahrungen...

Also, nicht immer alles auf die Theorie beziehen ;)...
 
Zuletzt bearbeitet:
@Madi
Nö das Beispiel mit deiner Vodoo2 und P166 hast du nciht genannt.

Und das es überhaupt kein unterschied gibt glaube ich nicht. Nur achtet man darauf nciht. Wenn das Spiel so schon ruckelt. und nur 10fps her gibt. Und man macht FSAA an, und hat auf einmal nur noch 8 fps. In Erinnerung behält man. Lief gleich gut. Jedoch von 10 auf 8 fps runter. Sind schon wieder 20%.

Naja was ich dabei sagen will. Die Gesamtleistung drückt sich. Und als Mensch fasst man die LEistung als gleich zsuammen. Jedoch wenn man nachrechnet ergibt sich fast das selbe wie bei hohen Zahlen.

*hust* Jetzt fängts schon wieder an. :d Aber lass uns einfach dabei bleiben. Das ich auf meine Radeon9700Pro warte und das dann selber teste. Wenn meine Thorie nicht stimmt. Gibts ne Riesen Entschuldigen und nen Bussi von mir. :d Aber nciht zu früh freuen. :fresse:
 
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