热力图变黑或者定格:“图形上下文已丢失”与“渲染已停止”

Senzoukria 会去测量自己的热力图是否还在被真正绘制。“图形上下文已丢失”意味着 WebGL 上下文被系统收走了,这张图不会自己回来;“渲染已停止”意味着数据仍在到达,但屏幕上什么也没有被画出来,于是你看到的是一张定格的画面。

Senzoukria · 故障排除 · 更新于 2026 年 9 月


概要

上下文丢失
“图形上下文已丢失:流动性图已停止绘制。请重新打开页面或重启应用。”
绘制停滞
“数据正在到达,但渲染已停止 {seconds} 秒:屏幕上是定格画面,而非市场。”
宽限时间
任何告警之前先留 1.5 秒
不报警的情况
窗口被隐藏、画布移出屏幕时本来就不该绘制,因此什么也不会触发

你会看到什么

流动性图一片漆黑或者卡住不动,而气泡、线条或者状态栏看上去可能还活着;同时会出现一条横幅,内容要么是“图形上下文已丢失:流动性图已停止绘制。请重新打开页面或重启应用。”,要么是“数据正在到达,但渲染已停止 {seconds} 秒:屏幕上是定格画面,而非市场。”

为什么会这样

热力图每 250 毫秒统计一次累计绘制次数和累计收到的订单簿数量,因为每秒帧数(FPS)的平均值在一张定格画面上照样能显示出一个让人安心的数字。当 WebGL 上下文报告自己已经丢失(context lost)时,所有绘图指令都会变成不出声的空操作,这张图永远不会自己回来。当订单簿还在不停到达、而绘制已经停下时,说明绘制循环停了;由于 WebGL 画布在每一帧之后会被合成器清空,而那层 2D 覆盖层却保留着自己最后一幅图像,最终的画面就显得半死不活。

显卡驱动在内存吃紧时、从睡眠唤醒之后,或者同时开着很多吃 GPU 的窗口时,都可能收走一个 WebGL 上下文。

如何解决

  • 离开热力图页面再重新打开它;如果是分离出去的独立窗口,就把窗口关掉再开一次。
  • 如果上下文又一次丢失,请重启应用。
  • 降低 GPU 负载:关掉其他的热力图窗口或卡片,或者在 设置 → 性能 里选择性能模式。
  • 如果每次从睡眠唤醒、或者改动屏幕之后都会丢失,请更新你的显卡驱动。

它并不意味着什么

  • 不是市场空了:这条横幅存在的意义,就是不让一张黑图被读成“没有流动性”。
  • 横幅说数据流仍是实时的时候,也不是数据中断。
  • 它也不是启动阶段的失败“热力图无法启动”,那是另外一种情况。

何时联系技术支持

如果问题一直存在,请通过 菜单 → 问题反馈 或者在 Senzoukria 的 Discord 上联系技术支持。请在热力图设置里打开“诊断 HUD”(它会加上 FPS、帧错误和重新居中的次数),把这些数字和你的 GPU 型号一起复制过来。

同一栏目

其他语言版本

常见问题

为什么不能相信 FPS 计数?
因为一个不再被喂数据的平均值,会一直保留它最后那个数值。热力图统计的是真实发生的绘制次数,这个数字没办法假装自己在前进。
把窗口最小化会触发这个告警吗?
不会。窗口被隐藏、或者画布在屏幕之外时,本来就不应该绘制,因此什么都不会被宣告出来。

继续阅读