28 lines
996 B
Diff
28 lines
996 B
Diff
|
commit 6f00d98f87c019849c611d27e9593c5eecfef4c2
|
||
|
Author: Søren Sandmann Pedersen <sandmann@daimi.au.dk>
|
||
|
Date: Tue Sep 9 10:49:56 2008 -0400
|
||
|
|
||
|
Fix for bug 17477.
|
||
|
|
||
|
over_2x128 was changing the alphaLo and alphaHi arguments, causing
|
||
|
stripes.
|
||
|
|
||
|
diff --git a/pixman/pixman-sse2.c b/pixman/pixman-sse2.c
|
||
|
index 8a3e4b5..cc08189 100644
|
||
|
--- a/pixman/pixman-sse2.c
|
||
|
+++ b/pixman/pixman-sse2.c
|
||
|
@@ -244,9 +244,11 @@ invertColors_2x128 (__m128i dataLo, __m128i dataHi, __m128i* invLo, __m128i* inv
|
||
|
static inline void
|
||
|
over_2x128 (__m128i* srcLo, __m128i* srcHi, __m128i* alphaLo, __m128i* alphaHi, __m128i* dstLo, __m128i* dstHi)
|
||
|
{
|
||
|
- negate_2x128 (*alphaLo, *alphaHi, alphaLo, alphaHi);
|
||
|
+ __m128i t1, t2;
|
||
|
|
||
|
- pixMultiply_2x128 (dstLo, dstHi, alphaLo, alphaHi, dstLo, dstHi);
|
||
|
+ negate_2x128 (*alphaLo, *alphaHi, &t1, &t2);
|
||
|
+
|
||
|
+ pixMultiply_2x128 (dstLo, dstHi, &t1, &t2, dstLo, dstHi);
|
||
|
|
||
|
*dstLo = _mm_adds_epu8 (*srcLo, *dstLo);
|
||
|
*dstHi = _mm_adds_epu8 (*srcHi, *dstHi);
|