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

High CPU usage running webassembly based WebGL program

我正在使用 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.