xf86-video-intel: Branch 'modesetting' - src/i830_render.c

Eric Anholt anholt at kemper.freedesktop.org
Wed Feb 14 03:43:05 EET 2007


 src/i830_render.c |   24 ++++++++++++------------
 1 files changed, 12 insertions(+), 12 deletions(-)

New commits:
diff-tree 1623b47c4863f5362587cdac855e3e11c109b007 (from 4bd4058dfdca84d6ebab82a1dfba99adf3852c9c)
Author: Eric Anholt <eric at anholt.net>
Date:   Tue Feb 13 17:37:56 2007 -0800

    Switch the RECTLIST vertex order to (x2, y2), (x1, y2), (x1, y1).
    
    This is the documented correct ordering, and while the previous ordering
    (reversed) worked on some hardware, it failed on others.
    
    Reported by:	Wang Zhenyu <zhenyu.z.wang at intel.com>

diff --git a/src/i830_render.c b/src/i830_render.c
index 96aeb3f..49d8fc1 100644
--- a/src/i830_render.c
+++ b/src/i830_render.c
@@ -557,13 +557,13 @@ i830_composite(PixmapPtr pDst, int srcX,
 
 	OUT_RING(PRIM3D_INLINE | PRIM3D_RECTLIST | (vertex_count-1));
 
-	OUT_RING_F(-0.125 + dstX);
-	OUT_RING_F(-0.125 + dstY);
-	OUT_RING_F(src_x[0] / pI830->scale_units[0][0]);
-	OUT_RING_F(src_y[0] / pI830->scale_units[0][1]);
+	OUT_RING_F(-0.125 + dstX + w);
+	OUT_RING_F(-0.125 + dstY + h);
+	OUT_RING_F(src_x[2] / pI830->scale_units[0][0]);
+	OUT_RING_F(src_y[2] / pI830->scale_units[0][1]);
 	if (has_mask) {
-	    OUT_RING_F(mask_x[0] / pI830->scale_units[1][0]);
-	    OUT_RING_F(mask_y[0] / pI830->scale_units[1][1]);
+	    OUT_RING_F(mask_x[2] / pI830->scale_units[1][0]);
+	    OUT_RING_F(mask_y[2] / pI830->scale_units[1][1]);
 	}
 
 	OUT_RING_F(-0.125 + dstX);
@@ -575,13 +575,13 @@ i830_composite(PixmapPtr pDst, int srcX,
 	    OUT_RING_F(mask_y[1] / pI830->scale_units[1][1]);
 	}
 
-	OUT_RING_F(-0.125 + dstX + w);
-	OUT_RING_F(-0.125 + dstY + h);
-	OUT_RING_F(src_x[2] / pI830->scale_units[0][0]);
-	OUT_RING_F(src_y[2] / pI830->scale_units[0][1]);
+	OUT_RING_F(-0.125 + dstX);
+	OUT_RING_F(-0.125 + dstY);
+	OUT_RING_F(src_x[0] / pI830->scale_units[0][0]);
+	OUT_RING_F(src_y[0] / pI830->scale_units[0][1]);
 	if (has_mask) {
-	    OUT_RING_F(mask_x[2] / pI830->scale_units[1][0]);
-	    OUT_RING_F(mask_y[2] / pI830->scale_units[1][1]);
+	    OUT_RING_F(mask_x[0] / pI830->scale_units[1][0]);
+	    OUT_RING_F(mask_y[0] / pI830->scale_units[1][1]);
 	}
 	ADVANCE_LP_RING();
     }



More information about the xorg-commit mailing list