可复现的 WebGL GPU 基准:预设、导出与分享链接
浏览器里的 GPU 基准测试只有在可复现时才有意义。本文说明我们的体积着色器基准如何使用 WebGL 光线行进、参数预设、CSV 导出与分享链接,确保每次对比公平可重复。你将学会如何选择负载、记录关键指标,并通过链接让任何人重现同一套测试,做到真正的“苹果对苹果”比较。
难点在于可复现,而不是生成帧率
想要得到漂亮的 FPS 曲线很容易,但想让这些数字可比就困难得多。不同浏览器使用不同的 GPU 后端,操作系统调度策略不一,驱动更新会改变着色器生成。如果场景、分辨率和参数每次都不一样,“基准”就变成了“感觉”。
我们的做法是简化管线并把工作负载显式化:使用固定的 Mandelbulb 体积着色器,摄像机沿确定轨迹运动,所有可调参数都暴露并能编码进 URL。这样就能在几周或几个月后,用同一台或不同的机器复现同一个测试。
案例:分享一次基准运行
假设你在 Balanced 预设下,将迭代次数设为 10,步长 0.0025,分辨率缩放保持 1.0。在笔记本上看到约 14 ms 的帧时间且波动很小。点击 Share 生成带有这些参数的链接,发给使用台式机的同事。当对方打开链接,页面会自动应用你的设置。如果他们得到 8–9 ms 且同样稳定,就能把差异归因于硬件,而不是设置。
现在只改一个变量——把分辨率缩放改成 1.3,再分享一次。两台设备的帧时间都会按像素数量成比例增加。这种受控实验就是 WebGL 体积着色器基准实现公平对比的核心。
让历史数据保持可比性
硬件在迭代、浏览器在更新、驱动也在变化。要与历史数据对比,务必记录环境信息:GPU 型号、操作系统、浏览器与驱动版本。将每份 CSV 与对应的分享链接配对保存,未来若出现回归,链接就能帮助你判断是工作负载变了还是平台升级导致。
预设如何帮你快速建立基线
毒蘑菇性能测试 提供 Ultra Low、Low、Balanced、High 等预设,每个都预先配置了迭代次数、步长和分辨率。你可以把默认预设当作起点,然后微调其中一个参数来观察变化。我们建议:
- 完成一次运行后立即导出 CSV,并写下调整过的参数。
- 如果需要自定义更多设置,先复制默认分享链接,再修改需要的字段。
- 将“前(默认)”和“后(自定义)”的结果并排记录,便于比较。
CSV 导出与分享链接带来什么价值?
CSV 导出:包含平均 FPS、帧时间、最小/最大值等统计数据,方便导入电子表格或数据平台,进行长期追踪或团队共享。
分享链接:URL 会携带所有关键参数(Preset、迭代、步长、分辨率、相机设置等)。共享给同事或客户后,他们可以一键复现同样的负载,也可以作为报告附件,用来验证测试过程。
提升一致性的实用技巧
- 关闭后台应用、流媒体标签和覆盖层。
- 跨机器对比时使用同一款浏览器,Chromium 分支可能使用不同的 GPU 后端。
- 大型对比前更新驱动并重启。
- 正式记录前先用目标预设预热 1 分钟,避免涡轮频率瞬态影响。
- 保持室温与电源计划一致。
引擎背后的设计哲学
渲染器刻意保持简单:全屏 Pass 计算摄像机基向量、沿射线步进、评估 Mandelbulb 核心、根据法线着色。这样可以最大限度减少 CPU 开销,把性能测试聚焦在片段运算吞吐上。得益于 WebGL,测试无需安装本地程序即可覆盖多平台。
默认实现采用符号变化的行进策略;如果你在本地实验,可以尝试距离估算法的 Sphere Tracing,并在同一预设下比较帧时间。你会直观感受到算法改动与 GPU 架构之间的相互作用。
总结
WebGL 让 GPU 基准触手可及;预设让它易于上手;CSV 与分享链接让它可追踪、可复现。三者结合,把一段漂亮的分形演示变成可靠的体积着色器基准平台,为硬件评估、浏览器对比或驱动调优提供依据。记住,可复现能力就是你的最大资产,而它已经内置在整个流程之中。