Analyse von Frametimes und 1% Lows mit NVIDIA FrameView

Einleitung

NVIDIA FrameView kann neben den durchschnittlichen FPS auch die 1% Low FPS, 0,1% Lows sowie detaillierte Timing-Daten pro Frame aufzeichnen. Diese Messwerte können dabei helfen, gelegentliche Ruckler zu untersuchen und Systemkonfigurationen, Leistungsprofile sowie Grafikeinstellungen zu vergleichen.

Diese Anleitung erklärt, wie man NVIDIA FrameView konfiguriert, vergleichbare Benchmark-Läufe aufzeichnet und eine grundlegende Analyse der erzeugten CSV-Dateien durchführt.

Die Anleitung strebt an, dieses sonst nur Experten vorbehaltene Thema möglichst anfängerfreundlich aufzubereiten.

Was sind die 1% Low-FPS?

Die durchschnittlichen FPS geben an, wie viele Frames pro Sekunde über den gesamten Testzeitraum hinweg erzeugt wurden. Sie zeigt jedoch nicht, ob diese Frames in gleichmäßigen Intervallen ausgegeben wurden.

Jeder Frame hat eine Framezeit (frametime), gemessen in Millisekunden. Eine längere Framezeit bedeutet, dass es länger gedauert hat, bis der entsprechende Frame angezeigt wurde.

Vergleichstabelle:

Framerate Zeit pro Frame
30 FPS 33,3 ms
60 FPS 16,7 ms
120 FPS 8,3 ms
144 FPS 6,9 ms
240 FPS 4,2 ms

NVIDIA berechnet die 1% Low, indem es die langsamsten 1% der Bilder heranzieht und deren durchschnittlichen FPS mittelt.

Je näher das 1%-Low-Ergebnis an der durchschnittlichen FPS liegt, desto gleichmäßiger war die Bildausgabe im Allgemeinen. Eine große Lücke zwischen der durchschnittlichen FPS und den 1% Lows kann darauf hindeuten, dass es entweder regelmäßige Ruckler gibt oder dass die Bildwiederholrate allgemein nicht besonders stabil ist.

Der 0,1%-Low-Wert konzentriert sich auf eine noch kleinere Gruppe besonders langsamer Bilder. Er kann helfen, schwerwiegende, aber selten auftretende Unterbrechungen zu identifizieren, ist jedoch auch empfindlicher gegenüber eher sporadisch auftretenden (seltenen) Ereignissen, insbesondere bei nur kurze Aufnahmezeiträumen.

Die 1%-Low-Leistung kann von vielen Systemkomponenten beeinflusst werden, darunter CPU-Leistung und Cache, Latenzen im System, der Bandbreite des Arbeitsspeichers, Shader-Kompilierung, Asset-Streaming, Verzögerungen beim SSD-Zugriff, verschiedene Grafiktreiber, Hintergrundanwendungen und von der Spiel-Engine selbst. Auch ein GPU-Performance-Flaschenhals kann zu niedrigeren 1%-Low führen, insbesondere wenn die GPU während des Testzeitraums durchgehend voll ausgelastet ist.

Sind niedrigere 1% Low prinzipiell schlecht?

Ein gewisses Maß an Schwankungen bei der Framerate ist normal. Kein Spiel liefert zu jeder Zeit vollkommen gleichmäßige Frames, und gelegentliche kurze Ruckler können aufgrund von Szenenwechseln, Asset-Streaming, Shader-Kompilierung oder Hintergrundaktivitäten auftreten. Ein einzelner Frame-Time-Spike oder ein vereinzeltes niedriges Ergebnis ist daher nicht unbedingt ein Grund zur Sorge.

Der Zweck dieser Methode besteht nicht darin, einzelne Messwerte überzubewerten, sondern wiederholbare Messreihen zu vergleichen und herauszufinden, ob bestimmte Einstellungen, Leistungsprofile oder Systemkonfigurationen einen aussagekräftigen und konsistenten Einfluss auf das Frame-Pacing haben.

Wo finde ich NVIDIA FrameView?

NVIDIA FrameView kann hier kostenfrei heruntergeladen werden:

NVIDIA FrameView war lange Zeit nur als eigenständige App für erfahrene Nutzer verfügbar – inzwischen ist es aber auch in die anwenderfreundliche NVIDIA App integriert. Die alleinstehende App verfügt allerdings je nach Versionsstand über einige erweiterte Funktionen, daher werden wir weiterhin die Nutzung der alleinstehenden Version von NVIDIA FrameView empfehlen.

Kompatibilität

Trotz seines Namens ist NVIDIA FrameView nicht auf NVIDIA-GPUs beschränkt. Es kann auf jedem Laptop oder PC mit Grafikkarten von NVIDIA, AMD oder Intel verwendet werden.

Einige GPU-Telemetriedaten, wie z. B. GPU-Leistung und -Temperatur, werden nur auf unterstützter NVIDIA-Hardware protokolliert. Aber die eigentliche Kernfunktionalität (FPS, 1% Low FPS, Frametimes) steht mit NVIDIA FrameView auf allen Systemen zur Verfügung.

Tool-Vergleich

NVIDIA FrameView ist nicht die einzige Softwarelösung zur Messung von Frametimes und 1% Lows.

Name Beschreibung
PresentMon Diese Monitoring-Software bildet die eigentliche Open-Source-Grundlage von NVIDIA FrameView. PresentMon ist auch als eigenständiges Tool in verschiedenen Ausführungen verfügbar.
CapFrameX Baut auf PresentMon auf und bietet eine breitere Palette an Analyse-, Visualisierungs- und Vergleichsfunktionen.
NVIDIA FrameView Baut ebenfalls auf PresentMon auf und funktioniert mit GPUs verschiedener Hersteller. Laut NVIDIA ist FrameView speziell darauf ausgelegt, die DLSS-Frame-Generierung korrekt zu verarbeiten.

Aus Gründen der Benutzerfreundlichkeit und der besten Kompatibilität mit den neuesten NVIDIA-Funktionen empfehlen wir NVIDIA FrameView.

Erfassung möglichst vergleichbarer Testläufe

Sequenzen mit fest definiertem Ablauf

Wenn du verschiedene Konfigurationen, Profile oder Einstellungen vergleichen möchtest, muss jeder Durchlauf dieselbe Spielsequenz abdecken. Verwende denselben Kamerapfad, dieselbe Route oder denselben integrierten Benchmark und halte die Aufnahmedauer konstant.

Vermeide die Erfassung von Ladebildschirmen, Menüs, Zwischensequenzen und Szenenübergänge, es sei denn, diese sind ausdrücklich Teil des Problems, welches du untersuchen möchtest. Selbst wenige Sekunden irrelevanter Inhalte können die Ergebnisse für 1% Low und 0,1% Low maßgeblich beeinflussen.

Führe einen Aufwärmdurchlauf durch

Für jede Konfiguration empfehlen wir, zwei Durchläufe durchzuführen, ohne das Spiel dazwischen zu schließen.

Nutze den ersten Durchlauf als Aufwärmphase. So kann das Spiel die Shader-Kompilierung durchführen, Assets in den Speicher laden und andere Ressourcen initialisieren. Ignoriere diesen Durchlauf beim Vergleich der Endergebnisse.

Nutze den zweiten Durchlauf für die eigentliche Messung.

Fast du feststellen solltest, dass in einem bestimmten Spiel beide Durchläufe stets identische Ergebnisse liefern, könntest du entscheiden, dass ein separater Aufwärmdurchlauf nicht mehr notwendig ist. Dies sollte man aber im Einzelfall überprüfen, je nach Spiel und Konfiguration.

Wichtige Grafik- und Ausgabe-Einstellungen

Bevor du Grafikoptionen im Spiel wie Texturqualität, Licht und Schatten anpasst, überprüfe zunächst die globalen Einstellungen, die die Ausgabe der Frames auf dem Bildschirm beeinflussen. Diese Einstellungen haben einen großen Einfluss auf die Gültigkeit deiner Testreihen. Einige Einstellungen sind grundlegend ungeeignet für aussagekräftige Performance-Vergleiche.

Das offensichtlichste Beispiel ist V-Sync. Es begrenzt die Bildrate auf die Bildwiederholfrequenz des Bildschirms oder, falls das System diese Rate nicht aufrechterhalten kann, auf einen geringeren Bruchteil davon.

Auf einem 240-Hz-Bildschirm kann beispielsweise eine Konfiguration, die nur etwa 200 FPS aufrechterhalten kann, bei aktiviertem V-Sync auf 120 FPS begrenzt werden.

Diese künstliche Bildratenbegrenzung kann dann zwar sehr stabile 1%-Low-Ergebnisse liefern, zeigt jedoch nicht die tatsächlichen Leistungsunterschiede zwischen Konfigurationen oder Grafikeinstellungen auf, da die Framerate eben hart begrenzt wird.

In der folgenden Tabelle findest du Hinweise zu den relevanten darstellungsbezogenen Einstellungen.

Einstellung

Erläuterungen

NVIDIA Optimus

Bei Laptops leitet NVIDIA Optimus die gesamte Bildausgabe über die iGPU, bevor die Bilder auf dem Laptop-Bildschirm angezeigt werden. Neben der erhöhten Latenz kann dies auch die Gleichmäßigkeit der Frametimes erheblich beeinflussen. Für möglichst gut vergleichbare Performance-Tests empfehlen wir, NVIDIA Optimus zu deaktivieren (auch bekannt als "dGPU-only"-Einstellung).

G-SYNC

Verbessert die Bildflüssigkeit und kann aktiviert bleiben. Deaktiviere diese Option, wenn du für einen reinen GPU-Leistungsvergleich bewusst auf alle umliegenden Faktoren verzichten möchtest.

V-Sync in NVIDIA App

Aktiviere diese Option nur, wenn du G-SYNC verwendest. Steuert das Verhalten oberhalb der VRR-Obergrenze und verhindert Tearing, sobald die FPS die maximale Bildwiederholfrequenz überschreiten. Deaktiviere diese Option für Vergleiche der Rohleistung jenseits des Maximums der Bildwiederholfrequenz.

V-Sync (in-game)

Sollte möglichst deaktiviert bleiben.

FPS Limit (Frame limit)

Verwende in allen Testläufen dasselbe FPS-Limit. Wenn du ein besonders empfehlenswertes, reales Anwendungsszenario untersuchen möchtest, empfehlen wir ein Limit knapp unterhalb der maximalen Bildwiederholfrequenz. Dadurch arbeitet das System effizienter und leiser. Wenn die GPU nicht permanent vollständig ausgelastet ist, behält sie außerdem Leistungsreserven für kurze, besonders anspruchsvolle Szenen, etwa Explosionen. Dies kann zu gleichmäßigeren Frametimes beitragen. Weitere Informationen findest du in diesem Artikel. Deaktiviere das FPS-Limit, wenn du gezielt die maximal mögliche Rohleistung vergleichen möchtest.

DLSS Frame Generation

Aktiviere Frame Generation, wenn du die Funktion auch beim normalen Spielen verwenden möchtest. Deaktiviere sie, wenn du eine Ausgangsbasis ohne zusätzlich generierte Frames ermitteln möchtest.

NVIDIA Reflex

NVIDIA Reflex kann sich auf Latenz, Frame-Pacing und maximale Bildrate auswirken. Ergebnisse aus unterschiedlichen Reflex-Modi sind daher nicht direkt vergleichbar. Verwende in allen Testläufen dieselbe Einstellung. Aktiviere Reflex für praxisnahe Tests, wenn du die Funktion normalerweise nutzt. Deaktiviere sie für Vergleiche der unlimitierten Rohleistung.

Fullscreen vs borderless

Behandle beide Anzeigemodi als unterschiedliche Konfigurationen. Da sich das Ausgabeverhalten und die Frametimes unterscheiden können, muss für alle miteinander verglichenen Testläufe derselbe Modus verwendet werden. Im Zweifel einfach Vollbild verwenden.

Sonderfall: DLSS Dynamic Multi Frame Generation

Laut NVIDIA ist DLSS Dynamic Multi Frame Generation derzeit weder mit V-Sync noch mit externen FPS-Limitern kompatibel. Lege die gewünschte Zielbildrate daher über die NVIDIA-App fest und behalte sie für alle miteinander verglichenen Testläufe unverändert bei.

Ändere jeweils nur eine Variable

Ändere bei einem Vergleich ausschließlich diejenige Einstellung, deren Einfluss du untersuchen möchtest. Spielversion, Spielstand, Grafikoptionen, Anzeigemodus, Auflösung, Treiberversion, Windows-Energiemodus und Leistungsprofil des Laptops müssen unverändert bleiben.

Dokumentiere diese Angaben zusammen mit den Ergebnissen. Ein Benchmark-Wert lässt sich später kaum sinnvoll einordnen, wenn die dazugehörige Konfiguration nicht mehr bekannt ist.

So führst du einen Testlauf durch

Gehe folgendermaßen vor:

Einrichtung:

  • Lade die eigenständige Version von NVIDIA FrameView herunter und installiere sie.
  • Starte FrameView und wähle den Ordner aus, in dem die Benchmark-Protokolle gespeichert werden sollen.
  • Lege einen Hotkey für die Aufzeichnung fest. FrameView unterstützt F10 und Rollen. Wir empfehlen F10, sofern diese Taste im jeweiligen Spiel keine wichtige Funktion hat.
frameview-screenshot.png

Durchführung:

  1. Starte das Spiel oder den Benchmark.
  2. Lade die Szene die, bzw. den Spielstand den du messen möchtest. In der oberen linken Ecke des Bildschirms sollte nun das FrameView-Overlay erscheinen.
  3. Warte, bis alle Ladevorgänge abgeschlossen sind und die 3D-Szene aktiv läuft.
  4. Drücke den Benchmark-Hotkey unmittelbar nachdem die zu messende Sequenz begonnen hat.
  5. FrameView bestätigt den Beginn der Aufzeichnung mit einem Signalton. Das Overlay wird während der Messung ausgeblendet, um dessen zusätzlichen Rechenaufwand zu reduzieren.
  6. Spiele oder beobachte die vorher festgelegte Benchmark-Sequenz, ohne ihren Ablauf zu unterbrechen.
  7. Drücke den Hotkey erneut, unmittelbar bevor die Sequenz endet oder das Spiel zu einem Menü beziehungsweise Ladebildschirm zurückkehrt.
  8. Falls dies der erste Durchlauf war (der Aufwärmdurchlauf), kehre zu Schritt 2 zurück und wiederhole die Messung.
  9. Beende anschließend das Spiel und öffne den zuvor in FrameView definierten Benchmark-Ordner.

FrameView erstellt für jede Aufzeichnung eine separate Protokolldatei mit Zeitstempel im Dateinamen und fügt den Testlauf außerdem zu einer Zusammenfassungsdatei hinzu. Wenn du einen Aufwärmdurchlauf durchgeführt hast, verwende für die Auswertung nur die zweite Aufzeichnung.

Erweiterte Aufzeichnungsoptionen

Aufzeichnungsdauer (capture duration)

Wenn der verwendete Benchmark immer gleich lang dauert, kannst du in FrameView eine feste Aufzeichnungsdauer festlegen.

Die Messung muss weiterhin manuell mit dem Hotkey gestartet werden. FrameView beendet sie jedoch automatisch nach der eingestellten Anzahl von Sekunden. Dadurch entfallen kleine Abweichungen, die beim manuellen Beenden der einzelnen Testläufe entstehen können.

Miss die Dauer der Benchmark-Sequenz zunächst bei einem Probedurchlauf mit einer Stoppuhr. Trage anschließend die ermittelte Zeit in FrameView ein.

Aufzeichnungsverzögerung (capture delay)

Mit der Aufzeichnungsverzögerung beginnt die eigentliche Datenerfassung erst einige Sekunden nach dem Drücken des Hotkeys.

Eine Verzögerung von etwa 3 bis 10 Sekunden kann sinnvoll sein, wenn du gezielt die Leistung in einem stabilen Zustand messen möchtest und der Szenenanfang regelmäßig einen irrelevanten Übergang oder einen einmaligen Ruckler enthält.

Die Funktion kann außerdem zur teilweisen Automatisierung von Benchmarks verwendet werden. Wenn das Laden eines Benchmarks oder Spielstands immer ungefähr gleich lange dauert, kannst du den Ladevorgang und die FrameView-Aufzeichnung gleichzeitig starten. Die Datenerfassung setzt erst nach der festgelegten Verzögerung ein, wenn die eigentliche Benchmark-Sequenz idealerweise bereits läuft.

Ergebnisse überprüfen und analysieren

Übersicht

FrameView erstellt zwei Arten von CSV-Dateien. Beide lassen sich mit Microsoft Excel, LibreOffice Calc, Google Sheets und vergleichbaren Tabellenkalkulationsprogrammen öffnen.

frameview-logfiles-in-folder-example.png
Datei Inhalt und Verwendungszweck
FrameView_Summary.csv Enthält für jede abgeschlossene Aufzeichnung eine Zeile. FrameView trägt hier zusammengefasste Werte wie durchschnittliche FPS, 1% Low FPS, 0,1% Low FPS, Benchmark-Dauer und verschiedene Systemmetriken ein.
FrameView_<Anwendung>_<Datum_Uhrzeit>_Log.csv Enthält die detaillierten Daten einer einzelnen Aufzeichnung. Dazu gehören Timing-Daten für jeden Frame sowie verschiedene Telemetriedaten. Diese Datei dient als Grundlage für Frametime-Diagramme und die Untersuchung einzelner Ausschläge.

Für einen ersten Vergleich reicht die Summary-Datei normalerweise aus - dort befinden sich die von FrameView berechneten Angaben zu 1% und 0,1% Low. Diese statistischen Werte geben jedoch keine Auskunft darüber, wann eine entsprechende Verlangsamung auftrat. Sie können außerdem nicht unterscheiden, ob nur wenige, aber dafür besonders starke Ausschläge, viele wiederkehrende Ruckler oder ein isolierter Abschnitt mit durchgehend geringerer Leistung für das Ergebnis verantwortlich waren.

Für solche Untersuchungen benötigst du die detaillierte Protokolldatei des jeweiligen Testlaufs.

Ergebnisse sinnvoll organisieren

Überlege dir vor einer größeren Testreihe, wie du die erzeugten Dateien und Ergebnisse organisieren möchtest.

  • Lege für jede getestete Konfiguration einen eigenen Ordner an. Verschiebe eine Kopie der Zusammenfassungsdatei und die dazugehörigen detaillierten Protokolle in diesen Ordner. Benenne ihn nach dem getesteten Profil oder der geänderten Einstellung.
  • Führe bei umfangreicheren Vergleichen eine separate Tabelle mit Zeitstempel, Konfiguration und relevanten Ergebnissen jedes Testlaufs. Dies ist die zuverlässigste Methode, um auch größere Messreihen später noch nachvollziehen zu können.
  • Öffne bzw. importiere FrameView_Summary.csv in dein Tabellenkalkulationsprogramm, speichere sie als Arbeitskopie im nativen Format der Tabellensoftware und ergänze eine Spalte für eigene Notizen. Vermerke dort beispielsweise das Leistungsprofil, die Grafikvoreinstellung oder das Testszenario.

Verlasse dich nicht allein auf dein Gedächtnis oder auf die Reihenfolge der Dateien. Jeder Testlauf muss später eindeutig der Konfiguration zugeordnet werden können, mit der er aufgezeichnet wurde.

Neben den unmittelbar verglichenen Einstellungen solltest du auch übergreifende Systemparameter dokumentieren:

  • BIOS- und EC-Version
  • NVIDIA-Treiberversion
  • bei Laptops: NVIDIA Optimus beziehungsweise MSHybrid oder dGPU-only
  • ausgewähltes Leistungsprofil
  • Spielversion sowie Patch- oder Build-Datum
  • Auflösung, Anzeigemodus, G-SYNC, FPS-Limit und weitere Einstellungen der Bildausgabe

CSV-Dateien öffnen

Eine ausführliche Anleitung findest du in diesem separaten FAQ-Artikel:

Dasselbe grundsätzliche Verfahren lässt sich auch mit Google Sheets, LibreOffice Calc und anderer Tabellenkalkulationssoftware anwenden.

Zusammenfassungsdatei auswerten

Vergleiche zunächst die folgenden Werte aus der Summary-Datei:

Metrik Interpretation
Average FPS Beschreiben die durchschnittliche Rendering-Leistung während der gesamten Aufzeichnung. Höhere Werte sind grundsätzlich besser.
1% Low FPS Beschreiben die Leistung der langsamsten 1% aller Frames. Dieser Wert sollte idealerweise möglichst nah an den durchschnittlichen FPS liegen.
0.1% Low FPS Beschreiben die Leistung der langsamsten 0,1% aller Frames. Der Wert kann besonders starke Ausreißer sichtbar machen, reagiert aber empfindlicher auf einzelne Ereignisse und kurze Aufzeichnungen.
Benchmark duration Zeigt, ob die miteinander verglichenen Testläufe ungefähr denselben Zeitraum abgedeckt haben.

Bereits anhand dieser Übersicht sollte erkennbar sein, wie sich die untersuchten Einstellungen auf die durchschnittlichen FPS, 1% Low FPS und 0,1% Low FPS ausgewirkt haben.

Einzelne Aufzeichnungsprotokolle analysieren

Für die detaillierte Analyse sind vor allem die folgenden Spalten relevant:

Spalte Beschreibung
MsBetweenDisplayChange Gibt den zeitlichen Abstand zwischen zwei tatsächlichen Bildwechseln am Ende der Ausgabepipeline an. Diese Spalte eignet sich in der Regel am besten, um die Frames zu visualisieren, die dem Nutzer tatsächlich angezeigt wurden.
MsBetweenPresents Beschreibt das Timing der gerenderten Frames an einem früheren Punkt der Präsentationspipeline. Der Wert kann dabei helfen, die von der Anwendung ausgegebenen Frames zu untersuchen, bildet aber nicht zwangsläufig das gesamte spätere Verhalten von Treiber und Bildausgabe ab.

Wir empfehlen, zuerst "MsBetweenDisplayChange" zu untersuchen. Dieser Wert kommt dem vom Nutzer wahrgenommenen Frame-Pacing am nächsten.

Anschließend kannst du "MsBetweenPresents" zum Vergleich heranziehen. Dadurch lässt sich feststellen, ob Unregelmäßigkeiten bereits bei der Frame-Übergabe durch das Spiel sichtbar waren oder erst später in der Ausgabe zum Monitor entstanden sind.

Verläuft "MsBetweenPresents" gleichmäßig, während "MsBetweenDisplayChange" deutliche Ausschläge zeigt, wurde die Unregelmäßigkeit wahrscheinlich erst nach der Übergabe durch die Anwendung verursacht. Mögliche Einflussfaktoren sind Verzögerungen bei der GPU-Bildausgabe oder durch den Windows-Compositor, V-Sync, VRR oder gar durch DLSS Frame Generation.

Frametime-Diagramm erstellen

Ein Frametime-Diagramm kann Unterschiede sichtbar machen, die in den zusammengefassten Werten verborgen bleiben. Zwei Testläufe können beispielsweise ähnliche 1% Low FPS erreichen, obwohl einer wenige starke Ausschläge und der andere kleinere, aber deutlich häufigere Schwankungen enthält.

Grundsätzlich gilt: Je niedriger und gleichmäßiger die Frametimes verlaufen, desto besser. Große Ausschläge nach oben stehen für Frames, deren Anzeige ungewöhnlich lange gedauert hat.

Anleitung

Der zuvor verlinkte Artikel zur Analyse von Logdateien erklärt ausführlich, wie sich Diagramme aus CSV-Daten erstellen lassen. Für ein einfaches Frametime-Diagramm genügt folgende Vorgehensweise:

  1. Öffne das detaillierte Protokoll und speichere eine Arbeitskopie im XLSX-Format.
  2. Lösche alle Spalten außer "MsBetweenDisplayChange" sowie optional "MsBetweenPresents" und "TimeInSeconds".
  3. Markiere die Spalte oder Spalten, die du als Diagramm darstellen möchtest.
  4. Erstelle über das Menü "Einfügen" ein Liniendiagramm aus den Daten.

Wenn du mehrere Testläufe miteinander vergleichen möchtest, kopiere die jeweilige Spalte "MsBetweenDisplayChange" aus den anderen Protokolldateien in dasselbe Arbeitsblatt.

Benenne die Spaltenüberschriften anschließend so um, dass eindeutig erkennbar ist, aus welcher Konfiguration die jeweiligen Daten stammen beziehungsweise welche Einstellung sich zwischen den Testläufen unterschieden hat.

Die Spalte "TimeInSeconds" muss nicht zwingend in das Diagramm aufgenommen werden. Excel stellt sie andernfalls möglicherweise als zusätzliche Datenlinie dar, anstatt sie als Grundlage für die horizontale Achse zu verwenden.

Ohne "TimeInSeconds" zeigt die horizontale Achse stattdessen die fortlaufende Nummer jeden Datenpunktes an - also die nach oben zählende Anzahl an dargestellten Frames.

Beispieldiagramm

Das folgende Beispiel stammt aus einer Analyse von 2022. Damals hatten wir die Frametimes von CS:GO auf einer GeForce RTX 3080 Laptop GPU in drei grundlegend unterschiedlichen Konfigurationen verglichen:

  • MSHybrid ohne CASO
  • MSHybrid mit CASO
  • dGPU-only

Im Kern vergleichen wir damit die Frametimes bei aktiviertem und deaktiviertem NVIDIA Optimus. Siehe auch:

CASO steht für Cross Adapter Scan-Out. Diese von Microsoft vorangetriebene Treiberfunktion sollte die Leistung im MSHybrid-Betrieb verbessern und den Abstand zwischen aktiviertem und deaktiviertem NVIDIA Optimus verkleinern.

Unsere Tests zeigten damals tatsächlich bessere Frametimes und eine gleichmäßigere Bildausgabe mit aktiviertem CASO. Der diskrete Modus mit direkter Anbindung an die dGPU blieb jedoch klar überlegen.

CASO ist Bestandteil des iGPU-Treibers und nicht des NVIDIA-Treibers. Zum damaligen Zeitpunkt wurde die Funktion mit dem Intel-Grafiktreiber 30.0.101.1960 eingeführt. Das Ergebnis ohne CASO entstand mit der älteren Version 30.0.101.1340. Für alle Testläufe kam derselbe NVIDIA-Treiber in Version 512.59 zum Einsatz.

Das System lief mit maximaler Leistung und aktiviertem "Fan Boost", um mögliche thermische Limits auszuschließen. Auch die Speicherintegrität von Windows, also VBS beziehungsweise HVCI, war bewusst deaktiviert. Ziel war es, die höchstmögliche Rohleistung zu erzielen und darin die Unterschiede zwischen den drei Szenarien darzustellen.

Wir haben bewusst CS:GO als Worst-Case-Szenario gewählt. Das Spiel erreicht auf modernen Systemen extrem hohe Bildraten und reagiert daher besonders empfindlich auf Engpässe bei CPU, Treibern und Display-Pipeline.

Die durchschnittliche Bildrate betrug:

  • 470 FPS mit MSHybrid ohne CASO
  • 478 FPS mit MSHybrid inkl. CASO
  • 560 FPS im dGPU-only-Modus

CASO verbesserte die 1% Low FPS lediglich um etwa 3%. Im Liniendiagramm ist jedoch eine wesentlich deutlichere Verbesserung der Frametime-Konsistenz zu erkennen.

Testparameter:

  • CS:GO, FPS Benchmark von uLLeticaL
  • 2560 x 1440 Pixel, 165 Hz, Vollbild
  • Grafikvoreinstellung "High", AA und AF deaktiviert, Multi-Core Rendering aktiviert

Übersichtsdiagramm:

frametime-diagram-example-overview.jpg

Videovergleich:

Das Video zeigt zunächst alle drei Szenarien übereinandergelegt (wie oben im Bild) und anschließend jede Konfiguration einzeln zum Vergleich. Die einzelnen Ansichten sind hier nochmal als statische Bilder verlinkt:

Die ursprünglichen FrameView-Protokolle und die zur Erstellung des Diagramms verwendete Excel-Datei kannst du hier herunterladen:

Nutze diese Beispieldateien, um dich mit der Organisation von FrameView-Protokollen und ihrer Visualisierung in einer Tabellenkalkulation vertraut zu machen.

Frametime-Konsistenz in Zahlen ausdrücken

Ein Frametime-Diagramm zeigt visuell sehr schön, wann Schwankungen aufgetreten sind. Die Höhe der Schwankungen lassen sich aber auch in Zahlen ausdrücken: Standardabweichung (standard deviation) und Variationskoeffizient (Coefficient of variation).

Hierbei gilt die folgende Formel:

  • Variationskoeffizient = Standardabweichung / durchschnittliche Frametime

Das Ergebnis wird als Prozentwert angegeben. Ein niedrigerer Wert spricht grundsätzlich für ein gleichmäßigeres Frame-Pacing.

Für die Berechnung werden zunächst die durchschnittliche Frametime und die Standardabweichung benötigt:

Wert Bedeutung
Durchschnittliche Frametime Der arithmetische Mittelwert aller Werte in der Spalte MsBetweenDisplayChange. Er beschreibt, wie viel Zeit während der Aufzeichnung durchschnittlich zwischen zwei angezeigten Frames lag.
Standardabweichung Beschreibt, wie stark die einzelnen Frametimes um ihren Mittelwert schwanken. Eine geringere Standardabweichung bedeutet, dass die Werte enger beieinanderliegen. Ihr absoluter Wert in Millisekunden eignet sich jedoch nur eingeschränkt für den Vergleich von Testläufen mit stark unterschiedlicher durchschnittlicher Leistung.

Nehmen wir an, dein Arbeitsblatt heißt "Frametimes". In Spalte A befindet sich "TimeInSeconds", während Spalte B und alle folgenden Spalten jeweils die Werte für "MsBetweenDisplayChange" aus unterschiedlichen Testläufen enthalten.

Gehe nun folgendermaßen vor:

  • Erstelle ein neues Arbeitsblatt und nenne es "Analyse" oder "Statistik" (beliebig).
  • Baue dort die unten gezeigte Beispieltabelle nach.
  • Formatiere Zelle B4 als Prozentwert.
  • Markiere die Zellen B1 bis B6 und kopiere sie für alle weiteren Konfigurationen nach rechts. Excel passt die Spaltenverweise dabei automatisch von B auf C, D und die folgenden Spalten an.

Wir geben die Beispieltabelle hier einmal für die deutsche und einmal für englische Bedienoberfläche von Microsoft Excel wieder - da sich die Namen der Formeln an zwei Stellen (AVERAGE und STDEV.P) unterscheiden.

Englisches Excel:

Name
=Frametimes!B1
Durchschnittliche Frametime
=AVERAGE(Frametimes!B:B)
Standardabweichung
=STDEV.P(Frametimes!B:B)
Variationskoeffizient
=B3/B2
Median der Frametimes
=MEDIAN(Frametimes!B:B)

Deutsches Excel:

Name
=Frametimes!B1
Durchschnittliche Frametime
=MITTELWERT(Frametimes!B:B)
Standardabweichung
=STABW.N(Frametimes!B:B)
Variationskoeffizient
=B3/B2
Median der Frametimes
=MEDIAN(Frametimes!B:B)

Eine fertige Umsetzung dieses Ansatzes findest du ebenfalls in der oben verlinkten ZIP-Datei. Die Excel-Datei in der ZIP funktioniert mit allen Excel-Varianten, da Excel im XLSX-Dateiformat die Formeln in einer sprachunabhängigen Variante abspeichert - die unterschiedlichen Bezeichnungen der Formeln gelten nur für die manuelle Eingabe über die Bedienoberfläche.

Hinweise:

  • Einzelne Messwerter liefern noch keine vollständige Bewertung. Durchschnitt, Standardabweichung und Variationskoeffizient zeigen weder, wann eine Schwankung auftrat, noch ob mehrere langsame Frames unmittelbar aufeinanderfolgten. Werte diese Kennzahlen daher immer zusammen mit den durchschnittlichen FPS, den 1% Low FPS und dem Frametime-Diagramm aus.
  • Für einen aussagekräftigen statistischen Vergleich müssen alle Datenreihen denselben Abschnitt des Benchmarks abbilden. Beginne und beende jede Aufzeichnung möglichst an denselben Stellen.
  • Jede Tabellenzeile steht für einen einzelnen Frame und nicht für eine feste Zeitspanne. Eine schnellere Konfiguration deckt mit derselben Anzahl von Zeilen daher einen kürzeren Abschnitt des Benchmarks ab als eine langsamere.
  • Verwende nach Möglichkeit die FrameView-Funktion "Aufzeichnungsdauer". Sie beendet die Messung automatisch nach einer festgelegten Zeit. Dadurch musst du nur noch darauf achten, alle Aufzeichnungen zum gleichen Zeitpunkt zu starten.
  • Kürze die Frametime-Spalten nicht auf dieselbe Zeilenanzahl, nur damit das Diagramm übersichtlicher aussieht. Nutze stattdessen die Funktion "Daten auswählen" in den Diagrammeigenschaften, um ausschließlich den sichtbaren Diagrammbereich einzuschränken. Ein Beispiel findest du in diesem Screenshot.
  • Falls du die Daten manuell beschneiden möchtest, richte Anfang und Ende anhand von "TimeInSeconds" oder eindeutig erkennbaren Übergängen aus, etwa der Rückkehr des Benchmarks zum Menü. Andernfalls können spätere besonders anspruchsvolle oder besonders leichte Szenen in einigen Testläufen enthalten sein und in anderen fehlen. Dies würde Durchschnitt, Standardabweichung, Variationskoeffizient und Perzentilwerte verfälschen.

Weiterführende Informationen

NVIDIA-Dokumente:

  • NVIDIA-Blogbeitrag über FrameView: Der Artikel wurde ursprünglich 2020 veröffentlicht und zuletzt 2022 aktualisiert. Einige Details sind inzwischen nicht mehr auf dem neusten Stand, die grundlegenden Konzepte werden jedoch weiterhin gut erklärt.
  • FrameView-Benutzerhandbuch: Das Handbuch ist aktuell, aber sehr umfangreich. Wenn du diesen Artikel vollständig gelesen und verstanden hast, brauchst du das Handbuch für die eigentliche Nutzung von FrameView nicht mehr unbedingt.

Verwandte Artikel in unserem FAQ-Bereich: