Использование кучи libGL

Я работаю над приложением OpenGL c++ на основе Linux, используя 64-битные драйверы Nvidia 290.10. Я пытаюсь уменьшить его объем памяти, поскольку он использует довольно много оперативных данных.

Я использовал valgrind/massif для анализа использования кучи, и хотя это помогло мне оптимизировать различные вещи, к настоящему времени самый большой кусок используемой памяти кучи выделяется libGL. Независимо от того, как я устанавливаю порог, массив не позволяет мне подробно увидеть, откуда берутся эти распределения, просто это libGL. В часы пик я вижу около 250 МБ, выделенных libGL (из 900 МБ общего использования кучи). У меня такой же объем памяти на видеокарте, как и для VBO и текстур (в основном одна большая текстура 4096*4096).

Получается, что такой же объем памяти, как и тот, который я загружаю в память графического процессора, выделяется в куче с помощью libGL. Выделения libGL также достигают пика, когда объем VBO достигает пика. Это нормально? Я думал, что одним из преимуществ наличия большого количества памяти графического процессора является то, что оперативная память остается свободной?

5
задан pholz 22 May 2012 в 08:06
поделиться