[Sammelthread] AMD FLM / Frame Latency Meter: Ergebnisse und Diskussion

Bread

Experte
Thread Starter
Mitglied seit
17.01.2020
Beiträge
589
Ort
Niederösterreich

AMD FLM - Vorstellung​

AMD hat mit dem AMD Frame Latency Meter, aka FLM gerade ein sehr interessantes Tool released, das die Input-Latenz (auch Input-Lag genannt) misst, also wie schnell eine Mausevent durch die Toolchain auf dem Bildschirm in Bewegung umgesetzt wird.
Genauer man sagen, dass die Systemlatenz gemessen wird, mit Ausnahme der Latenz des ersten Signals der Eingabekette, der physischen Maus. Die Mauseingabe wird von FLM durch ein Mausevent in Windows simuliert (danke @garibachi für den Hinweis). Laut rtings reden wir hier bei guten Gaming Mäusen von 1-2ms absolut, laut Igor von 1-4ms Delta zwischen unterschiedlichen Mäusen (Ausreiser +12ms), und laut optimumtech von 1-7ms Delta (Ausreisser +14ms), die bei FLM keine Berücksichtigung finden.

Zielsetzung​

Mich haben aber ohnehin die optimalen Software Settings punkto Latenz und Bildqualität interessiert, die Input-Hardware sehe ich bei mir als gegeben an bin auch sehr zufrieden (G515 LightSpeed, G502 X Lightspeed). Ich habe mich im Zuge meines eigenen ersten GitHub Projektes ( "THE-RTSS Overlay" / transparentes In-Game & 2nd Screen Performance Overlay) mit den optimalen Settings für GPU & Monitor beschäftigt, im Hinblick auf Input-Latenz, Framepacing / Stuttering, Tearing etc. In dem Zusammenhang kommen stet FreeSync / G-Sync, V--Sync, und vor allem auch Frame Limiter ins Spiel. Mein Erkenntnisstand nach Recherche und Diskussionen sieht so aus:
  • Mehr FPS als Hz / Bildwiederholfrequenz bringen nichts, auch in E-Sports Shootern (dennoch gab es in CSGO offenbar Vorteile für High FPS Spieler - wieso? ...)
  • Tearing, also angezeigtes Bild ist 50/50 alt/neu, wird durch FreeSync oder G-Sync adressiert, aber nicht zur Gänze, deshalb
    • V-Sync zusätzlich
    • Und wegen V-Sync auch FPS Limiter, weil jenseits der V-Sync range = Monitor Hz / refresh rate die Eingabelatenz steigt
Daraus ergeben sich folgende Empfehlungen für VRR = FreeSync & G-Sync Monitore
  • G-Sync / FreeSync ON in GPU driver. If not available, check in your monitor OSD
  • V-Sync ON in GPU driver
  • Frame Limiter ON and set to 2-7 FPS less than Hz= your monitors refresh rate in Hz, so eg. 144 Hz = 137 FPS frame limit
    • In-game FPS limiters perform best with regards to input latency
    • RTSS frame limiter performs almost as good as in-game
    • GPU driver FPS limiters perform worst
Quelle & Hintergründe, und auch Infos für Non-VRR Monitore findet ihr gesammelt auf meiner THE-RTSS Overlay Seite.

Ziel ist also, diese Thesen zu prüfen und ggf. bestätigen durch eigene Messungen.

Testsystem​

Habe das Ganze dann durchgemessen. Testsystem:

Testvorgehen und AMD FLM Settings​

Das ist wichtig, weil im einen oder andern Youtube Video vor allem das wichtige Detail "vertikale Kontrastlinie" nicht beachtet wird.
Ihr könnt diesen Teil überspringen, indem ihr mein flm.ini Settings File nutzt, das ich euch unten angehängt habe.

Zunächst starten wir FLM als Administrator, und klicken dann im Fenster mit der rechten Maustaste.
Dann klicken wir auf Continously accumulated measurement , damit wird jede Messreihe in einer Zeile zusammengefasst.
  • Wer mehr Details sehen will, macht Run latency measurement using small samples , das habe ich in meinen Screenshots unten gemacht.
Dann wir die Set Capture Region gesetzt. AMD empfiehlt hier vor allem 2 Dinge:
  • Sie klein zu halten laut User Guide: It is recommended that small capture regions be used, as larger areas require more processing time to determine a change in consecutive captured frames
  • Die Spielszene für die Messung so zu wählen, dass es in der Capture Region eine vertikale Bruchlinie mit möglichst viel Kontrast, dh hell / dunkel Übergang gibt. FLM erzeugt horizontale Mausbewegungen, und dieser Kontrast hilft, die Bildbewegung besser zu erfassen. Aus dem User Guide:
    • Adjust the game scene placement so that the FLM capture region is situated in an area where the scene transitions from dark to bright when the mouse is moved horizontally.
    • To make sure FLM detects the image change, it is recommended to put the capture region next to a contrast vertical edge.
Ich habe einfach im .ini File das Bild die Capture Region mittig gesetzt und auf eine dynamische Größe von jeweils 10% der vertikalen und horizontalen Bildgröße gesetzt, dh. das Setting funktioniert auch mit anderen Auflösungen. So sieht das im .ini File aus:
Code:
; The settings for StartX,StartY,CaptureWidth and CaptureHeight can be normalized values or screen pixel values

; Sets the bounding box capture region of a frame, The start position, width and height are normalized screen coordinates
StartX = 0.450000

; Users can optionally use pixel coordinates from 0 to 4K as a replacement for normalized coordinates
; Fraction of the image height (1.0 == 100%)
StartY = 0.450000

; Fraction of the image width (1.0 == 100%)
; Example if display width is 1920 pixels, then capture region width = 1920*0.75 = 1440 pixels
CaptureWidth = 0.100000

; Fraction of the image height (1.0 == 100%)
; Example if display height is 1080 pixels, then capture region height = 1080*0.0149 = 16 pixels
CaptureHeight = 0.100000

Abschließend speichert ihr eure getätigten Einstellungen in Save settings to INI .

Anschaulich seht ihr das hier:

1722757667472.png


Nun gilt es noch, eine geeignete Spielszene zu wählen. Ich habe mich für Overwatch 2 entschieden, weil Latenz im Competitive Gaming sehr relevant ist, das Spiel kostenlos ist, und ich es gern spiele ;)
Ich habe einfach in der Training Range die Türkante mittig positioniert, so dass diese von FLM erfasst wird:

1722759982337.png


Hier der von FLM erzeugte captured frame (mit RSHIFT+ENTER zur Kontrolle), sieht nach gutem Kontrast aus:

1722759148246.png

Messungen​

Ich habe eine AMD GPU, die den AMF Codec unterstützt, dadurch kann ich auch im Full Screen Mode messen, den ich auch in der Praxis nutze. Mit nVidia oder Intel GPUs muss man den DXGI Codec im Fenstermodus nutzen.

Wir starten also das Spiel, wählen eine Szene mit vertikaler Kontrastlinie wie oben beschrieben, und starten die Messungen. Das machen wir einfach jeweils mit ALT+T .

V-SYNC ON vs OFF
1722174280362.png
1722171080398.png

In-Game Frame Limiter 137 vs 142 vs 144 FPS mit 144Hz Monitor
1722170166946.png
1722171920617.png
1722171656660.png

RTSS Frame Limiter im Vergleich
1722170399252.png

AMD Chill Frame Limiter im Vergleich
1722169978297.png

Jetzt noch alternativ mit AMD Enhanced Sync mit In-Game FL:
1722185220561.png
1722185437191.png
Die Einbrüche in der Framerate lassen sich zB mit meinem THE-RTSS Overlay ;) gut beobachten.

1722170051997.png

1722170086043.png

1722170107859.png

1722170739009.png
Sehr interessant auch
1722170144544.png
Wie gesagt, alles im Window Mode.

Fazit​


Also für meine AMD RX 6900 XT bedeutet das:
  • Best: FreeSync [ON] + V-SYNC [ON] + Frame Limit = max Hz - (3 bis 7) (zB 144Hz --> 137 FPS) ist die optimale Einstellung, wie auch schon von BlurBusters postuliert ;)
  • In-Game Frame Limit performed tatsächlich am besten, alles andere hat 50% - 100% mehr Input Latenz
  • RTSS & AMD Chill FPS Limit im Treiber funktionieren in etwa gleich gut, aber etwa 50% schlechter als In-Game
  • V-SYNC ON ohne Frame Limit (also V-SYNC ON, Frame Limit OFF, bedeutet Hz = max FPS) ist mit Abstand am schlechtesten, ca 100% mehr Latenz als mit In-Game FPS Limit
  • V-SYNC ON mit In-Game Frame Limit = Monitor Hz funktioniert tatsächlich deutlich schlechter als Frame Limit = Monitor Hz - (2 bis 7), also zB 144Hz = 142-137 FPS max. 137 scheint etwas konstantere Ergebnisse zu liefern als 142, was zu nah am "Hz-Limit" ist - bitte gerne eurerseits auch nachmessen und verifizieren.
  • V-SYNC OFF führt zu deutlich sichtbarem Screen Tearing trotz FreeSync ON
  • Enhanced Sync bringt wie versprochen deutlich bessere Latenz für FPS jenseits der max Hz = Bildwiederholfrequenz des Monitors, aber auch das "Stuttering" lässt sich beobachten, sowohl mit freiem Auge an der Gleichmäßigkeit des von FLM simulierten Bilds mit schnellen Maus-Movements, als auch zeitgleich an der Framerate im RTSS Overlay
Q.E.D. ;) Hoffe das ist auch für euch interessant, und bin gespannt auf eure Messungen.
 

Anhänge

  • flm.ini.zip
    3,8 KB · Aufrufe: 43
Zuletzt bearbeitet:
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Einen Bug hab ich auch schon reported:

AMD FLM does not react any more after trying to close the right-click settings window
1722193981046.png


Hat das auch von euch jemand?

Edit: Lösung: das Fenster nicht über "Close" schließen, sondern wieder mit der rechten Maustaste.
 
Zuletzt bearbeitet:
Dies ist auf jeden Fall nützlich, um die Systemlatenz zu prüfen, hilft aber Leuten nicht, die die Latenz von Mauseingaben testen.

Es vergleicht im Wesentlichen, wie lange es von einem zum anderen dauert, bis eine simulierte Mausbewegung den Bildschirm bewegt https://xender.vip/.
 
Zuletzt bearbeitet:
Ja, ganz genau - die Input-Latenz, auch Input-Lag, der Maus. Also wie schnell wird eine Mausbewegungevent auf dem Bildschirm umgesetzt.

Verstehe Deinen Punkt nicht, was genau messen die Leute, denen das nicht hilft? Geht es Dir darum, dass die simulierte Mausbewegung über ein Mouse Event in Windows generiert wird, und nicht von der "echten Maus" kommt, dh dass der erste Teil der Toolchain über USB oder Wireless fehlt? Ich denke das ist ziemlich vernachlässigbar, aber genau wissen tu ich es nicht.

Edit: jetzt weiss ich es genau ;) Wie Du sagst wird die Systemlatenz gemessen, mit Ausnahme der Latenz des ersten Signals der Eingabekette, der physischen Maus. Die Mauseingabe wird von FLM durch ein Mausevent in Windows simuliert. Laut rtings reden wir hier bei guten Gaming Mäusen von 1-2ms absolut, laut Igor von 1-4ms Delta zwischen unterschiedlichen Mäusen (Ausreiser +12ms), und laut optimumtech von 1-7ms Delta (Ausreisser +14ms), die bei FLM keine Berücksichtigung finden.
 
Zuletzt bearbeitet:
Starke Arbeit, wie mans von dir gewohnt ist.
Die Informationsdichte liegt irgendwo zwischen Blei und Gold, also nichts, was ich morgens im Bett schon verdauen könnte :-)
 
Dies ist auf jeden Fall nützlich, um die Systemlatenz zu prüfen, hilft aber Leuten nicht, die die Latenz von Mauseingaben testen.

Es vergleicht im Wesentlichen, wie lange es von einem zum anderen dauert, bis eine simulierte Mausbewegung den Bildschirm bewegt.
Danke für den Hinweis, hab das jetzt auch oben ergänzt. Wie Du sagst wird die Systemlatenz gemessen, mit Ausnahme der Latenz des ersten Signals der Eingabekette, der physischen Maus. Die Mauseingabe wird von FLM durch ein Mausevent in Windows simuliert. Laut rtings reden wir hier bei guten Gaming Mäusen von 1-2ms absolut, laut Igor von 1-4ms Delta zwischen unterschiedlichen Mäusen (Ausreiser +12ms), und laut optimumtech von 1-7ms Delta (Ausreisser +14ms), die bei FLM keine Berücksichtigung finden.
 
Zuletzt bearbeitet:
Hi Bread!

Bei einem 120Hz Monitor mit V-Sync On dann auch 118 FPS das Framerate-Limit?
Was, wenn das Game aber keine Framerate-Limiter hat.

Ist dann V-Sync mit 120hz das dann der Monitor ja "setzt" nicht besser als RTSS als Limiter?
Beides ist ja fast gleich "schlecht", was hier tun das es besser ist?

Gruß
Mehlstaub
 
Hey Mehlstaub, ganz genau, bzw bei 120Hz dann eher 114 FPS Cap (~95%).

Wenn das Game keinen FPS-Limiter hat, greift das VSYNC Limit, aber das kommt mit der höchsten von mir getesteten Latenz. Am zweitschlechtesten ist VSYNC ON mit FPS-Limit = Hz, also in Deinem Beispiel 120Hz = 120FPS = schlecht :)

Hier ist eben nicht beides gleich schlecht, das trifft nur auf RTSS vs GPU-Treiber zu. siehe was ich im Fazit geschrieben habe:
  • RTSS & AMD Chill FPS Limit im Treiber funktionieren in etwa gleich gut, aber etwa 50% schlechter als In-Game
  • V-SYNC ON ohne Frame Limit (also V-SYNC ON, Frame Limit OFF, bedeutet Hz = max FPS) ist mit Abstand am schlechtesten, ca 100% mehr Latenz als mit In-Game FPS Limit

1725781585622.png
 
Hi!

Ok, dann setzte ich ab sofort mit RTSS ein Framelimit,
da man hier noch Antilag nutzen kann,
was ja bei Radeon Chill nicht geht.
 
Ich danke dir @Bread, super Musterbeispiele und Aufbereitung.
Natürlich kennt man als Gamer: V-SYNC [OFF], InGame > RTSS/Tool,.. doch fand ich es leiwand.. (wie immer!) viel Liebe zum Detail! (Neuer Aspekt für mich: Enhanced Sync )
 
Danke Dir für das Feedback! Zur Sicherheit: meine Erkenntnis ist dass V-Sync ON das Beste ist, in Kombi mit FreeSync und FPS Limit < Hz. Früher "sagten ja viele" V-Sync muss aus, aber durch die beiden anderen ergibt das jetzt absolut Sinn.
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh