Was verursacht FPS-Einbrüche?

l3eniy

Commander
Mitglied seit
14.02.2010
Beiträge
178
Renomée
0
Ich bin ja immer sehr wissbegierig und mich plagt jetzt wieder eine Frage ;) :
Wenn ich ein Spiel spiele habe Ich eine bestimmte Anzahl von Bildern in der Sekunde die meine Grafikkarte an meinen Bildschirm sendet. Nun laufe ich in dem Spiel aus einer dunklen Ecke in der Ich 130FPS habe auf ein offenes Feld wo die FPS auf 45 abstützen. Wenn es ganz arg kommt stürtzen sie auf 30fps. Nun würde Ich gerne mal wissen was genau dies verursacht?
Ich kann mir vorstellen es liegt daran, dass die GPU auf einmal viel mehr berechnen muss. Aber stimmt das auch? Wie kann man diese Frameinbrüche minimieren? Die Durchschnittsframeraten, die man in den meisten Benchmarks von GraKa´s zu sehen bekommt, sagen dann ja letztenendes garnichts aus.... Wenn Ich in dunklen Gassen immer bei 100FPS hänge ist alles schön und gut. Aber genau in dem Moment in dem es dann ruckelt wenn Ich ins offene Feld gehe nervt es mich. Also sollte man doch besser die Minimum-Framerate angeben oder? Ich habe im Durchschnitt, sagen wir mal, 88fps und wenn es hart kommt liegen sie aber bei 30. Also noch mal zur Frage: Wie verhindere Ich den Absturz der Frames? Muss die GPU schneller ennen? Oder einfach eine besser GPU?
 
Dunkle Gasse, nicht viel zu rendern oder berechnen.

Offenes Feld, viele Partikel, viele Texturen, viele Objekte...
 
Du hast es schon richtig erkannt. Die FPS Rate fällt mit steigender Berechnung. Gibt es mehr zu sehen, mehr Details zu berechnen, mehr Effekte, sinkt die FPS Rate drastisch gegenüber einer Wand die du betrachtest.
Dem kann man auch nicht entgegenwirken, außer du schaust stetig gegen eine Wand oder auf den Boden.

Benchmarks im Netz, testen in der Regel ein sogenanntes Worst Case Szenario. Der Tester sucht sich ein Level mit einem Abschnitt wo es eben gut zur Sache geht und die Hardware stark gefordert wird. Niemand testet einen Abschnitt wo man locker 100FPS hat, wenn in anderen Abschnitten die FPS auf 30-40 fällt.

Die Angaben zur minimum FPS sind auch kein echter Garant um aufzuzeigen wie gut ein Spiel läuft. Denn man sieht ja nicht ob die Leistung nur für 1 Sekunde auf 20FPS fällt, oder für einen längeren Zeitraum.
Den Perfekten Test gibt es nicht, aber man kann sich ganz gut nach den bekannten Bencher richten.
 
anders als im realen leben besteht wie spielwelt aus dreiecken die aneinander gelegt sind.
so besteht ein viereck aus zwei dreicken. also ein würfel aus 12 dreiecken.

stell dir vor das deine graka das viereck mit der textur tapete drauf 20000 mal in der sekunde berechnen kann. nun hast du in der gasse aber ein paar vier- und dreiecke mehr. deine graka schafft es das aber noch flüssig zu berechnen. du kommst aus der gasse heraus und.... wie im waren leben ist da mehr als nur die gasse. bäume, mülltonnen, menschen, licht und schatten. du brauchst auch erstmal einen augenblick länger die lage zu sondieren, aber das gehirn merkt sich nur wichtige informationen.
bei der graka wird egal ob du es mitbekommst immer alles das was du sehen kannst berechnet.
früher war das sogar so, dass objekte hinter objekten, die du also nicht gesehen hast weil sie verdeckt wurden, berechnet.

zurück zum thema. alles besteht ja aus dreiecken... die gasse, die bäume, die menschen.... menschen haben übrigens mittlerweile oftmals 100.000 poligone (dreiecke).
jetzt rechne mal.
2 poligone (viereck) = 20000 FPS
100.000 poligone = ....

könnte mit dem flüssig spielen eng werden. ;-)

jetzt kommen aber noch effekte wie bloom, HDR, Motionblur, etc. dazu, die auch leistung ziehen.
manches kann vom prozessor berechnet werden und entlastet dann etwas, aber im gesamten muss deine graka schon ordentlich schuften.

wenn wir uns nun die texturen ansehen, also die tapete der dreiecke, kann man auch was lustiges sehen. ist der speicher der graka übervoll, wird in den arbeitsspeicher ausgelagert. das bremst als würde man auf der autobahn nen anker schmeissen. die maximale bandbreite die die PCI-e 2.0 schnittstelle bei 16 lanes (verbindungen) bewerkstelligen kann liegt bei 8GB/s. schön schnell, aber da geht protokolloverhead, kommunikation, transfer der texturen in die graka usw. von ab. da haben wir es dann auch schon.
texturen von der platte in die graka.... grakaspeicher voll.... texturen wieder raus die nicht jetzt sofort benötigt werden.
gehen wir von den 8GB/s aus .texturen rein, andere raus ins RAM und dafür wieder andere daten rein.
8GB/s : 3 = .....
spielst du mit Anti aliasing? das kostet auch speicher und es muss evtl. schon früher mit den texturen jongliert werden.

es kommt auf diverses an. man kann keinen alleinschuldigen ausmachen.

ja dies ist alles sehr einfach in den ausführungen gehalten und zeigt nicht alle engpässe auf.
es sollte aber reichen um aufzuzeigen was da alles dran hängen kann.
 
Du hast es schon richtig erkannt. Die FPS Rate fällt mit steigender Berechnung. Gibt es mehr zu sehen, mehr Details zu berechnen, mehr Effekte, sinkt die FPS Rate drastisch gegenüber einer Wand die du betrachtest.
Dem kann man auch nicht entgegenwirken, außer du schaust stetig gegen eine Wand oder auf den Boden.



Boden meistens ja. Wand bringt oft nicht so viel. Zwar wurden die Berechnungsmethoden verbessert oft wird aber auch das berechnet was hinter der Wand ist.
 
die lösung gegen schwankende frames heisst vsync mit triplebuffer.. auslagern von texturen über PEG auf den RAM ist mir noch nie passiert.. für 1920x1080 mit 4MSAA ist auf 1GByte karten immer platz, wenn man nicht grad ein zermoddetes GTA oder vergl. einsetzt.

wenn die karte für einen 60er sync/ Hz betrieb nicht reicht und man zu oft auf 30 kastriert wird, kann man sich mit geringeren BWF behelfen; etwa indem man 48Hz anlegt/einstellt und synct.

davon ab gibt es zwischen den generationen, die augenscheinlich keine neuerungen bringen, immer detailverbesserungen, die an einer bestimmten stelle eben framedrops verhindern, wo der vorgänger noch gedroppt ist - etwa bei pipeline-stalls, die im überarbeiteten design reduziert werden konnten.


(..)

mfg
tobi
 
Wenn Ich in dunklen Gassen immer bei 100FPS hänge ist alles schön und gut. Aber genau in dem Moment in dem es dann ruckelt wenn Ich ins offene Feld gehe nervt es mich. Also sollte man doch besser die Minimum-Framerate angeben oder? Ich habe im Durchschnitt, sagen wir mal, 88fps und wenn es hart kommt liegen sie aber bei 30. Also noch mal zur Frage: Wie verhindere Ich den Absturz der Frames? Muss die GPU schneller ennen? Oder einfach eine besser GPU?


selten so eine dumme frage gehört, warum fps einbrechen.

zuerst fragste ob deine cpu limitiert, jetzt kommste mit gpu.

machs dir einfach stell die details auf low.
 
vllt ist er nicht zufrieden mit dem, was hinten raus kommt?!

man darf aber nicht drauf hinweisen, dass die infrastruktur schwach oder die grakas alt sind..
-> immerhin "reicht sie" ja "aus".

das wäre wohl der hauptgrund für fiese drops von 100 auf 30 fps, mit einem multi-GPU-system in immer aktuelleren titeln.

wenn ich zwei karten so einsetze, dass ich mit SGSSAA die framerate auf 30 oder 40fps drücke ist das ne ganz andere hausnummer,
als wenn man 30fps mit "ingame-standard-optionen" erreicht; das schaffen auch einzelkarten, die weniger heizen und weniger mgpu-side-effekte mitbringen.


(..)

mfg
tobi
 
Zuletzt bearbeitet:
Och Leute, das Thema ist 3 Wochen alt...
 
Zurück
Oben Unten