Il Web è sempre più complesso e richiede sempre maggiori capacità grafiche ed interpretative ai nostri browser. Come i più noti concorrenti, anche Firefox si sta muovendo per offrirci la migliore esperienza di navigazione possibile cercando di sfruttare al meglio le caratteristiche delle nostre GPU anche su Linux.
E’ bene distinguere però i tipi di accelerazione hardware:
Content acceleration: velocizza il rendering dei contenuti Web come testo, immagini, CSS, 2D HTML canvas ecc; In Windows 7/Vista Firefox usa Direct2D e in Linux (X11) viene usato XRender a patto siano correttamente installati i driver della nostra scheda video (glxinfo | grep render). Questa caratteristica utilizza le librerie Cairo ed è già attiva in Firefox 4 e versioni successive; si gestisce da Modifica>Preferenze>Avanzate>Generale>Utilizza l’accelerazione hardware quando disponibile.
Compositing acceleration: nota anche come OpenGL Composition, velocizza trasformazioni, transizioni, animazioni CSS e scrolling, accelera la composizione in una singola finestra di layers gia renderizzati e supporta l’aggiunta di effetti alle transizioni (ad esempio sui video HTML5).
Nel sistemi Linux questa caratteristica presenta ancora bug grafici e limitazioni vista l’impossibilita da parte di Mozilla di determinare la versione dei driver in uso senza crashare, per questo non è attiva di default ed è soggetta a blacklist.
Per abilitare questa caratteristica in Firefox occorre da about:config portare a true la voce layers.acceleration.force-enabled
Firefox 4 e 5 supportano la OpenGL Composition solo se si hanno installati i driver proprietari NVIDIA. E’ tuttavia possibile accettando il rischio aggirare la limitazione impostando la variabile MOZ_GLX_IGNORE_BLACKLIST al valore 1 (o avviando firefox da terminale preceduto dal parametro MOZ_GLX_IGNORE_BLACKLIST=1) questa soluzione è possibile come detto solo con Firefox 4 e 5.
Firefox 6 e le versioni successive includono whitelist più specifiche vista la possibilità di inviare a Firefox informazioni sui driver in uso in modo sicuro.
Sono supportati i driver liberi Mesa non basati su Gallium dalla versione 7.10, come il driver libero Intel incluso in Ubuntu 11.04, i driver proprietari NVIDIA a partire dalla versione 257.21 (cosi come in Windows).
Per quel che riguarda ATI sono supportati gli ultimi driver proprietari FGLRX che implementano OpenGL 3.0 e successive versioni, ci si riferisce ad OpenGL perché ATI non restituisce il numero di versione del driver.
webGL: da non confondersi con l’accelerazione hardware, si tratta di una API per Javascript per disegnare oggetti 3D in elementi Canvas, webGL sfrutta l’accelerazione hardware di OpenGL e si attiva da about:config settando a true il valore webgl.force-enabled.
Testare l’accelerazione:
Una volta che ci siamo accertati da about:support sezione Grafica di aver abilitato la varie caratteristiche (deve essere presente il valore 1/1 alla voce relativa al tipo di accelerazione) possiamo passare ai test.
Esistono molti test per provare le caratteristiche appena discusse.
Fra i più interessanti segnalo questi due:
Nel mio caso su Debian testing (Wheezy) in entrambi i test Firefox 7a1 (nightly) con il compositing abilitato e i driver Nvidia proprietari 270.41.06 ha evidenziato notevoli differenze rispetto a Firefox 4 “base”:
Tuttavia il test paintball (vedi questo elenco) mi ha fatto crashare il sistema rendendomi impossibile aprire una qualsiasi shell.
Con Firefox 4 possiamo usare l’estensione Grafx Bot che oltre a farci testare il funzionamento dell’accelerazione hardware invierà a Mozilla i risultati per permettere un più veloce sviluppo di queste caratteristiche.
Visto quanto detto consiglio di attendere che la situazione si sia stabilizzata per attivare il compositing per l’uso quotidiano.
Buon test a tutti 🙂
Leave a Reply