WebGPU の新機能(Chrome 141)

François Beaufort
François Beaufort

公開日: 2025 年 9 月 24 日

Tint IR が完了しました

Tint の内部処理のパフォーマンスを向上させるための長期プロジェクト(2 年半以上)である WGSL コンパイラが完了しました。中間表現(IR)が、現在の抽象構文木(AST)とバックエンド コード ジェネレータの間のバックエンドに挿入されました。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 ヘッダーが、ついに安定版と見なされるようになりました。この安定性は、アップストリームで定義されたコア API にのみ適用され、実装拡張機能(Dawn や Emdawnwebgpu など)は含まれません。そのため、リンクしている正確な実装によって提供される webgpu.h を使用するのが最適です。ヘッダーは安定していますが、バグの修正やエコシステム全体での互換性の確保を継続的に行っているため、実装間で意図しない差異が生じる可能性があります。その場合は、バグを報告してください。

外部の貢献者である William Candillon 氏のおかげで、GitHub Actions のアーティファクトとしてビルド済みの Dawn バイナリを見つけられるようになりました。これらには、Android 用の静的 .lib ファイル、Apple 用の .XCFramework バンドル、必要なヘッダー ファイルがすべて含まれます。Dawn PR #39 とアーティファクトのをご覧ください。

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

WebGPU の新機能

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

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