Latence du clavier : d’où vient le délai et comment on la teste
La latence du clavier, c’est le temps qui s’écoule entre le moment où votre doigt commence à enfoncer une touche et celui où le clavier a envoyé cet appui à l’ordinateur. Elle s’accumule à quatre endroits : la course de la touche, le balayage des touches par le clavier, le debounce et le polling USB. Aucun site web ne peut la mesurer, car un navigateur n’apprend l’existence d’un appui qu’une fois que le clavier l’a envoyé. Les testeurs utilisent un solénoïde qui appuie sur la touche et un analyseur USB qui enregistre le moment où l’appui quitte le clavier. Pour la réduire, choisissez un point d’activation moins profond, le polling rate le plus élevé et le debounce le plus bas qui ne fasse pas taper les touches en double.
Où un appui sur une touche attend avant d’arriver à l’ordinateur
- Course de la touchela touche descend jusqu’au point où l’interrupteur se déclenche
- Balayagela puce du clavier vérifie la grille de touches, ligne par ligne
- Debounceil attend que le contact de l’interrupteur cesse de rebondir, ou ignore le rebond
- Polling USBl’appui attend que l’ordinateur interroge de nouveau le clavier
Au total : la latence du clavier
Une page web ne peut lancer son chrono qu’à partir d’ici
Ordinateur et écran le jeu prend en compte l’appui, calcule une image et l’écran l’affiche : le reste de votre input lag
D’où vient le délai
- Course de la touche. Rien ne se passe tant que la touche n’a pas atteint son point d’activation. Filmé à 240 images par seconde, un appui normal mettait 4 à 8 images pour descendre jusqu’en bas, et la course seule peut facilement ajouter 10 ms. Le clavier le plus rapide de ce test avait aussi, de loin, la course la plus courte.
- Balayage. La plupart des claviers câblent leurs touches en grille et la vérifient ligne par ligne. Un clavier qui balaie lentement peut voir votre appui plusieurs millisecondes après la fermeture de l’interrupteur.
- Debounce. Le contact d’un interrupteur rebondit un instant quand il se ferme. Soit le clavier signale l’appui tout de suite et ignore le rebond, soit il attend que le contact se soit stabilisé. Dans QMK, le firmware open source de nombreux claviers custom, le debounce par défaut est de 5 ms.
- Polling USB. L’ordinateur interroge le clavier au rythme de son polling rate. Un appui fait juste après une interrogation attend la suivante.
Le polling rate en millisecondes
Le temps entre deux interrogations vaut 1 000 ms divisé par le polling rate. En moyenne, un appui attend la moitié de ce temps.
| Polling rate | Une interrogation toutes les | Attente moyenne |
|---|---|---|
| 125 Hz | 8 ms | 4 ms |
| 250 Hz | 4 ms | 2 ms |
| 500 Hz | 2 ms | 1 ms |
| 1000 Hz | 1 ms | 0,5 ms |
| 8000 Hz | 0,125 ms | 0,0625 ms |
Passer de 125 Hz à 1 000 Hz fait gagner 3,5 ms en moyenne. Les claviers mesurés diffèrent de bien plus que cela : en 2017, Dan Luu a mesuré 21 claviers entre 15 et 60 ms, et les deux claviers gaming du lot n’étaient pas plus rapides que les autres.
Comment on teste la latence d’un clavier
- Un solénoïde et un analyseur USB. RTINGS et LTT Labs appuient sur la touche avec un solénoïde, notent l’instant où il la touche et enregistrent avec un analyseur USB le moment où l’appui quitte le clavier. RTINGS fait la moyenne de 200 appuis. Tous deux règlent d’abord le clavier sur ses réglages les plus rapides, comme le debounce le plus bas et le polling rate le plus élevé.
- Chaque connexion à part. LTT Labs mesure séparément le câble, le sans-fil 2,4 GHz et le Bluetooth, car la latence peut beaucoup changer de l’un à l’autre.
- Un analyseur logique. Dan Luu s’en est servi pour chronométrer l’écart entre le début d’un appui et le paquet USB qui en résultait.
- Chez soi, une caméra ou un capteur de lumière. Filmez la touche et l’écran ensemble au ralenti (240 images par seconde, c’est une image toutes les 4,2 ms), ou placez sur l’écran un capteur de lumière comme l’OSLTT, open source. Les deux chronomètrent toute la chaîne, de la touche à l’écran, pas le clavier seul.
Pourquoi aucun site web ne peut tester la latence du clavier
Un navigateur n’apprend l’existence d’un appui qu’une fois que le clavier l’a envoyé et que l’ordinateur l’a transmis : tout ce que décrit cette page s’est donc déjà produit avant qu’une page web puisse lancer un chrono. Un test qui vous chronomètre entre un signal et votre appui mesure votre réaction, qui prend bien plus de temps que le clavier. Ce qu’un navigateur peut vérifier, c’est si chaque touche est détectée et combien fonctionnent en même temps, avec le test de clavier, et si une touche tape deux fois, avec le test de double appui au clavier.
Comment réduire la latence du clavier
- Réglez le polling rate le plus élevé dans l’application du fabricant, si elle le propose.
- Baissez le debounce, si l’application le permet, mais arrêtez-vous au réglage le plus bas qui ne fait pas taper les touches en double. Si des lettres commencent à doubler, voyez pourquoi un clavier tape des lettres en double.
- Choisissez un point d’activation moins profond. Les claviers magnétiques et analogiques vous laissent régler jusqu’où une touche doit descendre avant de compter. Le Rapid Trigger, sur des claviers comme ceux de Wooting, relâche aussi la touche dès que vous commencez à la remonter, et la réactive dès que vous appuyez de nouveau.
- Choisissez la connexion la plus rapide pour jouer. Si votre clavier peut se connecter de plusieurs façons, utilisez celle qu’un test a mesurée comme la plus rapide.
- Regardez ensuite le reste de la chaîne. Vos FPS et votre écran ajoutent en général plus de délai que le clavier : voyez comment réduire l’input lag.
Ce qui distingue les switchs linéaires, tactiles et clicky, avec les chiffres du fabricant pour le point et la force d’activation : switchs de clavier.
Sources : Dan Luu (en anglais), La latence des claviers ; RTINGS (en anglais), leur méthode de mesure de la latence ; LTT Labs (en anglais), Comment Labs teste les claviers ; QMK (en anglais), Algorithme de debounce ; Wooting (en anglais), Comment configurer le Rapid Trigger ; OSLTT (en anglais), Outil open source de test de latence.