summaryrefslogtreecommitdiffstats
path: root/src/mesa/main/teximage.c
diff options
context:
space:
mode:
authorKenneth Graunke <[email protected]>2012-09-19 12:01:14 -0700
committerKenneth Graunke <[email protected]>2012-09-20 14:49:19 -0700
commit328961d95586931a17fe81ba816d362e8389c105 (patch)
treef8948e9f00a001cf9de90b81c4c26c1ad1799f55 /src/mesa/main/teximage.c
parente2249e8c4d06a85d6389ba1689e15d7e29aa4dff (diff)
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 <[email protected]> Reviewed-by: Ian Romanick <[email protected]> Reviewed-and-tested-by: Jordan Justen <[email protected]>
Diffstat (limited to 'src/mesa/main/teximage.c')
-rw-r--r--src/mesa/main/teximage.c2
1 files changed, 1 insertions, 1 deletions
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) {