Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
nvidia_optimisation [Le 15/12/2011, 15:17]
127.0.0.1 modification externe
— (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:​ Je reconnais 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>​ 
-Dans Ubuntu 11.10 il faut taper 
-<​code>​ 
- cat /​proc/​driver/​nvidia/​gpus/​0/​information 
-</​code>​ 
-//Modifié par h2o64// 
- 
-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>​ 
-ou sur Jaunty 
-<​code>​ 
-gksudo gedit /​etc/​modprobe.d/​nvidia-kernel-nkc.conf 
-</​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. 
  • nvidia_optimisation.1323958649.txt.gz
  • Dernière modification: Le 01/04/2013, 16:12
  • (modification externe)