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

François Beaufort
François Beaufort

WebGPU 功能的數量看似微不足道,但重大的進展即將到來!後續版本將提供多項功能,例如 DP4a、唯讀和讀寫儲存空間紋理、獨立的模板和深度切面控制、算繪 3D 紋理配量,以及改善著色器編譯功能。

同時,建議你瞭解如何在 Headless Chrome 中使用 WebGPU 和 WebGL 支援功能,提升 Web AI 模型測試效率,以及瞭解 WebGPU 在 Chrome 中停用或無法運作的原因

使用相容性模式擴大觸及範圍 (開發中的功能)

WebGPU 可與新型圖形 API (Vulkan、Meta 和 D3D12) 一致,但部分裝置不支援這類 API。這樣會限制 WebGPU 的無障礙,特別是在 Windows (31% 的 Chrome 使用者缺乏 D3D11.1 以上版本)、Android (23% 未使用 Vulkan 1.1 以上版本) 和 ChromeOS (越來越多人採用 Vulkan)。

為瞭解決這個問題,Chrome 團隊目前正在開發 WebGPU 的相容模式,為 D3D11 和 OpenGL ES 等舊版 API 提供稍微受限的 WebGPU 版本。這會擴大 WebGPU 的潛在使用者族群。

重要的是,使用相容性模式的應用程式仍是完全有效的 WebGPU 應用程式。如果裝置不支援相容模式,就會自動預設使用核心 WebGPU 轉接器,確保裝置的可用性。

WebGPU 相容性模式圖表。
擴大 WebGPU 相容性模式的觸及範圍。

如有任何疑問,請查看提案留言

提高 maxVertexAttributes 上限

建立 GPURenderPipeline 時,各緩衝區的屬性總數上限為 16。現在,您可以在支援的情況下使用 maxVertexAttributes 限制,要求最多要求 30 個。請參考以下範例和問題 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 功能切換鈕請參閱問題 dawn:2260

最近改善了 Node.js 專用的 Dawn 繫結

  • 已新增 GPUSupportedFeatures::getSize()
  • 已實作 GPUAdapter 的過時程度。
  • 系統現已正確回報裝置的GPUInternalError
  • 屬性現已可供列舉。

這只涵蓋部分重點功能。請參閱完整的修訂版本清單

WebGPU 新功能

WebGPU 最新消息系列中所有包含的清單。

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