We are running Android 4.3 Jellybean, with the board support package i.MX Android jb4.3_1.1.0 on an i.mx6 Quad (Vivante GC2000) board and are unable to use ETC1 texture compression in our Java OpenGLES2.0 apps. Kernel version is 3.0.35.
ETC1Util.isETC1Supported() returns true in my Android test app and I have valid ETC1 textures.
The following snippet below from my app (valid code that compiles and runs) generates a GL error 1280. This is GL_INVALID_ENUM; clearly this is in response to the ETC1.ETC_RGB8_OES value passed in.
GLES20.glCompressedTexImage2D(GLES20.GL_TEXTURE_2D, 0, ETC1.ETC1_RGB8_OES, width, height, 0, imageSize, etc1Texture.getData());
Other info:
When the kernel boots I display the Galcore options:
Galcore version 4.6.9.9754
.......
.......
compression = -1
.......
.......
Does this mean texture compression is not supported?
When grepping through the code in the kernel GPU drivers I see where compression is set to -1 in ....../gpu_viv/hal/os/linux/kernel/gc_hal_kernel_driver. i.e.
static int compression = -1;
module_param(compression, int, 0644);
However, compression does not appear to be set anywhere else.
Thanks for any help anyone can offer!
Solved! Go to Solution.
Hi marcuswhitlock
ETC1 is not supported on jb4.3, you need at least a BSP based on 3.14.52v to support ETC1 and ETC2 textures, offically NXP bsp should be L5.1.1_2.1.0.
regards
Hi marcuswhitlock
ETC1 is not supported on jb4.3, you need at least a BSP based on 3.14.52v to support ETC1 and ETC2 textures, offically NXP bsp should be L5.1.1_2.1.0.
regards
Thank you for getting back to me; that's good info. Unfortunately we are locked into Android 4.3 for now so I guess we're stuck until we can migrate to Android L or better.