运行基于webassembly的WebGL程序时CPU占用率高



我正在使用webassembly (c++和emscripten)制作游戏,其中我使用OpenGL生成图像。我注意到我的游戏经常使用大量CPU,通常是200-300%。如果我有一个更大的3D模型,或者如果我的着色器更复杂,这个CPU使用率会更高。

这是正常的webassembly吗?还是我做错了什么?我有点担心我犯了一个错误,因为通常我不会期望CPU使用率直接与3D模型的大小相关联(我预计这主要是对显卡造成的影响),但由于它是webassembly,它可能会有所不同。

在运行OpenGL和webassembly时,有什么好的技巧可以减少CPU的使用吗?

编辑:我开始研究的基本例子是https://github.com/timhutton/opengl-canvas-wasm现场演示在这里(https://timhutton.github.io/opengl-canvas-wasm/)这已经在相当高的CPU上运行了。这个例子让它在如此高的CPU负载下运行有什么问题?不是glBufferData,甚至不是移除,使CPU保持高。

你的浏览器可能出于某种原因使用软件渲染,检查你的浏览器的GPU调试页面,看看是否有什么问题,在Chrome中是chrome://gpu,在Firefox中是about:support的GPU部分。

相关内容

  • 没有找到相关文章

最新更新