File exa-greedy.diff of Package xorg-x11-server

Index: xorg-server-1.6.3.901/exa/exa_migration.c
===================================================================
--- xorg-server-1.6.3.901.orig/exa/exa_migration.c
+++ xorg-server-1.6.3.901/exa/exa_migration.c
@@ -463,7 +463,11 @@ exaMigrateTowardFb (ExaMigrationPtr migr
 	exaDoMoveInPixmap(migrate);
     }
 
-    ExaOffscreenMarkUsed (pPixmap);
+    if (exaPixmapIsOffscreen(pPixmap)) {
+	exaCopyDirtyToFb (migrate);
+	ExaOffscreenMarkUsed (pPixmap);
+    } else
+	exaCopyDirtyToSys (migrate);
 }
 
 /**
@@ -496,6 +500,12 @@ exaMigrateTowardSys (ExaMigrationPtr mig
 
     if (pExaPixmap->score <= EXA_PIXMAP_SCORE_MOVE_OUT && pExaPixmap->area)
 	exaDoMoveOutPixmap(migrate);
+
+    if (exaPixmapIsOffscreen(pPixmap)) {
+	exaCopyDirtyToFb (migrate);
+	ExaOffscreenMarkUsed (pPixmap);
+    } else
+	exaCopyDirtyToSys (migrate);
 }
 
 /**
openSUSE Build Service is sponsored by