Both ETC1 and ETC2 texture compression formats are broken on Android since at least AIR 16.0, up to latest AIR 22.0.
Let's start with ETC1.
Bug#4089178 - Graphic Glitches on Android 6
Bug#4041690 - ATF texture is corruption on MALI GPU platform
Bug#3961778 - ATF artifacts (not usual compression related artifacts) on some android devices
help!Texture has something wrong · Issue #755 · Gamua/Starling-Framework · GitHub
Discovered back in March 2015, at first, bug affected only a few niche devices like Galaxy Note 4, but since then, affected GPUs had been adopted by mainstream bestsellers.
Bug is reproducible on following devices (among others):
- Samsung Galaxy S6 Edge
- LG Nexus 5X
- Huawei G7 Plus
- OPPO R7s
- HTC One E9PLUS
This bug was claimed to be fixed on multiple occasions in release notes of AIR 19.0-22.0, but i've never seen a single AIR release that reproduced this issue in a different way, let alone fixed.
When ETC2 was introduced in AIR 18.0, we expected it to be a viable workaround for ETC1 issue, since most (all?) of affected devices are capable of OpenGL 3.0.
Guess what? It never worked, and still doesn't. Bug#4033509 - ETC2 not display on Nexus 7
Even more so, even if ETC2 would work, we can't reliably publish multiple APKs to deploy it due to a packager bug - Bug#4123604 - <supports-gl-texture> tag in Android manifestAdditions prevents project from building
We were using RGBA8888 textures as a workaround, carefully managing memory, because even if you have multiple gigabytes of RAM on modern Androids, you can't actually use more than ~1.5Gb due to some weird AIR runtime limitation. Even if we could use all the RAM, it's not a real solution, since some manufacturers (hi, LG!) considered early 2016 to be a good timeframe to release phones with <2Gb RAM.
And then this charlie foxtrot got REAL. In one of the AIR 22.0 betas, RGBA8888 was broken. Bug#4149945 - AIR 22.121 display bug with ATF . NONE of the texture formats worked on Android for this release. Bro, do you even QA?
While the last issue had been fixed in final AIR 22.0 release, it's still a very complicated and unreliable workaround for 2D games relying on spritesheet animation.
Please fix the ETC1 and ETC2 formats, it's not funny anymore.
Pavel Shevchuk
Skywind Tech LV