Aller au contenu

Architecture

Module Rôle Cibles
webgpu-api Interfaces, énumérations, alias et buffers WebGPU portables JVM, Android, JS, Wasm JS, Apple, Linux, Windows et autres cibles Kotlin/Native configurées
webgpu-descriptors Implémentations des descripteurs fondées sur webgpu-api JVM, Android, JS, Wasm JS et cibles Kotlin/Native configurées
webgpu-web-bindings Bindings JavaScript générés et interop Kotlin JS/Wasm JS et Wasm JS
webgpu-browser Implémentation navigateur : wrappers de ressources, conversions de descripteurs et surfaces canvas JS et Wasm JS
webgpu-specifications HTML, IDL et données documentaires versionnées pour la génération Outils de build JVM
suite-core Identités typées, annotations et contrat d’exécution des cas JVM 25, JS, Wasm JS, Linux x64, macOS ARM64
suite-acid-tests Cas portables annotés et catalogue généré JVM 25, JS, Wasm JS, Linux x64, macOS ARM64
suite-demos Scène de particules compute portable et données reproductibles JVM 25, JS, Wasm JS, Linux x64, macOS ARM64
suite-benchmarks Charges portables de transfert et de compute et mesures JVM 25, JS, Wasm JS, Linux x64, macOS ARM64
suite-browser Exécution réelle dans le navigateur et rapports JSON JS et Wasm JS

Les quatre premiers modules sont publiés sur Maven. webgpu-specifications fournit les sources au build ; il ne constitue pas un artefact destiné aux consommateurs. L’API partagée ne possède ni périphérique GPU ni moteur de rendu. L’interop navigateur appartient à webgpu-web-bindings ; webgpu-browser est l’implémentation navigateur qui consomme les contrats portables et les bindings ; les implémentations natives utilisent les contrats portables.

suite-core, suite-acid-tests, suite-demos et suite-benchmarks utilisent aussi la convention de publication Maven ; suite-browser est une application. La suite utilise les dépendances entre projets et les conventions Gradle du dépôt. Chaque cas réside dans son propre fichier, regroupé par famille, et exerce l’API publique. Les bindings natifs consomment les artifacts partagés et les exécutent dans leurs dépôts.

Le plugin de build-logic org.graphiks.webgpu-suite-inventory génère les constantes de symboles, le catalogue et les manifestes depuis les sources de l’API et les annotations @AcidTest. L’inventaire du site combine ces sorties avec les comportements non couverts rédigés et les ressources EN/FR. Les sorties générées ne sont pas versionnées. Le site de validation est déployé avec la documentation sous suite/.

Le générateur lit l’IDL WebGPU et la documentation YAML versionnés, puis écrit les sources des modules publics. Modifiez la spécification ou les données documentaires, puis suivez la procédure manuelle d’entretien de la spécification. Le mapping des types reste la source canonique des choix de types.