Neue CPU gekauft, FPS nahezu identisch, aber ruckelfrei. Warum?

Stichwort Frametimes. Die sind von der neuen CPU natürlich viel glatter. Fps sind nicht alles.

Und die FPS sind dann nicht glatter, wenn die Frametimes glatter sind? ^^

Die Renderpipeline ist mehrstufig. Was CapFrameX zum Beispiel macht, ist die Verweildauer (MsBetweenPresents) in einer bestimmten Stufe abzugreifen, die relativ früh ansetzt, so dass man von CPU-Frametimes sprechen kann. GPU-Limit heißt dann übrigens, dass die Wartezyklen durch noch folgende Stufen in der Pipeline die CPU-Frametimes "ausbremsen", also steigt letztlich die Verweildauer in der "CPU-Stufe" an. @HisN Vielleicht bist du an dieser Erklärung interessiert.

Noch hat man keine FPS, sondern nur Frametimes in Millisekunden. Wie geht's dann weiter? Die frames per second kann man erst korrekt nach der Messung ausrechnen. Man addiert alle Frametimes und teilt die Anzahl der Frames durch diese Summe. Anschließend rechnet man noch Millisekunden in Sekunden um. Alles was man zur Laufzeit zum Beispiel im Afterburner sieht, sind Momentanwerte 1000/Frametime = FPS. Jetzt kommt ein häufig auftauchender Trugschluss. Man darf keinen Mittelwert dieser Momentanwerte bilden. Das wäre nur eine grobe Schätzung.

Beispiel: Gegeben sei die Frametime-Sequenz ft = { 22.857 27.427 18.816 21.601 15.769 21.168 18.947 27.466 27.506 15.021 25.372 12.587 19.761 29.085 29.437 22.125 11.932 21.059 18.506 20.222}.

Die Summe ist 426.66 ms und es sind 20 Elemente, also ist FPS = 1000 * 20/ 426.66 = 46.876 frames/s.

Die FPS Momentanwerte sind fps = { 43.751 36.460 53.146 46.294 63.415 47.240 52.779 36.408 36.355 66.572 39.414 79.448 50.604 34.382 33.971 45.197 83.811 47.486 54.037 49.450}.

Der Mittel ist aber 50.011 frames/s. Das ist tatsächlich immer so, die geschätzten Average FPS sind immer größer.

So gesehen sind Frametimes alles und FPS sind nur eine Umrechnung von Frametimes. Zusätzlich muss man aufpassen, was man da rechnet.

Glattheit von Frametimes ist sehr wichtig. Man betrachtet dazu die unteren Perzentile. Leider wird oftmals nur das 1% Perzentil betrachtet. Es gibt sogar Fälle, wo das 1% Perzentil gut ist, das Spieleerlebnis dennoch hakelig rüberkommt. Dafür reichen Spikes die einmal pro Sekunde "eingestreut" werden.

Man sollte viel mehr den Fokus auf die unteren Perzentile legen. Average FPS sagen im Grunde nichts über ein flüssiges Spieleerlebnis aus.

Afterburner ist übrigens keine gute Wahl für eine genaue Frametimeanalyse, weil Mittelwerte über gleitende Fenster gebildet werden. Das liegt an dem Polling Prinzip. CapFrameX dagegen zeichnet alles lückenlos auf.
 
Zuletzt bearbeitet von einem Moderator:
Es gibt keinen Weg ein Graphen von CapFrameX in das OSD vom Afterburner einzublenden? *g*

Ich arbeite ja dran. Nur stoße ich auf das fundamentale Problem "Performance". ^^ Wenn ich den Graphen so aktualisiere wie die Daten kommen, dann müsste ich zum Bespiel bei 200 FPS alle 5ms einen Refresh triggern. Das wird einen Kern komplett zuballern. Wollt ihr das?
 
DAS ist ne gute Frage. Eventuell ist das auch genau der Grund warum das RTSS-Frametime-Dings nur eine "Näherung" ist.
 
Man kann sich ja andere Ansätze überlegen. Sagen wir mal eine Polling Periode von 100ms wäre noch akzeptabel. Dann könnte man sich überlegen, was man mit dem 100ms Fenster macht, bzw. mit den Werten, die in das Fenster reinfallen. Man muss ja keinen Mittelwert ausgeben. Vielleicht ein Maximum? Oder was anderes? Was schlägst du vor?
 
Wenn Du alle 5ms pollst, würden immer 20 Werte in ein Fenster fallen, wir schauen uns die Werte an um worste Case zu zeigen ....... nein, jeder möchte was anderes zeigen/sehen
Umschaltbar? Max, Min, AVG?
 
Ich arbeite ja dran. Nur stoße ich auf das fundamentale Problem "Performance". ^^ Wenn ich den Graphen so aktualisiere wie die Daten kommen, dann müsste ich zum Bespiel bei 200 FPS alle 5ms einen Refresh triggern. Das wird einen Kern komplett zuballern. Wollt ihr das?

TU ES! TU ES! :D

Als Option, bitte. Die Vergleichbarkeit mit anderen Messungen anderer Software wird dadurch extrem sinken, aber im CapFrameX-Biotop wäre trotzdem alles fein.
 
Zurück