Le support WebGPU arrive aux versions nocturnes de Firefox

Publication d'informations sur l'intégration de la spécification d'aide WebGPU dans les versions nocturnes de Firefox, qui fournit une interface de programmation pour le traitement graphique 3D et l'informatique côté GPU, conceptuellement similaire à l'API Vulkan, métal et Direct3D 12. La spécification est en cours de développement par Mozilla, Google, Apple, Microsoft et des représentants de la communauté dans un groupe de travail créé par l'organisation W3C.

L'objectif principal de WebGPU est de créer une interface logicielle sécurisée, pratique, portable et performante pour une utilisation sur la plate-forme Web avec la technologie graphique 3D et les capacités fournies par les API graphiques système modernes telles que Direct3D 12 sous Windows, Metal sous macOS et Vulkan sous Linux.

Conceptuellement, WebGPU diffère de WebGL de la même manière que Vulkan diffère d'OpenGL et il n'est pas basé sur une API graphique spécifique, mais plutôt sur une couche universelle, en général, utilisant les mêmes primitives de bas niveau que celles disponibles dans Vulkan, Metal et Direct3D.

Dans Firefox, le paramètre "dom.webgpu.enabled" est fourni pour activer WebGPU dans environ: config. Outre le rendu de CanvasContext, il nécessite également l'inclusion du système de composition WebRender ("gfx.webrender.all" dans about: config).

L'implémentation WebGPU est basée sur le code de projet wgpu écrit en Rust et peut fonctionner sur les API DX12, Vulkan et Metal sous Linux, Android, Windows et macOS (la prise en charge de DX11 et OpenGL ES 3.0 est également en développement).

À propos de WebGPU

WebGPU fournit aux applications JavaScript des outils de contrôle de niveau inférieur à propos de l'organisation, le traitement et transmission des commandes au GPU, gestion des ressources associées, de la mémoire, des tampons, des objets de texture et des shaders graphiques compilés. Cette approche permet des applications graphiques plus performantes en réduisant les frais généraux et en augmentant l'efficacité du travail avec le GPU.

WebGPU permet de créer des projets 3D complexes complets pour le web ils ne fonctionnent pas moins bien que les programmes autonomes qui communiquent directement avec Vulkan, Metal ou Direct3D, mais ne sont pas liés à des plates-formes spécifiques.

Aussi fournit des fonctionnalités supplémentaires en portant des programmes graphiques natifs à une forme qui peut fonctionner sur la base de technologies basées sur le Web en utilisant la technologie WebAssembly.

En plus des graphismes 3D, WebGPU couvre également les possibilités associées à l'élimination de l'informatique à côté du GPU et support pour le développement de shader. Les shaders peuvent être créés dans le langage de shader WebGPU ou spécifiés dans le format intermédiaire SPIR-V, puis traduits dans les langages de shader pris en charge par les pilotes actuels.

WebGPU utilise une gestion des ressources, un travail préparatoire et un transfert de commande séparés au GPU (dans WebGL, un objet était responsable de tout à la fois). Trois contextes distincts sont fournis: GPUDevice pour créer des ressources telles que des textures et des tampons; GPUCommandEncoder pour encoder des commandes individuelles, y compris les étapes de rendu et de calcul; GPUCommandBuffer en file d'attente pour exécution sur le GPU.

La deuxième différence entre WebGPU et WebGL est une approche différente de la gestion des états. Deux objets sont proposés dans WebGPU: GPURenderPipeline et GPUComputePipeline, qui permettent de combiner plusieurs états prédéfinis par le développeur, ce qui permet au navigateur de ne pas gaspiller de ressources sur des travaux supplémentaires, comme la recompilation des shaders. Les états pris en charge comprennent: les shaders, les tampons de sommets et les dispositions d'attributs, les dispositions de groupe attachées, la fusion, la profondeur et les motifs, les formats de sortie après le rendu.

La troisième fonctionnalité de WebGPU est le modèle de liaison, qui à bien des égards ressemble aux moyens de mise en commun des ressources présentes dans Vulkan. Pour regrouper les ressources en groupes, WebGPU fournit un objet GPUBindGroup qui, en tapant des commandes, peut être associé à d'autres objets similaires à utiliser dans les shaders.

La création de tels groupes permet au conducteur d'effectuer les actions préparatoires nécessaires à l'avance, et le navigateur lui permet de basculer beaucoup plus rapidement les liens de ressources entre les appels pull.

source: https://hacks.mozilla.org/


Laisser un commentaire

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

*

*

  1. Responsable des données : AB Internet Networks 2008 SL
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.