From OpenGL ES 2.0 specification section 4.4.5:
"Formats not listed in table 4.5, including compressed internal formats. are not color-, depth-, or stencil-renderable, no matter which components they contain."
Then there are extensions that extend this table such as:
If I understood the specification correctly, table 4.5 affects both texture and renderbuffer formats. And in that case, for example, RGB and RGBA textures with 8-bits per component are not color-renderable unless the extension OES_rgb8_rgba8 (or ARM_rgba8 for RGBA) is supported.
On a test device that supports OES_rgb8_rgba8 the following texture formats are valid, i.e., framebuffer complete when attached to FBO as the color attachment:
- RGB 565
- RGB 888
- RGBA 4444
- RGBA 5551
- RGBA 8888
And these were not:
- Alpha 8
- Luminance 8
- LuminanceAlpha 88
The results match my assumptions (at least on 1 device) but I would like to know if I understood the specification correctly or is this working by accident?
EXT_texture_rg
to your list of extensions that increase the number of color-renderable formats; they make replacing Luminance/Alpha a lot easier. - Andon M. Coleman