Warum Tastendrücke im Spiel zu spät kommen

Die Verzögerung zwischen dem schließenden Schalter und der Reaktion des Spiels besteht aus sechs Stufen, und nur zwei davon sind Software. Welche du verkürzen kannst, welche nicht, und wie du sie auf deiner eigenen Maschine auseinanderhältst.

Der größte Teil der Verzögerung zwischen deinem Finger und dem Spiel steckt in der Tastatur, nicht in Windows. Ein Tastendruck durchläuft sechs Stufen, bevor sich ein Pixel ändert, und Software kann genau zwei davon verkürzen. Wenn du hergekommen bist, um einen Registry-Wert zu finden, der die Tastaturverzögerung beseitigt, lautet die ehrliche Antwort: Diesen Wert gibt es nicht — aber drei der sechs Stufen können echte, überprüfbare Fehler haben, und die sind zwanzig Minuten wert.

Diese Seite teilt den Weg auf, benennt zu jedem Stück den Besitzer und sagt klar, welche Teile außer Reichweite liegen.

Der Weg, den ein Tastendruck wirklich nimmt

StufeWem sie gehörtKann Software sie verkürzen?
1. Der Schalter schließt; der Controller der Tastatur tastet seine Matrix ab und entprellt den KontaktTastatur-FirmwareNein
2. Die Tastatur stellt an ihrem USB-Interrupt-Endpunkt einen Report bereit, in dem Intervall, das ihre Firmware angefordert hatTastatur-FirmwareNein
3. Der Host-Controller holt den Report ab; kbdhid.sys und kbdclass.sys reichen ihn nach obenWindows + ChipsatztreiberNur, indem ein blockierender Treiber entfernt wird
4. Der Report passiert jeden Filtertreiber und jeden Low-Level-Hook, der im Eingabepfad sitztTastatur-Suite, Makro-Ebene, OverlayJa
5. Das Spiel liest die Eingabe — in den meisten Engines einmal pro FrameDas SpielIndirekt, über eine höhere Bildrate
6. Das Frame wird gerendert, dargestellt, ausgegeben und leuchtetGPU, Windows, MonitorTeilweise — siehe Die Latenz, die keine Software behebt

Stufe 1 — der Teil, den niemand anfassen kann

Eine Tastatur sendet kein Signal, wenn ein Schalter schließt. Ihr eigener Controller tastet die Tastenmatrix in einer Schleife ab, und wenn er einen Kontakt sieht, wartet er das Prellen ab, bevor er die Taste als gedrückt meldet. Diese Wartezeit ist eine Konstante der Firmware. Sie ist für Windows nicht sichtbar, kein Treiber kann sie lesen, und kein Registry-Wert irgendwo auf deiner Maschine ändert sie.

Deshalb können sich zwei Tastaturen am selben PC unterschiedlich anfühlen, obwohl jede andere Variable identisch ist — und deshalb ist „Tastaturverzögerung“ so oft eine Hardware-Antwort im Software-Kostüm.

Stufe 2 — das Polling-Intervall legt die Tastatur fest, und zwar schriftlich

USB-Geräte, die Eingaben senden, tun das über einen Interrupt-Endpunkt, und der Endpunkt-Deskriptor trägt ein Feld namens bInterval, das festhält, wie oft der Host nachfragen soll. Microsofts eigene Referenz zu dieser Struktur ist unmissverständlich: "This value reflects the device's configuration in firmware. Drivers cannot change it."

Dieselbe Seite liefert auch die Umrechnung. Auf einem Full-Speed-Gerät bedeutet ein bInterval von 1 eine Abfrageperiode von einem 1-Millisekunden-Frame — die 1000 Hz, mit denen Tastaturen werben. Auf einem High-Speed-Gerät wird die Periode in Mikroframes gezählt, acht pro Millisekunde, nach der Formel Period = 2 ** (bInterval - 1).

Daraus folgen zwei Dinge, und es sind die nützlichsten Sätze auf dieser Seite:

Manche Tastaturen werden in einem Kompatibilitätsmodus ausgeliefert — oft als "boot protocol" bezeichnet oder an einen Schalter für 6-Key-Rollover gekoppelt —, der auch die Polling-Rate senkt. Sieh ins Handbuch der Tastatur oder in ihre Konfigurationssoftware, bevor du entscheidest, dass Windows langsam ist.

Die zwei Einstellungen, die Leute ändern und die das nicht tun

Beide tauchen in jeder Liste zum Thema „Tastaturverzögerung beheben“ auf. Keine von beiden verkürzt den Weg vom Tastendruck zum Spiel, und wir sagen das lieber, als dir ein Placebo zu verkaufen.

Verzögerung und Rate der Tastenwiederholung. KeyboardDelay und KeyboardSpeed unter HKCU\Control Panel\Keyboard regeln, was passiert, während du eine Taste gedrückt hältst: wie lange es dauert, bis das Zeichen anfängt sich zu wiederholen, und wie schnell es sich danach wiederholt. Der erste Tastendruck ist davon überhaupt nicht betroffen. w0a kann die Verzögerung auf die kürzeste Stufe setzen, und die Beschreibung im Produkt sagt selbst, was dir das bringt — eine schnellere Konsole, ein schnelleres Chatfenster und schnellere Menüs, keinen schnelleren Schuss. Hat ein früheres Tool hier krumme Werte hinterlassen, setzt die Karte Tastenwiederholrate und Verzögerung die Windows-Standardwerte zurück.

Größe der Tastatur-Datenwarteschlange. KeyboardDataQueueSize legt fest, wie viele Reports der Klassentreiber halten kann, wenn der Thread, der sie abholt, kurz hängt. Eine größere Warteschlange bedeutet weniger verlorene Reports während eines solchen Hängers. Sie lässt keinen einzigen Report früher ankommen, und das Produkt sagt das in seiner eigenen Oberfläche und nicht in einer Fußnote. Eingabewarteschlangen erklärt, was dieser Wert ist und wie du ihn zurücksetzt.

Wenn dir irgendeine Seite erzählt, eine größere Warteschlange senke die Eingabelatenz, weißt du jetzt genug, um ihr nicht zu glauben. Eine Warteschlange ist ein Puffer gegen Verluste, keine Abkürzung.

Stufe 4 — die eine Stufe, die wirklich dir gehört

Hier sitzt auf einer normalen Maschine die echte, messbare Tastaturverzögerung — und es ist die Stufe, die fast niemand prüft.

Alles, was deine Tastendrücke vor dem Spiel sehen will, setzt sich in den Eingabepfad: Hersteller-Suiten mit Makro-Engines, Beleuchtungsdienste, die pro Taste auf das Tippen reagieren, Streaming- und Chat-Overlays, Bildschirmrekorder, Remapping-Programme, Hilfsprogramme für Barrierefreiheit. Jedes davon ist eine Station, und eine Station, die beschäftigt ist oder hängt, hält den ganzen Pfad auf.

Windows hat für genau diesen Fall eine Zeitgrenze. Antwortet ein Low-Level-Hook nicht innerhalb von LowLevelHooksTimeout Millisekunden, überspringt Windows ihn und macht weiter; Windows 10 ab 1709 nutzt höchstens 1000 ms, egal wie groß der Wert ist. Wie lange Windows wartet, wenn der Wert nicht gesetzt ist, ist nicht dokumentiert, und wir haben es nicht gemessen. Die Seite Regedit-Tweaks in w0a hat einen Eintrag, der diese Wartezeit auf 1000 ms setzt, indem er LowLevelHooksTimeout unter HKCU\Control Panel\Desktop schreibt.

Lies das ehrlich: Die Zeitgrenze zu kappen macht einen gesunden Hook nicht schneller. Es verkürzt das Einfrieren, wenn ein Hook bereits kaputt ist. Das ist es wert — eine Latenzsenkung ist es nicht.

Was du tatsächlich tun solltest, der Reihe nach:

  1. Schließ die Software der Tastatur vollständig — nicht in den Infobereich minimieren. Beende sie, dann spiel eine Runde.
  2. Schließ die Overlays einzeln: das Overlay der Spieleplattform, das des Voice-Chats, die Aufnahmesoftware, das Overlay des Grafikkartenherstellers.
  3. Ändert sich das Gefühl, hast du deine Antwort — und kannst entscheiden, welche Funktion dir welche Verzögerung wert ist.
  4. Ändert sich nichts, hör hier auf zu suchen. Geh weiter zu Stufe 3.

Stufe 3 — ein Treiber, der den Kern blockiert, den die Tastatur braucht

Ein Tastatur-Report kommt als Interrupt an. Sitzt irgendein anderer Treiber gerade in einem Interrupt oder einem verzögerten Aufruf auf diesem Prozessorkern, wartet dein Tastendruck — und er wartet oberhalb jeder Thread-Priorität im System, taucht also in keinem Frametime-Diagramm und in keinem Task-Manager auf.

Das ist messbar, und es ist der eine Teil des Weges, für den sich auf deiner eigenen Maschine eine Zahl nennen lässt:

  1. Öffne in w0a den Latenztest.
  2. Starte die Messung und beweg die Maus die vollen 12 Sekunden lang weiter — die Maus ist der Verkehr, mit dem der Test den Eingabepfad abtastet.
  3. Lies den Wert Längste Treiberunterbrechung und die Treiberliste darunter, die nach der längsten Haltezeit sortiert ist und die Datei benennt.
  4. Alles ab 1 ms verdrängt Reports. Alles ab 4 ms ist das, was du vor allem anderen beheben solltest.

Bei einem Treiber, der einen Kern hält, probierst du als Erstes, genau diesen Treiber beim Hardware-Hersteller zu aktualisieren. Den Latenztest lesen erklärt die Farben und — nützlicher noch — was die Zahl bewusst weglässt.

Stufe 5 — das Spiel liest die Eingabe nach seinem eigenen Takt

In den meisten Engines tastet das Spiel die Eingabe einmal pro Frame ab. Ein Spiel mit 60 FPS sieht alle 16,7 ms auf deine Tastatur; mit 240 FPS alle 4,2 ms. Das ist Rechnen und keine Messung, und keine Engine veröffentlicht ihr genaues Eingabe-Timing — nimm es also als Mechanismus und nicht als Zahl für einen bestimmten Titel.

Die praktische Folge: Eine niedrige Bildrate anzuheben verkürzt die Wartezeit auf dieser Stufe — und bei 40 FPS ist nicht die Tastatur das, was dich begrenzt. Ist deine Bildrate eher unstet als niedrig, ist Wonach der Ruckler-Scan sucht die richtige Seite dafür.

Was übrig bleibt, und was du dagegen tun kannst

Die Fix-Seite: eine Reparaturkarte pro Sache, die sich ändern lässt, jede stellt den Windows-Standard wieder her.
Die Fix-Seite: eine Reparaturkarte pro Sache, die sich ändern lässt, jede stellt den Windows-Standard wieder her.

Eine kurze, umkehrbare Checkliste. Jeder dieser Punkte lässt sich rückgängig machen, und die Punkte, die unten auf eine Fix-Karte verweisen, schreiben den Windows-Standard zurück, ganz gleich, welches Tool die Änderung gemacht hat.

  1. Steck die Tastatur in einen Anschluss am Rechner selbst, nicht in einen Monitor-Hub, einen Hub ohne eigene Stromversorgung oder einen KVM-Switch. Jedes davon ist ein weiterer Controller zwischen Gerät und Host.
  2. Sieh nach, was der Anschluss tatsächlich tut. Die Seite USB-Anschlüsse in w0a listet jedes Gerät mit dem Polling-Intervall auf, das seine Firmware angefordert hat, daneben die aus echter Eingabe gemessene Polling-Rate. Ein Gerät, das 1 ms anfordert und weit weniger liefert, hat ein Problem mit der Verbindung oder mit einem Treiber, kein Tastaturproblem.
  3. Nimm alte Eingabe-Tweaks zurück. Maus, Tastatur und Touchpad und Eingabewarteschlangen stellen die Windows-Standardwerte wieder her, wenn ein älteres Tool sie geändert hat.
  4. Halte die USB-Energieverwaltung davon ab, den Anschluss schlafen zu legen, wenn deine Tastatur beim ersten Druck nach einer Pause träge ist. Energieeinstellungen der USB-Anschlüsse ist diese Karte.
  5. Miss, dann entscheide. Führ den Latenztest vor und nach jeder Änderung aus. Eine Änderung, die du in keiner Messung siehst, ist eine Änderung, die du zurücknehmen solltest.

Was Software hier nicht kann

Was sie kann: einen hängenden Hook aus dem Weg räumen, einen Treiber sichtbar machen, der einen Kern hält, und verhindern, dass ein Anschluss einschläft. Auf einer gesunden Maschine ergibt das zusammen weniger, als die Leute hoffen; auf einer kranken ist es der ganze Unterschied. Messen ist der Weg herauszufinden, welche von beiden du hast.

Verwandt

Von den rund zwölf Stufen zwischen einem Klick und einem geänderten Pixel gehören der Software drei, der Rest gehört Firmware, Anzeige und Spiel: Input Lag verringern: was Software verkürzen kann und was nicht

w0a ändert keine Windows-Einstellung, bevor du es verlangst, und ein Tweak sichert den alten Wert, bevor er einen neuen schreibt. Erinnere mich

Hat diese Seite geholfen?

Was hat gefehlt, oder was hat nicht funktioniert? Wir lesen jede einzelne Rückmeldung.

Wenn diese Seite das Problem nicht gelöst hat, schreib uns — nenne den Artikel, den du gelesen hast, und wir bessern ihn nach.