From: Zack Rusin <[email protected]>

This fixes the component alpha fallback in exa. I'm not sure which branches
this should go into. Also before committing this patch make sure that
we get a Tested-by by somebody with a radeon card as this turns on new and
wonderful paths not tested in the drivers. It works just fine on st/xorg.

Signed-off-by: Zack Rusin <[email protected]>
Signed-off-by: Jakob Bornecrantz <[email protected]>

---
 exa/exa_render.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/exa/exa_render.c b/exa/exa_render.c
index bbc2ce7..aa9ca87 100644
--- a/exa/exa_render.c
+++ b/exa/exa_render.c
@@ -857,6 +857,8 @@ exaTryMagicTwoPassCompositeHelper(CARD8 op,
                                  CARD16 height)
 {
     ExaScreenPriv (pDst->pDrawable->pScreen);
+    int oldComponentAlpha = pMask->componentAlpha;
+    pMask->componentAlpha = 0;
 
     assert(op == PictOpOver);
 
@@ -865,6 +867,7 @@ exaTryMagicTwoPassCompositeHelper(CARD8 op,
                                           pDst) ||
         !(*pExaScr->info->CheckComposite)(PictOpAdd, pSrc, pMask, pDst)))
     {
+       pMask->componentAlpha = oldComponentAlpha;
        return -1;
     }
 
@@ -880,6 +883,7 @@ exaTryMagicTwoPassCompositeHelper(CARD8 op,
     exaComposite(PictOpAdd, pSrc, pMask, pDst, xSrc, ySrc, xMask, yMask,
                 xDst, yDst, width, height);
 
+    pMask->componentAlpha = oldComponentAlpha;
     return 1;
 }
 
-- 
1.6.0.4

_______________________________________________
xorg-devel mailing list
[email protected]
http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to