Scripts et Programmation

Améliorer les performances des jeux sous Linux

Cet article a été mis à jour, vous consultez ici une archive de cet article!
Table des matières

Introduction





Il peut être intéressant, pour les "gamers" d'avoir de bonnes performances en jeu.

Cette astuce est notamment valable si vous utilisez un jeu prévu initialement sous Windows, et que vous jouez avec Wine.



Les ordinateurs portable récents utilisent la technologie Optimus, c'est à dire que la carte NVidia n'est utilisée qu'en cas de demande forte de 3D; le reste du temps, c'est le chipset graphique Intel (intégré au processeur Intel i5 ou i7 qui fait l'affichage).

Le pilote NVidia supportant uniquement la technologie Optimus, il faut donc avoir installé bumblebee pour utiliser la carte NVidia.




Le but du script, sera dans un premier temps de lancer un nouveau serveur graphique, avec aucune application lancée dedans, ni effets 3D (de KDE par exemple).

Ensuite, de lancer le jeu uniquement dans ce serveur graphique.

Ainsi, toute la puissance de la 3D sera dans ce serveur graphique, pour notre jeu, puisque seul notre jeu est lancé dans ce serveur graphique.



Ce second serveur X est généralement accessible via la combinaison de touches Ctrl+Alt+F8.

Pour revenir au serveur graphique par défaut, cela se fera par Ctrl+Alt+F7.





Prérequis





J'utilise la commande sudo pour lancer un deuxième serveur X, puisque seul root est habilité à lancer un serveur X.





Modifier le fichier /etc/sudoers,en remplaçant $USER par votre nom d'utilisateur.



Code BASH :
$USER ALL=(ALL) NOPASSWD:/usr/bin/X 




Le Script





Dans mon exemple, la commande sudo est la commande permettant d'avoir les privilèges root le temps de lancer le deuxième serveur X.

La commande optirun précédant la commande wine est obligatoire si vous avez installé bumblebee (carte NVidia Optimus).

Code BASH :
DISPLAY=:3 optirun wine /chemin/du/jeu.exe


La commande wine est le logiciel à lancer. Si le jeu n'utilise pas WINE, mettre le nom de l'exécutable du jeu directement. Remplacer wine par wine64 si l'application à émuler par WINE est une application 64bits.



Code BASH :
#!/bin/bash
 
export WINEPREFIX="$HOME/.wine/" #On exporte le profile WINE (si l'application est une application à lancer par WINE, sinon inutile)
 
sudo X :3 -ac -terminate &   # Lance sur un nouveau serveur X affichage 3
sleep 1 #On temporise d'une seconde, pour s'assurer que le nouveau serveur X est bien lancé.
DISPLAY=:3 wine /chemin/du/jeu.exe #On lance notre super jeu avec DISPLAY=:3 <commande pour lancer le jeu>