WebGPU per Android

La libreria WebGPU di Android Jetpack fornisce binding Kotlin idiomatici per lo standard WebGPU, consentendo funzionalità di calcolo e grafica 3D moderne e ad alte prestazioni all'interno delle tue applicazioni Android.

WebGPU è il successore di WebGL e il discendente spirituale di OpenGL, creato da zero per riflettere il funzionamento delle GPU moderne ed esporre le funzionalità della GPU in modo multipiattaforma, sicuro ed ergonomico.

Perché WebGPU?

  • Usabilità semplificata: Vulkan è l'API grafica di basso livello principale su Android. WebGPU offre un'API moderna di livello superiore che è più accessibile e molto meno dettagliata da usare rispetto a Vulkan.
  • Batching e serializzazione WebGPU registra più comandi in buffer di comando, parte del suo design per ridurre al minimo la comunicazione del protocollo. Inoltre, riduce al minimo la necessità di chiamare metodi esterni quando si utilizzano i binding Kotlin.
  • Supporto universale: il codice shader WebGPU (WGSL) può essere condiviso direttamente tra le implementazioni WebGPU su tutte le piattaforme, incluso il web.
  • Calcolo ottimizzato: la condivisione del buffer senza copia tra le attività di calcolo e grafica migliora le prestazioni e semplifica lo sviluppo rispetto alle API legacy.

Destinatari della libreria

Questa libreria è progettata per creare applicazioni ad alte prestazioni che richiedono l'accesso diretto alla GPU:

  • Filtri di elaborazione di immagini e video
  • Visualizzazioni dati
  • Inferenza di machine learning
  • Giochi e simulazioni

Obiettivi non raggiunti: questa è un'API grafica, non un motore di gioco. Sei responsabile della gestione del ciclo di rendering, delle matrici della videocamera e del grafico della scena.

Concetti principali di WebGPU

Comprendere gli oggetti WebGPU di base e il modo in cui interagiscono è essenziale per lo sviluppo di WebGPU.

Concept

Descrizione

Istanza

Il punto di accesso a WebGPU, che consente di accedere ad adattatori e superfici

Alimentatore

Rappresenta una GPU specifica sul dispositivo

Dispositivo

La connessione logica alla GPU in cui vengono create le risorse

Coda

Il meccanismo utilizzato per inviare comandi alla GPU

Modulo Shader

Il codice della GPU, scritto nel linguaggio di shading WebGPU (WGSL)

Pipeline

Oggetti che descrivono l'intero stato della GPU (shader, blending) per un'attività

Bind Groups

Collega i buffer di dati (ad es. le texture) agli shader

Command Encoder

Un oggetto utilizzato per creare una sequenza di comandi GPU in un buffer di comandi