WebGPU 新功能' (Chrome<版本>122)

François Beaufort
François Beaufort

這次的 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 轉接器,以確保可廣泛使用。

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 vertext 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

Chrome 120

Chrome 119

Chrome 118

Chrome 117

Chrome 116

Chrome 115

Chrome 114

Chrome 113