Avec l'accélération 3D matérielle, le rendu tri-dimensionnel utilise le processeur graphique de votre carte vidéo au lieu de consommer de précieuses ressources processeur pour afficher des images en 3D. On appelle également cela « accélération matérielle » par opposition à « accélération logicielle », car sans accélération matérielle, votre processeur est obligé de tout calculer lui-même en utilisant les bibliothèques de rendu Mesa, ce qui consomme une quantité non négligeable de puissance. Alors qu'XFree86 supporte de façon standard l'accélération matérielle 2D, il lui manque souvent son équivalent 3D. L'accélération 3D matérielle est appréciable dans des situations qui requièrent le rendu d'objets 3D comme les jeux, la CAO 3D ou la modélisation.
Dans de nombreux cas, il existe à la fois des pilotes binaires et des pilotes open-source. Les pilotes open-source sont préférables puisque nous utilisons Linux et que l'open-source est l'un de ses principes sous-jacents. Parfois, les pilotes binaires sont les seuls disponibles, comme pour les cartes nVidia. Les pilotes binaires sont media-video/nvidia-kernel et media-video/nvidia-glx pour les cartes nVidia, media-video/mgavideo pour les cartes Matrox et media-video/ati-drivers pour les cartes ATI. D'autres pilotes open-source sont media-video/kyro-kernel pour les cartes KyroII et media-video/ati-gatos qui essaie de supporter les capacités vidéo des cartes ATI de façon plus complète.
L'Infrastructure de Rendu Direct (
XFree-DRM est une
Ce guide est destiné aux personnes qui ne peuvent faire fonctionner le
Rendu Direct avec seulement XFree. XFree-DRM fonctionne pour les
pilotes 3dfx, gamma, i8x0, matrox, rage128, radeon, mach64 (pour
xfree-drm-4.3.0-r7) et pour la série des sis300. Puisque le
gestionnaire DRI (DRM - Direct Rendering Manager) des noyaux 2.4 ne
supporte pas XFree 4.3, le paquet xfree-drm est requis. Si vous
utilisez un noyau 2.6, son gestionnaire DRI supporte XFree 4.3 (le
paquet XFree-DRM Gentoo ne fonctionne pas encore sur les noyaux
2.6). Visitez le
Envoyez vos suggestions ou questions à
# emerge x11-base/xfree
Trouvez le nom/modèle de votre jeu de composants (chipset) et activez seulement celui-ci.
# emerge pciutils; lspci | grep AGP # 00:01.0 PCI bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 03)L'affichage sera probablement différent pour votre matériel.
La plupart des noyaux, sinon tous, devraient avoir ces options. Ceci a été configuré en utilisant gentoo-sources-2.4.20-r5.
# ls -l /usr/src/linux lrwxrwxrwx 1 root root 22 May 29 18:20 /usr/src/linux -> linux-2.4.20-gentoo-r5Faites en sorte que # cd /usr/src/linux # make menuconfig/usr/src/linux pointe vers votre noyau.
Processor type and features ---> <*> MTRR (Memory Type Range Register) support Character devices ---> <M> /dev/agpgart (AGP Support) [*] Intel 440LX/BX/GX and I815/I820/I830M/I830MP/I840/I845/I850/I860 supportActivez le support de votre jeu de composants au lieu de celui-ci. [ ] Direct Rendering Manager (XFree86 DRI support)
Soyez sûr que le gestionnaire DRI (DRM - Direct Rendering Manager)
est
# make dep && make clean bzImage modules modules_install # mount /boot # cp arch/i386/boot/bzImage /boot
Si vous souhaitez nommer votre noyau autrement, faites en sorte de le copier vers /boot/VotreNom à la place. N'oubliez pas de configurer votre fichier grub.conf ou lilo.conf et de lancer /sbin/lilo ensuite si vous utilisez LILO.
# ACCEPT_KEYWORDS="~x86" emerge xfree-drm
Ouvrez
... Section "Module" Load "dri" Load "glx" ... EndSection ... Section "Device" Driver "radeon" ... EndSection ... Section "dri" Mode 0666 EndSection
Si vous utilisez un autre pilote, remplacez "radeon" par le vôtre.
Redémarrez avec votre nouveau noyau. Il est temps de voir si vous disposez du Rendu Direct et quel en est le bénéfice.
# startxInutile de charger les modules pour votre pilote ou pour agpgart si vous avez compilé agpgart comme module. Ils seront chargés automatiquement. # glxinfo | grep rendering direct rendering: YesS'il est indiqué "No", vous ne disposez pas de l'accélération 3D. # glxgearsTestez votre nombre de trames par secondes (FPS - Frames Per Second) pour la taille par défaut. Le nombre devrait être significativement plus élevé qu'avant l'installation d'xfree-drm. Faites ce test lorsque le processeur est en train de faire le moins de traitements possibles.
En premier lieu, vous devez vérifier si le paquet xfree-drm fonctionne. Si ce n'est pas le cas et que vous avez regardé vos journaux (logs) pour vous assurer qu'il n'y a pas d'erreur de configuration, vous pouvez considérer l'utilisation des sources CVS. Il existe aussi des images quotidiennes des pilotes si vous ne souhaitez pas compiler tout le CVS.
Vérifiez la liste DRI des
Suivez ce guide jusqu'à « Compilez et installez votre noyau ». Continuez
ensuite ici, nous suivons l'étape 6 du
Créez un répertoire pour stocker les fichiers CVS.
# cd ~ # mkdir DRI-CVS
Sortez les sources du CVS (checkout).
# cd ~/DRI-CVS # cvs -d:pserver:anonymous@cvs.dri.sourceforge.net:/cvsroot/dri login(appuyez sur ENTRÉE lorsqu'un mot de passe vous est demandé) # cvs -z3 -d:pserver:anonymous@cvs.dri.sourceforge.net:/cvsroot/dri co xcL'option -z3 fait en sorte que la compression soit utilisée pour réduire le temps de téléchargement.
Plus tard, vous voudrez sans doute mettre à jour votre copie locale des sources DRI pour obtenir les dernières modifications Ce peut être fait grâce à :
# cd ~/DRI-CVS # cvs -z3 update -dA xcL'option -d fait en sorte que les sous-répertoires soient créés. L'option -A fait en sorte que les sources principales soient téléchargées, pas les branches.
Plutôt que de mettre les fichiers objets et les bibliothèques directement
dans l'arborescence des sources, ils sont en réalité mis dans une
arborescence de
# cd ~/DRI-CVS # ln -s xc XFree40 # mkdir build; cd build # lndir -silent -ignorelinks ../XFree40
L'arborescence de compilation sera remplie avec des liens symboliques qui pointent vers l'arborescence des sources CVS. Les utilisateurs avancés peuvent ainsi avoir plusieurs arborescences pour compiler et tester avec des options différentes.
Le fichier
#define DefaultCCOptions -WallPour i386: #define DefaultGcc2i386Opt -O2Pour Alpha: #define DefaultGcc2AxpOpt -O2 -mcpu=ev6 (ou similaire)Pour toutes les architectures #define LibraryCDebugFlags -O2 #define BuildServersOnly YES #define XF86CardDrivers vga tdfx mga ati i810 #define LinuxDistribution LinuxRedHat #define DefaultCCOptions -ansi GccWarningOptions -pipe #define BuildXF86DRI YES /* Optionally turn these on for debugging */ /* #define GlxBuiltInTdfx YES */ /* #define GlxBuiltInMga YES */ /* #define GlxBuiltInR128 YES */ /* #define GlxBuiltInRadeon YES */ /* #define DoLoadableServer NO */ #define SharedLibFont NO
Regardez la ligne XF86CardDrivers pour être sûr que votre carte est listée. Si vous souhaitez activer les optimisations 3DNow! dans Mesa et dans les pilotes DRI, vous devriez ajouter ceci : #define MesaUse3DNow YESVous ne devez pas forcément utiliser un processeur AMD pour pouvoir activer cette option. Le DRI regardera si le support du 3DNow! est disponible au moment de l'exécution et l'activera si possible.
Si vous souhaitez activer les optimisations SSE dans Mesa et dans DRI, vous
devez mettre à jour votre noyau vers la version 2.4.x. Mesa vérifiera si SSE
est supporté par votre processeur et votre système d'exploitation, mais, pour
compiler Mesa à l'intérieur de DRI, vous devez avoir les en-têtes du noyau
Linux 2.4.x dans
#define MesaUseKatmai YES
Pour compiler l'arborescence DRI complète, faites :
# cd ~/DRI-CVS/build/xc/ # make World >& world.log
Il sera peut-être nécessaire de faire ce qui suit en fonction de ce que vous avez mis dans host.def :
# cd ~/DRI-CVS/build/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel # make -f Makefile.linux radeon.oRemplacez radeon par votre pilote.
Avec les options de compilation par défaut, il est normal de voir beaucoup d'avertissements pendant la compilation. La compilation prendra du temps ; vous voudrez peut-être regarder vos mails ou visiter slashdot (Ndt : ou bien linuxfr :-).
Avec votre éditeur de texte, cherchez des erreurs dans le fichier world.log indiquées par la chaîne « *** ».
Vérifiez que le(s) module(s) DRI du noyau ont été compilés :
# cd ~/DRI-CVS/build/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel; ls
Pour la Voodoo 3dfx, vous devriez trouver
Installez par-dessus votre installation XFree86 existante. Vous voudrez sans doute faire une sauvegarde de XFree.
# quickpkg xfreeCeci sauvegarde votre paquet XFree86. # make install
Suivez la section "Configurez XF86Config" précédemment décrite.
Pour charger le module DRM approprié dans votre noyau, copiez le
module dans
Quelques options peuvent améliorer les performances jusqu'à 30%
(voire plus) par rapport aux réglages par défaut. Réglez-les dans
Section "Device" Option "AGPMode" "4"Ceci a augmenté les trames par seconde (FPS) de 609 à 618. Option "AGPFastWrite" "True"Ceci n'a pas eu d'effet mesurable, mais peut accroître l'instabilité de votre ordinateur. Vous pourriez avoir également besoin de le régler dans votre BIOS. Option "EnablePageFlip" "True"Ceci a augmenté les trames par seconde (FPS) de 618 à 702. C'est également "risqué" mais peu de personnes ont eu des problèmes. ... EndSection
Si vous souhaitez régler encore plus de détails, regardez la
A chaque fois que vous recompilez votre noyau ou en prenez un nouveau, vous devez recompiler le module noyau. Notez que vous n'avez pas besoin d'installer à nouveau xfree mais vous devez par contre réinstaller xfree-drm.
Essayez
C'est parce que vous avez compilé agpgart dans le noyau au lieu de le mettre en module. Ignorez ce message sauf si vous avez des problèmes.
Vous n'êtes pas en train d'utiliser le pilote xfree-drm. Vérifiez si vous avez compilé DRM et le pilote dans le noyau ; vous ne devriez pas.
Jetez un œil aux pilotes ati-gatos (
Essayez les pilotes binaires. Pour les pilotes ati-drivers, une liste
est disponible sur
Dans la section « Device », activez ForcePCIMode.
Option "ForcePCIMode" "True"