我正在为简单的2D游戏编写一款游戏内编辑器,其中网格动态创建和移除的频率很高。我正在使用libgdx经过一段时间,glGenBuffers非常缓慢
一切正常,除了编辑器变慢。它对输入事件的反应很晚。
为了找到我的代码中的弱点(在所有的atm都没有优化),我运行了jprofiler并对CPU进行了剖析。事实证明,这个glGenBuffers花了2秒为14个调用!这是7个网格,每个都有一个顶点和索引缓冲区。其实,我有一个相当快的机器(i7-4790T,GTX980m,16GB ...),所以这不应该成为这里的问题。
我只是想知道这是如何可能,因为我不知道。
您是否删除了不再使用的缓冲区?只是基于症状,可能是内存泄漏。你可以看看你的应用程序的整体内存使用情况,看看它是否在增加? –
只是想说缓冲区可能会保存在显卡的内存中,所以你可能无法看到你的内存使用量增加。否则,您应该通过调用'glDeleteBuffers'来清理缓冲区。 – vesan