365Lab 毒蘑菇测试免费在线显卡性能测试 · 本地计算

毒蘑菇测试指南

这一页把「跑分是怎么算出来的」「报告里的每个数字与图形怎么看」「出现异常之后该干什么」三件事一次讲清楚。不想读长文,可以直接跳到读懂报告二手显卡自查

为什么大家用毒蘑菇看显卡

在渲染与硬件圈子里,毒蘑菇(尤其是红伞白点的毒蝇伞 Amanita muscaria,以及要人命的致命鹅膏)是一类很典型的测试素材:菌盖是大面积高饱和红色,上面散布高对比的白色疣斑,菌褶与菌环有大量细小重复结构,而它生长的林下环境是接近黑色的缓慢渐变。这几种特征叠在一起,等于同时给显卡出了四道题:精度、滤波、带宽和抖动。

显卡一旦有问题,往往不会让整张图糊掉,而是只在这几类区域先露馅:暗部渐变被切成一层层台阶(色带,banding),本该有细节的地方被抹成不自然的纯色方块,重复的图块在不同位置出现完全一样的像素,或者边缘出现规则噪点与锯齿状抖动。专业渲染里靠高样本数与蓝噪声抖动把这些藏起来;一旦算力不足、驱动异常、显存出错,抖动先崩,人眼也就先看到。

所以「给你看个毒蘑菇」慢慢成了一句暗号:不用装软件、不用跑几十分钟专业测试,看一张图就能大致判断这张卡健不健康。二手交易里用它筛矿卡、花屏卡、被刷过 BIOS 的假卡,比跑一整套 3DMark 效率更高。本站把这套思路搬进浏览器:用一段纯 WebGL 光线行进(raymarching)实时渲染的毒蘑菇森林当作负载,同时给出速度与健康的两条结论。

一次测试的四个阶段

点「开始测试」之后,页面按下面四个阶段推进。整个过程都在你的设备本地完成,网站不接收任何数据。

① 预热(约 1.8 秒)

先把着色器跑起来,让驱动完成编译与纹理/缓冲区分配,也让 GPU 从低频怠速升上来。预热的帧不参与计分,避免把驱动的一次性开销算进成绩。

② 加压采样(6 / 12 / 20 / 30 秒)

按你选的画质档位全速渲染,逐帧记录帧耗时;每档开始都有一段稳定期——前 0.45 秒与前 8 帧(第一档放宽到 1.35 秒 / 16 帧,因为驱动升频和着色器 JIT 的尾巴比想象的长;但一段的稳定期最多只占该段时长的 45%,否则短窗口下整段都在稳定、一个样本也采不到)只推进计时、不计入样本,避免把热身当成性能。单档采样固定一个档位跑满全程,分数直接可比;阶梯压力依次从温和→标准→高强度→极限加压,用来观察散热与供电的拐点(报告里每档各有一条柱状成绩)。阶梯模式的综合跑分只取「标准」档那一段(该段样本不足时取样本最多的一档),前后段衰减也在那一段内部计算——否则四档混合出来的中位帧耗时不属于任何档位,档位之间的负载差还会被误读成降频。

③ 画面体检

停帧抓取最后一帧,做四类像素分析:色带(暗部渐变的平坦段长度与跳变幅度)、异常平整色块(周围有细节却被抹平的 8×8 块)、重复图块(互不相邻却哈希完全相同的 32×32 块)、纯色垃圾像素与全黑覆盖。结论以 0–100 的「纯净度」进入总分,并把最可疑的区域放大 4 倍给你看。

④ 统计与评分

计算平均/中位/最差 1% 帧率、掉帧次数、帧间隔离散度、前后段衰减,再结合单帧真实耗时换算吞吐与综合跑分,最后写入本机历史并生成报告。如果单帧长过整个采样窗口(软件渲染、老核显或把倍率拉太高时常见),跑分器会自动降一档、把内部倍率降到 0.6×、并把窗口翻倍重测一次;报告的质量说明会写明它退到了哪一档,因为降级后的分数并不是你要求的那个工作量。

三个渲染后端与负载版本

同一份毒蘑菇场景可以由三条路径渲染:硬核模式(WebGL2/WebGL1)是默认,兼容性最好;WebGPU 模式跑的是同一套距离场与同一组成本系数,只是换成较新的 API,因此两者分数可以直接对比;兼容模式(Canvas 2D)是另一种负载,只考验填充与合成。页面会在后端不可用时自动降级,并在报告里写明实际使用的是哪条路径。

后端负载内容分数可比性什么时候用
硬核 WebGL(默认)光线行进 + 软阴影 + AO + 体积雾(优先用 WebGL2,拿不到时回退 WebGL1)基准口径:另外两路都按它的成本系数计分默认选择。跨设备对比、二手验卡都用它。
WebGPU(实验)与 WebGL 完全相同的场景与成本系数,仅 API 不同可直接与 WebGL 比分(同一份几何与成本系数)浏览器支持 WebGPU 时用来对比 API 开销与驱动实现质量。
兼容 Canvas 2D渐变、模糊、粒子与合成,几乎不考验着色器另一种负载,不能与 WebGL / WebGPU 比分没有 WebGL、驱动异常、软件渲染或只想快速看一眼时。

负载版本号

workload = mw-1.4.0 — 每次改动几何、相机轨迹或成本系数,版本号都会递增,并写进结果、报告与导出文件。不同版本的分数不可直接比较;对照历史成绩时,报告只会在同版本内给出差值。

为什么要这么较真:浏览器跑分没有厂商背书,如果哪天我们调整了菌盖形状或步进数,旧分数就会变成另一种量纲。留下版本号,你半年后翻出老记录时才知道该不该拿来对比。

跑分是怎么算出来的

浏览器的渲染循环被 requestAnimationFrame 与垂直同步限制,直接看 FPS 会把强卡压成「60」,没有区分度。所以本站的评分核心不是 FPS,而是单帧渲染耗时:优先使用 GPU 计时器查询(EXT_disjoint_timer_query_webgl2)拿到单帧真实时间;驱动不提供时,自动在一帧里多渲染几遍(报告里的 passes ×N),让 GPU 始终处于满载,从而用帧间隔反推单帧耗时。

吞吐 (MPix/s) = 渲染宽 × 高 ÷ 1e6 ÷ 单帧耗时(s)
成本系数 = (光线步进数 ÷ 96) × (1 + 0.42×软阴影 + 0.055×AO 采样) × 细节倍率^0.5
综合跑分 = 吞吐 × 成本系数 × 42
画质档位与分辨率倍率不同时,分数依然可比:分辨率提高会让 MPix/s 下降,但成本系数同步上升。

这样做的含义很直白:分数正比于你的显卡每秒能算完多少「本站这道题」的像素。兼容模式(Canvas 2D)用绘制量近似成本系数,因此与硬核模式的数量级一致,但两种引擎的绝对分数不等同——Canvas 主要吃填充与合成,测不出着色器与带宽瓶颈,所以我们始终并列显示引擎标签。

总分(0–100)与评级(🍄)是两件事

评级只看综合跑分落在哪一段(金针菇级 → 致命鹅膏级),描述你的速度水位总分是加权健康度:吞吐 50% + 稳定 17% + 纯净度 15% + 均匀度 8% + 持久 10%。速度快但画面体检不合格,总分照样低——这正是要抓的卡。

读懂报告里的每一张图

帧率曲线

横轴是采样时间,纵轴是瞬时帧率;实线是最近约 24 帧的平均值,紫虚线是三点滑动平均(看趋势用),绿虚线是 60fps 参考线,阶梯模式下每个压力段用淡色底纹区分。健康的曲线是「贴着参考线的平直带」;持续下滑是降频,毛刺下陷是卡顿/掉帧,阶梯状下台阶多半是系统功耗策略切换。

帧耗时分布

横轴是单帧毫秒数,纵轴是出现次数。理想情况是一根窄峰。峰右侧的长尾就是掉帧元凶(超过 33ms 染成红色);出现双峰通常是同步/丢帧造成的「一半帧、两倍时长」。紫线标注中位数。

阶梯压力 / 场景巡测的各段表现

阶梯压力是四档帧率的柱状对比:柱子应该按压力递增而平滑下降;如果某一档突然掉一大截,说明那一档的负载正好越过了你的显存/带宽/散热临界点。场景巡测则是固定一档跑完六个场景,每根柱子是一段归一化吞吐(分数),哪根最短就说明你对那一类效果(软阴影、AO、体积雾还是填充)最敏感;只有在硬核 WebGL / WebGPU 模式下这种比较才有分辨力。

关键数字

四类画面异常,分别意味着什么

现象画面看起来常见原因下一步
暗部色带夜空/雾的渐变变成一圈圈台阶输出被截成低位深、驱动/显示器抖动异常、HDR 或 6bit+FRC 面板关掉浏览器硬件加速对比一次;换 8bit 输出或另一台显示器复测;只在同一台机器复现则多为面板或驱动
异常平整色块苔藓有细节,某块却是一整片纯色显存/光栅化错误、超频过头、供电不稳恢复默认频率与 BIOS,重测 3 次;稳定复现请当作硬件问题对待
重复图块不同区域出现一模一样的碎块纹理分块渲染器缓存异常、驱动 bug更新或回滚驱动;笔记本请确认用的是独显而非核显
垃圾像素与全黑突然出现纯紫、纯绿的块,或整帧黑着色器编译失败、上下文丢失、硬件故障前兆换浏览器复测(Edge/Chrome/Firefox);若仍异常,跑阶梯压力看是否随温度恶化

体检结论不是唯一判据:截图压缩、浏览器缩放、显示器抖动都会干扰。判定的正确姿势是连续 3 次、同一档位复现同一个异常,并且换一台设备或浏览器对照。

分数明显偏低?按这个顺序排查

  1. 确认用了独显:笔记本双显卡常默认走核显。到系统显示设置里把浏览器指定为「高性能」,或在显卡控制面板强制独显;硬核模式的设备信息里 ANGLE 一栏能看出实际渲染后端。
  2. 接通电源 + 高性能计划:电池模式下 GPU 会被限功耗,测出来的分数不代表真实性能。
  3. 检查浏览器硬件加速:设置里关掉「使用硬件加速」会退化成软件渲染(设备信息里出现 SwiftShader / llvmpipe 就是这种情况),此时分数没有参考价值。
  4. 关闭抢资源的程序:其他标签页的视频/游戏/挖矿/下载、屏幕录制、多显示器高刷扩展、Windows 硬件 GPU 调度、HDR 桌面合成,都会吃掉带宽。
  5. 更新(或回滚)驱动:刚升级驱动后建议重启再测;某些驱动版本会改变着色器编译质量。
  6. 拉长采样时间:6 秒容易受瞬时负载影响,比较设备时用 20 或 30 秒,并看「稳定 / 持久」两项。

二手显卡自查清单

线下验卡时间紧,用这套浏览器流程 5 分钟能出结论(手机也能打开,现场不用装驱动):

  1. 先看设备信息:型号、显存相关字段、是否软件渲染、ANGLE 后端。型号与卖家描述不符(例如写着 3060 实际是 3060 Laptop 或被改名)就先警惕。
  2. 标准画质单档 12 秒 ×3:三次分数差距应小于 8%。波动大说明散热、供电或显存不稳。
  3. 阶梯压力 20 秒:看四档柱子和「前后段衰减」。极限档明显崩、或最后一段比第一段慢 15% 以上,通常是散热被清灰/硅脂压住了,或长期高负载老化。
  4. 打开报告的「渲染画面」放大看:菌盖白斑边缘是否毛刺、暗部渐变是否台阶、苔藓是否有方块状抹平。体检结论「轻微异常 / 可疑 / 异常明显」三档任一出现,都要求换一张对比。
  5. 极限分辨率复测一次:把倍率拉到 1.5–2.0×。带宽或显存有暗病的卡,往往在标准档正常、高倍率下崩得离谱。
  6. 保存证据:导出分享图与 JSON,卖家承诺与实测对照留档,7 天验证期内足够用。
本站是辅助判断工具,不构成对硬件健康的最终结论,也不提供任何解锁、刷 BIOS 或超频功能。涉及较大金额时请以官方诊断工具或多设备交叉验证为准。

场景与画质档位

场景压力侧重说明
毒蘑菇·幽林对比度与暗部抖动黄昏林下的红伞白斑毒蝇伞,苔地与雾气层次最丰富,默认场景。
雾密度 0.05 · 细节八度 5 · 自发光 0.06
夜光菌·霓虹雾积分与发光累积自发光菌盖与浓雾叠加,考验发光累积、雾积分与暗部抖动。
雾密度 0.055 · 细节八度 4 · 自发光 0.52
死亡帽·体积光次表面与色阶过渡强逆光穿透菌盖的次表面散射,最容易看出色带与过渡断层。
雾密度 0.13 · 细节八度 6 · 自发光 0.1
微观·孢子高频细节与精度微距镜头 + 高频细节,把纹理过滤与浮点精度逼到极限。
雾密度 0.04 · 细节八度 7 · 自发光 0.45
极光菌·夜境填充率与带宽冷色天空与远景相机,填充率与视角带宽压力大,适合看整体吞吐。
雾密度 0.085 · 细节八度 5 · 自发光 0.95
档位步进数分辨率倍率软阴影AO 采样成本系数
温和560.75×不可用3×0.57
标准961.00×支持5×1.69
高强度1321.15×支持5×2.50
极限1681.30×支持6×3.49
地狱2001.45×支持6×4.39
不知道该选哪一档?本站内置一张显卡档位参照表,按核显 / 入门 / 主流 / 高端 / 旗舰分级给出建议档位与预期段位;页面会自动匹配你的显卡,也可以在参照表里直接搜型号。它完全在本地匹配,不上传你输入的任何内容。

我们知道的局限

术语表

色带 / Banding
渐变本该平滑,却因为位深不足或量化截断,变成一条条可见的台阶。本站在暗部渐变上专门统计平坦游程与跳变幅度。
抖动 / Dithering
用规则噪声打散台阶,让有限的位深看起来更平滑。蓝噪声抖动是现代渲染管线的常见做法,也是"关掉就能看见色带"的那层伪装。
光线行进 / Raymarching
沿视线一小步一小步前进,每步都问"距离表面还有多远"。步数越多、场景越复杂,单帧计算量越大,是天然的 GPU 负载。
环境光遮蔽 / AO
通过在法线方向多次采样,估算一处表面被自身遮挡的程度,让菌褶、根部与地面接触处变暗。采样次数越多开销越大。
软阴影 / Soft shadow
朝光源再走一次光线,根据遮挡程度给出渐变而非硬边的阴影。真实但昂贵,是档位之间差异最大的开销之一。
填充率 / Fill rate
每秒能写出多少像素。分辨率、倍率与叠加层数都在考验它,所以高倍率往往比高步数更快暴露低端显卡。
1% 低帧
所有帧里最慢那 1% 的等效帧率,比平均值更贴近主观流畅度。
掉帧 / Jank
单帧耗时超过 50ms 的次数。数量不多也可能被明显感知,因为画面在那一刻停顿了。
降频 / Throttling
温度或功耗达到上限后,GPU 主动降低频率保护自身,表现为帧耗时随时间上升。
ANGLE
Chrome/Edge 用来把 WebGL 翻译到 Direct3D、Vulkan 或 Metal 的中间层。设备信息里的 ANGLE 后端能帮你确认实际用的是哪块显卡。
SwiftShader
CPU 模拟 GPU 的软件实现。出现这个词说明硬件加速没生效,此时的跑分与显卡无关。
垂直同步 / VSync
渲染结果与显示器刷新对齐,帧率因此被钉在 60/120 等档位上;这也是浏览器跑分必须改用单帧耗时的原因。
每帧渲染次数 / passes
为了突破垂直同步限制,在同一帧里多次渲染场景;帧间隔除以次数即近似单帧耗时。
MPix/s
每秒完成多少百万像素的着色计算,是本站吞吐的基本单位(再乘以画质成本系数得到跑分)。

延伸阅读