Comment afficher le compteur FPS dans les jeux Linux

Comment afficher le compteur FPS dans les jeux Linux
Linux Gaming a obtenu une poussée majeure lorsque Valve a annoncé la prise en charge de Linux pour Steam Client et ses jeux en 2012. Depuis lors, de nombreux jeux AAA et indépendants se sont dirigés vers Linux et le nombre d'utilisateurs qui jouent sur Linux ont considérablement augmenté.

Avec la croissance des jeux Linux, de nombreux utilisateurs ont commencé à chercher des moyens appropriés d'afficher le compteur «Frames par seconde» (FPS) comme superposition sur l'exécution de jeux Linux. Un compteur FPS aide à modifier les performances des jeux en cours d'exécution ainsi qu'à l'analyse comparative d'une capacité globale d'un PC à jouer à des jeux à différentes résolutions.

Malheureusement, il n'y a pas de moyen unifié unique d'afficher le compteur FPS dans tous les jeux Linux qui sont indépendants des technologies sous-jacentes qu'un jeu fonctionne sur. Différents rends et API ont des façons différentes d'afficher le compteur FPS. Ce guide expliquera diverses méthodes qui peuvent être utilisées pour afficher un compteur FPS dans les jeux Linux.

Méthode 1 (vapeur)

Remarques de compatibilité:

  • Fonctionne avec des jeux OpenGl et Vulkan.
  • Fonctionne avec des jeux natifs et des jeux de proton. Proton est une couche de compatibilité incluse dans Steam pour l'exécution de jeux Windows dans Linux. Il est basé sur le vin, les projets open source DXVK et D9VK avec des correctifs supplémentaires et de nouvelles fonctionnalités ajoutées par les développeurs de soupape / vin.
  • Fonctionne avec les jeux achetés sur Steam ou des jeux tiers ajoutés à Steam par l'utilisateur.
  • Testé travaillant avec des cartes graphiques Intel et AMD intégrées.
  • Non testé avec les cartes nvidia car je ne possède pas de carte nvidia. Mais selon les forums de la communauté Steam, le compteur FPS intégré fonctionne bien sur les cartes Nvidia.

Steam for Linux comprend un compteur FPS intégré qui peut être basculé à partir des paramètres. C'est probablement l'une des options les plus compatibles qui fonctionne avec la majorité des jeux Linux. Cependant, j'ai eu des problèmes avec les jeux Unity Engine n'affichant pas le comptoir FPS intégré. Cette option vous oblige également à faire installer un compte Steam et un client Steam sur votre système.

Steam vous permet même d'ajouter des jeux non achetés de Steam à la bibliothèque de jeux et le compteur FPS intégré fonctionne également dans ces jeux. Pour ajouter un jeu non Steam, cliquez sur «Jeux», puis cliquez sur «Ajouter un jeu non steam à ma bibliothèque», comme indiqué dans la capture d'écran ci-dessous:

Parcourez l'emplacement de vos fichiers de jeu, puis basculez l'option «tous les fichiers» en bas.

Sélectionnez l'exécutable du jeu, puis cliquez sur «Ajouter des programmes sélectionnés» comme indiqué dans la capture d'écran ci-dessous:

Si vous souhaitez exécuter un jeu Windows uniquement dans la couche de compatibilité des protons de Steam, vous devrez activer une option supplémentaire dans les propriétés du jeu.

J'ai ajouté l'exécutable SuperTuxkart dans la bibliothèque Steam, et le compteur FPS fonctionne bien ici également. Notez que tous les jeux tiers ajoutés à la bibliothèque Steam ne doivent pas avoir d'espaces dans leur chemin d'emplacement de fichier.

Méthode 2 (libgl)

Remarques de compatibilité:

  • Fonctionne avec OpenGL Games uniquement.
  • Fonctionne avec des jeux natifs et des jeux de vin.
  • Testé travaillant avec des cartes graphiques Intel et AMD intégrées avec des pilotes open source.
  • Non testé avec les cartes nvidia car je ne possède pas de carte nvidia. Il devrait cependant fonctionner avec les GPU NVIDIA avec des pilotes open source.

Libgl est une bibliothèque Mesa qui expose les API OpenGL aux applications et aux jeux et il est inclus dans presque toutes les distributions Linux par défaut. En utilisant cette bibliothèque et un autre package qui crée un affichage HUD sur Visible, nous afficherons un compteur FPS dans les jeux Linux. Exécutez la commande suivante pour installer le package requis:

sudo apt installer xosd-bin

Pour afficher le compteur FPS dans les jeux Linux natifs, utilisez la commande ci-dessous après avoir remplacé / chemin / vers / exécutable par votre propre chemin exécutable de jeu. Vous pouvez en savoir plus sur toutes les options OSD-CAT à partir d'ici.

Libgl_show_fps = 1 / path / to / exécutable 2> & 1 | tee / dev / stderr | sed -u -n -e '/ ^ libgl: fps = / s /.* \ ([^] * \) = / \ 1 /; P '| OSD_CAT --LIONS = 1 --Color = Yellow --outLine = 1 - -pos = TOP --Align = Left

Pour afficher le compteur FPS dans les jeux Windows fonctionnant sur Linux via le vin, utilisez la commande ci-dessous après avoir remplacé / chemin / vers / exécutable par votre propre chemin exécutable de jeu.

Winedebug = FPS Wine / Path / To / Exécutable 2> & 1 | tee / dev / stderr | sed -u -n -e '/ trace / s /.* Environ // p '| OSD_CAT --LIONS = 1 --Color = Yellow --outLine = 1 - -pos = TOP --Align = Center

Si vous utilisez un préfixe de vin, la commande serait (remplacer / path / to / wine / préfixe et / path / to / exécutable):

Winedebug = fps wineprefix = / path / to / wine / préfixe wine / path / to / exécutable 2> & 1 | tee / dev / stderr | sed -u -n -e '/ trace / s /.* Environ // p '| OSD_CAT --LIONS = 1 --Color = Yellow --outLine = 1 - -pos = TOP --Align = Center

Cette méthode a une petite limitation. Bien que vous puissiez personnaliser le HUD OSD-CAT, il reste à une position fixe sur la zone d'affichage sans prendre en considération la géométrie de la fenêtre du jeu. Dans la capture d'écran ci-dessus, le compteur FPS est illustré au-dessus de la fenêtre de jeu, pas à l'intérieur. Les jeux qui se déroulent en plein écran ne sont pas affectés par cela.

Méthode 3 (Gallium3d)

Remarques de compatibilité:

  • Fonctionne avec OpenGL Games uniquement.
  • Fonctionne avec des jeux natifs et des jeux de vin.
  • Testé travaillant avec des cartes graphiques AMD avec des pilotes open source.
  • Le support de gallium3d à Intel est en cours, donc ne fonctionne pas encore.
  • Non testé avec les cartes nvidia car je ne possède pas de carte nvidia. Étant donné que le pilote open source NVIDIA est activé par gallium3d, cette méthode devrait fonctionner.

Gallium3d est une API qui facilite le développement de pilotes pour les cartes graphiques en fournissant un ensemble de bibliothèques et d'interfaces standard. Les pilotes open source AMD et NVIDIA sont construits sur Gallium3d.

Pour afficher le compteur FPS dans les jeux Linux natifs, utilisez la commande ci-dessous après avoir remplacé / path / vers / exécutable par votre propre chemin exécutable de jeu:

Gallium_hud = "simple, fps" / path / to / exécutable

Pour afficher le compteur FPS dans les jeux Windows fonctionnant sur Linux via le vin, utilisez la commande ci-dessous après avoir remplacé / chemin / vers / exécutable par votre propre chemin exécutable de jeu.

Gallium_hud = "Simple, FPS" Wine / Path / To / Exécutable

Si vous utilisez un préfixe de vin, la commande serait (remplacer / path / to / wine / préfixe et / path / to / exécutable):

Gallium_hud = "simple, fps" wineprefix = / path / to / wine / préfixe wine / path / to / exécutable

Dans la capture d'écran ci-dessus, j'utilise une variable Gallium_hud personnalisée qui montre également les températures GPU et CPU. Cette commande personnalisée est différente pour différentes configurations de PC. Pour en savoir plus sur toutes les options de personnalisation, exécutez les commandes:

sudo apt install mesa-utils
Gallium_hud = aider GlxGears

Juste pour référence, voici la commande personnalisée que j'ai utilisée dans les captures d'écran ci-dessus:

Gallium_hud = "Simple, fps; capteurs_temp_cu-amdgpu-pCI-1c00.temp1; capteurs_temp_cu-k10temp-pci-00c3.Tdie "/ path / vers / exécutable

Méthode 4 (superposition Mesa Vulkan)

Remarques de compatibilité:

  • Fonctionne avec Vulkan Games uniquement.
  • Fonctionne avec Ubuntu 19.10+ seulement et d'autres distributions ayant la dernière Mesa avec une couche de superposition Vulkan.
  • Fonctionne avec les jeux natifs et les jeux de proton Steam en cours d'exécution avec le support DXVK / D9VK.
  • Fonctionne avec des jeux de vin en cours d'exécution avec DXVK / D9VK LIBS.
  • Statut de travail inconnu pour VKD3D de Wine. Puisqu'il s'agit d'une couche Vulkan, elle devrait fonctionner avec n'importe quoi tant que Mesa est construite avec VK_LAYER_MESA_Overlay.
  • Testé travaillant avec des cartes graphiques AMD et des cartes Intel intégrées avec des pilotes open source.
  • Non testé avec les cartes nvidia car je ne possède pas de carte nvidia. Puisqu'il s'agit d'une couche Vulkan, elle devrait fonctionner avec n'importe quoi tant que Mesa est construite avec VK_LAYER_MESA_Overlay.

Mesa Vulkan Overlay est une nouvelle couche Vulkan ajoutée aux constructions récentes de Mesa. Il affiche diverses informations sur l'application en cours d'exécution à l'aide d'une superposition.

Pour afficher le compteur FPS dans les jeux Linux natifs, utilisez la commande ci-dessous après avoir remplacé / path / vers / exécutable par votre propre chemin exécutable de jeu:

Vk_instance_layers = vk_layer_mesa_overlay vk_layer_mesa_overlay_config = position = top-left / path / to / exécutable

Pour afficher le compteur FPS dans les jeux Windows fonctionnant sur Linux via le vin et DXVK, utilisez la commande ci-dessous après avoir remplacé / path / vers / exécutable par votre propre chemin exécutable de jeu:

Vk_instance_layers = vk_layer_mesa_overlay vk_layer_mesa_overlay_config = position = wine top-gauche / path / to / exécutable

Si vous utilisez un préfixe de vin, la commande serait (remplacer / path / to / wine / préfixe et / path / to / exécutable):

Vk_instance_layers = vk_layer_mesa_overlay vk_layer_mesa_overlay_config = position = top-left wineprefix = / path / to / wine / prefix wine / path / to / exécutable

Méthode 5 (DXVK HUD)

Remarques de compatibilité:

  • Fonctionne uniquement avec les jeux Vulkan en cours de vin et de proton avec DXVK / D9VK LIBS.
  • Testé travaillant avec AMD et cartes graphiques Intel intégrées avec des pilotes open source.
  • Non testé avec les cartes nvidia car je ne possède pas de carte nvidia. Le code source a des engins qui mentionnent le support Nvidia, donc cette méthode devrait fonctionner.

DXVK fournit une couche de traduction basée sur Vulkan pour D3D10 et D3D11 permettant aux utilisateurs de jouer aux jeux Direct3D 10/11 sur Linux. D9VK utilise le backend DXVK pour fournir une implémentation directe3d9 supplémentaire qui peut être utilisée pour jouer à des jeux construits sur D3d9.

Pour afficher le compteur FPS dans les jeux DXVK fonctionnant sur Linux via le vin, utilisez la commande ci-dessous après avoir remplacé / path / vers / exécutable par votre propre chemin exécutable de jeu:

DXVK_HUD = FPS WIN / PATH / TO / EXECTATILE

Si vous utilisez un préfixe de vin, la commande serait (remplacer / path / to / wine / préfixe et / path / to / exécutable):

Dxvk_hud = fps wineprefix = / path / to / wine / préfixe wine / path / to / exécutable

Cela marque la fin de ce post. Pour conclure, je mentionnerais un petit détail omis d'en haut. Toutes les méthodes non steam expliquées ci-dessus fonctionneront également pour les jeux Steam. Vous devez remplacer «/ path / to / exécutable» ou «Wine / Path / To / EXECTITABLE» ou «WinePrefix = / Path / To / Wine / Prefix Wine / Path / To / Executable» avec «% Command%» dans le mêmes commandes utilisées ci-dessus. Ajoutez simplement la commande complète pour lancer des options dans les propriétés du jeu à l'intérieur de l'application Steam, comme indiqué dans la capture d'écran ci-dessous:

Nouvelle mise à jour: Méthode 6 (Mangohud)

Mangohud est un compteur FPS universel pour Linux qui montre des cadres en temps réel par seconde pour presque tous les jeux qui peuvent fonctionner sur Linux. Il fonctionne avec des jeux indigènes et viticoles et fonctionne bien avec les rendus OpenGL et Vulkan. En plus des FP, il montre également les charges CPU et GPU. Voici une petite animation montrant à quoi cela ressemble en tant que superposition (crédits GIF):

Mangohud a été intégré à la console de jeu portable basée sur Linux de Valve appelée «Steam Deck» (lancé en 2022). Il est disponible dans les référentiels par défaut de la dernière version d'Ubuntu, vous pouvez donc l'installer en exécutant la commande ci-dessous:

$ sudo apt install mangohud

Vous pouvez en installer la dernière version dans Ubuntu et d'autres distributions Linux en téléchargeant sa nouvelle version à partir d'ici. Une fois téléchargé, extraire l'archive et exécuter la commande suivante pour l'installer:

$ ./ mangohud-setup.SH INSTALLATION

Vous pouvez maintenant utiliser Mangohud avec n'importe quel jeu Linux en exécutant une commande dans le format suivant (remplacer le chemin du fichier):

$ mangohud / path / to / game / exécutable / fichier

Si vous exécutez un jeu à partir du client Steam, accédez à la boîte de dialogue Propriétés du jeu en cliquant avec le bouton droit sur un titre de jeu installé. Dans le champ «Options de lancement», ajoutez la commande suivante pour activer Mangohud pour ce jeu:

$ mangohud% Command%

Par défaut, Mangohud montre des métriques de jeu détaillées, comme indiqué dans l'animation ci-dessus. Si vous souhaitez personnaliser la taille et la disposition de la superposition, vous pouvez modifier son vaste fichier de configuration en suivant les instructions officielles disponibles ici.