====== DRI sur une radeon 9100 ====== ===== Objectifs ===== Ce document décrit la marche à suivre pour utiliser pleinement sa carte graphique (ici radeon 9100) pour utiliser l'accélération matérielle, mais permet aussi de savoir trouver les infos pour les autres cartes. ===== Connaître le matériel ===== Pour connaître précisément sa carte graphique une simple commande suffit : /sbin/lspci | grep VGA 02:00.0 VGA compatible controller: ATI Technologies Inc Radeon R200 QM [Radeon 9100] Ici la carte est une **ATI**, plus précisément une **Radeon R200**, et le bus qu'elle utilise à l'id **02:00.0**. C'est le nom du chipset, **R200**, qui va nous servir pour la suite. ===== Configurer xorg ===== Comme à l'habitude on lance en root xorgconfig Puis on répond aux questions posées jusqu'à arriver au choix : Do you want to look at the card database? où on répond **y** pour "yes". === quel pilote ? === La liste qui suit se présente comme suit ''"identifiant" "nom de la carte" "driver"'' Notre carte est donc une **radeon 9100** équipé d'un chipset **R200**, le choix de l'identifiant numéro 6 semble faire l'affaire **ATI (generic) [ati]** ou bien si on se veut plus précis on opte pour le choix 7 **ATI Radeon (generic) [radeon]**. Mais comment faire le bon choix ? Chaque driver (dans notre cas **ati** ou **radeon**) a une page de manuel, et donc un simple man ati nous répondra que le drivers **ati** est le "driver générique" pour les cartes ATI qui va détecter quelle carte est installée et ainsi charger le pilote approprié (soit **radeon**, **r128** ou **atimisc**). C'est à priori le bon choix. (NdR: j'utilise le driver **radeon**, ça ne change rien). Puis un man radeon nous confirmera que ce driver est à utiliser pour les cartes à base de chipset **R200** et va nous régaler de pléthore d'options croustillantes. Nous voilà déjà bien avancé. On finit de répondre aux questions de **xorgconfig** et on enregistre le fichier **/etc/X11/xorg.conf**. À ce stade, X se lance sans soucis, mais on n'a pas encore l'accélération matérielle. Ça peut se vérifier par la commande glxinfo | grep rendering direct rendering: No On peut aussi vérifier le faible score de **glxgears** qui devrait faiblement plafonner à 200 ou 300fps. === l'accélération matérielle === On édite le fichier **/etc/X11/xorg.conf** et on rajoute la section **DRI** Section "DRI" Mode 0666 EndSection (Remarque : le Mode correspond au droit d'exécution de DRI, il se peut donc que ça soit un trou de sécurité de mettre les droits 0666). On sauvegarde et on relance X, et on se rend bien compte en refaisant le test de **glxinfo** que le DRI est activé, et que **glxgears** avoisine les 1000fps. Ce nombre de fps (Frame Per Second, ou Image Par Seconde) est simplement indicatif, car **glxgears** n'est pas un benchmark. === plus en avant dans les détails, pour gagner quelques fps === En effet, ceci est la configuration de base, mais on peut gagner quelques fps sur glxgears. Lançons la page de manuel de radeon, que nous apprend elle ? Option "AGPMode" "integer" Tiens donc, à quelle vitesse est mon port AGP actuellement ? grep "Using AGP" /var/log/Xorg.0.log (**) RADEON(0): Using AGP 1x En 1x ! Alors que ma carte mère et ma radeon supporte le 4x ! Qu'à cela ne tienne, on édite à nouveau **/etc/X11/xorg.conf**, on retrouve la **Section "Device"** (c'est elle qui comprend la ligne chargeant le driver) et on rajoute l'option **AGPMode** : Section "Device" Identifier "Ati Radeon9100 (r200) QM" Driver "radeon" Option "AGPMode" "4" EndSection À nouveau, on relance X et on relance **glxgears**, on voit qu'on a gagner quelques fps. Si ce n'est pas le cas il faut vérifier dans **/var/log/Xorg.0.log** qu'on est bien passé en 4x grep "Using AGP" /var/log/Xorg.0.log (**) RADEON(0): Using AGP 4x On continue dans la page de manuel de radeon et on tombe sur Option "EnablePageFlip" "boolean" dont le défaut est **off**. On rajoute cette option toujours dans **section "Device"** de notre **/etc/X11/xorg.conf** Section "Device" Identifier "Ati Radeon9100 (r200) QM" Driver "radeon" Option "AGPMode" "4" Option "EnablePageFlip" "on" EndSection On relance X, et on re-teste les fps ! W00t! 2200 fps ! En voilà de l'option qui va bien ! On continue dans le man, ainsi de suite, en testant une à une les options. //__Remarque :__ il vaut mieux ajouter/modifier 1 option à la fois, et tester son utilité. En effet, si on rajoute trop d'options à la fois il sera plus dur en cas de pertes de performances ou plantage de savoir laquelle est en cause.// ===== Conclusion ===== Même si ce document ne couvre que la configuration d'une carte **ATI Radeon 9100** (ou plutôt d'une carte à base de chipset **R200**), la démarche est la même pour toutes les cartes : * identifier le matériel. * trouver la doc correspondante. * faire des batteries de tests. ===== Avertissements ===== Il arrive que certaines options ne soient pas compatible avec votre matériel ou marche mal. C'est le cas chez moi pour l'option **AGPFastWrite** qui me freeze X et m'oblige à faire un hard reboot. Il faut donc les tester une à une afin de savoir facilement d'où vient l'éventuel soucis. D'autres options n'ont pas étaient citées car elle ont par défaut la bonne valeur, c'est par exemple le cas de l'option **ColorTiling**. DRI peut aussi être optimisé, et ce sans passer par xorg. Je vous invite à vous pencher sur http://dri.freedesktop.org/wiki/ et sur l'utilitaire associé DriConf et de faire partager vos tests. ===== Requête/TODO ===== Il y a des options dont je ne comprends pas le sens, comme **AccelMethod** et **AccelDFS** qui en découle, ... Comme c'est un wiki, vos retours d'expériences et vos améliorations, commentaires, corrections, sont donc les bien venus ;) Il doit exister de véritables benchmarks, je n'en ai pas cherché. Encore une fois, profitez du wiki :)