From: Kenneth Graunke Date: Wed, 19 Sep 2012 19:01:14 +0000 (-0700) Subject: mesa: Don't override S3TC internalFormat if data is pre-compressed. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=328961d95586931a17fe81ba816d362e8389c105;p=mesa.git mesa: Don't override S3TC internalFormat if data is pre-compressed. Commit 42723d88d intended to override an S3TC internalFormat to a generic compressed format when the application requested online compression of uncompressed data. Unfortunately, it also broke pre-compressed textures when libtxc_dxtn isn't installed but the extensions are forced on. Both glCompressedTexImage2D() and glTexImage2D() call teximage(), which calls _mesa_choose_texture_format(), hitting this override code. If we have actual S3TC source data, we can't treat it as any other format, and need to avoid the override. Since glCompressedTexImage2D() passes in a format of GL_NONE (which is illegal for glTexImage), we can use that to detect the pre-compressed case and avoid the overrides. Fixes a regression since 42723d88d370a7599398cc1c2349aeb951ba1c57. NOTE: This is a candidate for the 9.0 branch. Signed-off-by: Kenneth Graunke Reviewed-by: Ian Romanick Reviewed-and-tested-by: Jordan Justen --- diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c index 83e79a5a31c..08af6689376 100644 --- a/src/mesa/main/teximage.c +++ b/src/mesa/main/teximage.c @@ -2746,7 +2746,7 @@ _mesa_choose_texture_format(struct gl_context *ctx, /* If the application requested compression to an S3TC format but we don't * have the DTXn library, force a generic compressed format instead. */ - if (internalFormat != format) { + if (internalFormat != format && format != GL_NONE) { const GLenum before = internalFormat; switch (internalFormat) {