發布日期: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
- 裝置要求會耗用轉接器
- 使用紋理檢視畫面時,可使用紋理的簡短形式
- WGSL textureSampleLevel 支援 1D 紋理
- 淘汰 bgra8unorm 唯讀儲存空間紋理用法
- 移除 GPUAdapter isFallbackAdapter 屬性
- Dawn 最新消息
Chrome 139
Chrome 138
Chrome 137
- 使用紋理檢視區塊進行 externalTexture 繫結
- 複製緩衝區,但不指定位移和大小
- WGSL 工作群組 UniformLoad,使用指標指向原子
- GPUAdapterInfo powerPreference 屬性
- 移除 GPURequestAdapterOptions compatibilityMode 屬性
- Dawn 最新消息
Chrome 136
Chrome 135
- 允許使用空值繫結群組版面配置建立管道版面配置
- 允許檢視區塊超出算繪目標的邊界
- 在 Android 上更輕鬆存取實驗性相容模式
- 移除 maxInterStageShaderComponents 限制
- Dawn 最新消息
Chrome 134
Chrome 133
- 額外的 unorm8x4-bgra 和 1 元件頂點格式
- 允許使用未定義的值要求不明限制
- WGSL 對齊規則異動
- 使用 discard 提升 WGSL 效能
- 針對外部紋理使用 VideoFrame displaySize
- 使用 copyExternalImageToTexture 處理方向非預設的圖片
- 提升開發人員體驗
- 使用 featureLevel 啟用相容模式
- 清除實驗性子群組功能
- 淘汰 maxInterStageShaderComponents 限制
- Dawn 最新消息
Chrome 132
- 紋理檢視畫面使用方式
- 32 位元浮點紋理混合
- GPUDevice adapterInfo 屬性
- 以無效格式設定畫布內容時,會擲回 JavaScript 錯誤
- 紋理的篩選取樣器限制
- 擴大子群組實驗
- 提升開發人員體驗
- 實驗性支援 16 位元標準化紋理格式
- Dawn 最新消息
Chrome 131
- 在 WGSL 中裁剪距離
- GPUCanvasContext getConfiguration()
- 點和線條圖元不得有深度偏差
- 子群組的內建包容性掃描功能
- 實驗性支援多重繪圖間接
- 著色器模組編譯選項 strict math
- 移除 GPUAdapter requestAdapterInfo()
- Dawn 最新消息
Chrome 130
Chrome 129
Chrome 128
Chrome 127
Chrome 126
Chrome 125
Chrome 124
Chrome 123
Chrome 122
Chrome 121
- 在 Android 上支援 WebGPU
- 在 Windows 上使用 DXC 取代 FXC,編譯著色器
- 運算和算繪階段中的時間戳記查詢
- 著色器模組的預設進入點
- 支援將 display-p3 做為 GPUExternalTexture 色彩空間
- 記憶體堆積資訊
- Dawn 最新消息
Chrome 120
Chrome 119
Chrome 118
Chrome 117
Chrome 116
- 整合 WebCodecs
- GPUAdapter
requestDevice()
傳回的遺失裝置 - 如果呼叫
importExternalTexture()
,請確保影片播放流暢 - 規格一致性
- 提升開發人員體驗
- Dawn 最新消息
Chrome 115
Chrome 114
Chrome 113
- 在
importExternalTexture()
中使用 WebCodecs VideoFrame 來源