Chrome 113 active WebGPU, une API graphique moderne et à faible surcharge pour le Web.

Chrome 113 active WebGPU, une API graphique moderne et à faible surcharge pour le Web.

Google a annoncé aujourd’hui qu’il activerait la prise en charge de WebGPU dans son navigateur Chrome par défaut à partir de la version 113, qui est actuellement en version bêta. WebGPU, en développement depuis 2017, est une API graphique de nouvelle génération qui vise à tirer parti des API à faible surcharge telles que Microsoft Direct3D 12, Apple Metal et Vulkan dans les navigateurs Web et autres applications.

La prise en charge de WebGPU est disponible depuis un certain temps, mais est désactivée par défaut dans Chrome car l’API n’a pas été finalisée et les choses pourraient se casser d’une mise à jour à l’autre. Google affirme que Mozilla et Apple prendront éventuellement en charge WebGPU dans Firefox et Safari, et des navigateurs comme Microsoft Edge et Opera qui s’appuient sur le moteur de navigateur Chromium pourraient éventuellement l’activer, comme Google l’a fait.

Chrome 113 prend en charge WebGPU sur Windows, macOS et ChromeOS pour commencer, tandis que « la prise en charge d’autres plates-formes » comme Linux et Android « arrivera plus tard cette année ». Cette version du navigateur devrait être disponible pour tous les utilisateurs de Chrome en mai.

La prise en charge dans Chrome est un grand pas en avant pour toute nouvelle norme, qu’il s’agisse d’une API nouvelle ou mise à jour, d’un format d’image ou d’un codec vidéo. Selon StatCounter, Chrome lui-même représente environ les deux tiers de la part de marché des navigateurs dans le monde, et près de 80 % de la part de marché totale des navigateurs si vous comptez les autres navigateurs basés sur Chromium. Une fois que Safari et Firefox auront ajouté la prise en charge, pratiquement tous les navigateurs Web du monde entier pourront exécuter du code WebGPU. Il est donc utile d’expliquer brièvement ce qu’est WebGPU et pourquoi il existe.

Qu’est-ce que le GPU Web ?

WebGPU est en quelque sorte le successeur de WebGL , une API beaucoup plus ancienne qui vous permet d’afficher des graphiques basés sur OpenGL dans votre navigateur sans nécessiter de plugins tiers supplémentaires comme Adobe Flash. Alors que WebGL était révolutionnaire lorsqu’il a été annoncé en 2009, il souffre aujourd’hui de bon nombre des mêmes problèmes qu’OpenGL : il ne tire pas pleinement parti des GPU modernes, il peut perdre des performances en raison de la surcharge du pilote et il n’a que des opportunités limitées. et une prise en charge maladroite des charges de calcul GPU.

« Alors que WebGL est principalement conçu pour dessiner des images, mais peut être réutilisé (avec plus d’efforts) pour effectuer d’autres types de calculs, WebGPU a un support de premier ordre pour effectuer des calculs généraux sur le GPU », lit un projet de document expliquant pourquoi il y a WebGPU . La nouvelle API améliorera les graphismes dans des environnements comme Babylon.js et des moteurs de jeu comme Unity ; prendra en charge les charges de travail accélérées par GPU comme celles utilisées pour l’apprentissage automatique et l’intelligence artificielle ; et peut permettre aux applications Web photo et vidéo (entre autres) de profiter plus facilement de l’accélération GPU dont bénéficient les applications natives.

WebGPU est développé par un groupe de travail qui comprend des représentants de Google, Microsoft, Apple, Mozilla, Intel et de nombreuses autres sociétés. Par conséquent, l’API a été conçue pour être aussi largement compatible que possible. WebGPU n’est pas une implémentation directe d’une API graphique existante, mais une API native qui repose sur et interagit avec Direct3D 12, Metal et Vulkan. Cet explicateur de Surma, ingénieur Shopify et ancien employé de Google, résume bien (nous soulignons) :

« Alors que WebGL n’est qu’un mince wrapper autour d’OpenGL, WebGPU a adopté une approche différente. Il introduit ses propres abstractions et ne reflète directement aucune de ces API natives. C’est en partie parce qu’aucune API unique n’est disponible sur tous les systèmes, mais aussi parce que de nombreux concepts (tels que la gestion de la mémoire de très bas niveau) ne sont pas idiomatiques pour l’API Web. Au lieu de cela, le WebGPU a été conçu pour se sentir « weblike » et s’asseoir commodément au-dessus de l’une des API graphiques natives, en faisant abstraction de leurs idiosyncrasies. Il est standardisé dans le W3C et tous les principaux fournisseurs de navigateurs sont assis autour de la table. »

Cela a l’avantage que le code WebGPU devient très portable – écrivez du code WebGPU et tant que les utilisateurs disposent d’un matériel et d’un navigateur qui le prennent en charge, vous devriez obtenir le même résultat sur un système Windows avec Direct3D et sur un téléphone Android avec Vulkan. Et cela évite certains des hacks qui permettent à WebGL de fonctionner – par exemple, WebGL sur Windows et macOS n’utilise même pas OpenGL directement, mais utilise à la place un traducteur appelé ANGLE, qui transforme les appels d’API OpenGL en appels d’API Direct3D et Metal à la place. Avec WebGPU, il n’est pas nécessaire de démarrer un projet complètement séparé pour écrire une implémentation lente ou mal entretenue d’OpenGL.

WebGPU possède également son propre langage de shader (WGSL), sur lequel l’équipe Chrome travaille toujours. L’annonce d’aujourd’hui indique que Google « prévoit de fournir un accès plus approfondi aux cœurs de shader » via WGSL dans une future version. Comme le reste de l’API WebGPU, WGSL est indépendant de la plate-forme et se traduit facilement dans le langage de shader préféré du système d’exploitation sur lequel vous l’utilisez.

Enfin, malgré le mot « réseau » dans le nom, l’API WebGPU ne se limite pas aux navigateurs. Le projet wgpu est la version Rust de WebGPU qui vous permet d’écrire des applications WebGPU et de les exécuter en dehors des navigateurs Web.

Si vous souhaitez expérimenter WebGPU maintenant, la version bêta de Chrome 113 est disponible ici . Un référentiel GitHub avec des exemples de code est disponible ici , et il existe une documentation officielle pour WebGPU et WGSL .

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *