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 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