st/mesa: don't set RENDER_TARGET/DEPTH_STENCIL flag for compressed textures
authorBrian Paul <brianp@vmware.com>
Fri, 23 Apr 2010 18:28:55 +0000 (12:28 -0600)
committerBrian Paul <brianp@vmware.com>
Fri, 23 Apr 2010 18:29:31 +0000 (12:29 -0600)
src/mesa/state_tracker/st_format.c

index 180118d69dfa3d8cd30edff058d61329b596cc90..2e40659b19ea103d496e014e522c594613a2acae 100644 (file)
@@ -661,11 +661,13 @@ st_ChooseTextureFormat(GLcontext *ctx, GLint internalFormat,
     * An alternative would be to destroy and re-create a texture when
     * we first start rendering to it.
     */
-   if (_mesa_is_depth_format(internalFormat) ||
-       _mesa_is_depthstencil_format(internalFormat))
-      usage |= PIPE_BIND_DEPTH_STENCIL;
-   else 
-      usage |= PIPE_BIND_RENDER_TARGET;
+   if (!_mesa_is_compressed_format(ctx, internalFormat)) {
+      if (_mesa_is_depth_format(internalFormat) ||
+          _mesa_is_depthstencil_format(internalFormat))
+         usage |= PIPE_BIND_DEPTH_STENCIL;
+      else 
+         usage |= PIPE_BIND_RENDER_TARGET;
+   }
 
    pFormat = st_choose_format(ctx->st->pipe->screen, internalFormat,
                               PIPE_TEXTURE_2D, usage);