Pour faire face à la montée en puissance des interfaces graphiques 3D lors de ces dernières années, Apple a proposé de créer un nouvel API standard donnant accès aux fonctionnalités des GPU pour la programmation bas niveau, aussi bien pour les graphismes que pour le calcul : WebGPU. C’est l’équipe de Webkit, qui assure le développement du moteur de rendu de pages web exigé par Apple pour les navigateurs iOS, qui ont été à l’origine de cette proposition du successeur potentiel de WebGL.
WebGL est une spécification d'interface de programmation de 3D dynamique pour les pages et applications HTML5 créées par le Khronos Group. Elle permet d'utiliser le standard OpenGL ES au sein d'une page web, d'un livre numérique au format ePUB, d'un diaporama ou bien d'une application basée sur le standard HTML5, en s'aidant du langage JavaScript, des données au format JSON et de l'accélération matérielle pour les calculs et le rendu 3D à l'aide des pilotes OpenGL ES du ou des processeurs graphiques du terminal informatique (ordinateur, smartphone, tablette numérique, etc.).
Si WebGL est aujourd’hui le standard pour l’implémentation de graphismes 3D sur le web, l’équipe de WebKit évoque de nouveaux besoins en raison de l’évolution rapide des processeurs graphiques GPU et les API plateformes comme Direct3D de Microsoft, Metal d’Apple et Vulkan de Khronos Group qui offrent une performance bien meilleure que celle offerte par WebGL. Afin que la discussion sur ce sujet démarre activement, l'équipe WebKit d'Apple fournit déjà une proposition d'API et un prototype de cet API pour le projet open source de WebKit.
Dans un billet de blog, l’équipe a relaté l’histoire du développement du web pour expliquer le motif de la création d’un nouveau standard. Au début, les standards du web servaient à créer des pages web statiques seulement et les seuls graphiques présents étaient des images. Avec le temps, le web avait commencé à implémenter des fonctionnalités que les développeurs pouvaient exploiter grâce au JavaScript. En effet, il était possible de modifier dynamiquement les pages, mais sans véritable notion de traitement de graphismes. Enfin, il y avait une demande assez conséquente des graphismes totalement programmables pour que les scripts puissent créer des images dynamiquement. Le canvas de HTML5 avec son API de rendu 2D a été implémenté dans WebKit et a rapidement été adopté par les autres moteurs de navigateurs.
Avec le temps, le type d’applications et le contenu développé pour le web sont devenus plus ambitieux et les limitations de la plateforme ont commencé à se faire sentir. Un exemple est le jeu où la performance et la qualité visuelle sont essentielles. Il y avait une demande pour les jeux sur navigateurs, mais la plupart des jeux utilisaient des API qui fournissaient des graphismes 3D exploitant la puissance des processeurs graphiques (GPU). Mozilla et Opera ont montré le potentiel du rendu graphique d’un élément canvas et il était si fascinant que la communauté a décidé de travailler sur un standard qui sera WebGL par la suite. Puis toujours en raison de besoins grandissants est arrivé le standard WebGL 2 que Firefox et Google Chrome commencent à supporter.
Mais bien que le standard WebGL 2 ne soit pas encore entièrement défini, il affiche déjà des limites. En effet, WebGL est construit sur OpenGL ES, une bibliothèque d'assez haut niveau d'abstraction, qui en tant que telle ne donne pas accès aux fonctionnalités de bas niveau pour programmer des animations époustouflantes, comme le permettent les API comme Direct3D de Microsoft, Metal d'Apple ou Vulkan du Khronos Group. Dean Jackson note dans un billet de blog que ces jeux d’API contiennent des instructions spécifiques à certains systèmes d’exploitation, ce qui interdit leur standardisation et leur implémentation pour internet. L’initiative GPU pour le Web consiste donc à favoriser l’émergence de technologies logicielles de bas niveau qui peuvent accélérer les calculs liés à l’affichage web pour tous les systèmes du marché. De plus, OpenGL ne s'intéresse pas du tout aux possibilités de calculs parallèles qui sont apparues avec les processeurs GPU récents.
Jackson évoque également que la mise en place d’un nouveau standard doit fournir le support de l’usage de GPU pour d'autres champs d'application en dehors des applications à graphismes. Des technologies émergentes comme WebAssembly et WebVR pourraient en tirer profit. Vraisemblablement, d’autres applications gourmandes en ressources de processeur comme l’apprentissage machine pourraient en bénéficier aussi si elles sont exécutées sur navigateur.
Malgré cette initiative, l’enthousiasme d’Apple pour les technologies reste sélectif. La firme a choisi par le passé de supporter sa technologie Metal seulement et a omis le support de Vulkan. Son support pour OpenGl est à la traine comparé à la concurrence, probablement pour encourager les développeurs à utiliser son API Metal. De plus, Web Wokers est toujours non supporté par Safari, ce qui limite les possibilités des applications mobiles modernes sur les appareils iOS. Un ancien développeur d’Opéra avait souligné l’impact négatif d’Apple sur le futur du web. Cependant, Apple n'est pas la seule firme à privilégier ses technologies. En effet, ni Google ni Microsoft n’ont donné la priorité au web plutôt qu'à leurs plateformes natives respectives.
Source : blog WebKit
Et vous ?
Qu'en pensez-vous ?
Pensez-vous que cette initiative d'Apple va être prise au sérieux vu qu'ils ont omis le support de Vulkan ?
WebGPU : Apple propose de créer un nouveau standard pour les graphismes 3D sur le web
Vers une alternative bas niveau à WebGL ?
WebGPU : Apple propose de créer un nouveau standard pour les graphismes 3D sur le web
Vers une alternative bas niveau à WebGL ?
Le , par Coriolan
Une erreur dans cette actualité ? Signalez-nous-la !