st/mesa: avoid sw fallback for getting/decompressing textures
authorBrian Paul <brianp@vmware.com>
Fri, 7 Feb 2014 16:32:05 +0000 (09:32 -0700)
committerBrian Paul <brianp@vmware.com>
Fri, 7 Feb 2014 16:54:43 +0000 (09:54 -0700)
If st_GetTexImage() is to decompress the texture, avoid the fallback
path even if prefer_blit_based_texture_transfer = false.  For drivers
that returned PIPE_CAP_PREFER_BLIT_BASED_TEXTURE_TRANSFER = 0, we
were always taking the fallback path for texture decompression rather
than rendering a quad.  The later is a lot faster.

Cc: "10.0" "10.1" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
src/mesa/state_tracker/st_cb_texture.c

index 824a13e205d31e2eaec25983835b92a65c37ec45..f0bf3745bd5b8c847bd6a74be7b91c8b0141ee30 100644 (file)
@@ -865,7 +865,9 @@ st_GetTexImage(struct gl_context * ctx,
    ubyte *map = NULL;
    boolean done = FALSE;
 
-   if (!st->prefer_blit_based_texture_transfer) {
+   if (!st->prefer_blit_based_texture_transfer &&
+       !_mesa_is_format_compressed(texImage->TexFormat)) {
+      /* Try to avoid the fallback if we're doing texture decompression here */
       goto fallback;
    }