Le W3C a publié les premières versions de la norme WebGPU

El Le W3C dévoilé Récemment, les premières ébauches des spécifications WebGPU et WebGPU Shading Language (WGSL), qui définissent des API pour effectuer des opérations GPU telles que le rendu et le calcul, et un langage de shader pour écrire des programmes côté GPU.

Ces spécifications sont conceptuellement similaires aux API Vulkan, Metal et Direct3D 12. Les spécifications ont été préparées par un groupe de travail comprenant des ingénieurs de Mozilla, Google, Apple et Microsoft.

L'objectif du GPU pour le groupe de travail Web est de fournir une interface entre la plate-forme Web et les capacités graphiques et informatiques 3D modernes des plates-formes système natives. En savoir plus sur les objectifs, la portée et les livrables.

Le GPU for Web Community Group a développé les spécifications adoptées par ce groupe de travail. Le groupe communautaire continue de pousser le travail technique sur les spécifications et d'incuber de nouvelles fonctionnalités. Ce groupe de travail travaille avec le groupe communautaire pour définir les spécifications de la voie de recommandation.

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

WebGPU fournit aux applications JavaScript des outils pour les contrôles de bas niveausur l'organisation, traitement et transmission de 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 vous permet d'obtenir de meilleures performances pour les applications graphiques en réduisant la surcharge et en augmentant l'efficacité du GPU.

WebGPU vous permet de créer des projets 3D complexes pour le Web qui ne fonctionnent pas de la même manière que dans les programmes autonomes qui accèdent directement à Vulkan, Metal ou Direct3D, mais ne sont pas liés à des plates-formes spécifiques.

WebGPU fournit également des capacités supplémentaires pour porter des programmes graphiques natifs à un formulaire Web en compilant dans WebAssembly. Outre les graphiques 3D, WebGPU couvre également les possibilités liées à l'externalisation des calculs côté GPU et à l'exécution de shaders.

Principales fonctionnalités WebGPU:

  • Gestion séparée des ressources, travail préparatoire et transfert de commande vers le 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 traitement et de calcul; GPUCommandBuffer en file d'attente pour exécution sur le GPU. Le résultat peut être rendu dans une zone associée à une ou plusieurs toiles, ou rendu sans rendu (par exemple, lors de l'exécution de tâches de calcul). Le staging permet de séparer facilement la création de ressources et les opérations préparatoires sur différents contrôleurs pouvant s'exécuter sur différents threads.
  • Une approche différente de la gestion du statutOui WebGPU propose deux objets, GPURenderPipeline et GPUComputePipeline, que vous permettent de combiner différents états prédéfinis par le développeur, qui permet au navigateur de ne pas gaspiller de ressources sur des travaux supplémentaires tels que la recompilation des shaders. Les états pris en charge incluent les shaders, les tampons de sommets et les dispositions d'attributs, les dispositions de groupe attachées, la fusion, la profondeur et les modèles, ainsi que les formats de sortie de post-traitement.
  • Un modèle de liaison semblable aux outils de pool de ressources Vulkan. Pour regrouper les ressources en groupes, WebGPU fournit un objet GPUBindGroup qui, lors de la saisie de commandes, peut être lié à d'autres objets du même type pour une utilisation dans les shaders. La création de tels groupes permet au conducteur de prendre les actions préparatoires nécessaires à l'avance, et le navigateur permet au navigateur de modifier les liaisons de ressources beaucoup plus rapidement entre les appels de dessin. La disposition des liens de ressources peut être prédéfinie à l'aide de l'objet GPUBindGroupLayout.

Enfin, si vous souhaitez en savoir plus à propos de la note, vous pouvez vérifier les détailsC'est dans le lien suivant.


Le contenu de l'article adhère à nos principes de éthique éditoriale. Pour signaler une erreur, cliquez sur c'est par ici !.

Soyez le premier à commenter

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

*

*

  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.