Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
nvidia_optimisation [Le 06/09/2008, 01:34] 92.134.129.2, 127.0.0.1 |
— (Version actuelle) | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | {{tag>matériel carte_graphique hoary breezy}} | ||
- | ---- | ||
- | Ubuntu (toutes Version) | ||
- | |||
- | |||
- | > **// Ce document est un peu ancien, néanmoins il contient quelques informations pouvant s'appliquer dans votre cas.//** | ||
- | |||
- | [[https://wiki.ubuntu.com/OptimizingNvidia|Traduit]] par [[utilisateurs:fredb | FredB]].\\ | ||
- | Remanié entièrement par [[utilisateurs:ostaquet]]. | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | ===== Optimiser le pilote NVidia ===== | ||
- | |||
- | 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é [[:hoary|Ubuntu Hoary 5.04]]. | ||
- | * Le pilote ''nvidia'' est correctement installé (voir [[:nvidia|cette page]]). | ||
- | |||
- | Pour examiner le gain, il vous suffit de lancer ''glxgears -iacknowledgethatthistoolisnotabenchmark''((Traduction: J'accepte que cet outil n'est pas un banc d'essai.)) (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 | Envy]]. | ||
- | |||
- | ===== Avertissement et précautions ===== | ||
- | |||
- | **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 : | ||
- | |||
- | <code> | ||
- | 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 | ||
- | </code> | ||
- | |||
- | 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) : | ||
- | |||
- | <code> | ||
- | 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 | ||
- | </code> | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | ===== Rassembler des informations ===== | ||
- | |||
- | 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 : | ||
- | |||
- | <code> | ||
- | cat /proc/driver/nvidia/cards/0 | ||
- | </code> | ||
- | |||
- | Vous obtenez le modèle de la carte, son IRQ et son type. Dans mon cas : | ||
- | <code> | ||
- | Model: GeForce4 MX 4000 | ||
- | IRQ: 10 | ||
- | Video BIOS: 04.18.20.38.d5 | ||
- | Card Type: AGP | ||
- | </code> | ||
- | |||
- | 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 : | ||
- | |||
- | <code> | ||
- | cat /proc/driver/nvidia/agp/card | ||
- | </code> | ||
- | |||
- | 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 : | ||
- | |||
- | <code> | ||
- | Fast Writes: Supported | ||
- | SBA: Supported | ||
- | AGP Rates: 2x 1x | ||
- | Registers: 0x1f000213:0x1f000100 | ||
- | </code> | ||
- | |||
- | 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 : | ||
- | |||
- | <code> | ||
- | cat /proc/driver/nvidia/agp/host-bridge | ||
- | </code> | ||
- | |||
- | Dans mon cas, j'obtiens les lignes suivantes : | ||
- | |||
- | <code> | ||
- | Host Bridge: VIA Technologies, Inc. VT82C693A/694x [Apollo PRO133x] | ||
- | Fast Writes: Not Supported | ||
- | SBA: Supported | ||
- | AGP Rates: 2x 1x | ||
- | Registers: 0x1f000203:0x00000100 | ||
- | </code> | ||
- | |||
- | 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 !) : | ||
- | |||
- | <code> | ||
- | lspci | grep VGA | grep nVidia | ||
- | </code> | ||
- | |||
- | Dans mon cas, j'obtiens la ligne suivante : | ||
- | |||
- | <code> | ||
- | 0000:01:00.0 VGA compatible controller: nVidia Corporation NV18 [GeForce4 MX 4000 AGP 8x] (rev c1) | ||
- | </code> | ||
- | |||
- | 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. | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | ===== Optimiser votre pilote Nvidia ===== | ||
- | |||
- | 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 : | ||
- | |||
- | <code> | ||
- | gksudo gedit /etc/X11/xorg.conf | ||
- | </code> | ||
- | |||
- | Dans ce fichier : | ||
- | |||
- | * mettez la ligne ''Load "dri"'' en commentaires dans la section ''Module''. | ||
- | |||
- | <code> | ||
- | Section "Module" | ||
- | [...] | ||
- | #Load "dri" | ||
- | [...] | ||
- | EndSection | ||
- | </code> | ||
- | |||
- | * 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. | ||
- | |||
- | <code> | ||
- | Section "Device" | ||
- | Identifier "GeForce4 MX 4000" | ||
- | Driver "nvidia" | ||
- | BusID "PCI:1:0:0" | ||
- | Option "NvAGP" "3" | ||
- | VideoRam 65536 | ||
- | EndSection | ||
- | </code> | ||
- | |||
- | N'oubliez pas d'adapter le paramètre ''Device'' dans la section ''Screen'' | ||
- | au même paramètre que ''Identifier''. | ||
- | |||
- | Dans mon cas : | ||
- | |||
- | <code> | ||
- | Section "Screen" | ||
- | Identifier "Default Screen" | ||
- | Device "GeForce4 MX 4000" | ||
- | Monitor "AL1713" | ||
- | [...] | ||
- | EndSection | ||
- | </code> | ||
- | |||
- | === 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) : | ||
- | |||
- | <code> | ||
- | gksudo gedit /etc/X11/xorg.conf | ||
- | </code> | ||
- | |||
- | 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 : | ||
- | |||
- | <code> | ||
- | Section "Screen" | ||
- | Identifier "Default Screen" | ||
- | Device "GeForce4 MX 4000" | ||
- | Monitor "AL1713" | ||
- | DefaultDepth 16 | ||
- | [...] | ||
- | EndSection | ||
- | </code> | ||
- | |||
- | 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. | ||
- | |||
- | <code> | ||
- | sudo chmod 0666 /dev/nvidia* | ||
- | sudo chown root /dev/nvidia* | ||
- | </code> | ||
- | |||
- | === 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 [[http://www.google.be|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 : | ||
- | |||
- | <code> | ||
- | gksudo gedit /etc/modprobe.d/nvidia-kernel-nkc | ||
- | </code> | ||
- | |||
- | 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 : | ||
- | |||
- | <code> | ||
- | options nvidia NVreg_EnableAGPSBA=1 NVreg_EnableAGPFW=0 NVreg_ReqAGPRate=2 | ||
- | </code> | ||
- | |||
- | //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 <del>''/etc/hotplug/blacklist''</del> **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 : | ||
- | <code>cat /proc/driver/nvidia/agp/status</code> | ||
- | Vous devriez obtenir quelque chose du genre (fonction de votre matériel) : | ||
- | <code>Status: Enabled | ||
- | Driver: AGPGART | ||
- | AGP Rate: 2x | ||
- | Fast Writes: Disabled | ||
- | SBA: Enabled | ||
- | </code> | ||
- | |||
- | |||
- | ===== En cas de problèmes... ===== | ||
- | |||
- | Certaines personnes ont rapporté le fait que l'utilisation de l'option : | ||
- | |||
- | <code> | ||
- | Option "RenderAccel" "true" | ||
- | </code> | ||
- | |||
- | peut rendre le serveur X instable. Pensez à la remettre à ''false'' si vous constatez des //freezes// inhabituels de votre interface graphique. |