La maggior parte del ritardo fra il tuo dito e il gioco sta nella tastiera, non in Windows. Una pressione attraversa sei fasi prima che un pixel cambi, e il software ne può accorciare esattamente due. Se sei arrivato qui per trovare un valore di registro che elimina il ritardo della tastiera, la risposta onesta è che un valore del genere non esiste — ma tre delle sei fasi hanno guasti veri e verificabili, e quelli valgono venti minuti.
Questa pagina divide il percorso, dice di chi è ogni pezzo e dichiara apertamente quali parti sono fuori portata.
Il percorso che una pressione compie davvero
| Fase | Di chi è | Il software può accorciarla? |
|---|---|---|
| 1. Lo switch si chiude; il controller della tastiera scandisce la sua matrice e filtra il rimbalzo del contatto | Firmware della tastiera | No |
| 2. La tastiera mette un report a disposizione sul suo endpoint di interrupt USB, all'intervallo che il suo firmware ha chiesto | Firmware della tastiera | No |
3. Il controller host raccoglie il report; kbdhid.sys e kbdclass.sys lo passano verso l'alto | Windows + driver del chipset | Solo togliendo un driver che si sta inceppando |
| 4. Il report attraversa gli eventuali driver filtro e gli hook di basso livello che stanno nel percorso dell'input | Suite della tastiera, livello macro, overlay | Sì |
| 5. Il gioco legge l'input — nella maggior parte dei motori, una volta per frame | Il gioco | Indirettamente, alzando il frame rate |
| 6. Il frame viene renderizzato, presentato, scansionato e acceso | GPU, Windows, monitor | In parte — vedi La latenza che nessun software può risolvere |
Fase 1 — la parte che nessuno può toccare
Una tastiera non manda un segnale nel momento in cui uno switch si chiude. Il suo controller passa in rassegna la matrice dei tasti in un ciclo continuo e, quando vede un contatto, aspetta che il rimbalzo finisca prima di dichiarare il tasto premuto. Quell'attesa è una costante del firmware. Non è esposta a Windows, nessun driver può leggerla, e nessun valore di registro da nessuna parte sulla tua macchina la cambia.
È per questo che due tastiere sullo stesso PC possono dare sensazioni diverse con ogni altra variabile identica, ed è per questo che il "ritardo della tastiera" è così spesso una risposta hardware travestita da software.
Fase 2 — l'intervallo di polling lo decide la tastiera, per iscritto
I dispositivi USB che mandano input lo fanno su un endpoint di interrupt, e il descrittore dell'endpoint porta un campo chiamato bInterval che dichiara ogni quanto l'host deve interrogarlo. Il riferimento di Microsoft su quella struttura non lascia margini: "This value reflects the device's configuration in firmware. Drivers cannot change it."
La stessa pagina dà la conversione. Su un dispositivo full-speed, bInterval uguale a 1 significa un periodo di polling di un frame da 1 millisecondo — i 1000 Hz che le tastiere mettono sulla scatola. Su un dispositivo high-speed il periodo si conta in microframe, otto per millisecondo, con la formula Period = 2 ** (bInterval - 1).
Ne discendono due cose, e sono le frasi più utili di questa pagina:
- Una tastiera che riporta a 125 Hz sta chiedendo di essere interrogata ogni 8 ms. Niente in Windows può farla riportare più in fretta. Se quel numero ti interessa, è una decisione di firmware o di acquisto.
- Se la tua tastiera ha un interruttore o un programma di configurazione che imposta la sua frequenza di report, quel programma sta scrivendo configurazione nel firmware. È l'unica strada.
Alcune tastiere escono di fabbrica in una modalità di compatibilità (spesso etichettata "boot protocol", oppure legata a un interruttore di rollover a 6 tasti) che abbassa anche la frequenza di report. Controlla il manuale della tastiera stessa o il suo software di configurazione prima di concludere che sia Windows a essere lento.
Le due impostazioni che tutti cambiano e che non fanno questo
Compaiono entrambe in ogni elenco di "come togliere il lag della tastiera". Nessuna delle due accorcia il percorso da una pressione al gioco, e preferiamo dirlo piuttosto che venderti un placebo.
Ritardo e velocità di ripetizione dei tasti. KeyboardDelay e KeyboardSpeed sotto HKCU\Control Panel\Keyboard governano cosa succede quando tieni premuto un tasto: quanto passa prima che il carattere inizi a ripetersi, e quanto in fretta si ripete poi. La prima pressione non ne risente per niente. w0a può portare il ritardo al suo gradino più corto, e la descrizione del prodotto stesso dice cosa ci guadagni — una console, una chat e un menu più rapidi, non un colpo più rapido. Se uno strumento precedente ha lasciato questi valori su numeri strani, la scheda Velocità e ritardo di ripetizione dei tasti rimette i valori predefiniti di Windows.
Dimensione della coda dati della tastiera. KeyboardDataQueueSize stabilisce quanti report il driver class può tenere se il thread che li svuota si inceppa per un istante. Una coda più grande significa meno report persi durante un'inceppata. Non fa arrivare prima nessun report, e il prodotto lo dice nella sua stessa interfaccia invece che in una nota a piè di pagina. Code di input spiega cos'è quel valore e come rimetterlo a posto.
Se una pagina, da qualsiasi parte, ti dice che alzare la dimensione di una coda abbassa la latenza di input, adesso ne sai abbastanza per non crederci. Una coda è una protezione contro la perdita, non una scorciatoia.
Fase 4 — l'unica fase che è davvero tua
È qui che vive il ritardo di tastiera vero e misurabile su una macchina normale, ed è la fase che quasi nessuno controlla.
Tutto ciò che vuole vedere i tuoi tasti prima che li veda il gioco si installa nel percorso dell'input: le suite dei produttori di tastiere con i loro motori di macro, i demoni di illuminazione per tasto che reagiscono a quello che scrivi, gli overlay di streaming e di chat, i registratori di schermo, le utility di rimappatura, gli strumenti di accessibilità. Ognuno è un salto in più, e un salto occupato o bloccato tiene fermo tutto il percorso.
Windows ha un timeout esattamente per questo caso. Quando un hook di basso livello non risponde entro LowLevelHooksTimeout millisecondi, Windows lo salta e va avanti; Windows 10 1709 e successivi usano al massimo 1000 ms, per quanto grande sia il valore. Quanto aspetti Windows quando il valore non è impostato non è documentato, e noi non l'abbiamo misurato. La pagina Tweak Regedit di w0a ha una voce che imposta quell'attesa a 1000 ms scrivendo LowLevelHooksTimeout sotto HKCU\Control Panel\Desktop.
Leggilo per quello che è: limitare il timeout non rende più veloce un hook sano. Accorcia il blocco quando un hook si è già guastato. È una cosa che vale la pena avere, e non è una riduzione di latenza.
Cosa fare davvero, in ordine:
- Chiudi completamente il software della tastiera — non ridurlo a icona nell'area di notifica. Esci, poi gioca una partita.
- Chiudi gli overlay uno alla volta: quello della piattaforma di gioco, quello della chat vocale, il software di registrazione, l'overlay del produttore della scheda video.
- Se la sensazione cambia, hai trovato la tua risposta, e puoi decidere quale funzione vale quale ritardo.
- Se non cambia niente, smetti di cercare qui. Passa alla fase 3.
Fase 3 — un driver che tiene occupato il core che serve alla tastiera
Un report della tastiera arriva come un interrupt. Se un driver qualsiasi sta occupando quel core del processore dentro un interrupt o una chiamata differita, la tua pressione aspetta, e aspetta al di sopra di ogni priorità di thread del sistema — quindi non compare in nessun grafico dei frame time e in nessun gestore attività.
Questo è misurabile, ed è l'unica parte del percorso su cui si può mettere un numero preso dalla tua macchina:
- Apri Test di latenza in w0a.
- Premi avvia e continua a muovere il mouse per tutti e 12 i secondi — il mouse è il traffico che il test usa per campionare il percorso dell'input.
- Leggi il valore Interruzione di driver più lunga e l'elenco dei driver sotto di esso, ordinato per occupazione più lunga e con il nome del file.
- Qualunque cosa da 1 ms in su sta spostando dei report. Qualunque cosa da 4 ms in su è la cosa da sistemare prima di ogni altra.
La prima soluzione da provare per un driver che tiene occupato un core è aggiornare quel driver preciso, dal produttore dell'hardware. Leggere il test di latenza spiega i colori e, cosa più utile, che cosa quel numero lascia fuori di proposito.
Fase 5 — il gioco legge l'input secondo i suoi tempi
Nella maggior parte dei motori il gioco campiona l'input una volta per frame. Un gioco a 60 FPS guarda la tua tastiera ogni 16,7 ms; a 240 FPS, ogni 4,2 ms. Questa è aritmetica, non una misurazione, e nessun motore pubblica i suoi tempi esatti di lettura dell'input — quindi prendila come il meccanismo e non come una cifra valida titolo per titolo.
La conseguenza pratica è che alzare un frame rate basso accorcia l'attesa in questa fase, e che a 40 FPS non è la tastiera a limitarti. Se il tuo frame rate è instabile invece che basso, la pagina giusta è Cosa cerca la scansione degli scatti.
Quello che resta, e cosa farne

Una lista di controllo breve e reversibile. Ognuna di queste cose si può annullare, e i punti qui sotto che rimandano a una scheda Fix riscrivono il valore predefinito di Windows a prescindere da quale strumento abbia fatto la modifica.
- Collega la tastiera a una porta della macchina stessa, non a un hub del monitor, a un hub non alimentato o a un KVM. Ognuno di quelli è un altro controller fra il dispositivo e l'host.
- Controlla cosa sta facendo davvero la porta. La pagina Porte USB di w0a elenca ogni dispositivo con l'intervallo di polling che il suo firmware ha chiesto accanto alla frequenza di report misurata dall'input reale. Un dispositivo che chiede 1 ms e ne consegna molti di meno è un problema di collegamento o di driver, non un problema di tastiera.
- Annulla i vecchi tweak sull'input. Mouse, tastiera e touchpad e Code di input ripristinano i valori predefiniti di Windows se uno strumento più vecchio li ha cambiati.
- Impedisci al risparmio energetico USB di mandare a dormire la porta, se la tua tastiera è lenta alla prima pressione dopo una pausa. La scheda è Impostazioni di alimentazione delle porte USB.
- Misura, poi decidi. Fai il Test di latenza prima e dopo ogni modifica. Una modifica che non riesci a vedere in una misurazione è una modifica da annullare.
Cosa il software non può fare qui
- Non può cambiare l'intervallo di scansione della tua tastiera né il suo tempo di debounce. Sono firmware, e Windows non li vede mai.
- Non può far riportare un dispositivo più in fretta dell'intervallo che il suo stesso descrittore chiede — la documentazione di Microsoft dice che i driver non possono cambiare quel campo.
- Non può eliminare il campionamento dell'input che il gioco fa una volta per frame.
- Non può accorciare la parte del percorso che appartiene al monitor. Quella è roba di La latenza che nessun software può risolvere.
Quello che può fare è togliere di mezzo un hook inceppato, mettere in evidenza un driver che tiene occupato un core e impedire a una porta di addormentarsi. Su una macchina sana la somma è meno di quanto la gente speri, e su una malata è tutta la differenza. Misurare è il modo per scoprire quale delle due hai.
Correlati
- Perché la mia mira sembra in ritardo
- Sento i passi dopo averli visti
- Come ridurre l'input lag: cosa può accorciare un software e cosa no
- Leggere il test di latenza
- Tweak mouse e tastiera
Delle circa dodici fasi fra un clic e un pixel che cambia, tre sono del software; il resto è del firmware, dello schermo e del gioco: Come ridurre l'input lag: cosa può accorciare un software e cosa no
Questa pagina ti è stata utile?
Cosa mancava, o cosa non ha funzionato? Le leggiamo tutte, una per una.
Se questa pagina non ha risolto il problema, scrivici — dicci quale articolo hai letto, e sistemiamo l'articolo.