WebGPU の新機能(Chrome 145)

François Beaufort
François Beaufort

公開日: 2026 年 1 月 28 日

WGSL subgroup_uniformity 拡張機能

WGSL 言語拡張機能 subgroup_uniformity は、サブグループとクアッドの組み込み関数の均一性分析のスコープを、ワークグループ レベルからサブグループ レベルに変更します。この機能により、サブグループ機能が均一と見なされるケースが増え、デベロッパーの利便性が向上し、均一性チェックが完全に無効になる可能性が低くなります。実際には、最近追加された subgroup_id 組み込み値など、より多くの値がサブグループ均一と見なされます。

この言語拡張機能は、navigator.gpu.wgslLanguageFeatures を使用して機能検出できます。次の例とリリース予定をご覧ください。

if (!navigator.gpu.wgslLanguageFeatures.has("subgroup_uniformity")) {
  throw new Error(`WGSL subgroup uniformity is not available`);
}

const adapter = await navigator.gpu.requestAdapter();
if (!adapter.features.has("subgroups")) {
  throw new Error("Subgroups support is not available");
}
const device = await adapter.requestDevice({ requiredFeatures: ["subgroups"] });

const shaderModule = device.createShaderModule({ code: `
  enable subgroups;
  
  @group(0) @binding(0) var<storage, read_write> non_uniform: i32;

  fn main() {
    if (non_uniform == 42) {
      _ = subgroupElect();
    }
  }`,
}); // WGSL error: subgroupElect must only be called from subgroup uniform control flow.

ワーカーでの試験運用版の同期バッファ マッピング

Chrome チームは、WebGPU とアプリケーション コード間の摩擦を軽減する方法を検討するため、ワーカー内での同期バッファ マッピングを調査しています。この取り組みの一環として、GPUBuffer の新しい試験運用版の mapSync() メソッドのプロトタイプが作成されました。このメソッドはワーカーに限定され、mapAsync() と同様に機能します。

この機能は試験運用版であり、標準化の提案を行うかどうかを判断するには、フィードバックが重要です。試すには、--enable-features=WebGPUMapSyncOnWorkers スイッチを使用して Chrome を起動し、その有用性と影響に関するフィードバックを報告してください。まず、次のスニペットをご覧ください。

// Create a GPU buffer.
const buffer = device.createBuffer({
  size: 42,
  usage: GPUBufferUsage.COPY_DST | GPUBufferUsage.MAP_READ,
});

// Map buffer synchronously when possible.
if ("mapSync" in GPUBuffer.prototype) {
  buffer.mapSync(GPUMapMode.READ);
} else {
  // Awaiting allows other code to run, which can cause application logic issues.
  await buffer.mapAsync(GPUMapMode.READ);
}

Dawn の最新情報

wgpu::FeatureName::R8UnormStorage 機能は使用できなくなりました。この機能は wgpu::FeatureName::TextureFormatTier1 に置き換えられ、現在ではこの機能が優先されます。問題 472926167 をご覧ください。

wgpu::FeatureName::Snorm16TextureFormats 機能は削除されました。Resolve を除くこの機能の機能は、現在 wgpu::FeatureName::TextureFormatsTier1 にほぼ含まれています。問題 465347942 をご覧ください。

バイナリのナイトリー リリース(Emdawnwebgpu に加えて)は GitHub でビルドされ、google/dawn リリースで入手できるようになりました。これらはベスト エフォート型のサービスとして提供され、Google または Dawn チームによる署名や保証はありません。

wgpu::ExternalTexture のサポートが Emdawnwebgpu に追加されました。C/C++ での構築は、HTMLVideoElementVideoFrame などの JavaScript オブジェクトが必要なため、JavaScript コード(EM_ASM など)からのみインポートできます。問題 462477379SpotTests.cpp のコード例をご覧ください。

これは主なハイライトの一部にすぎません。コミットの完全なリストをご覧ください。

WebGPU の新機能

WebGPU の新機能シリーズで取り上げられたすべての機能の一覧です。

Chrome 149 ~ 150

Chrome 147 ~ 148

Chrome 146

Chrome 145

Chrome 144

Chrome 143

Chrome 142

Chrome 141

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