Das sieht in der Tat interessant aus!
Um dir mal einen Einblick zu geben, wie die Funktion in der Praxis bei euch aussehen würde:
Dein Wunsch ist, für jede GPU/CPU/wasauchimmer drei Durchläufe zu machen und diese dann zu Mitteln. Dann schaust du dir die drei Durchläufe danach erst mal an, ob da ein zu guter oder zu schlechter Durchlauf dazwischen ist. Dann bliebe dir entweder, es aus Zeitgründen so hinzunehmen, das ganze nochmal zu machen, oder für das Game nur 2 Werte zu nehmen.
Und dann nimmst du dir die ganzen Einzelwerte und erstellst daraus Mittelwerte.
Bei CX stellst du dir die Run History auf die 3 Runs ein(3 ist sowieso default), eventuell noch die Metriken, die du im Overlay sehen willst(aufgezeichnet wird ja sowieso alles) und aktivierst die Aggregation.
Hier hast du dann zwei Optionen:
Ignore= Du machst deine 3 Durchläufe und sobald die durch sind, wird die Datei erzeugt, die die Frametimes dieser 3 Durchläufe am Stück enthält und basierend darauf kannst du dir in CX dann alle Parameter anzeigen lassen, die du möchtest, oder sie auch schon direkt aus dem Overlay abschreiben, wenn dich z.B. sowieso nur den average und den P1 interessiert.
Replace(in der aktuellen Beta noch nicht aktiv) = Du kannst zusätzlich eine der Metriken wählen, die du auf Ausreißer überprüfen möchtest, und einen Prozentwert festlegen, um wie viel diese Metrik vom Median deiner drei Durchläufe abweichen darf, bevor sie als Ausreißer gewertet wird.
Jetzt machst du wieder deine 3 Durchläufe. Sollte dabei ein Ausreißer erkannt werden, wird er im Overlay rot markiert und du kannst einen weiteren Durchlauf machen, der diesen dann ersetzt.
Sobald alles passt, wenn also aufgrund deiner Auswahl keine Ausreißer mehr erkannt werden, wird die Datei erstellt.
Damit du dir die Platte dann nicht mit hunderten Einzelbenchmarks plus den zusammengefassten Dateien zumüllst, hast du auch über eine Checkbox bei den Aggregationseinstellungen die Möglichkeit, die einzelnen Durchläufe generell nicht als Datei abzuspeichern, sondern nur ihre Daten zwischen zu speichern und am Ende nur die zusammengefasste Datei zu bekommen.
Und noch eine Anmerkung zum generellen Unterschied unserer Methode im Vergleich zum Mitteln von drei Durchläufen, deine Meinung dazu würde mich natürlich auch interessieren:
Speziell bei den Perzentilwerten ist das Mitteln aus drei in sich abgeschlossenen Durchläufen eigentlich keine gute Methode um am Ende einen aussagekräftigen Perzentilwert zu erhalten.
Denn ein Perzentilwert ist ja für sich alleine schon kein Mittelwert aus den Daten eines Durchlaufs, wie es der average fps Wert ist, sondern ein fester Punkt innerhalb dieser Daten. Wenn man diese Werte danach einfach mittelt, bekommt man zwar einen Wert, dieser ist aber eigentlich nicht unbedingt repräsentativ für die Gesamtheit der drei Durchläufe.
Angenommen du machst drei Durchläufe und bekommst z.B. einmal 80 und einmal 81 als Perzentil raus, beim dritten Durchlauf hast du aber 1-2 Frames mehr, die ausgerissen sind und dir das Perzentil für diesen Run auf 50 drücken.
Mittelst du die Werte dieser drei runs jetzt, kommst du auf ein Perzentil von 70.
Da wir erst mal alle Frametimes der drei Durchläufe zusammenfassen und dann anhand dieser Daten das Perzentil bestimmen, simulieren wir damit, dass du die Szene wirklich in einem einzigen Durchlauf dreimal abgegangen bist, also als wäre der Weg den du abgehst, dreimal hintereinander vorhanden und deine Aufnahme würde dreimal so lange dauern.
Dabei würden diese 1-2 Frames vom dritten Durchlauf in der Masse der Frames eventuell gar nicht im Bereich des Perzentils liegen und wir hätten dann z.B. einen Wert von 78. Oder aber sie würden einige der unteren Frames der anderen beiden Durchläufe verdrängen und das Gesamt-Perzentil läge bei 65.
Und diese 78 oder 65 wäre eigentlich der "richtigere" Wert, denn das ist genau das Perzentil von drei hintereinander gemachten Durchläufen.
Mit unserem Ansatz, Ausreißer zu erkennen, würde ich mir sowieso das Perzentil nehmen und auf maximal 5% Abweichung abfragen, dann wäre 80 der Median und 50 würde als Ausreißer erkannt werden, den ich wiederholen muss.
Kommen dort dann z.B. 77 raus, dann wäre das Ergebnis nach unserer Aggregation(vmtl. irgendwo zwischen 78 und 80) auch nicht so verschieden vom einfachen Mitteln der drei Einzelwerte, wenn man dort auch vorher solange gemessen hat, bis man drei ähnliche Werte bekommen hat, aber vom Prinzip finde ich unseren Ansatz da doch noch genauer.