Werden die Status-leds von Tastaturen exakt im Moment des Tastendrucks angesprochen und wenn nicht, warum?

Suspektan

Commander
Registriert
März 2021
Beiträge
2.739
Werden die Status-leds von Tastaturen exakt im Moment des Tastendrucks angesprochen und wenn nicht, warum?

Hintergrund:

Wollte mal den inputlag von retroarch sowohl unter windows als auch android "messen" und habe in meiner Naivität den Zeitpunkt des Aufleuchtens der Statusled (signalisiert z.B. Capslock) als verlässliche Basis für den initialen Tastendruck angenommen.

In retroarch kann man sich ein Controllerlayout und den jeweiligen Tastendruck anzeigen lassen und natürlich die gewünschte Aktion z.B. auf die Capslock-Taste legen, dann filmt man das Ganze mit 240fps und spielt Frame by Frame ab. (Man kann sich zstzl. auch die gezählten ~60hz/ 16.66ms Frames von retroarch anzeigen lassen, aber nur in 1er Schritten)


Näheres:
Zmdst. unter windows sind die Ergebnisse relativ konsistent, selbst wenn die led verzögert ausgelöst wird, wird man sich doch hoffentlich einig sein, dass sie niemals VOR dem Tastendruck aufleuchten kann. NiE!
Natürlich addiert sich auch noch zwangsweise ein displaylag, bei notebooks kaum zu abstrahieren, bei android smartphones ebenso wenig, aber in der Realität entscheidet das Gesamtergebnis.

Und ja, ich kenne LDAT, nützt mir hier aber wenig, da ich eigtl. den input lag des 8bitdo Controllers sn30 + den von retroarch in Zusammenspiel mit android testen will.
Ist aber nur bedingt möglich, da dessen led nur bei niedrigen Akkustand auf Tastendruck reagiert und ansonsten nur Verbindungsstatus, Pairing-Mode, Ladestatus signalisiert.
OB der Controller bei niedrigem Akkustand ungünstig die Pollingrate reduziert, wäre da erstmal zu klären.

Ich habe sowohl das "nackte" retroarch ohne geladenen Core, als auch mit auf dem notebook geprüft, run-ahead ließ ich bisher unangetastet.
Interne wie externe Tastatur ergeben schon einige (60hz) Frames Verzögerung, Controller noch weitere.

Unter android löst merkwürdigerweise die Tastatur-Led nicht bei Kontakt, sondern mit dem Loslassen der Taste aus, strange, kennt vielleicht jemand den Grund?

Es wäre natürlich nicht undenkbar, dass retroarch den Tastendruck auch unnötig verzögert, statt frûhestmöglich abbildet, dagegen spricht aber die nachträgliche, recht konsistente Verzögerung zwischen angezeigtem Tastendruck und Reaktion der Spielfigur im jeweiligen Emulator.
Also Lag zwischen angenommenem Befehl und ausgelöster bzw. dargestellter Aktion, welchen man übrigens praktischerweise direkt in retroarch frame by frame überprüfen kann.

Bitte keine Diskussion über gefühlten Inputlag, mich interessieren hier nur Zahlen und Messungen, und zwar in Abhängigkeit von dem von mir genutzten System, nicht dem anderer.
Zur Zeit sind das galaxy s7 ( exynos, android 8) und s10 (snapdragon, android 11), naja und win 8.1, aber das hab ich jetzt nur zu Vergleichszwecken herangezogen.

8bitdo sn30 hat aktuellste firmware
Android soll ja latenztechnisch eh der letzte Müll sein, windows auch nicht optimal, ansonsten muss ich wohl mal unter linux/ batocera/ lakka testen.
 
Großschreib- und Numtaste werden vom Betriebssystem gesteuert und nicht direkt von der Tastatur. Es kommt drauf an wie das ganze Programmiert es. Beim erkennen des Signals oder beim verschwinden des Signals.
Ein gutes erkennungsmerkmal ob PC noch reagiert...
 
  • Gefällt mir
Reaktionen: H3llF15H
Was bedeutet das tendenziell für die Auslöseverzögerung?
Eine Abfrage des pcs findet über das usb Polling doch eh immer statt, richtig?
Also kommunizieren pc und Peripherie in gewisser Weise doch ohnehin immer, oder muss hier windows zstzl. einen Bestätigungsbefehl an die Tastatur zurückgeben und verzögert so die Aktion?
 
alleine der USB-Controller erzeugt schon input lags.
Die input Verzögerung war zwischen PS2 Tastatur/Maus geringer als heute bei USB-Tastatur/-Maus
Fortschritt ist manchmal auch Rückschritt
Auch ist der Lag zwischen analog und digital Monitor größer. Die Hersteller versuchen das mit immer höheren Hz zahlen mehr schlecht als recht wieder zu verbessern.
Ein 60 oder 75 Hz analog Monitor war irgendwie angenehmer als ein 60 Hz Flachbild Monitor
 
Mir ist schon klar, das im System eine ganze Reihe von verarbeitenden Prozessen beteiligt ist, aber welchen Unterschied machen denn die Aktionstasten wie capslock für den Inputlag im Speziellen?

Wenn ich von irgendwelchen lags der Tastaturen/ controller im angeblich einstelligen ms Bereich lese, aber mehrere Frames zähle, muss ich mich schon nach der Bedeutung für die Praxis fragen.
Selbst tvs im Gamemode zeigen heute oft unter 20ms inputlag, auch knapp 10 sind möglich, da sind mehrere Frames doch recht fragwürdig.
Wie die interne Tastatur an das nb angebunden ist, weiß ich allerdings nicht.
 
in spielen werden oft Frames im voraus berechnet. Bis dann dein Tasten oder Mausklick ankommt dauert es halt ein paar Frames bis das angezeigt wird.
 
kommt drauf an.

eine ps/2 tastatur hängt an einem interrupt. nun, ist ja eine abart der seriellen.
das ist zeitlich sehr exakt, oder besser: so exakt, wie es mit pc technik halt geht, was erstaunlich fein ist.

/edit: und der "interrupt" heisst ned umsonst so. es bedeutet, wurscht was die cpu tut, es "unterbricht", und der event am interrupt wird abgearbeitet. echtzeitiger gehts ned.

usb basiertes hängt am softwareseitigen usb-polling.
alles, was auf usb hängt, kannst punkto echtzeitigkeit vergessen, was aber ned grad neu ist....
 
Zuletzt bearbeitet:
wern001 schrieb:
n spielen werden oft Frames im voraus berechnet. Bis dann dein Tasten oder Mausklick ankommt dauert es halt ein paar Frames bis das angezeigt wird.
Ich meine ja noch gar nicht im Spiel, somdern nur die reine Anzeige des Tastendrucks auf dem virtuellen Controllerlayout, also Registrierung des Befehls alleine benötigt schon mehrere Frames.
Der reine Emulator+ Gamelag bis zur Darstellung der Aktion ist separat zu betrachten und addiert sich noch hinzu.
 
wer viel misst misst viel mist
 
Zmdst. erhalte ich unter windows konsistente Ergebnisse, absolut sagen sie undank der ungeklärten Synchronizität von led und Tastendruck natürlich nichts aus, relativ scheinbar schon.
Wenig messen ist erst Recht Mist, nicht umsonst stellt man zur Prüfung auf Konsistenz Messreihen auf.
Sollte die led erst nach Tastendruck ausgelöst werden, fiele der reale Lag sogar noch höher aus und der gemessene stellt nur eine mögliche untere Grenze dar.
GANZ anders verhält es sich aber, wenn die led VOR dem Capslock-Befehl an windows aufleuchten sollte, erscheint mir iwie unwahrscheinlich, aber wer weiß schon wie windows/ android intern den Capslock- Befehl verarbeitet.


Den Emulator+ Gamelag braucht man nicht aufwendig messen, da retroarch die Controllereingaben virtuell anzeigt und man frame für frame bis zur ausgeführten Aktion direkt durchgehen kann, ist auch bekannt und nicht das Problem.
 
Zurück
Oben