Guide pour jouer sur Linux avec une faible latence


Comprendre quelques concepts


Avant de commencer, il est important que vous compreniez quelques concepts simples afin de mieux comprendre votre système, ce qui vous permettra de déboguer et de déterminer ce que vous devez faire et ce que vous ne devez pas faire.

  • Environnement de bureau (DE) : « Un environnement de bureau (DE) est une implémentation de la métaphore du bureau composée d'un ensemble de programmes qui partagent une interface utilisateur graphique (GUI) commune ».

Exemples : KDE Plasma, XFCE, Hyprland, GNOME, Cinnamon, etc.

  • Compositeurs : « Un compositeur est un logiciel qui interagit avec le système de fenêtres ainsi qu'avec les graphiques sous Linux pour afficher : la transparence des fenêtres, les animations de transition, les ombres portées autour des fenêtres qui leur donnent un effet 3D, la synchronisation verticale : attend que l'affichage soit mis à jour avant de mettre à jour l'affichage ».
  •  Modes de présentation : le mode de présentation spécifie quand une image est présentée à la fenêtre. Il est possible de découvrir lequel un jeu utilise à l'aide de Mangohud, mais ne vous fiez pas à cela, car il ne montre pas toujours précisément quel mode de présentation est utilisé. De plus, un bug fréquent est que Mangohud ne met pas à jour ce champ de manière dynamique pendant le jeu. Ainsi, dans certains cas (comme le mien sur THE FINALS), Mangohud affichera FIFO, mais le jeu fonctionnera en réalité avec Mailbox.

Exemple : FIFO (V-Sync, le FPS est verrouillé à la fréquence de rafraîchissement du moniteur), Mailbox (V-Sync mais la fréquence d'images n'est pas verrouillée) et Immediate (pas de V-Sync, la fréquence d'images n'est pas verrouillée).

  • Wayland : "un protocole de communication qui spécifie la communication entre un serveur d'affichage et ses clients, ainsi qu'une implémentation de ce protocole sous forme de bibliothèque C. Un serveur d'affichage utilisant le protocole Wayland est appelé un compositeur Wayland, car il remplit en plus la tâche d'un gestionnaire de fenêtres de composition."
  • Le X Window System (X11, ou simplement X) est un système de fenêtrage pour les écrans bitmap, couramment utilisé sur les systèmes d'exploitation de type Unix. X est un système indépendant de l'architecture pour les interfaces graphiques utilisateur à distance et les capacités des périphériques d'entrée. Chaque personne utilisant un terminal en réseau a la capacité d'interagir avec l'affichage à l'aide de n'importe quel type de périphérique d'entrée utilisateur. 

Les distributions 

Une question très courante est de savoir quelle distribution est la meilleure pour tel ou tel usage. Dans le cas présent, quelle est la meilleure distribution pour les jeux vidéo ? Bien qu'il existe de nombreuses distributions, la plus populaire à l'heure actuelle est CachyOS. 

Cependant, il faut d'abord comprendre que les distributions axées sur les jeux vidéo ne surpassent pas de manière significative les distributions couramment utilisées telles qu'Endeavour, Arch, Manjaro, etc. en termes de FPS. 

Les distributions telles que CachyOS offrent de meilleures performances dans la plupart des cas (+2 à 5 %), et en particulier de meilleurs résultats dans les 1 % les plus bas. Cependant, ces distributions axées sur les jeux ne sont pas optimisées pour d'autres typologies d'utilisation. 

Si vous êtes un utilisateur lambda qui joue également à des jeux, opter pour une distribution comme la mienne (EndeavourOS) est un bon choix, car la différence entre les deux n'est pas très notable. 

Mais cela ne veut pas dire que CachyOS vous décevra si vous souhaitez faire autre chose. C'est simplement que la spécialisation d'une distribution contribue généralement à une utilisation « prête à l'emploi ». La configuration d'EndeavourOS pour les jeux est par exemple plus fastidieuse que celle de CachyOS. 

Pilotes vidéo 

C'est la partie la plus importante de ce guide. Il est important d'utiliser une combinaison adaptée de pilote et d'environnement de bureau/compositeur, car si vous utilisez une carte NVIDIA, X11 offrira de meilleures performances et une latence plus faible.

Comme il s'agit d'un sujet très complexe, je vais simplement vous fournir quelques liens utiles pour vous aider à démarrer/vous informer. 

  • Linux Graphics Drivers expliqués : AMD, NVIDIA, INTEL, Open Source and Propriétaire - vidéo.
  • NVIDIA GPUs on Linux: ce que vous devez savoir (pilotes ouvert versus pilotes propriéraires, module, GSP firmware, etc...) - vidéo
  • Guide pour installer les pilotes AMD/NVIDIA drivers.

Commençons par les réglages

1. Désactivez le mode composition de votre environnement de bureau.

La désactivation du mode composition peut augmenter vos FPS et réduire la latence, en particulier si vous utilisez une carte NVIDIA.

Ce n'est pas nécessaire sur :

AMD avec Wayland (uniquement si vous souhaitez réduire la latence, cela n'affecte généralement pas les performances).

Ce n'est pas possible si :

Vous utilisez KDE Plasma avec Wayland. 

2. Utilisez Gamescope.

Gamescope est un micro-compositeur de Valve utilisé sur la Steam Deck. Son objectif est de fournir un compositeur isolé, spécialement conçu pour les jeux et prenant en charge de nombreuses fonctionnalités centrées sur le jeu, telles que :

  • Simuler des résolutions
  • Mise à l'échelle supérieure (ou sur-échantillonnage) utilisant AMD FidelityFX™ Super Resolution ou NVIDIA Image Scaling.
  • Limitation des fréquences d'images.

En tant que micro-compositeur, il est conçu pour fonctionner comme une session imbriquée au-dessus de votre environnement de bureau existant, mais il est également possible de l'utiliser comme compositeur intégré. » 

  • Comment l'utiliser ?

Définissez comme options de lancement : gamescope (avant %command% si vous êtes sur Steam).

  • Arguments :

-f : Force le mode plein écran exclusif.
-w -h : Définit la largeur de la fenêtre (-w) et la hauteur de la fenêtre (-h).
-r : Le taux de rafraîchissement.
--force-grab-cursor : "Crée" un nouveau curseur à l'intérieur de la fenêtre qui reste verrouillé, sauf si vous utilisez Alt+Tab. Peut diminuer la latence.
--immediate-flips : Force l'application à activer le screen tearing.

  • Exemple d'utilisation :

gamescope -f -w 1920 -h 1080 -r 180 --force-grab-cursor --immediate-flips -- %command% (le -- avant %command% est obligatoire). 

3. Activez VRR (taux de rafraîchissement variable/Free-sync). De préférence, réglez-le sur « Automatique ». 

4. Spécificités environnements de bureau/Gestionnaire de fenêtres :

  • KDE : Activez l'option "Autoriser le déchirement d'écran sur les applications en plein écran" dans la configuration de l'affichage.
  • KDE : Utilisez la variable d'environnement KWIN_DRM_NO_AMS=1.
  • Sway : Utilisez allow_tearing yes avec WLR_DRM_NO_MODIFIERS=1 et WLR_DRM_NO_ATOMIC=1. (Attention ! NO_MODIFIERS et NO_ATOMIC peuvent faire démarrer votre PC sur un écran noir si vous avez une carte NVIDIA. De plus, un utilisateur a signalé que ces options peuvent ralentir votre système. Effectuez vos propres tests.)
  • Hyprland : Utilisez Direct_Scanout=1.

5. Réglez le mode d'alimentation sur performance (peut être fait à la fois pour le CPU et le GPU avec CoreCtrl). * 

6. Variables d'environnement :

  • MESA_VK_WSI_PRESENT_MODE=immediate

Réduit la latence / Force le WSI Vulkan de Mesa à utiliser VK_PRESENT_MODE_IMMEDIATE indépendamment des préférences de l'application.

  • KWIN_DRM_NO_AMS=1

Réduit la latence / Désactive la planification du mode "adaptive modeset" (AMS) du noyau dans le backend KWin/DRM Wayland. L'AMS peut retarder les mises à jour du curseur et les opérations de composition lorsque le GPU est fortement sollicité. 

  • PROTON_USE_NTSYNC=1

Peut réduire la latence (ça a été le cas pour moi sur THE FINALS) / Active la prise en charge native de NTSync dans ProtonGE (les versions 10-9 et 10-10 l'activent par défaut). Cette option synchronise les soumissions Vulkan et OpenGL en utilisant le module noyau Linux ntsync plutôt que les fsync/esync de Wine. 

  • PROTON_ENABLE_WAYLAND=1

Peut réduire la latence et améliorer les performances si vous utilisez Wayland / Indique à Proton d'utiliser le backend natif winewayland.drv au lieu de XWayland/X11, afin que les jeux s'exécutent comme de purs clients Wayland. 

  • SDL_VIDEODRIVER=wayland 

Peut réduire la latence et améliorer les performances si vous utilisez Wayland / Force les applications SDL2 à utiliser le backend Wayland au lieu de X11/XWayland par défaut. Sans cela, SDL2 utilise généralement X11, même sous Wayland, sauf s'il est compilé différemment.

7. Utiliser un autre noyau

Si vous utilisez CachyOS ou une autre distribution axée sur le jeu, ce n'est pas nécessaire, car ces distributions disposent déjà d'un noyau personnalisé spécifiquement conçu pour le jeu.

Cependant, si vous n'utilisez pas de distribution spécialisée, cela pourrait s'avérer utile, car cela peut augmenter les performances de jeu et réduire la latence (d'environ 2 ms en moyenne). Dans mon cas, cela a même amélioré la stabilité. Soyez toutefois conscient que ces noyaux utilisent des planificateurs personnalisés et peuvent parfois causer d'autres problèmes. Il est donc recommandé de faire vos propres tests pour voir s'il vous convient.

Le noyau le plus courant pour cet usage est Linux-Zen, que j'utilise actuellement. Il a résolu un problème que je rencontrais avec Arch : dans certaines situations, notamment en jeu, le système d'exploitation pouvait se figer, devenant totalement figé et non réactif sous de lourtes charges de travail. Dans BeamNG, le jeu se bloquait avec le système d'exploitation pendant quelques minutes à chaque fois qu'un nouvel élément devait charger. Ce problème a disparu lorsque je suis passé à Linux-Zen, ce qui a réduit la latence d'environ 2 ms en moyenne. 

8. Utilisez un autre environnement de bureau. 

Les environnements de bureau tels que KDE ont le temps de latence le plus élevé. Si vous souhaitez un environnement de bureau léger ou simplement un environnement avec un temps de latence d'entrée plus faible, utilisez Hyprland ou XFCE. 

9. Utilisez LatencyFleX pour utiliser NVIDIA Reflex et AMD Anti Lag

"Un intergiciel (middleware) de réduction de la latence indépendant du fabricant. Une alternative à NVIDIA Reflex". LatencyFleX est un outil qui peut être utilisé pour activer la fonctionnalité Reflex sur les cartes NVIDIA et Anti Lag sur les cartes AMD.

CET OUTIL EST À UTILISER À VOS PROPRES RISQUES, CELA PEUT ENTRAÎNER UNE EXCLUSION DE JEU (GAME BAN) SUR DES JEUX TELS QUE CS2/THE FINALS/OVERWATCH ETC... (Bien que certains joueurs aient rapporté ne pas avoir été bannis en l'utilisant, soyez prudent quand même).

Lien GitHub de LatencyFleX : https://github.com/ishitatsuyuki/LatencyFleX 

10. Connaissances générales, problèmes courants et solutions possibles

Les taux de rafraîchissement (framerate) plus élevés réduisent le déchirement d'écran (tearing) et la latence, rendant l'expérience plus fluide et réactive (un taux de rafraîchissement élevé sans V-Sync est plus réactif qu'un taux élevé avec V-Sync).

Une utilisation élevée du GPU peut augmenter la latence d'entrée (input latency). Par exemple, jouer avec une utilisation du GPU à 99% à 220 FPS a plus de latence que jouer avec une utilisation du GPU à 90% à 200 FPS (ce problème est inexistant si vous utilisez Reflex ou Anti Lag). 

Délai d'entrée (Input lag), peut être causé par :

  • Votre compositeur qui force la V-Sync.
  • La V-Sync activée dans le jeu.
  • Une incompatibilité entre le jeu, Proton ou Wine.
  • Le mode sans bordures ou fenêtré qui a une latence plus élevée que le plein écran exclusif.
  • Votre compositeur qui s'active en permanence, ou uniquement dans les applications en plein écran.

Utile pour résoudre ce problème :

  • Les variables d'environnement.
  • La désactivation de la V-Sync.
  • L'option « Autoriser le tearing sur les applications en plein écran » qui doit être activée sur KDE.
  • Gamescope en mode plein écran forcé (-f et --immediate-flips).
  • L'utilisation de NTSYNC avec ProtonGE.
  • Forcer votre compositeur à ne pas utiliser la V-Sync (si possible).
  • L'activation du VRR (taux de rafraîchissement variable/Free-sync).
  • L'utilisation de X11 au lieu de Wayland, surtout avec une carte NVIDIA.

Micro-saccades (stutters), peuvent être causées par (en supposant que votre matériel n'est pas le problème) :

  • La compilation des shaders.
  • Une incompatibilité du jeu avec Linux.
  • La version de Proton.

Utile pour résoudre ce problème :

  • Essayer dxvk-gplasync : https://gitlab.com/Ph42oN/dxvk-gplasync
  • L'utilisation de Gamemode.
  • La désactivation des superpositions (overlays). De manière générale, cela n'a pas d'impact, mais testez pour voir si ça aide.
  • Le passage de votre profil d'alimentation en mode performance (CoreCtrl peut être utilisé pour cela).
  • Utiliser un autre Kernel. 
  • Des pilotes obsolètes ou incorrects, surtout les pilotes vidéo si le problème est général.

Divers (Sans rapport avec la latence mais utile) :

  • Désactiver l'accélération de la souris.
  • Utiliser Feral Gamemode.

source :

https://www.reddit.com/r/linux_gaming/comments/1mg8vtl/low_latency_gaming_guide/ 

0 Commentaires

Les commentaires sont validés manuellement avant publication. Il est normal que ceux-ci n'apparaissent pas immédiatement.

Enregistrer un commentaire

Les commentaires sont validés manuellement avant publication. Il est normal que ceux-ci n'apparaissent pas immédiatement.

Post a Comment (0)

Plus récente Plus ancienne