WebGPU の新機能(Chrome 140)

François Beaufort
François Beaufort

公開日: 2025 年 8 月 27 日

デバイスリクエストがアダプターを消費する

WebGPU 仕様によると、アダプターはデバイス リクエストが成功すると「使用済み」としてマークされます。そのため、同じアダプターを使用する後続の requestDevice() 呼び出しは、拒否された Promise を返すようになります。以前は、これらの呼び出しは作成時に紛失したデバイスを返していました。問題 415825174 をご覧ください。

const adapter = await navigator.gpu.requestAdapter();
const device = await adapter.requestDevice();

await adapter.requestDevice(); // Fails because adapter has been consumed.

テクスチャ ビューが使用される場所でテクスチャを使用するための短縮形

GPUTextureGPUBindingResource として直接使用して、バインディング用にシェーダーに公開できるようになりました。また、人間工学の改善のために、GPURenderPassColorAttachment view、GPURenderPassColorAttachment resolveTarget、GPURenderPassDepthStencilAttachment view としても使用できます。これにより、GPUTextureView を使用してデフォルトのビューを取得するよりも簡単なアプローチが可能になります。 問題 425906323 をご覧ください。

const bindGroup = myDevice.createBindGroup({
  layout: myPipeline.getBindGroupLayout(0),
  entries: [
    { binding: 0, resource: mySampler },
    { binding: 1, resource: myTexture }, // Same as myTexture.createView()
    { binding: 2, resource: myExternalTexture },
    { binding: 3, resource: myBuffer },
  ],
});

WGSL textureSampleLevel が 1D テクスチャをサポート

2D テクスチャとの一貫性を保つため、textureSampleLevel() を使用して 1D テクスチャをサンプリングできるようになりました。これにより、以前は textureSample() を使用したフラグメント シェーダーからのみ可能だった 1D テクスチャの頂点シェーダーからのサンプリングが可能になります。 問題 382514673 をご覧ください。

bgra8unorm 読み取り専用ストレージ テクスチャの使用を非推奨化

読み取り専用ストレージ テクスチャで "bgra8unorm" 形式を使用することは非推奨になりました。WebGPU 仕様ではこれが明示的に禁止されており、Chrome で以前に許可されていたのはバグでした。この形式は書き込み専用アクセスを目的としており、移植できません。問題 427681156 をご覧ください。

GPUAdapter isFallbackAdapter 属性を削除

以前にお知らせしたとおり、GPUAdapter isFallbackAdapter 属性が削除されました。Chrome 136 で導入された GPUAdapterInfo isFallbackAdapter 属性に置き換えられます。削除の意向をご覧ください。

Dawn のアップデート

wgpuInstanceGetWGSLLanguageFeatures() 関数は、インスタンスでサポートされている WGSL 言語機能のリストを取得するために使用されます。以前は WGPUStatus 値を返していました。失敗することはないため、値を返さないように更新されました。問題 429178774 をご覧ください。

サーフェスに現在のテクスチャがない場合、wgpuSurfacePresent() 関数は WGPUStatus エラーを返すようになりました。問題 425930323 をご覧ください。

新しい wgpu::InstanceFeatureName::MultipleDevicesPerAdapter 機能により、アダプタは「消費」されることなく複数のデバイスを作成できます。問題 415825174 をご覧ください。

dump_shaders_on_failure デバイスの切り替えを使用すると、デバッグ目的で失敗した場合にのみシェーダーをダンプできます。これは D3 バックエンドにのみ適用されますが、将来的には他のバックエンドにも拡張される可能性があります。問題 429187478 をご覧ください。

レンダリング パスを送信する際のオーバーヘッドを削減するため、特にモバイル GPU のパフォーマンスを向上させるため、Vulkan バックエンドに複数の変更が加えられました。例: VkFramebuffer のキャッシュ保存

ここでは、主なハイライトの一部のみを取り上げます。コミットの一覧をご覧ください。

WebGPU の新機能

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

Chrome 140

Chrome 139

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