Guide de l'accélération 3D matérielle
1.
Introduction
Qu'est-ce que l'accélération 3D matérielle et pourquoi en voudrais-je ?
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'Xorg
prend en charge 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.
Comment disposer de l'accélération 3D matérielle ?
Dans de nombreux cas, il existe à la fois des pilotes binaires et des pilotes
libres. Les pilotes libres sont préférables puisque nous utilisons Linux et que
le logiciel libre est l'un de ses principes sous-jacents. Parfois, les pilotes
binaires sont les seuls disponibles, en particulier quand votre carte graphique est si récente que des pilotes Open Source n'ont encore pu être écrits pour prendre en charge ses fonctionnalités. Les pilotes binaires sont inclus dans x11-drivers/nvidia-drivers pour les cartes nVidia et
x11-drivers/ati-drivers pour les cartes ATI.
Qu'est-ce que DRI ?
L'Infrastructure de Rendu Direct,
ou DRI (« Direct Rendering Infrastructure »), est une architecture
qui permet d'accéder aux fonctions matérielles des cartes graphiques de
manière sûre et efficace. Elle entraîne des changements du serveur X, de plusieurs
bibliothèques clientes et du noyau. La première grande utilisation de DRI est
la création d'implémentations rapides d'OpenGL.
Qu'est-ce que le DRM et quelle est sa relation avec l'Xorg
normal ?
Le DRM (« Direct Rendering Manager ») est une amélioration
d'Xorg qui ajoute l'accélération 3D aux cartes en fournissant le module du noyau
nécessaire au Rendu Direct.
Objectif
Ce guide est destiné aux personnes qui ne peuvent faire fonctionner le
Rendu Direct avec seulement Xorg. Le DRM fonctionne avec les pilotes suivants :
- 3dfx
- intel
- matrox
- nouveau
- rage128
- radeon
- mach64
- sis300
- via
Visitez le site DRI
pour plus d'informations et de documentation.
2.
Installez Xorg et configurez votre noyau
Installez Xorg
Veuillez lire notre guide de configuration
d'Xorg pour installer et lancer Xorg.
Configurez votre noyau
Trouvez le nom/modèle de votre jeu de composants (chipset) et activez
seulement celui-ci.
Exemple de code 2.1 : trouver le nom/modèle de votre jeu de composants AGP |
# emerge pciutils; lspci | grep AGP
# 00:01.0 PCI bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 03)
|
Si votre jeu de composants n'est pas pris en charge par le noyau, vous devriez
essayer de lui passer le paramètre agp=try_unsupported de sorte que le
noyau utilise les routines génériques d'Intel pour la prise en charge d'AGP. Pour
ajouter ce paramètre, modifez le fichier de configuration de votre chargeur de
démarrage.
La plupart des noyaux, sinon tous, devraient avoir ces options. Ceci a été
configuré en utilisant un noyau standard gentoo-sources.
Exemple de code 2.2 : configurer le noyau |
# ls -l /usr/src/linux
lrwxrwxrwx 1 root root 22 2007-02-14 20:12 /usr/src/linux -> linux-2.6.18-gentoo-r4
# cd /usr/src/linux
# make menuconfig
|
Exemple de code 2.3 : les options de make menuconfig |
Processor type and features --->
<*> MTRR (Memory Type Range Register) support
Device drivers --->
Graphics support --->
<M> /dev/agpgart (AGP Support) -->
<M> Intel 440LX/BX/GX, I8xx and E7x05 support
<M> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) -->
<M>
|
Compilez et installez votre noyau
Exemple de code 2.4 : compiler et installer le noyau |
# make && make modules_install
|
N'oubliez pas de configurer votre fichier grub.conf ou
lilo.conf et de lancer /sbin/lilo ensuite si vous
utilisez LILO.
Ajout des utilisateurs au groupe video
Maintenant, ajoutez vos utilisateurs au groupe video, en suivant les consignes du manuel:
Exemple de code 2.5 : ajouter un utilisateur au groupe video |
# gpasswd -a username video
|
3.
Configuration du Rendu Direct
Configuration de Xorg
Fort heureusement, le fait d'ajouter l'utilisateur au groupe video suffit à activer le rendu direct. Cependant, vous pouvez aussi avoir besoin de créer un fichier dans le répertoire
/etc/X11/xorg.conf.d/. Vous pouvez le nommer selon votre goût ; assurez-vous seulement que son nom se termine par .conf. Lancez votre éditeur de texte favori et créez un fichier contenant ceci :
Exemple de code 3.1 : /etc/X11/xorg.conf.d/10-dri.conf |
Section "Device"
Driver "radeon"
EndSection
Section "dri"
Mode 0666
EndSection
|
Modification à apporter à /etc/conf.d/modules
Vous devrez ajouter le nom du module qui prend en charge votre carte à
/etc/conf.d/modules pour empêcher ce dernier d'être chargé automatiquement au démarrage du système.
Exemple de code 3.2 : éditer /etc/conf.d/modules |
modules="intel-agp"
|
Note :
si vous avez compilé agpgart en tant que module, il vous faudra
également l'ajouter au fichier
/etc/conf.d/modules.
|
4.
Testez l'accélération 3D
Redémarrez avec votre nouveau noyau
Redémarrez avec votre nouveau noyau et connectez-vous en tant qu'utilisateur
normal. Il est temps de voir si vous disposez du Rendu Direct et quel en est le
bénéfice. glxinfo et glxgears se trouvent dans le paquet
mesa-progs, assurez-vous donc qu'il est installé avant de pouvoir
exécuter ces commandes.
Exemple de code 4.1 : tester le rendu |
$ startx
$ glxinfo | grep rendering
direct rendering: Yes
$ glxgears
|
Note :
votre nombre de trames par seconde (FPS) peut être limité par le taux de
rafraîchissement de votre écran, donc gardez ceci en tête si glxgears ne
vous donne une information que pour de taux allant de 70 à 100 trames par seconde. games-fps/ut2004-demo ou d'autres
jeux 3D sont des meilleures outils de test, puisqu'ils peuvent vous informer des performances réelles.
|
Obtenez le maximum du Rendu Direct
Si vous souhaitez régler encore plus d'options, consultez la matrice des
fonctionnalités sur le site Web du DRI, ou encore la liste des
fonctionnalités du pilote DRI sur Sourceforge.
5.
Dépannage
Cela ne fonctionne pas. Je n'ai pas de DRI et ne peux expliquer
pourquoi.
Essayez modprobe radeon avant de démarrer le serveur X (remplacez
radeon par le nom de votre pilote). Essayez aussi de compiler agpgart
directement dans le noyau au lieu de le laisser sous forme de module.
Quand je lance startx, j'ai cette erreur : « [drm] failed to
load kernel module agpgart »
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.
J'ai une Radeon et je veux la sortie TV.
Les pilotes développés au sein du projet GATOS ont été intégrés au code source de Xorg.
Il n'y a donc rien à faire de spécial pour avoir la sortie TV, l'installation du paquet
x11-drivers/xf86-video-ati suffira.
Cela ne fonctionne pas. Ma carte est tellement nouvelle qu'elle n'est
pas du tout prise en charge !
Essayez les pilotes binaires. Pour les cartes AMD, utilisez les pilotes ati-drivers, une liste
est disponible sur
http://support.amd.com/us/gpudownload/Pages/index.aspx. Si ceux-ci
ne prennent pas votre carte en charge, utilisez fbdev. C'est lent, mais ça marche.
J'ai une carte PCI et cela ne fonctionne pas. A l'aide !
Créez un fichier dans le répertoire /etc/X11/xorg.conf.d/; nommez-le comme vous voulez mais avec un nom se terminant par .conf. Ajoutez-y ceci :
Exemple de code 5.1 : /etc/X11/xorg.conf.x/10-pcimode.conf |
Section "Device"
Option "ForcePCIMode" "True"
EndSection
|
6.
Références
- http://forums.gentoo.org/viewtopic.php?t=46681
- http://forums.gentoo.org/viewtopic.php?t=29264
- http://dri.freedesktop.org/
Retour des utilisateurs
Pour vos suggestions, questions, etc., e-mail Donnie Berkholz.
Ce document est protégé par la licence Creative
Commons : Paternité - Partage des Conditions Initiales à
l'Identique 2.5.
|