Guida all'accelerazione hardware 3D
1.
Introduzione
Cos'è l'accelerazione hardware 3D e perchè abilitarla?
Con l'accelerazione 3D hardware il rendering tridimensionale usa il processore
grafico della propria scheda video invece di sfruttare preziose risorse della
cpu per disegnare immagini 3D. Si parla anche di accelerazione hardware
piuttosto che di accelerazione software perchè, senza questa accelerazione 3D,
la propria CPU è obbligata a disegnare tutto da sola facendo uso delle librerie
di rendering Mesa, ciò implica un considerevole consumo di risorse. Mentre Xorg
di norma supporta l'accelerazione 2d hardware, spesso manca di quella 3D.
L'accelerazione hardware 3D è apprezzabile in situazioni che richiedono il
rendering di oggetti 3D come giochi, CAD 3D o la realizzazione di modelli.
Come attivare l'accelerazione 3D?
In molti casi, i driver esistono sia binari che opensource. I driver opensource
sono preferibili, perchè si sta usando Linux e l'opensource è uno dei suoi
principi chiave. A volte i binari sono però l'unica scelta, specialmente se la
propria scheda video è così nuova che i driver opensource non sono ancora stati
scritti per supportare le sue caratteristiche. I driver precompilati
includono x11-drivers/nvidia-drivers per
le schede nVidia e x11-drivers/ati-drivers per le schede AMD/ATI.
Cos'è il DRI?
Il Direct Rendering
Infrastructure (ndT: "Infrastruttura per il Rendering Diretto"),
abbreviato in DRI, è il meccanismo per effettuare l'accesso diretto alla scheda
video in maniera sicura ed efficiente. Esso include cambiamenti al server X, a
parecchie librerie e al kernel. Lo scopo primario di DRI è quello di creare
veloci implementazioni di OpenGL.
Cos'è DRM e cos'ha a che fare con Xorg?
DRM (Direct Rendering Manager, "Gestore del Rendering Diretto" ndT) è un
miglioramento di Xorg che aggiunge l'accelerazione 3D per le schede
aggiungendo il necessario modulo del kernel per il "direct rendering" (ndT:
d'ora in poi "rendering diretto").
Destinatari
Questa guida è per coloro che non riescono ad abilitare il rendering diretto
soltanto con Xorg. DRM funziona con i seguenti driver:
- 3dfx
- intel
- matrox
- nouveau
- rage128
- radeon
- mach64
- sis300
- via
Si rimanda al sito web di DRI per
maggiori informazioni e per la documentazione ufficiale.
2.
Installare Xorg e configurare il kernel
Installare Xorg
Leggere la Guida alla configurazione di
X.Org per installare ed eseguire Xorg.
Configurare il kernel
Verificare qual è il proprio chipset ed abilitare il supporto solo per quello.
Codice 2.1: Controllare il proprio chipset AGP |
# emerge pciutils; lspci | grep AGP
# 00:01.0 PCI bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 03)
|
Se il proprio chipset non è supportato dal kernel, provare ad aggiungere
agp=try_unsupported come parametro del kernel. Saranno usate le procedure
generiche di Intel per il supporto AGP. Per aggiungere questo parametro,
modificare il file di configurazione del proprio bootloader!
La maggior parte dei kernel, se non tutti, dovrebbero avere queste opzioni.
Nell'esempio si fa uso di un kernel gentoo-sources standard.
Codice 2.2: Configurare il kernel |
# 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
|
Codice 2.3: Opzioni di 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>
|
Compilare ed installare il kernel
Codice 2.4: Compilare e installare il kernel |
# make && make modules_install
|
Non dimenticarsi di aggiornare grub.conf o lilo.conf e
di lanciare /sbin/lilo se si usa LILO.
Aggiunta del proprio utente al gruppo video
Ora aggiungere il proprio utente al gruppo video, come spiegato
nell'handbook:
Codice 2.5: Aggiungere un utente al gruppo video |
# gpasswd -a username video
|
3.
Configurare il rendering diretto
Configurare Xorg
Solitamente è sufficiente aggiungere il proprio utente al gruppo
video per abilitare l'accelerazione hardware. Ma in alcuni casi
potrebbe essere necessario creare un file in /etc/X11/xorg.conf.d/.
Lo si può nominare come si desidera; assicurarsi solo che termini con
.conf. Aprire il proprio editor di testo preferito e creare
un file con il seguente contenuto:
Codice 3.1: /etc/X11/xorg.conf.d/10-dri.conf |
Section "Device"
Driver "radeon"
EndSection
Section "dri"
Mode 0666
EndSection
|
Modifiche a /etc/conf.d/modules
Bisognerà aggiungere il nome del modulo usato dalla propria scheda nel file
/etc/conf.d/modules, per essere sicuri che il modulo
sia caricato automaticamente all'avvio del sistema.
Codice 3.2: Modificare /etc/conf.d/modules |
modules="intel-agp"
|
Nota:
Se agpgart è stato compilato come modulo, aggiungere anch'esso a
/etc/conf.d/modules.
|
4.
Verificare il funzionamento dell'accelerazione 3D
Riavviare con il nuovo kernel
Riavviare il sistema con il nuovo kernel e fare il login come utente normale. È
giunta ora di vedere se il rendering diretto è attivo e se funziona bene.
glxinfo e glxgears fanno parte del pacchetto mesa-progs,
accertarsi quindi che esso sia installato prima di lanciare questi comandi.
Codice 4.1: Testare il rendering |
$ startx
$ glxinfo | grep rendering
direct rendering: Yes
$ glxgears
|
Nota:
Considerare anche che gli FPS potrebbero essere limitati dalla frequenza di
aggiornamento del proprio schermo, se glxgears visualizza un valore di
70-100 FPS. games-fps/ut2004-demo o altri videogiochi 3D sono un migliore
strumento di benchmark, dato che riesono a dare dei risultati più realistici.
|
Ottenere il massimo dal rendering diretto
Se si desiderano altre opzioni, dare un'occhiata a matrice delle
caratteristiche sul sito del DRI o all'elenco delle
caratteristiche su Sourceforge.
5.
Risoluzione dei problemi
Non funziona il rendering diretto e non so perchè.
Provare modprobe radeon prima di avviare X (sostituire radeon con
il nome del proprio driver). Inoltre, provare anche a compilare agpgart nel
kernel anzichè come modulo.
Quando lancio startx, ricevo questo errore: "[drm] failed to load kernel
module agpgart"
Succede perchè agpgart è stato compilato staticamente nel kernel anzichè come
modulo, ignorare questo errore a meno che non si riscontrino problemi.
Ho una Radeon e voglio l'uscita TV
I driver sviluppati in origine dal progetto GATOS sono stati fusi assieme a quelli
sviluppati da Xorg. Non c'è bisogno di alcun pacchetto particolare per l'uscita
TV; è sufficiente x11-drivers/xf86-video-ati.
Non funziona. La mia scheda è così nuova e potente e incredibilmente non
è supportata...
Provare i driver binari. Per le schede AMD, utilizzare gli ati-drivers;
una lista si trova su
http://support.amd.com/us/gpudownload/Pages/index.aspxs. Se non
funzionano neanche quelli, usare fbdev: sono lenti, ma funzionano.
Ho una scheda PCI e non funziona! Aiuto!
Creare un file di configurazione in /etc/X11/xorg.conf.d/;
chiamarlo come si desidera, è sufficiente che termini con .conf.
Aggiungere il contenuto seguente:
Codice 5.1: /etc/X11/xorg.conf.x/10-pcimode.conf |
Section "Device"
Option "ForcePCIMode" "True"
EndSection
|
6.
Riferimenti
- http://forums.gentoo.org/viewtopic.php?t=46681
- http://forums.gentoo.org/viewtopic.php?t=29264
- http://dri.freedesktop.org/
Feedback
Per suggerimenti, domande, etc., e-mail Donnie Berkholz.
I contenuti di questo documento sono rilasciati sotto la licenza Creative
Commons - Attribution / Share Alike.
|