WebGPU 新功能 (Chrome 141)

François Beaufort
François Beaufort

發布日期:2025 年 9 月 24 日

Tint IR completed

我們已完成一項長期專案 (超過 2.5 年),旨在提升 Tint 內部效能,WGSL 編譯器也已完成。中介表示法 (IR) 已插入後端,介於目前的抽象語法樹 (AST) 和後端程式碼產生器之間。導入 IR 後,Chrome 團隊就能移除所有 AST 轉換,並將其重新建立為 IR 轉換。由於架構差異,IR 轉換的速度會大幅提升。在某些平台上,Tint 的內部機制因這些變更而提升了七倍的速度。

這項新 IR 可大幅提升複雜的大規模著色器分析和轉換潛力,不僅能顯著提升效能,還能讓 Chrome 順利推出令人期待的全新 WebGPU 功能。

從這個里程碑開始,所有後端程式碼產生器都會使用 IR 表示法,所有 AST 轉換作業都會遭到刪除,而執行轉換作業的所有 AST 支援程式碼也會移除。

為改善 IR,我們將 SPIR-V 前端 (應用程式用來將 SPIR-V 轉換為 WGSL) 從產生 AST 表示法,改為直接產生 IR。這項強化功能也為 SPIR-V 前端導入了期待已久的浮點數 16 支援等功能。

WGSL 編譯器中的整數範圍分析

Chrome 團隊正逐步推出 Tint 的全新整數範圍分析功能,這是 WebGPU 著色器語言編譯器。整數範圍分析會估算整數變數在程式執行期間可採用的最小值和最大值,不必實際執行程式。

這項功能可減少昂貴的邊界檢查需求,進而提升效率,並將於近期在所有平台預設啟用。請參閱問題 348701956

Vulkan 後端的 SPIR-V 1.4 更新

系統會在 Android 和 ChromeOS 裝置上推出 SPIR-V 1.4 支援功能 (如有)。這項更新可讓 WGSL 編譯器 Tint 運用新的 SPIR-V 功能、放寬限制,以及使用新指令,在編譯 Vulkan 著色器時,於特定情境中更有效率地產生程式碼。請參閱問題 427717267

黎明更新

標準化的 webgpu.h 標頭 (定義核心 WebGPU C API) 現在終於穩定。這項穩定性特別適用於上游定義的核心 API,不包括實作擴充功能 (例如來自 Dawn 或 Emdawnwebgpu),因此最好使用您連結的確切實作項目提供的 webgpu.h。雖然標頭穩定,但我們持續修正錯誤並解決整個生態系統的相容性問題,因此實作方式之間仍可能出現非預期的差異。如果發生這種情況,請回報錯誤

感謝外部貢獻者 William Candillon,您現在可以在 GitHub Actions 上找到預先建構的 Dawn 二進位檔,做為構件。包括 Android 適用的靜態 .lib 檔案、Apple 適用的 .XCFramework 套件,以及所有必要的標頭檔。請參閱 Dawn PR #39 和構件範例

這僅涵蓋部分重點。請參閱完整的提交清單

WebGPU 最新消息

WebGPU 最新消息」系列涵蓋的所有主題清單。

Chrome 141

Chrome 140

Chrome 139

Chrome 138

Chrome 137

Chrome 136

Chrome 135

Chrome 134

Chrome 133

Chrome 132

Chrome 131

Chrome 130

Chrome 129

Chrome 128

Chrome 127

Chrome 126

Chrome 125

Chrome 124

Chrome 123

Chrome 122

Chrome 121

Chrome 120

Chrome 119

Chrome 118

Chrome 117

Chrome 116

Chrome 115

Chrome 114

Chrome 113