Gentoo Logo

Guida all'accelerazione hardware 3D

Indice:

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)
(Ovviamente il proprio output può essere diverso a causa del diverso hardware.)

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 
(Assicurarsi che /usr/src/linux punti al proprio kernel attuale.)
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) --->
  (L'opzione agpgart non è presente sui kernel a 64-bit; in tal caso basta scegliere il supporto per il proprio chipset.)
  <M> Intel 440LX/BX/GX, I8xx and E7x05 support
    (Selezionare il proprio chipset, non quello dell'esempio.)
  <M> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)
    <M> (Selezionare la propria scheda grafica dall'elenco)

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"
     (Sostituite radeon con il nome del proprio driver.)
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

(Cambiare il nome del modulo come richiesto.)
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
(Nessun bisogno di caricare moduli per il proprio driver o agpgart, anche se sono stati compilati come moduli.)
(Saranno caricati in automatico.)
$ glxinfo | grep rendering
direct rendering: Yes
(Se c'è scritto "No", l'accelerazione non è abilitata.)
$ glxgears
(Verificare i frame per secondo (FPS). Il numero dovrebbe essere significativamente più alto rispetto
a prima della configurazione di DRM. Eseguire quest'operazione con la cpu il più possibile a riposo.)

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

  1. http://forums.gentoo.org/viewtopic.php?t=46681
  2. http://forums.gentoo.org/viewtopic.php?t=29264
  3. http://dri.freedesktop.org/

Feedback

Per suggerimenti, domande, etc., e-mail Donnie Berkholz.



Stampa

Aggiornato il 25 dicembre 2012

La versione originale di questo documento non è più mantenuta

Oggetto: Questa è una guida per far funzionare l'accelerazione 3D sfruttando DRM con Xorg in Gentoo Linux.

Donnie Berkholz
Autore

Jorge Paulo
Redazione

Joshua Saddler
Redazione

Stefano Calzavara
Traduzione

Stefano Pacella
Traduzione

Cristiano Chiucchiolo
Traduzione

Marco Leogrande
Traduzione

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.