WebGPU 新功能's (Chrome 114)

François Beaufort
François Beaufort

最佳化 JavaScript

Chromium 貢獻者減少了從 V8 JavaScript 引擎產生的程式碼,對 Blink 轉譯引擎中的 C++ 處理常式發出呼叫的額外負擔,進而加快 GPUComputePassEncoderGPURenderPassEncoderGPUCommandEncoder 方法的 WebGPU 效能。請參閱 chromium 問題:1417558

下列微型基準測試顯示,JavaScript 呼叫的 CPU 時間從每 10,000 次繪圖約 0.5 毫秒,降至每 10,000 次繪圖約 0.3 毫秒,改善幅度達 40%。

Chrome 瀏覽器基準測試圖表的螢幕截圖,顯示快速呼叫的改善情形。
Chrome 基準測試圖表,顯示快速呼叫的改善情形 (來源)。

在未設定的畫布上執行 getCurrentTexture() 會擲回 InvalidStateError

根據 WebGPU 規格,現在在未設定的畫布上呼叫 GPUCanvasContext getCurrentTexture() 方法時,會擲回 InvalidStateError,而非 OperationError。請參閱 問題 chromium:1424461

const context = document.querySelector("canvas").getContext("webgpu");
context.getCurrentTexture(); // Throws InvalidStateError

WGSL 更新

AbstractInt 的零填充向量現在可以寫為 vec2()vec3()vec4()。請參閱問題 tint:1892。例如:

  • vec2()為「vec2(0,0)
  • vec3()為「vec3(0,0,0)
  • vec4()為「vec4(0,0,0,0)

黎明更新

改善錯誤訊息

無效物件的描述元標籤不會再遭到捨棄,因此您可以在錯誤訊息中看到這些標籤。請參閱問題 dawn:1771

為 Node.js 新增缺少的 API

GPUAdapter::requestAdapterInfo()GPUBuffer::getMapState() 方法現已為 Node.js 實作。請參閱問題 dawn:1761

WebGPU 新功能

以下是「WebGPU 最新消息」系列文章中涵蓋的所有內容。

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