Mesa (10.1): st/mesa: avoid sw fallback for getting/decompressing textures

Ian Romanick idr at kemper.freedesktop.org
Sat Feb 8 01:10:20 UTC 2014


Module: Mesa
Branch: 10.1
Commit: 0fb761b404c01e3c026d4774f667ac968a965ccf
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=0fb761b404c01e3c026d4774f667ac968a965ccf

Author: Brian Paul <brianp at vmware.com>
Date:   Fri Feb  7 09:32:05 2014 -0700

st/mesa: avoid sw fallback for getting/decompressing textures

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 at lists.freedesktop.org>
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
(cherry picked from commit f47e5962885d9f7de23a8c9c9ba035017e24ffd6)

---

 src/mesa/state_tracker/st_cb_texture.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/mesa/state_tracker/st_cb_texture.c b/src/mesa/state_tracker/st_cb_texture.c
index 824a13e..f0bf374 100644
--- a/src/mesa/state_tracker/st_cb_texture.c
+++ b/src/mesa/state_tracker/st_cb_texture.c
@@ -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;
    }
 




More information about the mesa-commit mailing list