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) 可在各平台的 WebGPU 實作中直接共用,包括網頁。
  • 最佳化運算:運算和圖形工作之間可無縫共用緩衝區,不必複製資料,與舊版 API 相比,可提升效能並簡化開發作業。

這個程式庫的適用對象

這個程式庫專為建構需要直接存取 GPU 的高效能應用程式而設計:

  • 圖片和影片處理篩選器
  • 資料視覺化
  • 機器學習推論
  • 遊戲和模擬

非目標:這是圖形 API,而非遊戲引擎。您必須負責管理自己的算繪迴圈、攝影機矩陣和場景圖。

WebGPU 核心概念

瞭解基礎 WebGPU 物件及其互動方式,是 WebGPU 開發作業的必要條件。

概念

說明

執行個體

WebGPU 的進入點,可授予介面卡和 Surface 的存取權

變壓器

代表裝置上的特定 GPU

裝置

資源建立所在的 GPU 邏輯連線

待播清單

用於將指令提交至 GPU 的機制

Shader Module

以 WebGPU 著色語言 (WGSL) 編寫的 GPU 程式碼

管道

描述工作整個 GPU 狀態 (著色器、混合) 的物件

繫結群組

將資料緩衝區 (例如紋理) 繫結至著色器

指令編碼器

用於將一連串 GPU 指令建構到指令緩衝區的物件