InspectorこのブラウザのWebGPU
アダプタ情報、対応機能、WGSL 言語機能、上限値を navigator.gpu から取得しています。結果はブラウザや端末によって変わります。このページは macOS の Safari Technology Preview 27.0 Beta と Chrome 151 で動作を確認しています。
初期化中…
Compute + Renderコンピュートシェーダ粒子
コンピュートシェーダが毎フレーム全粒子の速度と位置を並列更新し、頂点シェーダが同じストレージバッファを直接読みます(vertex pulling)。粒子データを CPU へ戻さず、加算合成で描画します。対応端末では、timestamp-query で GPU 処理時間も計測します。
RaymarchingMandelbulb フラクタル
距離推定(distance estimation)を使ったレイマーチングです。フラグメントシェーダがピクセルごとに距離場を最大 110 回評価します。動作が重い場合は解像度を下げてください。
Ping-pong Computeライフゲーム 512×288
2 枚のストレージバッファを交互に使う、古典的な GPGPU パターンです。死んだセルは 0、生きたセルは世代数を保持し、若いセルほど暖色で描画します。ブラシの分布も GPU 側のハッシュ関数で決めます。
Surveyブラウザ対応状況(2026 年 8 月時点)
プラットフォーム × ブラウザ対応マトリクス
| プラットフォーム | Chrome / Edge | Firefox | Safari |
|---|---|---|---|
| Windows | ✓ 113(2023-05) | ✓ 141(2025-07) | — |
| macOS | ✓ 113(2023-05) | ✓ 147 Apple Silicon(2026-01) △ Nightly Intel | ✓ 26(2025-09、対応 OS が必要) β 27.0 Beta 5 で動作確認 |
| Linux | △ 144 以降 段階的に対象を拡大 | △ Nightly | — |
| Android | ✓ 121(2024-01) | △ Nightly | — |
| iOS / iPadOS / visionOS | WebKit を使用するため Safari と同じ | ✓ 26(2025-09) | |
各エンジンの現在地
| エンジン | 実装 | 最近の動き |
|---|---|---|
| Chromium Chrome / Edge |
Dawn(C++) | Chrome 146 で compatibility mode、149〜150 で immediates を提供しました。compatibility mode は OpenGL ES 3.1 などを使う端末向けの制限付きモードです。 |
| Gecko Firefox |
wgpu(Rust) | Firefox 141 で Windows、147 で Apple Silicon 搭載 Mac の標準対応を開始しました。Linux、Android、Intel 搭載 Mac では Nightly で試せます。 |
| WebKit Safari |
Metal | Safari 26 で macOS、iOS、iPadOS、visionOS に正式提供されました。Safari 27 beta では WGSL の clip_distances も追加されています。下表は Technology Preview で取得した実測値です。 |
Safari 27.0 Beta 5(STP)と Chrome 151 の実測値
Apple Silicon 搭載 Mac で両ブラウザの navigator.gpu を調べ、このページのデモを実行して取得しました(2026-08-14)。端末、ウィンドウサイズ、GPU の負荷によって計測値は変わります。デバイス検査タブには、現在のブラウザから取得した値を表示します。
| 項目 | Safari 27.0 Beta 5(STP) | Chrome 151 |
|---|---|---|
| アダプタ | apple / apple | apple / metal-3 |
| 対応機能数 | 22 種 | 22 種(内訳は一部異なる) |
| 共通で対応 | subgroups shader-f16 timestamp-query core-features-and-limits texture-formats-tier1 / -tier2 primitive-index clip-distances float32-filterable float32-blendable bgra8unorm-storage rg11b10ufloat-renderable depth-clip-control depth32float-stencil8 indirect-first-instance texture-compression-bc / -astc / -etc2(各 sliced-3d を含む) | |
| 片方のみ | float16-renderable float32-renderable |
dual-source-blending texture-component-swizzle |
| WGSL言語機能 | 7 種。subgroup_id、subgroup_uniformity、texture_formats_tier1 など |
10 種。immediate_address_space、texture_and_sampler_let、linear_indexing、uniform_buffer_standard_layout など |
| 主な上限差 | maxBufferSize ≈2 GiB maxBindGroups 11 |
maxBufferSize ≈4 GiB maxBindGroups 4 |
| このページの実測 timestamp-query |
20 万粒子 60 fps(約 1.4 ms) Mandelbulb 75% 59 fps(約 0.9 ms) |
20 万粒子 60 fps(約 2.0 ms) 100 万粒子 60 fps(約 9.4 ms) Mandelbulb 75% 60 fps(約 5.5 ms) |
| 検証の差 | layout: 'auto' では、エントリポイントが参照しない binding をレイアウトから除外します。除外された binding の entry をバインドグループへ渡すと Chrome は検証エラーを返しましたが、STP は受け入れました。このページは、両方で通る binding だけを指定しています。 | |
エコシステムの動き
| 領域 | 状況 |
|---|---|
| Three.js | WebGPURenderer は WebGPU を優先し、未対応環境では WebGL 2 へ切り替わります。公式文書では現在も experimental とされています。 |
| Babylon.js | 主要シェーダの多くを WGSL で提供しています。GLSL の互換経路も残っており、必要に応じて WGSL へ変換します。 |
| ブラウザ ML | Transformers.js は WebGPU ランタイムを提供し、ブラウザ内での推論に利用できます。 |
| 環境の詳細 | webgpureport.org では、現在のブラウザが公開する機能と上限値をさらに詳しく確認できます。 |
参照先:W3C WebGPU、Chrome の WebGPU 更新情報、Firefox の対応状況、Safari 26.0、Safari 27 beta。バージョンと時期は 2026-08-14 に確認しました。