I am doing WebGL work with some large textures, and have reached the point where I must use texture compression to mitigate issues VRAM and upload time.
My application will need to run on both iOS and Android mobile phones from the last two or three years. For once, desktop support is not consequential.
I understand that Chrome and Safari in iOS will allow me to pass textures in PVRTC format, as all iOS devices use PowerVR GPU chipsets. So iOS is a solved problem.
I also understand that almost all Android phones formally support Ericsson Texture Compression (ETC, ETC1) - that this is actually mandated by the OpenGL 2 specification. However, I have read reports that some browsers on some Android instances actually pass ETC1 textures in an uncompressed fashion.
WebGLStats warns me fairly starkly against using the WEBGL_compressed_texture_etc1 extension:
Warning DO NOT USE. Often implemented in browsers by decompressing on the CPU and uploading full size to GPU with severe performance, vram and quality impacts. Fixed in Chrome 57 and Firefox ??.
The other common format I'm aware of is S3TC. This is well supported on desktop, but Android operability seems limited to devices using NVIDIA chipsets. I believe that these are passing rare (Tegra only?).
What is my best option for choosing a texture compression format that will work on modern Android phones?