這次的 WebGPU 功能數量可能看起來有點微妙,但還有重大進展!下一個版本將包含 DP4a、唯讀和讀寫儲存空間紋理、個別模板和深度顯示控制項、算繪為 3D 紋理切片,以及著色器編譯改善項目。
在此期間,歡迎瞭解如何在無頭 Chrome 中使用 WebGPU 和 WebGL,強化 Web AI 模型測試,以及WebGPU 在 Chrome 中停用或無法運作的原因。
使用相容性模式擴大觸及範圍 (開發中的功能)
WebGPU 可與新型圖形 API (Vulkan、 Metal 和 D3D12) 完美契合,但部分裝置不支援這些 API。這項限制會限制 WebGPU 的無障礙功能,尤其是在 Windows (31% 的 Chrome 使用者缺少 D3D11.1 以上版本)、Android (23% 沒有 Vulkan 1.1 及以上版本) 和 ChromeOS (日後採用 Vulkan 時才會採用),
Chrome 團隊致力在 WebGPU 中採用相容性模式,藉此提供稍微受限的 WebGPU 版本,該版本適用於 D3D11 和 OpenGL ES 等舊版 API。這將擴大 WebGPU 的潛在使用者數量。
重要的是,使用相容性模式的應用程式仍然是有效的 WebGPU 應用程式。不支援相容性模式的裝置將預設使用核心 WebGPU 轉接器,以確保可廣泛使用。
提高 maxVertexAttributes 上限
根據預設,建立 GPURenderPipeline 時,跨緩衝區的屬性總數上限為 16 個。您現在最多可以使用 maxVertexAttributes 限制 (如果系統支援的話) 來要求最多 30 個節點。請參考下列範例和 Issue dawn:2223。
const adapter = await navigator.gpu.requestAdapter();
if (adapter.limits.maxVertexAttributes < 30) {
// When the desired limit isn't supported, take action to either fall back to
// a code path that does not require the higher limit or notify the user that
// their device does not meet minimum requirements.
}
// Request highest limit of max vertex attributes.
const device = await adapter.requestDevice({
requiredLimits: { maxVertexAttributes: 30 },
});
黎明更新
已新增名為「expose_wgsl_experimental_features」的新執行個體切換,讓執行個體隻公開實驗性 WGSL 功能,而不會公開不安全的功能。因此,不需要啟用「allow_unsafe_apis」切換鈕,即可使用安全的實驗性 WGSL 功能。請參閱「問題日出:2260」。
近期改善 Node.js 的 Dawn 繫結作業,包括:
- 已新增
GPUSupportedFeatures::getSize()
。 - 已實作
GPUAdapter
過時程度。 - 系統現在已正確回報裝置回報
GPUInternalError
。 - 屬性現在可供列舉。
這僅涵蓋部分重點功能。查看完整的修訂版本清單。
WebGPU 的新功能
「WebGPU 新功能」系列中已說明的所有功能清單。
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 最新消息