WebGPU para Android

La biblioteca de WebGPU de Android Jetpack proporciona vinculaciones idiomáticas de Kotlin para el estándar de WebGPU, lo que permite capacidades de procesamiento y gráficos 3D modernos de alto rendimiento en tus aplicaciones para Android.

WebGPU es el sucesor de WebGL y el descendiente espiritual de OpenGL. Se creó desde cero para reflejar cómo funcionan las GPUs modernas y exponer las capacidades de la GPU de una manera multiplataforma, segura y ergonómica.

¿Por qué WebGPU?

  • Usabilidad optimizada: Si bien Vulkan es la principal API de gráficos de bajo nivel en Android. WebGPU ofrece una API moderna de nivel superior que es más accesible y mucho menos detallada de usar en comparación con Vulkan.
  • Procesamiento por lotes y serialización: WebGPU registra varios comandos en búferes de comandos, que forman parte de su diseño para minimizar la comunicación excesiva del protocolo. Esto también minimiza la necesidad de llamar a métodos externos cuando se usan vinculaciones de Kotlin.
  • Compatibilidad universal: El código de sombreador de WebGPU (WGSL) se puede compartir directamente entre las implementaciones de WebGPU en todas las plataformas, incluida la Web.
  • Optimización del procesamiento: El uso compartido de búferes sin copias y sin problemas entre las tareas de procesamiento y gráficos mejora el rendimiento y simplifica el desarrollo en comparación con las APIs heredadas.

Para quiénes es esta biblioteca

Esta biblioteca está diseñada para compilar aplicaciones de alto rendimiento que requieren acceso directo a la GPU:

  • Filtros de procesamiento de imágenes y videos
  • Visualizaciones de datos
  • Inferencia de aprendizaje automático
  • Juegos y simulaciones

No se incluyen los siguientes objetivos: Esta es una API de gráficos, no un motor de juegos. Eres responsable de administrar tu propio bucle de renderización, matrices de cámara y gráfico de escena.

Conceptos básicos de WebGPU

Comprender los objetos fundamentales de WebGPU y cómo interactúan es esencial para el desarrollo de WebGPU.

Concepto

Descripción

Instancia

Es el punto de entrada a WebGPU, que otorga acceso a adaptadores y superficies.

Adaptador

Representa una GPU específica en el dispositivo

Dispositivo

Tu conexión lógica a la GPU en la que se crean los recursos

Queue

Mecanismo que se usa para enviar comandos a la GPU

Shader Module

Tu código de GPU, escrito en el lenguaje de sombreado de WebGPU (WGSL)

Canalizaciones

Objetos que describen el estado completo de la GPU (sombreadores, combinación) para una tarea

Grupos de vinculaciones

Vincula los búferes de datos (p. ej., texturas) a los sombreadores.

Codificador de comandos

Objeto que se usa para compilar una secuencia de comandos de GPU en un búfer de comandos