适用于 Android 的 WebGPU

Android Jetpack WebGPU 库WebGPU 标准提供惯用的 Kotlin 绑定,可在 Android 应用中实现高性能的现代 3D 图形和计算功能。

WebGPU 是 WebGL 的后继产品,也是 OpenGL 的精神后代,从头开始构建,旨在反映现代 GPU 的工作方式,并以跨平台、安全且符合人体工程学的方式公开 GPU 功能。

为什么选择 WebGPU?

  • 简化了易用性:虽然 Vulkan 是 Android 上的主要底层图形 API。WebGPU 提供了一种现代的高级 API,与 Vulkan 相比,它更易于使用,并且冗余程度也大大降低
  • 批处理和序列化 WebGPU 会将多条命令记录到命令缓冲区中,这是其旨在最大限度减少协议冗余的设计的一部分。这样还可以最大限度地减少在使用 Kotlin 绑定时调用外部方法的需要。
  • 通用支持:WebGPU 着色器代码 (WGSL) 可直接在各个平台(包括 Web)的 WebGPU 实现之间共享。
  • 优化计算:计算任务和图形任务之间实现无缝的无复制缓冲区共享,与旧版 API 相比,可提升性能并简化开发。

此库的适用对象

此库专为构建需要直接访问 GPU 的高性能应用而设计:

  • 图片和视频处理滤镜
  • 数据直观显示
  • 机器学习推理
  • 游戏和模拟

非目标:这是一个图形 API,而不是游戏引擎。您负责管理自己的渲染循环、相机矩阵和场景图。

核心 WebGPU 概念

了解基本的 WebGPU 对象及其交互方式对于 WebGPU 开发至关重要。

概念

说明

实例

WebGPU 的入口点,用于授予对适配器和 Surface 的访问权限

适配器

表示设备上的特定 GPU

设备

您与创建资源的 GPU 之间的逻辑连接

队列

用于向 GPU 提交命令的机制

着色器模块

您的 GPU 代码,以 WebGPU 着色语言 (WGSL) 编写

流水线

描述任务的整个 GPU 状态(着色器、混合)的对象

绑定组

将数据缓冲区(例如纹理)与着色器相关联

命令编码器

用于将一系列 GPU 命令构建到命令缓冲区中的对象