Chromium > 20: webGL avec Mesa et GPU Intel
Mesa, l’OpenGL libre
En mettant à jour récemment Chromium (la version libre de chrome) sous Ubuntu, je me suis retrouvé avec la version 20 qui supporte enfin WebGL, auparavant, seul Firefox me permettait d’utiliser WebGL. Comme j’utilise le pilote libre Mesa et le processeur graphique (GPU) intégré Intel HD 3000 intégré APU (non commercial pour les SoC mal finis de technologie x86), il y a pour le moment des limitations. Mesa est en retrait des autres pilotes au niveau de la compatibilité OpenGL et OpenGL ES (à l’origine à destination de l’embarqué, ES=Embedded System, signifiant système embarqué).
Dans les versions 7.x la compatibilité OpenGL 2.x était présente.
En Mesa 8.0 sorti le 9 février 2012, on atteignait à peu près la compatibilité OpenGL 3.0, globalement stabilisé en mai après avec la 8.0.3, la 8.0.4 finissant la stabilisation en juillet 2012. En Mesa 9.0 (quasi stable) qui devrait sortir officiellement ce mois ci (septembre 2012) ou en début de mois prochain, on atteint la compatibilité OpenGL 3.1 et presque complète 3.2 et 3.3 avec des bouts d’OpenGL 4.x. Sur la tronc de développement, des bouts d’OpenGL ES 3 commencent également à être implémentés, une évolution d’OpenGL ES reprenant les améliorations d’OpenGL 3 et 4. On a toujours des gros bugs niveaux textures (notamment entre mode textures compressées et non compressées avec le simulateur de vol libre Flightgear) et reconnaissance sur différentes applications (un patch publié aujourd’hui résoudra peut être ce problème ?).
Depuis environ un an ça avance donc beaucoup plus vite, mais il y a encore du retard à rattraper, j’estime au pifomètre (avec une grosse marge d’erreur), en voyant les évolutions, qu’il y en a encore pour environ un an ou un peu plus pour rattraper le retard.
Textures compressées
La mémoire graphique utilisé par le processeurs graphiques (GPU) étant toujours finie et donc limitée, on a intérêt à compresser les textures afin de gagner de la place et d’éviter de transférer les grosses textures depuis la mémoire vive de l’ordinateur, tache longue, d’autant plus que cela ralentie le transfert des données fondamentales, coordonnées des objets, rotation, transformations etc…. et que pour le GPU, la décompression de ces textures est un calcul plutôt léger voir négligeable. Le Taïwanais S3 à mis au point il y a quelques années cette technique et le format de texture compressé DDS (DirectDraw Surface). C’est devenu un standard de fait, mais le logiciel est breveté, obligeant dans les pays ayant eu la mauvaise idée d’autoriser le brevet logiciel (notamment États-Unis d’Amérique et Japon, on y échappe pour le moment en Europe) à en limiter l’utilisation, ralentissant ainsi les progrès techniques. Heureusement, la norme OpenGL 4.x introduit une méthode non-brevetée de compression et compatible.
Voici un exemple de textures compressées, si cela ne fonctionne pas chez vous pour le moment, lisez le reste de l’article :
http://media.tojicode.com/webgl-samples/dds.html
WebGL
Page 1 of 3 | Next page