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 チームはこの問題に対処するため、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 },
});

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