如何正确处理我的 WebGL 上下文以避免 16 WebGL 上下文错误?

How to properly dispose of my WebGL context in order to avoid the 16 WebGL contexts error?

这是此问题的后续问题:Exceeded 16 live WebGL contexts for this principal, losing the least recently used one

在该问题中,发现当您刷新 webGL 选项卡超过 16 次(或跨多个选项卡收集 16+ 上下文)时会发生此错误。

然而,尚不清楚如何处理 WebGL 上下文,以便浏览器可以释放 16 个插槽中的一个,以便另一个 WebGL 上下文能够到达那里?

如果这种情况仍然存在,那就是浏览器错误,您应该提交错误。刷新网页应该释放所有资源。没有官方的方法来处理 WebGL 上下文,就像没有官方的方法来处理 Image<video> 或 JavaScript.

中的几乎任何其他内容一样

参见:How to free and garbage collect a WebGL context?

请注意 WebGL 一致性测试创建了数千个上下文

https://www.khronos.org/registry/webgl/sdk/tests/webgl-conformance-tests.html

除了在 1000 多个测试中创建的所有上下文之外,还有一些测试专门针对许多上下文,包括 this one, this one, this one, and this one

因此,无论您遇到什么问题,您都可能需要 post 一个回购协议。