Chrome aura déjà le support WebGPU et sera activé par défaut

WebGPU Chrome

Après des années de développement, l'équipe Chrome lance WebGPU

Il ya quelques jours Google a dévoilé à travers un annoncé la prise en charge par défaut de l'API graphique WebGPU et le langage d'ombrage WebGPU (WGSL) dans la branche Chrome 113, dont la sortie est prévue le 2 mai.

Pour ceux qui ne connaissent pas WebGPU, sachez que fournit une API similaire à Vulkan, Metal et Direct3D 12 pour effectuer des opérations côté GPU telles que le rendu et le calcul, ainsi que permet d'utiliser un langage de shader pour écrire des programmes côté GPU.

À propos de WebGPU

Conceptuellement, WebGPU diffère de WebGL de la même manière que l'API graphique Vulkan diffère d'OpenGL, mais WebGPU n'est pas basé sur une API graphique spécifique, il s'agit plutôt d'une couche à usage général qui utilise les mêmes primitives de bas niveau trouvées dans Vulkan. Métal et Direct3D. WebGPU fournit aux applications JavaScript un contrôle de bas niveau sur l'organisation, traiter et transmettre des commandes au GPU, gérer les ressources associées, la mémoire, les tampons, les objets de texture et les shaders graphiques compilés. Cette approche vous permet d'obtenir des applications graphiques plus performantes en réduisant les frais généraux et en augmentant l'efficacité du processeur graphique.

WebGPU vous permet de créer des projets 3D complexes pour le Web qui fonctionnent aussi bien que les programmes autonomes qui utilisent directement Vulkan, Metal ou Direct3D, mais ne sont pas liés à des plates-formes spécifiques. Le WebGPU fournit également des options supplémentaires pour le portage de programmes graphiques natifs à un formulaire Web en compilant dans WebAssembly. En plus des graphiques 3D, WebGPU couvre également les possibilités associées au déchargement des calculs du côté GPU et à l'exécution des shaders.

Parmi les fonctionnalités clés de WebGPU, nous pouvons souligner les suivantes :

  • Gestion séparée des ressources, travaux préparatoires et transmission des commandes 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 coder les commandes individuelles, y compris les étapes de traitement et de calcul ; GPUCommandBuffer à transmettre à la file d'attente d'exécution du GPU.
    Le résultat peut être rendu dans une zone associée à un ou plusieurs éléments de canevas, ou rendu sans sortie (par exemple, lors de l'exécution de tâches de calcul). La mise en scène facilite la séparation des opérations de création et de provisionnement des ressources dans différents contrôleurs pouvant s'exécuter sur différents threads.
  • Une approche différente de la gestion des états. WebGPU fournit deux objets, GPURenderPipeline et GPUComputePipeline, qui vous permettent de combiner différents états prédéfinis par le développeur, permettant au navigateur de ne pas gaspiller de ressources en travaux supplémentaires, tels que la recompilation des shaders. Les états pris en charge incluent : les shaders, les mises en page de tampon de vertex et d'attributs, les mises en page de groupe fixes, le mélange, la profondeur et les motifs, les formats de sortie post-rendu.
  • Un modèle contraignant, un peu comme les outils de mutualisation des ressources de Vulkan. Pour regrouper les ressources en groupes, WebGPU fournit un objet GPUBindGroup qui peut être lié à d'autres objets similaires pour une utilisation dans les shaders lors de l'enregistrement de la commande.
    La création de tels groupes permet au contrôleur d'effectuer les actions préparatoires nécessaires à l'avance et permet au navigateur de basculer beaucoup plus rapidement les liaisons de ressources entre les appels de dessin. La disposition des liaisons de ressources peut être prédéfinie à l'aide de l'objet GPUBindGroupLayout.

En plus de Chrome, le support expérimental du WebGPU est testé depuis avril 2020 dans Firefox et à partir de novembre 2021 sur Safari. Pour activer WebGPU dans Firefox, vous devez définir les indicateurs dom.webgpu.enabled et gfx.webgpu.force-enabled dans about:config.

Il n'est pas encore prévu d'activer WebGPU par défaut dans Firefox et Safari. Les implémentations WebGPU développées pour Firefox et Chrome sont disponibles sous forme de bibliothèques distinctes : Dawn (C++) et wgpu (Rust) que vous pouvez utiliser pour intégrer la prise en charge WebGPU dans vos applications.

Il convient également de noter que des travaux sont en cours pour ajouter la prise en charge de WebGPU aux bibliothèques JavaScript populaires utilisant nativement WebGL. Par exemple, la prise en charge complète de WebGPU est déjà déclarée dans Babylon.js et partielle dans Three.js , PlayCanvas et TensorFlow.js.

L'implémentation de WebGPU ne sera initialement activé que sur les versions pour ChromeOS, macOS et Windows, tandis que pour Linux et Android, le support WebGPU sera activé à une date ultérieure.

Enfin, si vous souhaitez en savoir plus, vous pouvez consulter les détails dans le lien suivant.


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.