deck.gl 9.4 让 WebGPU 覆盖全部官方图层,确实降低了前端试用门槛;但官方同时明确它仍属实验性支持,不建议直接用于生产。对 WebGIS 团队,正确的问题不是“能否打开 WebGPU”,而是同一业务图层在 WebGL2 与 WebGPU 下是否得到同样的几何、属性、选择、样式和性能结果。

核心机制:同一 API 不代表同一渲染语义已经可交付

官方更新称 v9.4 is expected to be the final release in the v9 series,并将其定位为针对性能、稳定性和可用性的兼容升级。更关键的是,All layers in the official layer catalog now support WebGPU,包括 3D Tiles 图层;核心还改进了 attribute-buffer assembly、render pass management 与 device switching。

这些变化减少了采用 WebGPU 时改 import 的需要:官方说明 WebGPU-capable code is included by default。但同一页也写明 WebGPU support remains experimental and is not yet recommended for production,并指出部分图层和能力仍不可用或仅部分支持。因此,代码能构建、首屏能显示,都不是迁移完成的证据。

GIS 场景:对灾害态势图做双后端回归

一张灾害态势图可能叠加 MVT 行政区、GeoJSON 风险面、散点告警、轨迹、Tile3DLayer 建筑模型和点击选取。上线前为同一数据快照建立 WebGL2 基线,再在支持 WebGPU 的浏览器运行同一测试集:检查图层数量、要素范围、分类颜色、透明度、标签遮挡、3D 选取、缩放与旋转后的瓦片加载,以及筛选与 hover 事件。

若 WebGPU 结果出现差异,页面应回退 WebGL2,并保存浏览器、GPU、驱动、deck.gl 版本、图层配置和可复现视图状态。这样,团队可以将实验后端作为受控能力,而不会把一次浏览器或显卡上的成功扩展为所有用户的生产承诺。

可核查事实

  • 官方更新称 v9.4 is expected to be the final release in the v9 series
  • 它说明 All layers in the official layer catalog now support WebGPU
  • 页面列举 3D tiles 图层也在 WebGPU 支持范围中。
  • 更新改进了 WebGPU 的 attribute-buffer assembly、render pass management 和 device switching。
  • 官方说明 WebGPU-capable code is included by default,采用该能力不需要修改应用 imports。
  • 仅面向 WebGL2 的应用可通过 bundler 的 custom export condition 排除 WebGPU branches 与 WGSL shader sources,且不改变 imported APIs。
  • 文档称对常见用例使用 render tests 检查 WebGL-WebGPU parity。
  • 官方明确 WebGPU support remains experimental and is not yet recommended for production,并提示部分能力仍不可用或不完整。

技术路径:以输出契约管理双后端

先固定一个包含点、线、面、MVT、倾斜视图和 3D tiles 的最小业务场景,保存数据版本、初始 viewState、图层参数、过滤条件和截图区域。其次分别在 WebGL2 与 WebGPU 运行:自动比较可读取的图层状态、要素计数、选取 ID、事件日志和关键像素截图;对数据驱动的颜色或位置变化,使用明确容差,而非要求逐像素完全相同。

第三,按浏览器、GPU 和驱动分组记录失败,区分“功能不支持”“渲染差异”“性能退化”和“设备切换异常”。第四,只向通过完整验收的环境开启灰度开关,并保留 WebGL2 回退;通过 bundler 移除 WebGPU 代码的应用也要记录这一构建决策,避免前端包变化被误认为数据或样式问题。

风险边界

官方图层支持 WebGPU 并不表示自定义 layer、扩展、浏览器组合或业务插件均已等价。render tests 覆盖常见用例,也不等于覆盖所有 GPU 与交互路径。WebGPU 的显卡与浏览器差异、内存占用、设备丢失和导出图像行为,都需要在目标用户环境中检验;地图画面相似更不能替代空间数据的版本与分析正确性检查。

检查清单

  1. 固定数据快照、viewState、图层配置、筛选条件和测试浏览器。
  2. 同时跑 WebGL2 基线与 WebGPU 候选渲染。
  3. 比较图层、要素计数、范围、样式、选取 ID 与交互事件。
  4. 检查缩放、旋转、切片加载、3D tiles 和设备切换。
  5. 记录浏览器、GPU、驱动、deck.gl 版本和失败类型。
  6. 对通过环境灰度启用,并保留 WebGL2 一键回退。
  7. 对 WebGL2-only 构建明确记录 bundler export condition 与包体变化。

结论

deck.gl 9.4 给 WebGIS 团队带来更广的 WebGPU 实验面,却没有取消生产验收。将 WebGL2 作为可比较基线,以真实图层、真实交互和目标设备验证输出契约,才能在性能机会与渲染风险之间保留可回退的工程边界。

参考来源

  1. deck.gl, What's New — deck.gl v9.4:https://deck.gl/docs/whats-new