st/mesa: don't do (generic) compression of 1D or 1D_ARRAY textures

As with the previous commit for core Mesa.

Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
This commit is contained in:
Brian Paul 2012-08-24 08:44:47 -06:00
parent a3af27e993
commit 4b7c0938e4

View file

@ -1632,7 +1632,8 @@ st_ChooseTextureFormat_renderable(struct gl_context *ctx, GLint internalFormat,
*/
gl_format
st_ChooseTextureFormat(struct gl_context *ctx, GLenum target,
GLint internalFormat, GLenum format, GLenum type)
GLint internalFormat,
GLenum format, GLenum type)
{
boolean want_renderable =
internalFormat == 3 || internalFormat == 4 ||
@ -1640,6 +1641,15 @@ st_ChooseTextureFormat(struct gl_context *ctx, GLenum target,
internalFormat == GL_RGB8 || internalFormat == GL_RGBA8 ||
internalFormat == GL_BGRA;
if (target == GL_TEXTURE_1D || target == GL_TEXTURE_1D_ARRAY) {
/* We don't do compression for these texture targets because of
* difficulty with sub-texture updates on non-block boundaries, etc.
* So change the internal format request to an uncompressed format.
*/
internalFormat =
_mesa_generic_compressed_format_to_uncompressed_format(internalFormat);
}
return st_ChooseTextureFormat_renderable(ctx, internalFormat,
format, type, want_renderable);
}