WebGPU の新機能(Chrome 122)

François Beaufort
François Beaufort

今回は WebGPU の機能が少し増えるように見えるかもしれませんが、大きな進歩が目前に迫っています。今後のリリースには、DP4a、読み取り専用と読み書き可能なストレージ テクスチャ、個別のステンシルと奥行きのアスペクト制御、3D テクスチャ スライスへのレンダリング、シェーダー コンパイルの改善などの機能が含まれます。

それまでの間、ヘッドレス Chrome の WebGPU と WebGL のサポートでウェブ AI モデルのテストを強化する方法と、Chrome で WebGPU が無効になる、または動作しない理由をご確認ください。

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

WebGPU は最新のグラフィック API(Vulkan、Metal、D3D12)に対応していますが、一部のデバイスはサポートしていません。このため、特に 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 個までリクエストできるようになりました。次の例と issue 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 vertext attributes.
const device = await adapter.requestDevice({
  requiredLimits: { maxVertexAttributes: 30 },
});

夜明けの更新情報

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

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

  • GPUSupportedFeatures::getSize() を追加しました。
  • GPUAdapter の未更新が実装されました。
  • GPUInternalError がデバイスで適切に報告されるようになりました。
  • 属性が列挙できるようになりました。

ここでは、重要なハイライトの一部についてのみ説明します。commit の完全なリストを確認する。

WebGPU の新機能

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

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