WebGPU para Android

A biblioteca WebGPU do Android Jetpack oferece vinculações idiomáticas do Kotlin para o padrão WebGPU, permitindo gráficos 3D modernos de alta performance e recursos de computação nos seus aplicativos Android.

A WebGPU é a sucessora da WebGL e descendente espiritual da OpenGL. Ela foi criada do zero para refletir como as GPUs modernas funcionam e expor os recursos da GPU de maneira multiplataforma, segura e ergonômica.

Por que usar o WebGPU?

  • Usabilidade simplificada: embora o Vulkan seja a principal API gráfica de baixo nível no Android. O WebGPU oferece uma API moderna e de nível mais alto que é mais acessível e significativamente menos detalhada para usar em comparação com o Vulkan.
  • Lote e serialização: a WebGPU grava vários comandos em buffers de comando, parte do design para minimizar a comunicação excessiva do protocolo. Isso também minimiza a necessidade de chamar métodos externos ao usar vinculações do Kotlin.
  • Suporte universal: o código de shader WebGPU (WGSL) pode ser compartilhado diretamente entre implementações do WebGPU em várias plataformas, incluindo a Web.
  • Computação otimizada: o compartilhamento de buffer sem cópia entre tarefas de computação e gráficos melhora o desempenho e simplifica o desenvolvimento em comparação com APIs legadas.

Público-alvo da biblioteca

Essa biblioteca foi projetada para criar aplicativos de alto desempenho que exigem acesso direto à GPU:

  • Filtros de processamento de imagens e vídeos
  • Visualizações de dados
  • Inferência de machine learning
  • Jogos e simulações

Não metas: esta é uma API gráfica, não um mecanismo de jogo. Você é responsável por gerenciar seu próprio loop de renderização, matrizes de câmera e gráfico de cena.

Principais conceitos da WebGPU

Entender os objetos fundamentais da WebGPU e como eles interagem é essencial para o desenvolvimento com essa API.

Concept

Descrição

Instância

O ponto de entrada da WebGPU, que concede acesso a adaptadores e superfícies.

Adaptador

Representa uma GPU específica no dispositivo.

Dispositivo

Sua conexão lógica com a GPU em que os recursos são criados

Queue

O mecanismo usado para enviar comandos à GPU.

Módulo de shader

Seu código de GPU, escrito na linguagem de sombreamento WebGPU (WGSL)

Pipelines

Objetos que descrevem todo o estado da GPU (shaders, combinação) para uma tarefa

Grupos de vinculação

Vincula buffers de dados (por exemplo, texturas) a sombreadores.

Codificador de comandos

Um objeto usado para criar uma sequência de comandos de GPU em um buffer de comando.