Accelerazione via GPU per i futuri browser: WebGL e D2D

Già da un po’ di tempo, chi segue questo blog avrà sentito parlare più volte di rendering GPU: è da almeno 3 anni infatti che si è capito il potenziale in termini di calcolo dei chip delle schede grafiche, non solo in campo videoludico ma anche in campo scientifico e computazionale puro. Il 2010 è stato l’anno nel quale molti software di più largo consumo (quelli scientifici e di ricerca lo facevano già da tempo) si sono pienamente convertiti al calcolo GPU, e non si parla soltanto di sistemi operativi, ma proprio di motori di rendering, per rimanere nel tema principale di questo blog.

Browser_Engine

Tuttavia ora, anche altri ambiti che oramai si possono definire quasi “universali”, come la navigazione in internet, si stanno convertendo a questo che indubbiamente entro un paio d’anni diventerà il nuovo standard: parliamo infatti dei principali browser attualmente esistenti, e cioè Internet Explorer, Mozilla Firefox e Google Chrome. Nel primo caso, la Microsoft sta facendo un lavoro di fino con la versione 9: non solo la novità di una grande aderenza agli standard internazionali di programmazione per il web, ma anche attenzione agli sviluppatori con un blog apposito, rilascio di una platform preview gratuita al pubblico e dunque più in generale un grande interesse alla comunicazione diretta con il resto del mondo, cosa che fino ad oggi non si era quasi mai vista in modo così massiccio: come detto, dalla prossima release che sarà disponibile in beta per l’autunno ed in versione definitiva nel 2011, IE9 non solo avrà un nuovo motore di Javascript che decuplica la velocità del browser rispetto ai suoi antenati, ma avrà anche il supporto alle API D2D per il rendering HTML, che significa sfruttare la potenza della GPU per navigare alla massima velocità. Mozilla si appresta a rilasciare la versione 4 del suo browser, che non solo sarà finalmente a 64bit e si svincolerà da tutti quei lacci e lacciuoli costituiti dai plugin (che saranno relegati in un processo a parte), aumentando quindi stabilità, velocità e sicurezza, ma supporterà anch’esso le D2D. Per abilitare il supporto a webgl e D2D sulla versione 4 beta di Firefox bisogna agire come segue: entrati nella pagina di configurazione digitando about:config nella barra degli indirizzi, modificare i valori

webgl.enabled_for_all_sites –> true
gfx.font_rendering.directwrite.enabled –> true

tasto destro su area vuota –> Nuovo –> Intero –> mozilla.widget.render-mode con valore 6

Sulla stessa rotta anche Google, che con la release 7 beta DEV del suo browser integrerà un nuovo GPU process per accelerare il rendering della pagina: anche in quest’ultimo caso, una volta scaricata la versione development, si dovrà aggiungere la seguente estensione al comando di esecuzione del browser per attivare le funzionalità

C:\Utenti\Nomeutente\AppData\Local\Google\Chrome\Application\chrome.exe -enable-accelerated-compositing

ed ugualmente, se si vuole abilitare la funzione WebGL sul browser di BigG, bisognerà lanciarlo con la seguente estensione

C:\Utenti\Nomeutente\AppData\Local\Google\Chrome\Application\chrome.exe -enable-webgl

Google, a differenza di Firefox, mi risulta che permetta la coesistenza della versione Dev con la versione stable dei suoi browser, senza che si pestino i piedi a vicenda: mentre purtroppo con Firefox, cioè che fate sulla Dev si riflette sulla stable, ovvero non potete avviarle contemporaneamente. Mi perdoneranno inoltre gli utenti se non conosco esattamente il percorso di sviluppo di Chrome, in ogni caso su alcuni blog si legge ancora di aggiungere la stringa –no-sandbox prima di “-enable-webgl”, poiché eseguire tali applicativi 3D dentro la sandbox aumenta la sicurezza ma pone problemi di compatibilità nel rendering, visto e considerato che si tratta di tecnologie ancora a livello draft quanto a definizione degli standard.

Se volete testare le nuove funzionalità, vi ricordo che oltre ad eseguire le operazioni di cui sopra dovete possedere una scheda video in grado di supportare lo standard OGL 2.1, le DirectX10 e avere come sistema operativo Windows 7 o in seconda battuta Windows Vista (niente da fare per XP) per sfruttare le D2D, che essendo tecnologia proprietaria Microsoft non esistono né su Linux né su Mac: facile per qualsiasi gpu di ultima e penultima generazione, difficile per quelle di vecchia generazione, mentre possiamo dire complicato per la grafica integrata Intel. Potete poi recarvi su questo sito, Mozilla People, per giocare un po’ con le foto presenti: fatelo con un IE8 che non ha nessuno di questi strumenti e poi provate a fare le stesse operazioni con Firefox o Chrome “abilitati”… Con una HD4800 si è su un altro pianeta!

Cosa abbiamo dunque alle porte? Un mondo sempre più platformless e soprattutto sempre più connesso ad internet: Google ha da tempo lanciato le sue web applications in termini di produttività da ufficio, tanto che in certo qual senso il suo sistema operativo è solo una interfaccia visuale per accedere ad internet; a stretto giro anche la Microsoft ha proposto la sua versione di web applications, anche in questo caso legata alla produttività da ufficio. Ma nel futuro, con l’integrazione delle D2D e del binding delle OGL chiamato WebGL (di cui ATI ha già rilasciato un driver compatibile dalla versione 10.7 dei suoi Catalyst, vedremo quasi certamente il proliferare di applicazioni web che prima d’ora non avremmo mai pensato di poter esportare direttamente sulla rete: parliamo di giochi 3D, programmi CAD o più in generale programmi per il 3D, e tutta quella serie di applicazioni più o meno professionali, didattiche e/o comunicative che hanno bisogno di una grande potenza di calcolo della scheda video, fino ad oggi dunque relegate soltanto su supporti fisici quali desktop e portatili di alto livello e, peggio ancora (per alcuni versi) legate a specifici sistemi operativi (che in massima parte sono Windows e Mac OS e solo in minima parte le varie distro Linux). Con le web applications non sarà più così: basterà un sistema operativo qualsiasi, un browser compatibile, una connessione ad internet a banda larga, ed il gioco sarà fatto, si potrà produrre in qualsiasi condizione, che ci si trovi seduti a casa, in vacanza nel deserto o mentre si scala una montagna sulle Ande. Non è un caso se questo futuro bisogno sempre più massiccio di accesso alla rete e di bisogno di interconnessione ha spinto Intel ad acquisire una società che si occupa di sicurezza: è probabile che in futuro la nostra protezione passerà direttamente dall’hardware e non più soltanto dal software. Stay tuned.