CapFrameX - Capture und Analyse Tool

Hab den Bug gebändigt, den TheNewNow reportet hat.
Ergänzung ()

Ich verstehe es nicht. Ich berechne einen globalen max. Alignment Parameter und es sieht trotzdem so aus:

810906


Das ist der Code für die Berechnung des Parameters:
C#:
 private int GetMaxContextAlignment()
 {
     var maxGameNameLength = ComparisonRecords.Max(record => record.WrappedRecordInfo.Game.Length);
     var maxContextLength = ComparisonRecords.Max(record
         => record.WrappedRecordInfo.FileRecordInfo.Comment.SplitWordWise(PART_LENGTH).Max(part => part.Length));

    return Math.Max(maxGameNameLength, maxContextLength);
}

Wo soll der Fehler sein??
 
Zuletzt bearbeitet von einem Moderator:
@ZeroStrat Was genau passt denn in dem Bild nun genau nicht? Dass er oben drei Zeilen draus gemacht hat? Denn die 42 Zeichen pro Zeile sind doch überall eingehalten worden.
 
Ah jetzt sehe ich es.
Beim Fehler im Code finden kann ich nicht wirklich helfen, wenn ich den Code richtig interpretiere, dann nimmst du den längsten Game Namen und den längsten Context Namen und berechnest daraus GetMaxContextAlignment.

Müsste die Variable, die da berechnet wird, nicht auch irgendwo global geschrieben werden oder passiert das woanders im Code? Für mich sehen diese 8 Zeilen mit dem was ich so an Programmierahnung habe nach einer Funktion aus, die bei jedem Record eingesetzt wird, aber sich die Parameter dann nur auf den jeweiligen Record beziehen, ich sehe da jetzt keine globale Variable rauskommen.
 
Ja, das ist nur die Kernfunktion. Das Problem wird bei der Lib liegen. Die wird die Texte rechtsbündig nach dem Maximum ausrichten. Zum Glück habe ich den vollen Code ungebunden. Wird halt ne fisselige Suche.
 
Vieles davon haben wir ja auch schon erörtert, vor allem das mit dem Zoom im Graphen hatte ich glaube auch schon mal vorgeschlagen, also dass man einfach einen festen Bereich wählt( entweder manuell in Sekunden einzutragen oder man könnte es mit dem Fenster ziehen mit STRG und Rechter Maustaste realisieren) und dann einfach nur auf der X Achse zoomt und unten dann einen Schieberegler hat.
Diesen Schieber habe ich sogar schon mal gesehen, als du das erste mal die neuen Graphen zum Test auf der Aggregation Page eingebaut hast, war der da.


Und das mit der Auslastung hatte ich auch schon länger im Kopf, wollte das Projekt aber noch nicht damit belasten^^
Wäre cool wenn man die Auslastung von CPU und GPU loggen könnte(der Taskmanager kann ja mittlerweile auch beide anzeigen, also sollte sich da doch evtl was realisieren lassen.) Und diese dann optional innerhalb des Frametime Graphen einblenden könnte.
 
Zuletzt bearbeitet:
Wenn die Anbindung vom RTSS klappt, dann hätte man CPU und GPU Auslastung doch im Prinzip ohne Aufwand direkt mit dabei oder? Wie Werte dürften sich doch vom RTSS auslesen lassen.

Den Punkt mit dem Tearing hab ich übrigens nicht verstanden^^
 
Taxxor schrieb:
Wenn die Anbindung vom RTSS klappt, dann hätte man CPU und GPU Auslastung doch im Prinzip ohne Aufwand direkt mit dabei oder?

Im Zweifel würde ich immer PresentMon als Quelle "anzapfen", aber wenn's nicht geliefert wird, nehmen wird halt RTSS.
 
Aus dem MsBetweenRenderComplete könnte man sich womöglich was berechnen, was dann aber auch nur eine grobe Annäherung wäre und eine Trennung zwischen CPU und GPU Auslastung sehe ich da nicht herauszubekommen.
 
Jefferson hat mir das mal erklärt. Es sind tatsächlich die CPU Framtimes. Das einzige, was Richtung GPU geht, ist MsBetweenRenderComplete.
 
Gut dann hätte man damit sowas, wie es Tomb Raider anzeigt, einen Graphen, was die CPU ohne GPU Limit erreicht hätte. Aber eine Auslastung bekommt man so auch nicht, man könnte maximal damit anzeigen, wann die CPU limitiert hat.
 
@Taxxor Schau mal bitte hier in die Kommentare unten:

Was mache ich falsch?
 
Seine Fragen beziehen sich ja auch nicht so wirklich auf das was du im Video erklärt hast, da geht's ja ums Programm allgemein und naja ein paar "dumme" Leute sind halt immer mal dabei, da muss man mit leben.

Wer sich ein Tool zur Frametimes Analyse holt, der sollte schon wissen was diese Werte bedeuten, was anderes als sie so zu nennen wie sie sind, kann man auch nicht machen.


Nur die adaptive STD ist halt wirklich was, womit die wenigsten was anfangen können ohne eine Erklärung die so gut es geht auf Fachbegriffe verzichtet
 
Zuletzt bearbeitet:
Hm, vielleicht sollten wir die Parameter in der Hilfe einfach mal ganz stur beschreiben.
 
Du meinst in der Anleitung, die nach deiner Aussage sowieso niemand liest? ^^
Vielleicht könnte man es mit tooltips machen wenn man über die jeweilige Auswahl im Settings Menü geht.
Das sind ja schon Tooltips drin, die sagen momentan aber halt einfach nur das was eh schon da steht.

Und ich würde die quantile in den Settings halt eigentlich echt komplett rausnehmen und Percentile nennen, wie es der Tooltip aktuell schon sagt.
0.01 quantile ist halt 1% Percentile und Percentile kennt man von anderen Seiten, quantile hab ich auf Benchmarkseiten noch nie gesehen.
 
Zurück
Oben