Présentation de la méthode
Pour mesurer la latence d'entrée sur Linux, j'ai utilisé une méthode simple : j'ai connecté un capteur de lumière à un écran et à un ordinateur via USB pour simuler des clics de souris. En mesurant le temps entre le clic et le moment où le capteur détecte un changement sur l'écran, j'ai pu évaluer la latence système de bout en bout.
Architecture et fonctionnement
J'ai testé trois scénarios différents : X11 vs Wayland, Variable Refresh Rate (VRR) et DXVK. J'ai utilisé le jeu Diabotical, un jeu DirectX 11, lancé via Heroic avec Proton. J'ai configuré le jeu pour afficher une grande boîte blanche sur l'écran lors d'un clic de souris, ce qui a permis de produire des différences de luminosité importantes.
dxgi.maxFrameRate = 500
J'ai utilisé une configuration optimisée pour dxvk.conf, avec des paramètres tels que dxvk.lowLatencyOffset = 70 et dxvk.framePace = "low-latency-vrr-500". J'ai également utilisé le noyau CachyOS par défaut et j'ai désactivé le mode Blit (compositing) sur Wayland.
Résultats et analyse
Les résultats montrent que X11 a une latence légèrement inférieure à Wayland, mais la différence est faible, de l'ordre de 014 à 022 ms. L'activation de la VRR a un impact plus important, avec une réduction de la latence de 026 à 045 ms. Le dxvk-low-latency a également un impact positif, en particulier dans les scénarios où la fréquence d'images est non limitée, en réduisant la latence de 020 ms en moyenne.
Les tests ont également montré que XWayland ajoute une latence importante, de l'ordre de 313 ms, mais que l'ajout de dxvk-low-latency peut réduire cette latence de 211 ms. Ces résultats sont spécifiques à mon matériel et à mon logiciel, mais ils montrent l'importance de prendre en compte la latence système lors de l'optimisation des performances de jeu sur Linux.