From: Brian Paul Date: Fri, 24 Aug 2012 14:44:47 +0000 (-0600) Subject: st/mesa: don't do (generic) compression of 1D or 1D_ARRAY textures X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=4b7c0938e43dcc534fa2fbba012e12dbbf4aefd6;p=mesa.git 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 --- diff --git a/src/mesa/state_tracker/st_format.c b/src/mesa/state_tracker/st_format.c index 404b0410637..302b58c7b10 100644 --- a/src/mesa/state_tracker/st_format.c +++ b/src/mesa/state_tracker/st_format.c @@ -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); }