~rom1v/blog { un blog libre }

Améliorer les performances nvidia sous compiz-fusion

Ce billet s’adresse aux possesseurs de carte graphique nvidia qui utilisent compiz-fusion.

Tout d’abord, pour que compiz prennent en compte les paramètres de nvidia-settings au démarrage (vblank, anti-aliasing, anisotropic…), il faut que la commande nvidia-settings -l soit exécutée avant le lancement de compiz.

Pour cela, j’ai proposé un patch qui consiste à rajouter un fichier dans /etc/X11/Xsession.d, en espérant qu’il soit intégré à la version finale d’Intrepid.

En attendant, le plus simple est de rajouter la ligne dans ~/.gnomerc (créer le fichier s’il n’existe pas) :

nvidia-settings -l

NB: l’anti-aliasing provoque quelques problèmes avec compiz.

Maintenant, que la configuration de nvidia-settings est prise en compte, optimisons les performances.

Pour cela, toujours dans ~/.gnomerc, il faut rajouter la ligne :

nvidia-settings -a InitialPixmapPlacement=2 -a GlyphCache=1

Et dans /etc/X11/xorg.conf, dans la Section "Device" correspondant à la carte graphique, il faut rajouter :

    Option     "PixmapCacheSize" "1000000"
    Option     "AllowSHMPixmaps" "0"

ce qui donne, chez moi :

Section "Device"
    Identifier "Configured Video Device"
    Driver     "nvidia"
    Option     "NoLogo" "True"
    Option     "PixmapCacheSize" "1000000"
    Option     "AllowSHMPixmaps" "0"
EndSection

puis redémarrer le serveur X.

Rassurez-vous, je n’ai pas inventé toutes ces modifications, elles sont fortement recommandées par nvidia, en attendant d’avoir les bonnes valeurs par défaut dans une version future. Plus d’infos ici.

Voici une amélioration directe suite à ces modifications : dans ccsm, si dans le plugin “redimensionner la fenêtre” le mode de redimensionnement est sur l’option “Normal”, les redimensionnements de fenêtres sont très très lents. C’est pour cela que j’utilisais plutôt le mode “Stretch”.

Après les modifications, les performances sont beaucoup plus correctes (ça n’est pas parfait, mais c’est déjà ça).

Commentaires

Anonymous

Apparement cela ne fonctionne qu avec le nouveau driver 177.67 en Beta, non ?

Mais peut etre que je me trompe !

rcspam

Oni

Je viens d’essayer avec la version 173.14.12 des drivers Nvidia et X plante au lancement de Compiz fusion après d’avoir fait nvidia-settings -a InitialPixmapPlacement=2 -a GlyphCache=1 et je constate pas vraiment d’amélioration quand j’ajoute les options dans xorg.conf (je suis à ~85 fps dans le benchmark de compiz-fusion après les modifications donc…)

Stéphane

Bonjour,

Chez moi avec la version Beta, j’ai été obligé de supprimer la ligne nvidia-settings -a… dans ~/.gnomerc car avec Avant Windows Manager fonctionnait à 2 à l’heure.

J’ai laissé les options d’optimisation dans xorg.conf. Même si je n’ai pas vu d’amélioration flagrante c’est à l’usage que je verrai si va marche mieux ou non.

Merci pour l’info.

Michael

Ça fait quand même un peu bidouille à la MS/DOS, ce genre de choses.

Ce genre de hack n’aide pas à rendre le libre accessible à tous, et aussi longtemps que nvidia persisteras à ne pas collaborer correctement avec le monde du libre ( cad en fournissant des specs, ce genre de choses ), on devra en passer par la, et dépendre de leur bon vouloir, ou devoir perdre du temps à integrer des hacks à gauche et à droite au lieu de faire avancer le libre.

L’article d’un dev kde (http://vizzzion.org/?blogentry=819) résume bien le probléme, et perso, je trouve ça un peu triste, non ?

®om

Je suis totalement d’accord avec toi michael, le mieux serait de ne pas avoir à faire de telles manips, et que nvidia ouvre ses specs.

Mais bon on a l’habitude, c’est toujours les produits non ouverts qui ralentissent le développement (flash, nvidia, etc.), dont malheureusement il est difficile de se passer.

kikislater

Ces améliorations degradent les performances avec les drivers 173.14.12 et une 7300 go. Je déconseille !

Les commentaires sont fermés.