WebGPU の新機能(Chrome 114)

François Beaufort
François Beaufort

JavaScript を最適化する

Chromium のコントリビューターは、V8 JavaScript エンジンで生成されたコードから Blink レンダリング エンジンの C++ ハンドラを呼び出すオーバーヘッドを削減することで、GPUComputePassEncoderGPURenderPassEncoderGPUCommandEncoder メソッドの WebGPU のパフォーマンスを向上させました。問題 chromium:1417558 をご覧ください。

次の microbenchmark では、JavaScript からの呼び出しの CPU 時間が 10, 000 回の描画ごとに約 0.5 ms から約 0.3 ms に減少し、40% の改善であることを示しています。

高速通話の改善を示す Chrome ブラウザのベンチマーク グラフのスクリーンショット。
高速通話の改善を示す Chrome ベンチマーク グラフ(出典)。

未設定のキャンバスで getCurrentTexture() が InvalidStateError をスローする

未設定のキャンバスで GPUCanvasContext getCurrentTexture() メソッドを呼び出すと、WebGPU の仕様に従い、OperationError ではなく InvalidStateError がスローされるようになりました。Issue chromium:1424461 をご覧ください。

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

WGSL の最新情報

AbstractInt のゼロ塗りつぶされたベクトルは、vec2()vec3()vec4() と記述できるようになりました。Issue tint:1892 をご覧ください。次に例を示します。

  • vec2() の場合は vec2(0,0)
  • vec3() の場合は vec3(0,0,0)
  • vec4() の場合は vec4(0,0,0,0)

夜明けの更新情報

エラー メッセージの改善

無効なオブジェクトの記述子ラベルは破棄されないため、エラー メッセージで確認できるようになりました。issue dawn:1771 をご覧ください。

不足している Node.js 用 API を追加する

GPUAdapter::requestAdapterInfo() メソッドと GPUBuffer::getMapState() メソッドが Node.js 用に実装されました。issue dawn:1761 をご覧ください。

WebGPU の新機能

WebGPU の新機能シリーズで取り上げたすべての内容のリストです。

Chrome 124

Chrome 123

Chrome 122

Chrome 121

Chrome 120

Chrome 119

Chrome 118

Chrome 117

Chrome 116

Chrome 115

Chrome 114

Chrome 113