[Mesa-dev] [PATCH 6/6] mesa: fix NUM_COMPRESSED_TEXTURE_FORMATS query

Brian Paul brian.e.paul at gmail.com
Thu Oct 31 18:04:20 CET 2013


On Thu, Oct 31, 2013 at 9:42 AM, Marek Olšák <maraeo at gmail.com> wrote:
> From: Marek Olšák <marek.olsak at amd.com>
>
> Cc: mesa-stable at lists.freedesktop.org
> ---
>  src/mesa/main/texcompress.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/src/mesa/main/texcompress.c b/src/mesa/main/texcompress.c
> index e71d0c4..7393d3f 100644
> --- a/src/mesa/main/texcompress.c
> +++ b/src/mesa/main/texcompress.c
> @@ -257,11 +257,12 @@ _mesa_get_compressed_formats(struct gl_context *ctx, GLint *formats)
>     if (ctx->Extensions.EXT_texture_compression_s3tc) {
>        if (formats) {
>           formats[n++] = GL_COMPRESSED_RGB_S3TC_DXT1_EXT;
> +         formats[n++] = GL_COMPRESSED_RGBA_S3TC_DXT1_EXT;
>           formats[n++] = GL_COMPRESSED_RGBA_S3TC_DXT3_EXT;
>           formats[n++] = GL_COMPRESSED_RGBA_S3TC_DXT5_EXT;
>        }
>        else {
> -         n += 3;
> +         n += 4;
>        }
>     }
>

Actually, I believe the code is correct as-is.  There's a comment
above the function that says:

 * Some formats are \b not returned by this function.  The
 * \c GL_COMPRESSED_TEXTURE_FORMATS query only returns formats that are
 * "suitable for general-purpose usage."  All texture compression extensions
 * have taken this to mean either linear RGB or linear RGBA.
 *

I'd have to dig up the spec language, but NVIDIA also omits
GL_COMPRESSED_RGBA_S3TC_DXT1_EXT when you do that query.

-Brian


More information about the mesa-dev mailing list