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