Direct Rendering Infrastructure
# Direct Rendering Infrastructure

Direct Rendering Infrastructure (DRI) è un'interfaccia usata in X Window System per permettere in modo sicuro l'accesso delle applicazioni utente all'hardware video senza che i dati passino (lentamente) attraverso il server X. La sua applicazione primaria è quella di fornire l'accelerazione hardware di Mesa, un'implementazione di OpenGL. È anche stata adottata per dare l'accelerazione OpenGL nella console framebuffer senza bisogno che un Server X sia in esecuzione.

Il progetto fu iniziato da Jens Owen della Precision Insight. È stato prima reso disponibile come parte di XFree86 4.0 ed ora è parte di X.Org. Attualmente è mantenuto dalla Tungsten Graphics e molti altri sviluppatori open source.

## Componenti

Il DRI per OpenGL è costituito da diverse parti:

* La prima è il Direct Rendering Manager (DRM). Il DRM è una combinazione di almeno due moduli del kernel, uno che costituisce il cuore del DRM, l'altro invece fornisce delle API allo spazio utente per accedere a differenti classi di hardware video.
* La seconda è il modulo driver userland, il quale contiene un driver OpenGL che prepara buffer di comandi che il DRM deve mandare all'hardware e interagisce con il sistema a finestre per sincronizzare l'accesso all'hardware.
* La Terza, è una specie di server. In X questo è il modulo libdri.so e un driver 2D che può usare DRI. Nel framebuffer l'implementazione di questo server è rappresentata da MiniGLX, che inizializza il modulo DRM e fornisce alcune API di X al driver userland malgrado la mancanza di un server X.

## Versioni

### DRI2

Nel 2007 gli sviluppatori di X hanno iniziato a lavorare su DRI2, nel quale verranno migliorati molti problemi che si sono presentati nel vecchio progetto. Tra i miglioramenti più importanti vi sono: la mancanza di blocchi interni e supporto regolare per il rendering su schermo, in modo tale che le applicazioni composite XVideo/OpenGL vengano amministrate correttamente.

## Adozione dei driver video

Sono stati scritti parecchi driver DRI open source, compresi quelli per ATI Mach64, ATI Rage128, ATI Radeon (ora AMD Radeon), da 3dfx Voodoo 3 fino a Voodoo 5, da Matrox G200 fino a G400, la serie SiS 300, Intel da i810 fino a i965, S3 Savage, e VIA, Nouveau per la schede NVIDIA. Alcuni venditori di schede grafiche hanno scritto driver DRI closed source, compresi ATI e PowerVR. DRI è supportato dal kernel Linux e FreeBSD, e ne è stato fatto un porting per NetBSD e OpenSolaris.

