公開日: 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++ での構築は、HTMLVideoElement や VideoFrame などの JavaScript オブジェクトが必要なため、JavaScript コード(EM_ASM など)からのみインポートできます。問題 462477379 と SpotTests.cpp のコード例をご覧ください。
これは主なハイライトの一部にすぎません。コミットの完全なリストをご覧ください。
WebGPU の新機能
WebGPU の新機能シリーズで取り上げられたすべての機能の一覧です。
Chrome 149 ~ 150
Chrome 147 ~ 148
Chrome 146
Chrome 145
Chrome 144
- WGSL subgroup_id 拡張機能
- WGSL uniform_buffer_standard_layout 拡張機能
- Linux の WebGPU
- writeBuffer と writeTexture の高速化
- Dawn の最新情報
Chrome 143
Chrome 142
Chrome 141
Chrome 140
- デバイス リクエストでアダプターが消費される
- テクスチャ ビューが使用されている場合にテクスチャを使用するためのショートカット
- WGSL textureSampleLevel が 1D テクスチャをサポート
- bgra8unorm 読み取り専用ストレージ テクスチャの使用の非推奨
- GPUAdapter isFallbackAdapter 属性の削除
- Dawn の最新情報
Chrome 139
Chrome 138
- バッファをバインディング リソースとして使用するためのショートカット
- 作成時にマッピングされたバッファのサイズ要件の変更
- 最近の GPU のアーキテクチャ レポート
- GPUAdapter isFallbackAdapter 属性の非推奨
- Dawn の最新情報
Chrome 137
- externalTexture バインディングにテクスチャ ビューを使用する
- オフセットとサイズを指定せずにバッファをコピーする
- アトミックへのポインタを使用する WGSL workgroupUniformLoad
- GPUAdapterInfo powerPreference 属性
- GPURequestAdapterOptions compatibilityMode 属性の削除
- Dawn の最新情報
Chrome 136
- GPUAdapterInfo isFallbackAdapter 属性
- D3D12 でのシェーダー コンパイル時間の短縮
- キャンバス画像を保存してコピーする
- 互換モードの制限の解除
- Dawn の最新情報
Chrome 135
- null バインド グループ レイアウトでパイプライン レイアウトを作成できるようにする
- ビューポートをレンダー ターゲットの境界を超えて拡張できるようにする
- Android で試験運用版の互換モードに簡単にアクセスできるようにする
- maxInterStageShaderComponents の上限を削除
- Dawn の最新情報
Chrome 134
Chrome 133
- 追加の unorm8x4-bgra および 1 コンポーネントの頂点形式
- 不明な上限を未定義の値でリクエストできるようにする
- WGSL のアライメント ルールの変更
- 破棄による WGSL のパフォーマンス向上
- 外部テクスチャに VideoFrame displaySize を使用する
- copyExternalImageToTexture を使用して、デフォルト以外の向きの画像を処理する
- デベロッパー エクスペリエンスの向上
- featureLevel で互換モードを有効にする
- 試験運用版のサブグループ機能のクリーンアップ
- maxInterStageShaderComponents の上限の非推奨
- Dawn の最新情報
Chrome 132
- テクスチャ ビューの使用
- 32 ビット浮動小数点テクスチャのブレンド
- GPUDevice adapterInfo 属性
- 無効な形式でキャンバス コンテキストを構成すると JavaScript エラーが発生する
- テクスチャのサンプラー制限のフィルタリング
- サブグループの試験運用版の拡張
- デベロッパー エクスペリエンスの向上
- 16 ビット正規化テクスチャ形式の試験運用版のサポート
- Dawn の最新情報
Chrome 131
- WGSL のクリップ距離
- GPUCanvasContext getConfiguration()
- 点と線のプリミティブに深度バイアスを設定してはならない
- サブグループの組み込み関数を含むスキャン
- マルチドロー間接の試験運用版のサポート
- シェーダー モジュールのコンパイル オプションの厳密な数学
- GPUAdapter requestAdapterInfo() の削除
- Dawn の最新情報
Chrome 130
Chrome 129
Chrome 128
- サブグループの試験運用
- 線と点の深度バイアスの設定の非推奨
- preventDefault の場合、キャプチャされていないエラー DevTools 警告を非表示にする
- WGSL は最初にサンプリングを補間し、どちらか一方を補間する
- Dawn の最新情報
Chrome 127
- Android での OpenGL ES の試験運用版のサポート
- GPUAdapter info 属性
- WebAssembly 相互運用性の改善
- コマンド エンコーダ エラーの改善
- Dawn の最新情報
Chrome 126
- maxTextureArrayLayers の上限を引き上げる
- Vulkan バックエンドのバッファ アップロードの最適化
- シェーダー コンパイル時間の短縮
- 送信されたコマンド バッファは一意でなければならない
- Dawn の最新情報
Chrome 125
Chrome 124
Chrome 123
- WGSL での DP4a 組み込み関数のサポート
- WGSL の制限のないポインタ パラメータ
- WGSL での複合体の逆参照の構文シュガー
- ステンシルと深度のアスペクトの読み取り専用状態を分離する
- Dawn の最新情報
Chrome 122
Chrome 121
- Android で WebGPU をサポート
- Windows でのシェーダー コンパイルに FXC ではなく DXC を使用する
- コンピューティング パスとレンダーパスのタイムスタンプ クエリ
- シェーダー モジュールのデフォルトのエントリ ポイント
- GPUExternalTexture の色空間として display-p3 をサポート
- メモリヒープ情報
- Dawn の最新情報
Chrome 120
Chrome 119
Chrome 118
- での HTMLImageElement と ImageData のサポート
copyExternalImageToTexture() - 読み書きおよび読み取り専用ストレージ テクスチャの試験運用版のサポート
- Dawn の最新情報
Chrome 117
- 頂点バッファの設定を解除する
- バインド グループの設定を解除する
- デバイスが失われたときに非同期パイプライン作成のエラーを抑制する
- SPIR-V シェーダー モジュールの作成の更新
- デベロッパー エクスペリエンスの向上
- 自動生成されたレイアウトでパイプラインをキャッシュに保存する
- Dawn の最新情報
Chrome 116
- WebCodecs の統合
- GPUAdapter
requestDevice()によって返される失われたデバイス importExternalTexture()が呼び出された場合でも、動画の再生をスムーズに保つ- 仕様への準拠
- デベロッパー エクスペリエンスの向上
- Dawn の最新情報
Chrome 115
- サポートされている WGSL 言語拡張機能
- Direct3D 11 の試験運用版のサポート
- AC 電源でデフォルトでディスクリート GPU を取得する
- デベロッパー エクスペリエンスの向上
- Dawn の最新情報
Chrome 114
- JavaScript を最適化する
- 構成されていないキャンバスで getCurrentTexture() を呼び出すと InvalidStateError が発生する
- WGSL の最新情報
- Dawn の最新情報