Я работаю над Android OpenGL App с большим количеством текстур и сеток.Для текстур я использую сжатие ETC1 (большинство текстур имеют размер 2048x1024 пикселей).
После тестирования моей реальной сборки на Sony Ericsson Xperia Arc я получил исключение OutOfMemory.В поисках этой проблемы весь день я тестировал на Nexus One с тем же исключением.Новый Samsung Nexus (Prime) или Samsung Note работал без проблем.
Я обнаружил, что собственная куча на Xperia Arc и Nexus One значительно увеличивается.Я обнаружил, что isETC1Supported () не работает на этих устройствах, и поэтому ETC1Util возвращается в несжатый режим.Но эти устройства поддерживают сжатие ETC1.Если вы проверяете строку GL_EXTENSIONS, появляется текст «GL_OES_compressed_ETC1_RGB8_texture».Проверка поддержки ETC1 внутри ETC1Util выполняется другим способом внутри функции isETC1Supported ().
Поэтому я сделал свою собственную версию ETC1Util и изменил проверку isETC1Supported ().Теперь все отлично работает и на этих устройствах!
Кто-нибудь сталкивался с такими же проблемами на других устройствах?