WebGPU の新機能(Chrome 122)

François Beaufort
François Beaufort

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

それまでの間、ヘッドレス 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 チームはこの問題に対処するため、D3D11 や OpenGL ES などの古い API で動作する WebGPU のわずかに制限されたバージョンを提供することで、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 },
});

夜明けの最新情報

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

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

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

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

WebGPU の新機能

WebGPU の新機能」シリーズに記載されている全内容のリスト。

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