[Mesa-dev] [PATCH 4/4] st/mesa: don't do (generic) compression of 1D or 1D_ARRAY textures

Brian Paul brianp at vmware.com
Fri Aug 24 07:53:08 PDT 2012


As with the previous commit for core Mesa.
---
 src/mesa/state_tracker/st_format.c |   12 +++++++++++-
 1 files changed, 11 insertions(+), 1 deletions(-)

diff --git a/src/mesa/state_tracker/st_format.c b/src/mesa/state_tracker/st_format.c
index 404b041..302b58c 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);
 }
-- 
1.7.3.4



More information about the mesa-dev mailing list