Xorg-Intel, écran externe et performances
Le 17 December 2008 à 22:34.

Le pilote X11-intel (2.2.1) fournit en standard dans la Mandriva 2008 avait très bien fonctionné sur mon l'U810. Contrôle de luminosité, sortie VGA et même l'accélération 3D était au rendez-vous avec un glxgears affichant 655fps, ce qui était vraiment étonnant pour une si petite machine. Détail très pratique pour transformer la bestiole en petite console de jeu ou encore pour les amateurs du Regardez, je fais tourner mon bureau !!! cool, cool, cool... Wink.

Du coup, c'est avec la 2009.0 et la génération 2.4 de ce pilote, que les soucis ont commencés. Pour d'obscures raisons de câblage interne que je n'ai pas bien compris, la sortie vidéo n'était simplement plus reconnue comme VGA mais comme TV.... Détail quelque peu problématique pour une utilisation professionnelle, par exemple lors d'une présentation avec vidéo-projecteur. Et une plaie n'arrivant jamais seule, je me suis aussi aperçu que ces nouveaux pilotes souffraient en plus d'une énorme dégradation des performances.

Fort heureusement, Oui-Oui est au pays du libre, et l'équipe de développeurs est on ne peut plus réactive sur ce projet...

Le souci est en soit assez facile à mettre en évidence avec xrandr :

gaston$xrandr
Screen 0: minimum 320 x 200, current 1024 x 768, maximum 2048 x 2048
VGA disconnected (normal left inverted right x axis y axis)
LVDS connected 1024x600+0+0 (normal left inverted right x axis y axis) 0mm x
0mm
1024x600 59.9*+
800x600 85.1 72.2 75.0 60.3 56.2
640x480 85.0 72.8 75.0 59.9
720x400 85.0
640x400 85.1
640x350 85.1
TV-1 connected 1024x768+0+0 (normal left inverted right x axis y axis) 0mm x
0mm
1280x1024@60.00 60.0
1024x768 60.0*
1024x768@60.00 60.0
920x766@60.00 60.0
832x624@60.00 60.0
800x600 60.3
800x600@60.00 60.0
720x576@60.00 60.0
704x576@60.00 60.0
720x540@60.00 60.0
720x480@60.00 60.0
640x480 59.9
gaston$ 
Sortie de xrandr avec le pilote buggé

On voit ici le petit malaise avec une sortie "TV-1" fantôme et "VGA-1" officiellement désactivée. Je me suis donc fendu d'une remonté d'anomalie, exercice rendu repoussant par essence de par la présence de l'immonde Bugzilla. Et en attendant une éventuelle réaction, la "solution" temporaire fût simplement de récupérer l'ancien pilote sur la 2008.1 (version 2.2.1). Ceci fait la sortie était à nouveau prise en charge mais avec un nouveau problème : un affichage est brouillé sur l'écran externe lors d'un retour de veille.

Mais assez rapidement, l'équipe de développement du pilote a commencé à trouver des solutions (encore merci à eux), se traduisant par une série de patchs que je me suis appliqué à tester. Et les deux derniers ont fait mouche.

La solution définitive consiste donc à compiler soi-même le pilote dans sa toute dernière version (2.6.99). Pour ce faire, il est cependant nécessaire de compiler aussi libdrm car la version en standard dans Mandriva 2009.0 est trop ancienne. Cela nous donne le process suivant :

# compilation de libdrm
root#git clone git://anongit.freedesktop.org/git/mesa/drm
root#cd drm
root#./autogen.sh
root#./configure --prefix=/usr
root#make install
 
# compilation du pilote Intel
root#git clone git://git.freedesktop.org/git/xorg/driver/xf86-video-intel
root#cd xf86-video-intel
root#wget -O 21225.patch http://bugs.freedesktop.org/attachment.cgi?id=21225
root#patch -p1 < 21225.patch
patching file src/i830_sdvo.c
root#make install
root# 
compilation de xorg-intel et libdrm

Et après redémarrage de X, la sortie VGA fonctionne très bien et ce de manière systématique, premier succès.

gaston$xrandr
Screen 0: minimum 320 x 200, current 1280 x 1024, maximum 1280 x 1024
VGA disconnected (normal left inverted right x axis y axis)
LVDS connected (normal left inverted right x axis y axis)
1024x600 59.9 +
800x600 85.1 72.2 75.0 60.3 56.2
640x480 85.0 72.8 75.0 59.9
720x400 85.0
640x400 85.1
640x350 85.1
VGA-1 connected 1280x1024+0+0 (normal left inverted right x axis y axis) 376mm x 301mm
1280x1024 60.0*+ 74.9 75.0 71.9 59.9
1152x864 75.0 74.8
1024x768 75.1 70.1 60.0
832x624 74.6
800x600 72.2 75.0 60.3
640x480 75.0 72.8 66.7 60.0
720x400 70.1
640x350 70.1
gaston$ 
Sortie de xrandr avec le pilote corrigé

Mais l'histoire ne s'arrête pas là. En effet le soucis d'affichage brouillé est lui aussi réglé car... il n'y a plus d'affichage... En réalité l'écran est bien allumé mais c'est son éclairage qui reste éteinte. Et j'ai eu beau essayer tous les quirks de pm-utils, rien n'y a fait.

La solution est venue de manière indirecte, en cherchant à régler cet autre problème de performances. En effet, depuis la version 2.5, je constate une nette dégradation avec plus de 4 secondes d'écart pour gtkperf entre la 2.2.1 (qui durait 26s) et la 2.5.1, et 9 secondes avec la 2.6.99...

Après avoir mouliné le net, j'ai découvert que le problème venait de la très nouvelle accélération 2D EXA qui vient remplacer l'ancienne XAA. La première option a donc été d'ajouter Option "AccelMethod" "XAA" à la section device dans /etc/X11/xorg.conf, ce qui a confirmé l'hypothèse avec des performances revenant à la normale.

En investiguant un peu plus, il semblerait que le problème viennent d'un souci lors de l'allocation de trop nombreux petits pixmaps en mémoire, ce qui semble confirmé par le fait que les tests les plus impactés sont ceux dessinant du texte. Une solution est de modifier la section device en ajoutant cette fois deux options aussi magiques que non documentées dans le man intel :

Option "AccelMethod" "EXA"
Option "ExaNoComposite" "false"
Option "MigrationHeuristic" "greedy"
dans la section device de /etc/X11/xorg.conf

Et effectivement après redémarrage, les performances sont revenues à la normale avec 23s, comme le montre le graphique (2.6.99++ utilisant les options magiques).

Et pour terminer, effet de bord un peu surprenant, avec ces options, le retour de mise en veille se fait maintenant sans aucun problème... Allez comprendre...

Commentaires

tuxce, le 18 décembre, 2008 - 15:32

C'est le grand souci de x.org à mon avis, il n'y a pas assez de doc malheureusement (mais je pense que c'est plus un souci du site que de l'existence de doc Smiling), j'ai mis un temps fou à trouver qu'ils avait basculé vers exa entre le 2.2 et le 2.4 (sans parler de l'obligation d'aller voir les sources pour trouver les bonnes clés hal concernant l'auto détection du 1.5).

D'ailleurs, dans ce que j'ai pu lire, le composite est plutôt activé par:

Section "Extensions"
    Option "Composite" "enable"
EndSection

ce qui est le cas sur la 945 du msi wind.
ou alors, c'est 2 fonctions différentes ?

Bref, ayant parfois un souci d'affichage brouillé, je vais aussi aller faire un tour du côté des 2.6, merci pour le détail de l'article Wink

Ulhume, le 18 décembre, 2008 - 19:20

L'affichage brouillé je pense que cela vient d'une mauvaise recalibration du pixel timing au retour de veille.

Pour le composite, l'option ExaNoComposite complète option composite en disant si on l'utilise avec EXE ou pas. Maintenant je crois que ce qui a surtout changé les perfs c'est le fameux "greedy".

Poster un nouveau commentaire

Si vous avez détecté une erreur, coquille ou bêtises du même ordre, merci de plutôt passer par le formulaire de contact
Pour vous abonner au flux des commentaires sur cet article, clickez ici.
Pour répondre à quelqu'un, utilisez plutôt le lien répondre qui se trouve en haut (ou en bas) à gauche de son commentaire.
Le contenu de ce champ sera maintenu privé et ne sera pas affiché publiquement. Si vous avez un compte gravatar, l'utilisez pour afficher votre avatar.
  • To highlight piece of code, just surround them with <code type="language"> Your code &tl;/code>>. Language can be java,c++,bash,etc... Everything Geshi support.
  • Tags HTML autorisés : <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <blockquote> <div> <p> <br>
  • Les lignes et les paragraphes vont à la ligne automatiquement.
  • Textual smileys will be replaced with graphical ones.
  • Les adresses de pages web et de messagerie électronique sont transformées en liens automatiquement.
  • Every instance of custom tags in the input text will be replaced with a specific tool shortcut.

Plus d'informations sur les options de formatage


Commentaires récents
Porte secrète