WebGPU の新機能(Chrome 122)

François Beaufort
François Beaufort

今回の WebGPU 機能の数は少ないように思えるかもしれませんが、まもなく大きな進歩が期待できます。今後のリリースでは、DP4a、読み取り専用と読み取り / 書き込みのストレージ テクスチャ、ステンシルと深度の比率の個別制御、3D テクスチャ スライスへのレンダリング、シェーダーのコンパイルの改善などの機能が追加される予定です。

詳しくは、Headless Chrome で WebGPU と WebGL をサポートしてウェブ AI モデルのテスト機能を強化する方法と、Chrome で WebGPU が無効になっている、または動作しない理由をご覧ください。

互換モードでリーチを拡大する(開発中の機能)

WebGPU は最新のグラフィック API(Vulkan、Metal、D3D12)とよく整合していますが、一部のデバイスではこれらの API がサポートされていません。これにより、特に Windows(Chrome ユーザーの 31% が D3D11.1 以降を欠落)、Android(23% が Vulkan 1.1 以降を欠落)、ChromeOS(Vulkan の採用率が上昇)などのプラットフォームで、WebGPU の利用が制限されます。

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 },
});

Dawn の更新

新しいインスタンス切り替え「expose_wgsl_experimental_features」が追加されました。これにより、インスタンスで試験運用版の WGSL 機能のみが公開され、安全でない機能は公開されなくなります。これにより、「allow_unsafe_apis」切り替えを有効にすることなく、安全な試験運用版の WGSL 機能を使用できるようになります。問題 dawn:2260 をご覧ください。

Node.js 用 Dawn バインディングの最近の改善点は次のとおりです。

  • GPUSupportedFeatures::getSize() を追加しました。
  • GPUAdapter の古さが実装されました。
  • デバイスの GPUInternalError が正しく報告されるようになりました。
  • アトリビュートを列挙できるようになりました。

以下に、主なハイライトをいくつかご紹介します。コミットの一覧(すべて網羅)をご覧ください。

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