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

François Beaufort
François Beaufort

這次的 WebGPU 功能數量可能不多,但重大進展即將到來!後續版本將包含 DP4a、唯讀和讀寫儲存空間紋理、獨立的模板和深度比例控制項、算繪至 3D 紋理切片,以及著色器編譯改良功能。

在此期間,請參閱這篇文章,瞭解如何運用無頭 Chrome 的 WebGPU 和 WebGL 支援功能,大幅提升 Web AI 模型測試效率,並參閱這篇文章,瞭解 Chrome 中 WebGPU 可能遭到停用或無法運作的原因。

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

WebGPU 與現代圖形 API (Vulkan、Metal 和 D3D12) 相當一致,但部分裝置不支援這些 API。這項限制會影響 WebGPU 的可用性,尤其是在 Windows (31% 的 Chrome 使用者缺少 D3D11.1 以上版本)、Android (23% 的使用者缺少 Vulkan 1.1 以上版本) 和 ChromeOS 等平台。

為解決這個問題,Chrome 團隊正在開發 WebGPU 的相容模式,提供略為受限的 WebGPU 版本,可在 D3D11 和 OpenGL ES 等舊版 API 上運作。這將擴大 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 功能,而非不安全的功能,因此您可以使用安全的實驗性 WGSL 功能,不必啟用「allow_unsafe_apis」切換按鈕。請參閱問題 dawn:2260

Node.js 的 Dawn 繫結近期改善項目包括:

  • 已新增 GPUSupportedFeatures::getSize()
  • 已導入 GPUAdapter 延遲。
  • 裝置現在會正確回報 GPUInternalError
  • 屬性現在可列舉。

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

WebGPU 最新消息

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

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