pkgsrc-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Strange firefox behaviour




To: Rhialto <rhialto%falu.nl@localhost>

Subject: Re: Strange firefox behaviour

From: Grégoire Sutre <gregoire.sutre%gmail.com@localhost>

Date: Sat, 27 Oct 2012 13:45:53 +0200


On 10/27/2012 12:45 PM, Rhialto wrote:


Ok.  So maybe the problem does come from EXA.  It's a long shot,
but the bug report I mentioned previously has a fix that could help:

https://bugs.freedesktop.org/show_bug.cgi?id=47266#c157


The example images attached to that bug report has exactly the
sort of corruption that I'm seeing. So that also points in this
direction. However the attached Radeon patches aren't the correct fix
(for me) since I have Intel graphics. Somebody else in the responses
remarks that too (comment 79).


I'm talking about the patch mentioned in comment 157, i.e., the
patch:

https://bugs.freedesktop.org/attachment.cgi?id=68718

This patch is not hardware-specific, as it fixes a problem in EXA.
But the patch does not apply cleanly against NetBSD -current xsrc
sources, though.  I regenerated the patch so that it will apply
cleanly, see attachment.  I've only build-tested it.

Grégoire
Index: exa/exa_priv.h
===================================================================
RCS file: /cvsroot/xsrc/external/mit/xorg-server/dist/exa/exa_priv.h,v
retrieving revision 1.1.1.4
diff -u -r1.1.1.4 exa_priv.h
--- exa/exa_priv.h      23 Nov 2010 05:21:03 -0000      1.1.1.4
+++ exa/exa_priv.h      27 Oct 2012 11:29:35 -0000
@@ -206,6 +206,7 @@
     RegionRec srcReg;
     RegionRec maskReg;
     PixmapPtr srcPix;
+    PixmapPtr maskPix;
 
 } ExaScreenPrivRec, *ExaScreenPrivPtr;
 
Index: exa/exa_unaccel.c
===================================================================
RCS file: /cvsroot/xsrc/external/mit/xorg-server/dist/exa/exa_unaccel.c,v
retrieving revision 1.1.1.6
diff -u -r1.1.1.6 exa_unaccel.c
--- exa/exa_unaccel.c   2 Aug 2011 06:56:46 -0000       1.1.1.6
+++ exa/exa_unaccel.c   27 Oct 2012 11:29:35 -0000
@@ -449,6 +449,13 @@
     RegionPtr dst;
     int xoff, yoff;
 
+    if (pExaScr->srcPix == pPix)
+       dst = &pExaScr->srcReg;
+    else if (pExaScr->maskPix == pPix)
+       dst = &pExaScr->maskReg;
+    else
+       return;
+
     exaGetDrawableDeltas(pDrawable, pPix, &xoff, &yoff);
 
     box.x1 = x + xoff;
@@ -456,9 +463,6 @@
     box.x2 = box.x1 + width;
     box.y2 = box.y1 + height;
 
-    dst = (pExaScr->srcPix == pPix) ? &pExaScr->srcReg :
-       &pExaScr->maskReg;
-
     RegionInit(&reg, &box, 1);
     RegionUnion(dst, dst, &reg);
     RegionUninit(&reg);
@@ -507,17 +511,20 @@
            RegionTranslate(pSrc->pCompositeClip,
                             -pSrc->pDrawable->x,
                             -pSrc->pDrawable->y);
-    }
+    } else
+       pExaScr->srcPix = NULL;
 
     if (pMask && pMask->pDrawable) {
        pMaskPix = exaGetDrawablePixmap(pMask->pDrawable);
        RegionNull(&pExaScr->maskReg);
        maskReg = &pExaScr->maskReg;
+       pExaScr->maskPix = pMaskPix;
        if (pMask != pDst && pMask != pSrc)
            RegionTranslate(pMask->pCompositeClip,
                             -pMask->pDrawable->x,
                             -pMask->pDrawable->y);
-    }
+    } else
+       pExaScr->maskPix = NULL;
 
     RegionTranslate(pDst->pCompositeClip,
                     -pDst->pDrawable->x,


Follow-Ups:

Re: Strange firefox behaviour
From: Rhialto

Re: Strange firefox behaviour
From: Aleksey Cheusov


References:

Re: Strange firefox behaviour
From: Rhialto

Re: Strange firefox behaviour
From: Grégoire Sutre

Re: Strange firefox behaviour
From: Rhialto

Re: Strange firefox behaviour
From: Wladimir Sidorenko

Re: Strange firefox behaviour
From: Grégoire Sutre

Re: Strange firefox behaviour
From: Rhialto




Prev by Date: Re: Why is PKGREVISION=1 set for the latest update to cairo 1.12.6?

Next by Date: Re: Quick (non)fix for getting cairo working again?

Previous by Thread: Re: Strange firefox behaviour

Next by Thread: Re: Strange firefox behaviour

Indexes:

reverse Date

reverse Thread

Old Index



Home | Main Index | Thread Index | Old Index