WebGPU の新機能(Chrome 141)

François Beaufort
François Beaufort

公開日: 2025 年 9 月 24 日

Tint IR が完了

WGSL コンパイラである Tint の内部のパフォーマンスを向上させるための長期プロジェクト(2 年半以上)が完了しました。現在のアブストラクト構文ツリー(AST)とバックエンド コード生成の間に、中間表現(IR)がバックエンドに挿入されました。IR の導入により、Chrome チームはすべての AST 変換を削除し、IR 変換として再作成することができました。アーキテクチャの違いにより、IR 変換は大幅に高速化されています。一部のプラットフォームでは、Tint の内部処理がこれらの変更により最大 7 倍高速化されました。

この新しい IR は、高度で大規模なシェーダーの分析と変換の可能性を大きく広げます。パフォーマンスが大幅に向上するだけでなく、Chrome が今後新しい WebGPU 機能をスムーズに提供できるようになります。

このマイルストーン以降、すべてのバックエンド コード生成は IR 表現から行われ、すべての AST 変換が削除され、変換を実行するための AST サポート コードがすべて削除されました。

IR の改善作業の一環として、SPIR-V フロントエンド(アプリケーションが SPIR-V を WGSL に変換するために使用)は、AST 表現の生成から IR への直接生成に変換されました。この機能強化により、SPIR-V フロントエンドに float 16 のサポートなど、待望の機能が導入されました。

WGSL コンパイラでの整数範囲分析

Chrome チームは、WebGPU シェーダー言語コンパイラである Tint の新しい整数範囲分析を段階的にロールアウトしています。整数範囲分析では、プログラムを実際に実行せずに、プログラムの実行中に整数変数が取りうる最小値と最大値を推定します。

この機能は、コストのかかる境界チェックの必要性を減らすことで効率を向上させることを目的としており、まもなくすべてのプラットフォームでデフォルトで有効になります。問題 348701956 をご覧ください。

Vulkan バックエンドの SPIR-V 1.4 アップデート

Android デバイスと ChromeOS デバイスで利用可能な場合、SPIR-V 1.4 のサポートがロールアウトされます。このアップデートにより、WGSL コンパイラである Tint は、Vulkan シェーダーのコンパイル時に、特定のシナリオでより効率的なコード生成を行うために、新しい SPIR-V 機能、緩和、新しい命令を利用できます。問題 427717267 をご覧ください。

Dawn のアップデート

コア WebGPU C API を定義する標準化された webgpu.h ヘッダーが、ついに安定版と見なされるようになりました。この安定性は、実装拡張機能(Dawn や Emdawnwebgpu など)を含まない、アップストリームで定義されたコア API にのみ適用されます。そのため、リンク先の正確な実装によって提供される webgpu.h を使用することをおすすめします。ヘッダーは安定していますが、バグの修正とエコシステム全体の互換性への対応を継続しているため、実装間で意図しない違いが生じる可能性があります。その場合は、バグを報告してください

外部コントリビューターの William Candillon の協力により、GitHub Actions で事前ビルド済みの Dawn バイナリをアーティファクトとして入手できるようになりました。これには、Android 用の静的 .lib ファイル、Apple 用の .XCFramework バンドル、必要なヘッダー ファイルがすべて含まれています。Dawn PR #39 とアーティファクトのをご覧ください。

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

WebGPU の新機能

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

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