Cette page n'a pas encore d'étiquettes.
Apportez votre aide…

Ceci est une ancienne révision du document !



  Ubuntu (toutes Version)
Ce document est un peu ancien, néanmoins il contient quelques informations pouvant s'appliquer dans votre cas.

Traduit par FredB.
Remanié entièrement par ostaquet.

Le but de cet article est de vous présenter certaines optimisations pouvant être réalisées avec une carte graphique NVidia.

Les informations qui suivent sont rédigées sur base des faits suivants :

  • Vous possédez une carte graphique NVidia connectée sur un port AGP.
  • Vous avez installé Ubuntu Hoary 5.04.
  • Le pilote nvidia est correctement installé (voir cette page).

Pour examiner le gain, il vous suffit de lancer glxgears -iacknowledgethatthistoolisnotabenchmark1) (ou, pour la version courte: glxgears -printfps) dans une console avant et après l'optimisation. Dans mon cas, j'obtiens 260 FPS avant optimisation et 580 FPS après optimisation, donc un gain de vitesse de près de 160%.

Avec une TI4200, on passe de 858,2 FPS à 1137,6 soit un gain de performance de 32% (x1.32). (vous pouvez aussi avoir des résultats autour de 3300 FPS)

Avec une GeForce 7600 GT, les pilotes "nvidia-glx" suffisent largement, pas besoin d'optimisation, "glxgears -printfps" donne en moyenne 10350 FPS

Sur une NVIDIA 6200 l'évolution n'est pas très flagrante, et ne compense pas la prise de risque de la stabilité de votre système lors de cette optimisation. Une légère amélioration en installant votre pilote NVIDIA avec Envy.

Remarque : Les optimisations des cartes graphiques peuvent être source d'instabilité du système. N'utilisez pas ces techniques d'optimisation à moins d'être capable de revenir en arrière.

Avant de procéder aux quelques modifications qui suivent, je vous conseille de faire une copie de sauvegarde de votre fichier de configuration X.org par le biais de la commande suivante :

sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bak
sudo cp /etc/modprobe.d/nvidia-kernel-nkc /etc/modprobe.d/nvidia-kernel-nkc.bak

Si quelque chose tournait mal, vous pourrez toujours revenir à l'état précédent les optimisations avec la commande suivante (même sans interface graphique) :

sudo cp /etc/X11/xorg.conf.bak /etc/X11/xorg.conf
sudo cp /etc/modprobe.d/nvidia-kernel-nkc.bak /etc/modprobe.d/nvidia-kernel-nkc

Avant de faire quelques optimisations, il est nécessaire de connaître votre type de carte, ce que le chipset de votre carte mère est capable de faire,…

Dans le répertoire /proc/driver/nvidia se trouve toute une série d'informations utiles aux optimisations. Si ce répertoire n'existe pas sur votre système, c'est que le pilote NVidia n'est pas installé ou pas chargé.

A partir de ce répertoire, vous avez accès aux informations générales de votre carte comme son Identifier; via la commande suivante :

cat /proc/driver/nvidia/cards/0

Vous obtenez le modèle de la carte, son IRQ et son type. Dans mon cas :

Model:          GeForce4 MX 4000
IRQ:            10
Video BIOS:     04.18.20.38.d5
Card Type:      AGP

Dans ces quelques lignes, notez l'identifiant de votre carte; à savoir dans mon cas GeForce4 MX 4000.

Maintenant, nous allons nous renseigner sur la capacité de la carte via la commande suivante :

cat /proc/driver/nvidia/agp/card

Les informations importantes dans cette sortie sont le support ou non du Fast Writes et du SBA ainsi que les AGP Rates acceptés.

Voici ce que j'obtiens dans mon cas :

Fast Writes:  Supported
SBA:          Supported
AGP Rates:    2x 1x
Registers:    0x1f000213:0x1f000100

Cependant, bien que la carte supporte le Fast Writes et le SBA; il faut que le contrôleur AGP le supporte également. Pour vérifier ceci, vous pouvez entrer la commande suivante :

cat /proc/driver/nvidia/agp/host-bridge

Dans mon cas, j'obtiens les lignes suivantes :

Host Bridge:   VIA Technologies, Inc. VT82C693A/694x [Apollo PRO133x]
Fast Writes:   Not Supported
SBA:           Supported
AGP Rates:     2x 1x
Registers:     0x1f000203:0x00000100

Bon, dans mon cas, je ne pourrai pas activer le Fast Writes car bien que la carte le supporte, le contrôleur ne le supporte pas. Dans votre cas, ça sera surement différent (surtout si vous avez une machine récente). A vous de tenir compte de ces quelques informations pour les optimisations qui vont suivre.

(certaines cartes mère permettent d'activer/désactiver le Fast Writes dans le bios, s'il est désactivé, vous obtiendrez forcément un "Not supported", même si votre controleur AGP en est capable) note ajouté par Fenwick

Il nous reste une dernière chose à déterminer, le bus ID de la carte. Pour ce faire, introduisez la commande suivante (attention à la casse !) :

lspci | grep VGA | grep nVidia

Dans mon cas, j'obtiens la ligne suivante :

0000:01:00.0 VGA compatible controller: nVidia Corporation NV18 [GeForce4 MX 4000 AGP 8x] (rev c1)

Ce qui nous intéresse, ce sont les premiers chiffres; ils indiquent sur quel BusID se trouve la carte. Dans mon cas, le BusID est PCI:1:0:0.

Remarque: Les quatres premiers 0 de la ligne indiquent le contrôleur.

Pour les optimisations qui suivent, veuillez tenir compte que j'utiliserai les informations suivantes mais que vous devez utiliser les valeurs spécifiques à votre matériel (pour trouver ces valeurs, reportez vous à la section précédente).

  • Identifier : GeForce4 MX 4000
  • BusID : PCI:1:0:0
  • Videoram : 65536 (obtenu en multipliant la quantité de mémoire disponible sur la carte par 1024; dans mon cas 64Mo x 1024 = 65536).
  • NvAGP : 3 (voir détails ci-dessous).
  • SBA : Oui
  • FastWrites : Non (la carte le supporte mais pas le contrôleur)
  • AGP Rates : 2x (c'est la valeur maximum supportée par la carte et le contrôleur)

Je vous conseille de noter sur un bout de papier les valeurs correspondantes à votre matériel.

Concernant le paramètre NvAGP, ce paramètre indique quel est le pilote AGP GART à utiliser. Les valeurs autorisées sont les suivantes :

  • 0 : désactivation de l'AGP.
  • 1 : utilisation du pilote AGP GART NVidia.
  • 2 : utilisation du pilote AGP GART de l'OS (module agp.ko).
  • 3 : essaie d'utiliser le 2, sinon utilise le 1.

Etape 1 : Configuration de X.org pour mieux utiliser la carte

En éditant le fichier /etc/X11/xorg.conf, appliquez les changements suivants. Pour éditer ce fichier, vous pouvez entrer cette commande :

gksudo gedit /etc/X11/xorg.conf

Dans ce fichier :

  • mettez la ligne Load "dri" en commentaires dans la section Module.
Section "Module"
        [...]
        #Load   "dri"
        [...]
EndSection
  • ajoutez (ou modifiez l'existante) la section Device correspondante à votre carte graphique avec les informations suivantes (à adapter suivants les valeurs de vos paramètres) :

Il faut lire le fichier /usr/share/doc/nvidia-glx/README.txt.gz qui contient toute la documentation au sujet des options à mettre (ou pas) dans la section ci-dessous. Par sécurité (éviter les copier-coller), seul le minimum non-dangereux pour le matériel est mentionné ci-dessous.

Section "Device"
        Identifier      "GeForce4 MX 4000"
        Driver          "nvidia"
        BusID           "PCI:1:0:0"
        Option          "NvAGP"                 "3"
        VideoRam        65536
EndSection

N'oubliez pas d'adapter le paramètre Device dans la section Screen au même paramètre que Identifier.

Dans mon cas :

Section "Screen"
        Identifier      "Default Screen"
        Device          "GeForce4 MX 4000"
        Monitor         "AL1713"
        [...]
EndSection

Etape 2 : Changer la profondeur de couleur

Une optimisation simple et pourtant à laquelle on ne pense pas toujours est de diminuer le nombre de couleurs affichées (diminuer la profondeur de couleur).

La plupart du temps, on place la valeur à 24 bits. Cependant, les moniteurs habituels et les yeux ne voient pas autant de nuances. C'est pour cela qu'un passage à 16 bits ne se remarque pas trop en usage courant.

Sur certains systèmes, changer la profondeur de couleur de 24 à 16 bits peut quasiment doubler le nombre de trame par seconde.

Remarque importante : Si vous faites de la photographie, de l'infographie ou tout autre discipline nécessitant une fidélité absolue des couleurs (pour peu que votre moniteur reproduit fidèlement les couleurs), restez en 24 bits.

Editez le fichier /etc/X11/xorg.conf via la commande suivante (si vous avez sauvegardé et fermé le fichier lors de l'étape 1) :

gksudo gedit /etc/X11/xorg.conf

Dans la section Screen, il vous suffit de faire passer le paramètre DefaultDepth de 24 à 16. Dans mon cas, la section Screen ressemble à ceci :

Section "Screen"
        Identifier      "Default Screen"
        Device          "GeForce4 MX 4000"
        Monitor         "AL1713"
        DefaultDepth    16
        [...]
EndSection

Sauvegardez le fichier et fermez l'éditeur.

Etape 3 : Résolvez les erreurs de permission et accroissez les performances

Certaines personnes ont eu des problèmes de permission avec certains jeux lors de l'utilisation de l'accélération 3D. Avec ces deux commandes, vous devriez pouvoir résoudre ces problèmes.

sudo chmod 0666 /dev/nvidia*
sudo chown root /dev/nvidia*

Etape 4 : Activer FastWrite, SBA et AGP Rate

Quelques informations :

  • SBA (Side Board Adressing) : Les performances de l'AGP viennent en partie du SBA (Side Board Adressing) qui permet de charger les données sur le bus AGP, et d'employer le bus PCI pour les signaux de contrôle (8 broches).
  • FastWrite : Fonctionnalité de la norme AGP qui permet l'écriture rapide sur le port AGP, pour les détails, veuillez consulter Google, ce n'est pas le sujet de ce wiki … ;-)
  • AGP Rate correspond au type d'AGP : 2x, 4x, 8x,…

N'oubliez pas de ne jamais activer une optimisation si votre carte ou votre controleur ne la supporte pas !!!

Pour activer ces optimisations, il vous faut éditer le fichier /etc/modprobe.d/nvidia-kernel-nkc par le biais de la commande suivante :

gksudo gedit /etc/modprobe.d/nvidia-kernel-nkc

ou sur Jaunty

gksudo gedit /etc/modprobe.d/nvidia-kernel-nkc.conf

Ajoutez cette ligne à la fin du fichier en tenant compte de votre matériel !!!

Dans mon cas (c'est-à-dire SBA=oui, FastWrites=non, AGPRate=2x), cela donne cette ligne :

options nvidia NVreg_EnableAGPSBA=1 NVreg_EnableAGPFW=0 NVreg_ReqAGPRate=2

Chez moi, le mot-clé nvidia dans la ligne ci-dessus provoque une erreur au lancement de X, le supprimer permet le lancement du serveur X. [Hugolino].

Chez moi, même problème mais supprimer le mot-clé nvidia dans la ligne ci-dessus ne permet plus d'activer les options. [Bluetr@in].

Sauvegardez le fichier et fermez l'éditeur.

Parfois, vous devez ajouter agpgart et via-agp à la fin du fichier /etc/hotplug/blacklist attention maintenant c'est "/etc/modprobe.d/blacklist".

Etape 5 : Redémarrer le système

Etape 6 : Vérifier que les mises à jour ont été effectuées

Il suffit de lancer la commande suivante :

cat /proc/driver/nvidia/agp/status

Vous devriez obtenir quelque chose du genre (fonction de votre matériel) :

Status:          Enabled
Driver:          AGPGART
AGP Rate:        2x
Fast Writes:     Disabled
SBA:             Enabled

Certaines personnes ont rapporté le fait que l'utilisation de l'option :

Option          "RenderAccel"           "true"

peut rendre le serveur X instable. Pensez à la remettre à false si vous constatez des freezes inhabituels de votre interface graphique.


1)
Traduction: Je reconnais que cet outil n'est pas un banc d'essai.
  • nvidia_optimisation.1254632138.txt.gz
  • Dernière modification: Le 18/04/2011, 14:51
  • (modification externe)