Mozilla propose au groupe Khronos une nouvelle API graphique pour le Web
Obsidian est basée sur Vulkan
Le besoin d'une API graphique plus efficace pour le Web est clair, mais les débats portent sur la conception de cette API et les fonctionnalités dont elle doit disposer. Également impliqué dans ces discussions, Mozilla a récemment soumis une proposition au groupe Khronos pour une nouvelle API graphique baptisée Obsidian. Le nom choisi par Mozilla pour son API fait allusion à l’obsidienne, une roche volcanique, pour indiquer que sa proposition est basée sur Vulkan, la nouvelle API 3D du groupe Khronos.
Mozilla a décidé de s’appuyer sur la nouvelle génération d’API graphiques comme point de départ pour sa proposition. L’éditeur de Firefox a hésité entre Vulkan qui est le plus riche en fonctionnalités, et Metal qui semble être la plus simple. Mais la syntaxe de shaders avancée de Metal ne correspond pas bien à d'autres API. Vulkan de son côté est considéré comme une API portable qui a juste besoin d’être redéfinie pour le Web, avec quelques fonctionnalités en moins. Mozilla a donc décidé de se baser sur Vulkan et d'utiliser SPIR-V comme langage pour la programmation des shaders, étant donné que Vulkan l'utilise déjà.
« Ainsi, notre travail peut être vu comme une réduction de Vulkan qui aurait un sens pour le Web », explique Mozilla. Obsidian est donc « une API de bas niveau qui fournit l'ensemble de fonctionnalités maximal du GPU aux applications Web. L'API est conçue pour WebAssembly, les GPU modernes et les environnements multithreads ». En prenant une version réduite de Vulkan comme point de départ, il ne restera plus qu’à se concentrer sur les parties manquantes de la future API. « Nous nous attendons à ce que les parties tierces construisent des interfaces de niveau supérieur sur la nouvelle API », ajoute Mozilla.
Sur GitHub, Mozilla précise que sa proposition n’est pour le moment pas une spécification. « Nous n’avons pas l’intention de fournir une spécification complète, mais nous voulons que cette proposition représente notre vision de la future API dans les discussions de groupe de travail, une vision des graphismes riches sur le Web alimentés par une API explicite de bas niveau. »
Cette proposition de Mozilla arrive dans le cadre d’une initiative lancée par le groupe Khronos pour recueillir des propositions sur ce que doit être la future API graphique pour le Web. Khronos a en effet évoqué la nécessité d'une API graphique unifiée de nouvelle génération et a ouvert un référentiel GitHub où l'on pourrait soumettre des propositions qui répondent à des critères définis.
Notons que le mois dernier, Apple a présenté une proposition similaire baptisée WebGPU. L’une des principales différences avec la proposition de Mozilla est que celle d’Apple a été soumise à un nouveau groupe créé au sein de la W3C : GPU on the Web Community Group. La mission de ce groupe est « de fournir une interface entre la plateforme Web et les capacités graphiques et de calcul 3D actuelles présentes dans les plateformes systèmes natives. L'objectif est de concevoir une nouvelle API Web qui expose ces technologies modernes de manière performante, puissante et sûre », est-il indiqué sur la page officielle du groupe. « L'API devrait fonctionner avec les API de plateforme existantes telles que Direct3D 12 de Microsoft, Metal d'Apple et Vulkan du groupe Khronos ». Une solution multiplateforme est également envisagée par le groupe.
On risque donc d’avoir un conflit entre le groupe Khronos, à l’origine de plusieurs standards graphiques, et le W3C, l’organisme de normalisation chargé de promouvoir les technologies pour le Web.
Sources : Obsidian (GitHub), GPU on the Web Community Group
Et vous ?
Que pensez-vous de la proposition de Mozilla ?
Quel organisme vous semble-t-il le mieux expérimenté pour superviser la conception de la future API graphique pour le Web ?
Quelle API existante vous semble-t-elle la meilleure pour point de départ ?
Voir aussi :
WebGPU : Apple propose de créer un nouveau standard pour les graphismes 3D sur le web, vers une alternative bas niveau à WebGL ?
La spécification WebGL 2.0 est disponible dans sa version finale et apporte les fonctionnalités d'OpenGL ES 3.0 dans nos navigateurs
Partager