2013-12-25 3 views
1

У меня есть вопрос относительно размера контекста OpenGL ES. У меня есть два контекста OpenGL, работающих на сетчатке iPad, используя GLKView. Вид сконфигурирован так, что не имеет глубины/трафарета/мультисэмплирования, но только 32-битный фреймбуфер. Один буфер занимает 12 МБ (2048 * 1536 * 4 байта). Профилирование моего приложения показывает, что у меня есть 3 распределения IOKit 12 МБ плюс одно выделение 12 МБ из Core Animation. Я подозреваю, что все они связаны. Я предполагаю, что Core анимация кэширует результирующий фрейм-буфер, который объясняет, что один из 12MB исходит от него. Также я вызываю deleteDrawable в GLKView, который скрыт, а это означает, что я ожидал бы один 12-мегабайтный буфер от IOKit и, возможно, другой один из Core Animation. Кто-нибудь имеет опыт использования памяти OpenGL, как его уменьшить и почему я вижу три распределения IOKit, хотя у меня есть только один GLView в любой момент?Расход контекстной памяти iOS OpenGL

+0

ОК, подумав об этом, может быть, это связано с двойной буферизацией? – idan

ответ

0

Я считаю, что устройства iOS используют внутреннюю буферизацию внутри, что объясняет дополнительные распределения. Об этом упоминал Джон Кармак в электронном письме here.