WebGPU pour Android

La bibliothèque WebGPU d'Android Jetpack fournit des liaisons Kotlin idiomatiques pour la norme WebGPU, ce qui permet d'obtenir des graphismes 3D modernes et des capacités de calcul hautes performances dans vos applications Android.

WebGPU succède à WebGL et est le descendant spirituel d'OpenGL. Il a été conçu de A à Z pour refléter le fonctionnement des GPU modernes et exposer les capacités des GPU de manière multiplate-forme, sécurisée et ergonomique.

Pourquoi WebGPU ?

  • Facilité d'utilisation améliorée : Vulkan est la principale API graphique de bas niveau sur Android. WebGPU propose une API moderne de niveau supérieur qui est plus accessible et beaucoup moins verbeuse à utiliser que Vulkan.
  • Regroupement et sérialisation : WebGPU enregistre plusieurs commandes dans des tampons de commandes, ce qui fait partie de sa conception visant à minimiser le bavardage du protocole. Cela minimise également la nécessité d'appeler des méthodes externes lors de l'utilisation de liaisons Kotlin.
  • Compatibilité universelle : le code de nuanceur WebGPU (WGSL) peut être partagé directement entre les implémentations WebGPU sur différentes plates-formes, y compris le Web.
  • Calcul optimisé : le partage de mémoire tampon sans copie entre les tâches de calcul et graphiques améliore les performances et simplifie le développement par rapport aux anciennes API.

À qui s'adresse cette bibliothèque ?

Cette bibliothèque est conçue pour créer des applications hautes performances qui nécessitent un accès direct au GPU :

  • Filtres de traitement d'images et de vidéos
  • Visualisations des données
  • Inférence de machine learning
  • Jeux et simulations

Objectifs non concernés : il s'agit d'une API graphique, et non d'un moteur de jeu. Vous êtes responsable de la gestion de votre propre boucle de rendu, de vos matrices de caméras et de votre graphique de scène.

Concepts WebGPU de base

Il est essentiel de comprendre les objets WebGPU fondamentaux et leur interaction pour développer avec WebGPU.

Concept

Description

Instance

Point d'entrée de WebGPU, qui permet d'accéder aux adaptateurs et aux surfaces

Adaptateur

Représente un GPU spécifique sur l'appareil.

Appareil

Votre connexion logique au GPU sur lequel les ressources sont créées

File d'attente

Mécanisme utilisé pour envoyer des commandes au GPU

Module Shader

Votre code GPU, écrit dans le langage de nuanceur WebGPU (WGSL)

Pipelines

Objets décrivant l'état complet du GPU (shaders, blending) pour une tâche

Groupes de liaisons

Associe les tampons de données (par exemple, les textures) aux nuanceurs

Encodeur de commandes

Objet utilisé pour créer une séquence de commandes GPU dans un tampon de commandes