Firefox commence à intégrer WebGPU, l’API 3D d’Apple

Nicolas Furno |

WebGPU est une API qui permet de créer des animations en 3D dans un navigateur web. C’est Apple qui a formalisé ce futur standard du web, il y a trois ans de cela, mais son déploiement est très lent. Pour preuve, Firefox commence à peine à l’intégrer, et WebGPU n’est disponible par défaut dans aucun navigateur aujourd’hui.

Cette nouvelle API vient concurrencer WebGL qui existe depuis des années et qui reste la principale solution pour créer de la 3D dans un navigateur web. Celle-ci a été créée sur la base d’OpenGL, un standard qui est désormais déprécié par Apple au profit de Metal. WebGPU devrait permettre d’offrir une solution de remplacement à WebGL, sur une base plus moderne. Sur macOS comme sur iOS, cette base est précisément Metal, l’API graphique maison conçue par Apple.

Une démo technique de WebGPU, affichée dans Safari sur iPadOS.

WebGPU n’est pas une solution limitée à l’écosystème Apple toutefois, et l’API se base aussi sur Vulkan ou Direct3D 12 pour les navigateurs sur Windows, Android ou encore Linux. Cela explique probablement la lenteur des progrès effectués en trois ans. D’ailleurs, les concepteurs de Firefox expliquent qu’il reste encore des questions en suspens, notamment sur la gestion de la communication entre le processeur et la carte graphique, le standard n’a pas encore déterminé la meilleure solution.

La fondation Mozilla espère proposer une première version complète d’ici à la fin de l’année 2020. Vous pouvez télécharger la version nightly de Firefox pour en avoir un avant-goût, en activant l’option dom.webgpu.enabled. Dans Safari, WebGPU est une fonction expérimentale qui doit être activée dans le menu « Développement » (à afficher au préalable dans les préférences)1, et il n’est pas recommandé de la laisser activée en permanence. Chez Google, le travail continue dans la version Canary de Chrome et là aussi, il faut l’activer en saisissant chrome://flags/#enable-unsafe-webgpu dans la barre d’adresse du navigateur.

Si le sujet vous intéresse, l’article publié par le responsable du travail sur WebGPU au sein de Mozilla contient de multiples informations techniques, notamment sur les différences entre cette nouvelle API et WebGL.


  1. Sur iOS et iPadOS, ouvrez l’app Réglages, puis Safari > Avancé > Expérimental features et vous pourrez également activer WebGPU si vous voulez tester.  ↩

avatar ney | 

Vulkan est supporté sur MacOS ?

avatar Tao | 

@ney

Non, mais les programmes se servant de Vulkan peuvent utiliser MoltenVk pour rediriger de manière plus ou moins transparente les appels à Vulkan à Metal 2.

De gros projets comme l’émulateur Dolphin ou Dota 2 l’utilisent.

avatar ney | 

@Tao

Ah merci ! Ça marche bien ?

avatar Tao | 

@ney

Pour avoir directement participé à son implémentation dans Dolphin, quasiment tous les appels sont supportés et la plupart sont gérés correctement.

Il y a toujours quelques cas spéciaux qui font que c’est pas parfait donc la version de MoltenVk qu’on link est souvent mise à jour.

Mais grosso modo, oui ça marche. Et les performances sont meilleures qu’OpenGL, en particulier sur les jeux les plus compliqués. Tu peux lire ici si tu veux en savoir plus : https://dolphin-emu.org/blog/2018/12/04/dolphin-progress-report-november...

Dolphin n’a pas de backend Metal pour comparer directement mais les performances sont forcément au moins un peu moins bonnes que si on appelait directement Metal

avatar ney | 

@Tao

Très intéressant, merci beaucoup 😊

avatar Tao | 

C’est Vulkan, pas Vulcan ;)

CONNEXION UTILISATEUR