mesa: Return 8 bits for GL_TEXTURE_RED_SIZE on RGTC formats.
authorKenneth Graunke <kenneth@whitecape.org>
Wed, 6 Jun 2012 06:51:04 +0000 (23:51 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Thu, 7 Jun 2012 07:01:40 +0000 (00:01 -0700)
commitf8d40deea5c4abbbf93c2c572ce668a5a25f95e2
treec466b51e08d6e5c21566e7ed4c325195eec20221
parent3603fdcebfa25e2217f1dbfb0a99261be3e84b02
mesa: Return 8 bits for GL_TEXTURE_RED_SIZE on RGTC formats.

From the issues section of the GL_ARB_texture_compression_rgtc extension:

15) What should glGetTexLevelParameter return for
    GL_TEXTURE_GREEN_SIZE and GL_TEXTURE_BLUE_SIZE for the RGTC1
    formats?  What should glGetTexLevelParameter return for
    GL_TEXTURE_BLUE_SIZE for the RGTC2 formats?

    RESOLVED:  Zero bits.

    These formats always return 0.0 for these respective components
    and have no bits devoted to these components.

    Returning 8 bits for red size of RGTC1 and the red and green
    sizes of RGTC2 makes sense because that's the maximum potential
    precision for the uncompressed texels.

Thus, we need to return 8 bits for GL_TEXTURE_RED_SIZE on all RGTC formats
and 8 bits for GL_TEXTURE_GREEN_SIZE on RGTC2 formats.  BLUE should be 0.

Fixes oglconform/rgtc/advanced.texture_fetch.tex_param.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
src/mesa/main/formats.c