xf86-video-ati: Branch 'master'

Alex Deucher agd5f at kemper.freedesktop.org
Thu Feb 12 09:50:28 PST 2009


 src/radeon_exa_render.c |   50 +++++++++++++++++++++++++-----------------------
 1 file changed, 27 insertions(+), 23 deletions(-)

New commits:
commit c6e1bf75c399807716b99486ab3301aeba60fa79
Author: Alex Deucher <alexdeucher at gmail.com>
Date:   Thu Feb 12 12:49:24 2009 -0500

    R3xx-R5xx EXA: fix texture setup for non-repeat case
    
    fixes bug 19923

diff --git a/src/radeon_exa_render.c b/src/radeon_exa_render.c
index ceeee49..a7626dd 100644
--- a/src/radeon_exa_render.c
+++ b/src/radeon_exa_render.c
@@ -1088,32 +1088,36 @@ static Bool FUNC_NAME(R300TextureSetup)(PicturePtr pPict, PixmapPtr pPix,
 
     txfilter = (unit << R300_TX_ID_SHIFT);
 
-    switch (pPict->repeatType) {
-    case RepeatNormal:
-	if (unit != 0 || !info->accel_state->need_src_tile_x)
-	    txfilter |= R300_TX_CLAMP_S(R300_TX_CLAMP_WRAP);
-	else
-	    txfilter |= R300_TX_CLAMP_S(R300_TX_CLAMP_CLAMP_GL);
+    if (pPict->repeat) {
+	switch (pPict->repeatType) {
+	case RepeatNormal:
+	    if (unit != 0 || !info->accel_state->need_src_tile_x)
+		txfilter |= R300_TX_CLAMP_S(R300_TX_CLAMP_WRAP);
+	    else
+		txfilter |= R300_TX_CLAMP_S(R300_TX_CLAMP_CLAMP_GL);
 
-	if (unit != 0 || !info->accel_state->need_src_tile_y)
-	    txfilter |= R300_TX_CLAMP_T(R300_TX_CLAMP_WRAP);
-	else
-	    txfilter |= R300_TX_CLAMP_T(R300_TX_CLAMP_CLAMP_GL);
+	    if (unit != 0 || !info->accel_state->need_src_tile_y)
+		txfilter |= R300_TX_CLAMP_T(R300_TX_CLAMP_WRAP);
+	    else
+		txfilter |= R300_TX_CLAMP_T(R300_TX_CLAMP_CLAMP_GL);
 
-	break;
-    case RepeatPad:
-	txfilter |= R300_TX_CLAMP_S(R300_TX_CLAMP_CLAMP_LAST) |
-		    R300_TX_CLAMP_T(R300_TX_CLAMP_CLAMP_LAST);
-	break;
-    case RepeatReflect:
-	txfilter |= R300_TX_CLAMP_S(R300_TX_CLAMP_MIRROR) |
-		    R300_TX_CLAMP_T(R300_TX_CLAMP_MIRROR);
-	break;
-    case RepeatNone:
+	    break;
+	case RepeatPad:
+	    txfilter |= R300_TX_CLAMP_S(R300_TX_CLAMP_CLAMP_LAST) |
+		        R300_TX_CLAMP_T(R300_TX_CLAMP_CLAMP_LAST);
+	    break;
+	case RepeatReflect:
+	    txfilter |= R300_TX_CLAMP_S(R300_TX_CLAMP_MIRROR) |
+		        R300_TX_CLAMP_T(R300_TX_CLAMP_MIRROR);
+	    break;
+	case RepeatNone:
+	    txfilter |= R300_TX_CLAMP_S(R300_TX_CLAMP_CLAMP_GL) |
+		        R300_TX_CLAMP_T(R300_TX_CLAMP_CLAMP_GL);
+	    break;
+	}
+    } else
 	txfilter |= R300_TX_CLAMP_S(R300_TX_CLAMP_CLAMP_GL) |
-		    R300_TX_CLAMP_T(R300_TX_CLAMP_CLAMP_GL);
-	break;
-    }
+	            R300_TX_CLAMP_T(R300_TX_CLAMP_CLAMP_GL);
 
     switch (pPict->filter) {
     case PictFilterNearest:


More information about the xorg-commit mailing list