From: Brian Paul Date: Fri, 1 Feb 2013 01:49:01 +0000 (-0700) Subject: mesa: don't use format chooser code for glCompressedTexImage X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=478056b81ae80ea3301511fb99b7ba5845202379;p=mesa.git mesa: don't use format chooser code for glCompressedTexImage When glCompressedTexImage is called the internalFormat is a specific format for the incoming image and the the hardware format should be the same (since we never do format transcoding). So use the simpler _mesa_glenum_to_compressed_format() function. This change is also needed for the next patch. Note: This is a candidate for the stable branches. --- diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c index f03e84ad840..ff3c92c5ef1 100644 --- a/src/mesa/main/teximage.c +++ b/src/mesa/main/teximage.c @@ -3004,8 +3004,18 @@ teximage(struct gl_context *ctx, GLboolean compressed, GLuint dims, texObj = _mesa_get_current_tex_object(ctx, target); assert(texObj); - texFormat = _mesa_choose_texture_format(ctx, texObj, target, level, - internalFormat, format, type); + if (compressed) { + /* For glCompressedTexImage() the driver has no choice about the + * texture format since we'll never transcode the user's compressed + * image data. The internalFormat was error checked earlier. + */ + texFormat = _mesa_glenum_to_compressed_format(internalFormat); + } + else { + texFormat = _mesa_choose_texture_format(ctx, texObj, target, level, + internalFormat, format, type); + } + assert(texFormat != MESA_FORMAT_NONE); /* check that width, height, depth are legal for the mipmap level */