公開日: 2025 年 4 月 23 日
GPUAdapterInfo isFallbackAdapter 属性
GPUAdapterInfo の isFallbackAdapter ブール値属性は、互換性の拡大、動作の予測可能性の向上、プライバシーの強化と引き換えに、GPUAdapter のパフォーマンスが大幅に制限されているかどうかを示します。ユーザーが提供する GPUDevice オブジェクトを受け取るライブラリは、GPUDevice
の adapterInfo 属性を介してこの情報にアクセスできないため、この追加が必要でした。次の例と問題 403172841をご覧ください。
const adapter = await navigator.gpu.requestAdapter();
if (adapter?.info.isFallbackAdapter) {
// The returned adapter is a software-backed fallback adapter, which
// may have significantly lower performance and fewer features.
}
Chrome はフォールバック アダプターのサポートをまだリリースしていないため、現時点ではユーザーのデバイスで isFallbackAdapter は常に false です。GPUAdapter の isFallbackAdapter
属性を非推奨にして削除できるかどうかを調査しています。リリース予定をご覧ください。
D3D12 でのシェーダー コンパイル時間の改善
Chrome チームは、D3D12 バックエンドで WebGPU をサポートするデバイスの中間表現(IR)を追加することで、WebGPU シェーダー言語コンパイラである Tint の改善を続けています。Tint の抽象構文木(AST)と HLSL バックエンド ライターの間に配置されたこの IR により、コンパイラはより効率的で保守しやすくなり、最終的にはデベロッパーとユーザーの両方にメリットをもたらします。初期テストでは、Unity の WGSL シェーダーを HLSL に変換する際に、新しいバージョンの Tint が最大 10 倍高速であることが示されています。
これらの改善は、Android、ChromeOS、macOS で既に利用可能であり、D3D12 バックエンドで WebGPU をサポートする Windows デバイスに段階的に拡大されています。問題 42251045 をご覧ください。
キャンバス画像を保存してコピーする
Chrome ユーザーは、WebGPU キャンバスを右クリックして、コンテキスト メニュー オプションの [名前を付けて画像を保存...] または [画像をコピー] にアクセスできるようになりました。問題 40902474 をご覧ください。
互換モードの制限を解除する
GPUDevice で利用可能な試験運用版の "core-features-and-limits" 機能は、chrome://flags/#enable-unsafe-webgpu フラグが有効になっている場合、互換モードのすべての制限(機能と制限)を解除します。問題 395855517 をご覧ください。
featureLevel: "compatibility" オプションを指定して GPUAdapter をリクエストすると、ブラウザは試験運用版の WebGPU 互換モード を選択します。成功した場合、結果のアダプターは「compatibility-defaulting」になります。それ以外の場合は「core-defaulting」になります。これは、featureLevel: "core" オプションを使用する場合と同じです。また、requiredFeatures と requiredLimits
を指定せずに requestDevice() を呼び出すと、GPUAdapter のデフォルト機能で GPUDevice がリクエストされます。
core-defaulting アダプターは常に "core-features-and-limits" 機能をサポートしており、この機能から作成された GPUDevice で自動的に有効になります。compatibility-defaulting アダプターの場合、"core-features-and-limits" 機能がサポートされている可能性があり、この機能から作成された GPUDevice でリクエストできます。どちらのタイプのアダプターも、"float32-blendable"などの機能をサポートしている場合があります。これは、コアモードと互換モードの両方で省略可能です。
次の例は、"float32-blendable" が必要で、使用可能な場合はコア機能の使用をサポートするが、コア機能が使用できない場合は互換機能のみを使用するアプリケーションを対象としています。
const adapter = await navigator.gpu.requestAdapter({ featureLevel: "compatibility" });
if (!adapter || !adapter.features.has("float32-blendable")) {
throw new Error("32-bit float textures blending support is not available");
}
const requiredFeatures = [];
if (adapter.features.has("core-features-and-limits")) {
requiredFeatures.push("core-features-and-limits");
}
const device = await adapter.requestDevice({ requiredFeatures });
if (!device.features.has("core-features-and-limits")) {
// Compatibility mode restrictions validation rules will apply.
}
試験運用版の GPUAdapter featureLevel 属性と isCompatibilityMode 属性は、"core-features-and-limits" 機能に置き換えられました。問題 395855516 をご覧ください。
Dawn の最新情報
コールバックがキャンセルされたことを明確にするため、コールバック ステータス列挙型 InstanceDropped が CallbackCancelled に変更されました。ただし、パイプライン コンパイルなど、イベントに関連するバックグラウンド処理は引き続き実行される可能性があります。新しい名前は、後で別のキャンセル
メカニズムが追加された場合にも、より一般的に適用できます。問題 520 をご覧ください。
エラー スコープ スタックをポップできないことを示す wgpu::PopErrorScopeStatus::EmptyStack
列挙型が、wgpu::PopErrorScopeStatus::Error に変更されました(こちらもより一般的に適用できます)。コールバックには、デバッグに役立つ対応するエラー説明メッセージも含まれるようになりました。問題 369 をご覧ください。
これは主なハイライトの一部にすぎません。コミットの完全なリストをご覧ください。
WebGPU の新機能
WebGPU の新機能シリーズで取り上げられたすべての機能の一覧です。
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 バインディングにテクスチャ ビューを使用
- オフセットとサイズを指定せずにバッファをコピー
- atomic へのポインタを使用する 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
- 読み取り専用ストレージ テクスチャと読み書きストレージ テクスチャ
- Service Worker と Shared Worker のサポート
- 新しいアダプター情報属性
- バグの修正
- Dawn の最新情報
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 の最新情報