Window Manager Decoration garbage w/ head everything + KMS

Michel Dänzer michel at daenzer.net
Thu Dec 31 03:15:48 PST 2009


On Wed, 2009-12-30 at 16:11 -0500, Andrew Chant wrote: 
> The output of git-bisect, which I verified by checking out & it had the problem:
> 
> t db2c6f7c91289b5d49978974093a1002b3b53a56
> Author: Michel Dänzer <daenzer at vmware.com>
> Date:   Tue Dec 29 15:48:44 2009 +0100
> 
>     EXA: Don't use UTS/DFS directly for Put/GetImage when there's a system copy.
> 
>     We want to save the result in the system memory copy, in case we'll need it
>     again for subsequent software fallbacks.
> 
>     Signed-off-by: Michel Dänzer <daenzer at vmware.com>
>     Acked-By: Maarten Maathuis <madman2003 at gmail.com>
>     Signed-off-by: Keith Packard <keithp at keithp.com>
> 
> :040000 040000 1f2bb220d39d1ea98fbe330b08786570fb089190
> 9cbf71dd4c6aa203c0f5220e88f9263f583a8faa M      exa

Thanks for bisecting. Unfortunately, I don't yet really have an idea
what's going on, and I can't seem to reproduce the problem...

Maarten, are you seeing corruption in the openbox window decorations
with nouveau and the commit above?

Andrew, does the patch below help?


diff --git a/exa/exa_accel.c b/exa/exa_accel.c
index 4c55a4c..9f93482 100644
--- a/exa/exa_accel.c
+++ b/exa/exa_accel.c
@@ -172,6 +172,17 @@ exaDoPutImage (DrawablePtr pDrawable, GCPtr pGC, int depth, int x, int y,
     if (pExaScr->swappedOut)
 	return FALSE;
 
+    if (pExaScr->do_migration) {
+	ExaMigrationRec pixmaps[1];
+
+	pixmaps[0].as_dst = TRUE;
+	pixmaps[0].as_src = FALSE;
+	pixmaps[0].pPix = pPix;
+	pixmaps[0].pReg = DamagePendingRegion(pExaPixmap->pDamage);
+
+	exaDoMigration (pixmaps, 1, TRUE);
+    }
+
     pPix = exaGetOffscreenPixmap (pDrawable, &xoff, &yoff);
 
     if (!pPix)

-- 
Earthling Michel Dänzer           |                http://www.vmware.com
Libre software enthusiast         |          Debian, X and DRI developer


More information about the xorg-driver-ati mailing list