WebGPU の新機能(Chrome 138)

François Beaufort
François Beaufort

公開日: 2025 年 6 月 17 日

バッファをバインディング リソースとして使用するショートカット

デベロッパーは、GPUBufferGPUBindingResource として直接使用し、シェーダーに公開してバインディングできるようになりました。これにより、他のバインディング タイプと整合性が保たれ、サイズとオフセットの両方でデフォルト値を使用する場合、GPUBufferBinding よりもさらに簡単に使用できます。問題 419223794 をご覧ください。

const bindGroup = myDevice.createBindGroup({
  layout: myPipeline.getBindGroupLayout(0),
  entries: [
    { binding: 0, resource: mySampler },
    { binding: 1, resource: myTextureView },
    { binding: 2, resource: myExternalTexture },
    { binding: 3, resource: myBuffer }, // Same as { buffer: myBuffer }
    { binding: 4, resource: { buffer: myOtherBuffer, offset: 42 },
  ],
});

作成時にマッピングされたバッファのサイズ要件の変更

mappedAtCreation を true に設定してバッファを作成する場合、size が 4 の倍数でない場合、RangeError がスローされるようになりました。以前は、GPUValidationError のみで適用されていました。問題 405883445 をご覧ください。

myDevice.createBuffer({
  mappedAtCreation: true,
  size: 42,
  usage: GPUBufferUsage.STORAGE,
});
// Throws RangeError

最新の GPU のアーキテクチャ レポート

Nvidia と AMD の最新の GPU では、GPUAdapterInfo でアーキテクチャがそれぞれ "blackwell""rdna4" として報告されるようになりました。また、GPU アーキテクチャのリストにいくつかのマイナーな追加も行われています。問題 417202748 をご覧ください。

GPUAdapter の isFallbackAdapter 属性を非推奨に

GPUAdapter isFallbackAdapter 属性は非推奨です。これは、Chrome 136 で導入された GPUAdapterInfo isFallbackAdapter 属性に置き換えられました。非推奨にする意向をご覧ください。

Dawn の更新

Emscripten は CMake ビルドの Dawn GLFW でサポートされているため、デベロッパーは Emdawnwebgpu を使用すると、最新の標準化された webgpu.h をブラウザ API で実装し、WebGPU のクロス プラットフォーム アプリコードをさらに簡素化できます。変更 dawn:242894 をご覧ください。

詳細なガイドについては、更新された WebGPU を使用してアプリを作成するをご覧ください。

パッケージ リリースに「リモート」Emdawnwebgpu ポートが追加されました。このポートのスナップショットは Emscripten 4.0.10 以降に含まれています。これにより、外部でホストされているポートがサポートされるようになりました。Emdawnwebgpu への切り替えは、emcc -sUSE_WEBGPU から emcc --use-port=emdawnwebgpu への 1 つのフラグの変更で行うことができます。Emscripten PR #24303#24220Dawn CL 243214 をご覧ください。

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

WebGPU の新機能

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

Chrome 138

Chrome 137

Chrome 136

Chrome 135

Chrome 134

Chrome 133

Chrome 132

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