有多少WebGL内存?当我用完时会发生什么?

时间:2015-09-18 23:11:57

标签: memory webgl

GPU内存有限 - 通常比JS堆大小更有限等。像许多高分辨率图像一样可以填满内存,而且它是一个共享资源,因此其他应用程序可能会使用大量内存

在OpenGL中,我可以查询可用内存。

WebGL有什么方法可以做同样的事情吗?如何判断我用完了怎么办?如果我这样做会怎么样?

我不确定如何管理WebGL的体验。如果有必要,我可以回退到SVG或Canvas,但我不知道什么时候有必要。

2 个答案:

答案 0 :(得分:2)

实际上,如果没有供应商扩展,您无法在OpenGL中查询VRAM总数和可用大小。 OpenGL和WebGL会从您的应用程序中隐藏它。此外,WebGL会为您管理资源,并在需要时将其上传到VRAM。

如果您尝试创建过多资源,应用程序的性能将显着下降,并且可能会生成webglcontextlost事件。此外,Mozilla的WebGL实现可能会在OUT_OF_MEMORY调用上生成texImage2D错误(在“WebGL Insights”一书中提及),这在某种程度上可以用作耗尽系统资源的标志。

答案 1 :(得分:0)

Chrome现在在开发工具中有一个内置的FPS-Meter。 此外,您可以看到“已使用”和“最大”GPU内存。 https://developer.chrome.com/devtools/docs/rendering-settings

在我的系统上,它仅限于 512 MB - 我有一张4GB的显卡。 所以我认为这是你可以在桌面系统上使用的最大VRAM 每个标签