ETC1Util isETC1Supported () работает некорректно на некоторых устройствах - PullRequest
0 голосов
/ 22 января 2012

Я работаю над 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 ().Теперь все отлично работает и на этих устройствах!

Кто-нибудь сталкивался с такими же проблемами на других устройствах?

...