Я программирую редактор в игре для своей простой 2D-игры, где сетки динамически создаются и удаляются довольно часто. Я использую libgdxЧерез некоторое время glGenBuffers очень медленно
Все работает нормально, за исключением того, что редактор становится медленным. Он реагирует на входные события довольно поздно.
Чтобы найти слабую точку в моем коде (который не оптимизирован при любом atm), я запускаю jprofiler и профилировал CPU. Оказывается, что glGenBuffers занял более 2 сек. За 14 приглашений! Это для 7 ячеек с одним вершинным и индексным буфером. На самом деле, у меня довольно быстрая машина (i7-4790T, GTX980m, 16GB ...), поэтому здесь не должно быть проблем.
Я просто хочу знать, как это возможно, поскольку я понятия не имею.
Вы удаляете буферы, которые больше не используете? Просто основанный на симптомах, это может быть утечка памяти. Можете ли вы посмотреть на общее использование памяти вашим приложением и посмотреть, растет ли оно? –
Просто хотел заметить, что буферы, скорее всего, будут храниться в вашей памяти графических карт, поэтому вы не сможете увидеть, как ваше использование ОЗУ растет. В противном случае вы всегда должны очищать свои буферы, вызывая 'glDeleteBuffers'. – vesan