summaryrefslogtreecommitdiff
path: root/src/i830_render.c
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2007-02-13 17:37:56 -0800
committerEric Anholt <eric@anholt.net>2007-02-13 17:42:47 -0800
commit1623b47c4863f5362587cdac855e3e11c109b007 (patch)
treec53495e6703ad607d50c50f1af0e82d9dcc65d83 /src/i830_render.c
parent4bd4058dfdca84d6ebab82a1dfba99adf3852c9c (diff)
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@intel.com>
Diffstat (limited to 'src/i830_render.c')
-rw-r--r--src/i830_render.c24
1 files changed, 12 insertions, 12 deletions
diff --git a/src/i830_render.c b/src/i830_render.c
index 96aeb3fa..49d8fc11 100644
--- a/src/i830_render.c
+++ b/src/i830_render.c
@@ -557,13 +557,13 @@ i830_composite(PixmapPtr pDst, int srcX, int srcY, int maskX, int maskY,
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, int srcY, int maskX, int maskY,
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();
}