GPU壓力測試
渲染 WebGL 壓力场景來載入 GPU。本機執行,不會上傳。
—
FPS (instant)
—
FPS (1s avg)
—
Min FPS
0
Frames
0.0
Elapsed (s)
Waiting to initialize WebGL2…
使用方法
- 在用於遊戲或 WebGL 應用程式的瀏覽器(Chrome、Firefox、Edge、Safari 15+)中開啟頁面。
- 確認畫布下的 Vendor 和 Renderer - 避免使用 SwiftShader 或 llvmpipe(軟體渲染)。
- 設定 迭代(每像素著色器成本)和 解析度(畫布像素比例) - 在筆記型電腦上從 1500 / 1.0× 開始。
- 點選 開始壓力 並在 Mandelbrot 動畫時觀察 FPS(即時)、FPS(1 秒平均) 和 Min FPS。
- 完成後或如果選項卡卡頓,請按一下“停止”;降低設定並根據需要重試。
- 使用複製結果取得支援票證或在同一台電腦上進行驅動程式前後比較。
常見問题
這是真正的 GPU 壓力測試嗎?
是的,當硬體加速開啟時 - 片段著色器在您的 GPU 上執行。如果渲染器顯示 SwiftShader、llvmpipe 或“軟體”,則瀏覽器正在使用 CPU 回退,並且 FPS 數字反映軟體渲染,而不是顯示卡。
為什麼 Chrome 隱藏我的 GPU 名稱?
Chrome 和 Firefox 可能會將 WEBGL_debug_renderer_info 編輯為反指紋辨識。您可能會看到通用供應商/渲染器字串。檢查 chrome://gpu (Chrome) 或 about:support (Firefox) 以了解真正的 GPU,或使用作業系統裝置管理員。
為什麼我的筆記型電腦一分鐘後 FPS 就會下降?
GPU 與 CPU 一樣具有熱節流功能。高迭代下的持續 Mandelbrot 可以快速加熱整合顯示卡。在穩定設定下下降 1 秒的平均 FPS 通常意味著熱量或功率限制 - 不一定是 GPU 損壞。
我可以將 FPS 與 3DMark 或遊戲基準進行比較嗎?
不。這是 WebGL2 中的單一全螢幕片段著色器,而不是遊戲引擎。 FPS 僅在相同瀏覽器、GPU、解析度比例和迭代次數上執行時具有可比性。
我應該對整合 GPU 使用什麼設定?
從 1500 次迭代和 1.0× 解析度開始。如果 FPS 保持在顯示器更新率之上並且機器保持舒適,則以 500 為步長提高迭代。如果選項卡卡頓,請先將解析度降低至 0.7×。
我的瀏覽器有東西離開了嗎?
不會。 WebGL 在此選項卡中本機執行。沒有幀或 GPU 資料上傳到我們的伺服器。
介紹
GPU 壓力測試 透過 WebGL2 推動您的圖形管道:每一幀都繪製一個全螢幕三角形,並執行具有可配置迭代計數的 Mandelbrot 設定片段著色器。更多的迭代和更高的畫布解析度意味著每個畫面需要更多的 GPU 工作。
該工具報告:
- FPS(即時) — 幀到幀速率
- FPS (1s avg) — 滾動一秒平均值(更平滑的趨勢)
- 最小 FPS — 跑步熱身後看到的最低 1 秒平均值
- GPU 供應商/渲染器 當瀏覽器公開它們時
- 偵測到軟體渲染時發出警告(SwiftShader、llvmpipe)
使用它來驗證硬體加速、比較驅動程式更新或觀察持續負載下的 FPS 保持與下降。它不是 3DMark、FurMark 或遊戲基準測試 — 它是瀏覽器本機 WebGL 壓力訊號。
測試如何進行
1.WebGL2上下文
畫布請求webgl2和powerPreference: 'high-performance'且無抗鋸齒。單一全螢幕三角形(三個頂點)覆蓋幀緩衝區 - 避免四邊形邊緣情況的標準技巧。
2.Mandelbrot片段著色器
每像素:
- 將
gl_FragCoord對應到複雜平面座標(透過u_t進行動畫偏移)。 - 迭代最多 u_iter 次(滑桿 100–5000,著色器循環上限 5000)。
- 使用基於時間的調色板透過轉義迭代進行著色。
更高的迭代次數會增加每像素的 ALU 工作量。較高的解析度會增加像素數(填充率)。
3. 幀循環
requestAnimationFrame驅動循環。每幀:
- 更新制服(
u_t、u_res、u_iter) - 呼叫
drawArrays(TRIANGLES, 0, 3) - 根據幀增量計算即時 FPS
- 維持平均 FPS 的 1 秒滑動視窗
- 當視窗有 >30 個樣本並且出現新的較低 1 秒平均值時,更新 Min FPS
4.GPU識別
如果可用,WEBGL_debug_renderer_info提供未屏蔽的供應商/渲染器;否則該工具會回退到VENDOR/RENDERER(通常是通用的或經過編輯的)。
了解每個輸出
FPS(即時)
它是什麼:1000 / frame_delta_ms用於最後一幀。
如何閱讀: Spiky;很適合看到故障。即使 GPU 可以完成更多工作,垂直同步也可能會限制顯示器刷新(60、120、144 Hz)。
FPS(平均 1 秒)
它是什麼: 最後 1000 毫秒內即時 FPS 樣本的平均值。
如何解讀: 持續效能的最佳單一數字。比較相同設定下的運作情況。
| Pattern | 可能的原因 |
|---|---|
| 平均穩定 | GPU 和散熱保持同步 |
| 60秒後掉落 | 熱或功率限制 |
| 平均值非常低,軟體渲染器 | CPU SwiftShader 路徑 |
| 突然的懸崖 | 選項卡後台、驅動程式重置或作業系統 GPU 切換 |
最低幀率
它是什麼: 在足夠的樣本(視窗中> 30)後記錄的最低 1 秒平均。
如何閱讀: 訓練期間的「最差持續時間」—對於口吃和油門檢測很有用。與遊戲中的 1% 低不同。
幀/已過去
它是什麼:自開始壓力以來繪製的總幀數和秒數。
如何閱讀: 健全性檢查循環是否連續運作。當您停止時,經過的停止會增加。
迭代與解決
迭代: 著色器循環綁定 — ALU 的主要負載旋鈕。
解析度: 畫布寬度(容器寬度 × 比例)和固定基礎高度(420 像素 × 比例)的乘數。在副本文字中顯示為W×H。
供應商/渲染器
它是什麼: 標識 GL 實現的 WebGL 字串。
| 渲染器範例 | 說明 |
|---|---|
ANGLE (NVIDIA GeForce RTX …) |
透過 ANGLE 的硬體(常見於 Windows Chrome) |
Apple M2 |
蘋果GPU |
SwiftShader/llvmpipe |
軟體 — 不是硬體 GPU 測試 |
Google Inc./ 通用 |
可能是指紋辨識保護 — 檢查作業系統 GPU 面板 |
該測試測量什麼
| Measured | How |
|---|---|
| WebGL2 片段著色器吞吐量(相對) | 給定迭代次數下的 FPS × 解析度 |
| 持續與突發 GPU 行為 | 一段時間內的平均 1 秒,最小 FPS |
| 硬體與軟體 GL | 渲染器字串啟發式 |
| 瀏覽器WebGL路徑 | 相同機器,相同設置,比較執行 |
該測試不測量什麼
| 未測量 | Why |
|---|---|
| VRAM 大小或使用情況 | WebGL 不公開完整的 VRAM 遙測 |
| GPU溫度/熱點°C | 瀏覽器中沒有感測器 API |
| 3DMark / 遊戲 FPS | 不同的引擎、API、工作負載 |
| 光線追蹤、網格著色器、Vulkan | 僅限 WebGL2 |
| CPU 限制的遊戲邏輯 | GPU 片段綁定於此 |
| 顯示 HDR/色彩準確度 | 僅限化妝品調色板 |
| 跨機器絕對排名 | 瀏覽器和驅動程式不同 |
| 風扇速度或主機板功率 (W) | 頁面沒有作業系統掛鉤 |
Safety
- 整合式顯示卡的高設定會加熱整個組件(CPU + GPU 共用一個冷卻器)。
- 如果選項卡凍結、工件擴散或系統關閉,請停止。
- 長時間運轉時首選交流電源及通風表面。
- 如果出現卡頓,請先降低解析度;然後迭代。
常見用例
1.確認硬體加速開啟
目標: 確保瀏覽器使用您真正的 GPU,而不是軟體回退。
如何運作: 開啟頁面;在開始之前閱讀渲染器。按一下 開始施加壓力 20 秒。
健康: 渲染器提到了 Intel、AMD、NVIDIA、Apple、Qualcomm 等。 FPS 對於您的 GPU 類別來說是合理的。
危險訊號: 渲染器字串中的SwiftShader、llvmpipe或software— 在瀏覽器設定中啟用硬加速並更新驅動程式。
2. 新 PC 或 GPU — 快速健全性檢查
目標: 分立或整合 GPU 在負載下回應,不會立即導致選項卡崩潰。
如何執行: 預設 1500 次迭代,1.0× 解析度,執行 30-60 秒。
**健康:**穩定的Mandelbrot動畫;FPS不卡在0;沒有即時製表符殺死。
危險訊號: 黑色畫布、著色器編譯錯誤或低設定下桌面 GPU 上的單位數 FPS — 驅動程式或 WebGL2 問題。
3. 驅動程式更新前後
目標: 相同的機器、相同的瀏覽器、相同的滑桿值 - 平均 FPS 是否改變?
如何運作: 以固定迭代/解析度複製 60 秒後的結果;更新驅動程式;重新啟動;重複。
比較: FPS(平均 1 秒) 在經過 45-60 秒時和 最小 FPS — 不僅僅是即時峰值。
4. 筆記型電腦散熱/功率節流
目標: 檢查 GPU 在熱時是否無法維持幀速率。
如何運作: 使用交流電源,1500-2500 次迭代,1.0-1.5× 解析度,執行 2-3 分鐘。
模式: 在前 30-60 秒內 1 秒平均值較高,然後持續平均值降低 20-40% — 在具有整合式顯示卡的輕薄筆記型電腦上常見。
5. 整合與分立(雙 GPU 筆記型電腦)
目標:了解瀏覽器選擇了哪個GPU(通常是整合晶片以節省電力)。
如何運作: 檢查渲染器字串;在 Windows 上,比較在圖形設定中將瀏覽器指派為「高效能」前後的情況。
注意: 該工具無法強制 GPU 切換 — 它僅報告 WebGL 看到的內容。
6. 遠端支援——“WebGL 工作嗎?”
目標: 使用者貼上 複製結果 以及供應商、渲染器、FPS 和畫布大小。
如何跑步: 中等設定 30 秒;支援軟體渲染器檢查和低得離譜的 FPS。
7. 瀏覽器比較(同一台電腦)
目標: 查看一種瀏覽器是否對 WebGL 的限制更多(擴充、標誌)。
如何執行: Chrome vs Firefox vs Edge,使用相同的迭代次數與解析度,每個瀏覽器執行 60 秒。
解釋: 10-20% FPS 差異屬於正常現象;巨大的差距 → 設定檔、標誌或硬體加速設定。
快速參考
| Goal | Iterations | Resolution | 行程長度 |
|---|---|---|---|
| 軟體檢查 | 1500 | 1.0× | 10秒(讀取渲染器) |
| 輕型筆記型電腦 | 1000–1500 | 0.7–1.0× | 60s |
| 桌上型電腦獨立 | 2500–4000 | 1.0–2.0× | 90s |
| 熱測試 | 2000 | 1.2× | 120秒以上 |
相關工具
- CPU Stress Test — 與 GPU 片段工作分開載入邏輯 CPU 核心。
- AI GPU Test — WebGPU 計算準備與 WebGL2 FPS 壓力測試。
- Memory Test — 在重型 Web 應用程式之前選項卡 JavaScript 堆淨空。
- Device Info — 螢幕、瀏覽器和環境上下文。