glDrawArray + VBO увеличивает объем памяти - PullRequest
2 голосов
/ 01 июля 2011

Я пишу приложение для просмотра OpenGL на базе Windows.Я использую метод VBO + треугольник полосы + glDrawArrays для визуализации моих сеток.Каждая вещь отлично работает на всех машинах.В случае рабочего стола Windows с картами nVidia Quadro рабочая / пиковая рабочая память снимается при первом вызове glDrawArray.В то время как в ноутбуках с мобильными графическими картами nvidia рабочая память или пиковая рабочая память не снимаются.С прошлых нескольких дней я проверяю почти все форумы / сообщения / сообщения о проблеме памяти VBO.Перепробовал все комбинации VBO, такие как GL_STATIC_DRAW / DYNAMIC / STREAM, glMapbuffer / glunmapbuffer.Но ничто не мешает снимать память на моих рабочих столах.Я подозреваю, что для VBO с ogl 1.5 мне не хватает некоторых флагов.PS: у меня в приложении почти от 500 до 600 VBO.Я использую массив структур (т.е. v, n, c, t вместе в структуре).И я не выравниваю свои VBO на 16 Кб памяти.Кто-нибудь может мне подсказать, как мне поступить, чтобы решить эту проблему.Любые подсказки / указатели будут полезны.

1 Ответ

2 голосов
/ 01 июля 2011

Действительно ли вам не хватает памяти или ваше приложение все больше потребляет память?Если нет, зачем?Если реализация OpenGL сохраняет рабочую копию для себя, то это, вероятно, по причине.Кроме того, вы мало что можете сделать со стороны OpenGL, чтобы избежать этого, так как все зависит от драйвера, как он управляет своими вещами.Я думаю, что лучший способ действий, если вы действительно хотите уменьшить объем памяти, - это связаться с NVidia, чтобы они могли дважды проверить, не является ли это ошибкой в ​​их драйверах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...