xserver: Branch 'master' - 2 commits
Michel Dänzer
daenzer at kemper.freedesktop.org
Fri Feb 6 09:31:57 PST 2009
exa/exa_migration.c | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
New commits:
commit f112d6bf59964f317ab236221f7bce7fe2603ab8
Author: Michel Dänzer <daenzer at vmware.com>
Date: Fri Feb 6 18:30:43 2009 +0100
EXA: Try harder to keep current pixmap copy up to date in exaMigrateToward*.
This is probably required, but apparently not sufficient, for making migration
heuristics other than "always" work correctly again. Not that I really care
about them...
diff --git a/exa/exa_migration.c b/exa/exa_migration.c
index 4623ecc..19e0f71 100644
--- a/exa/exa_migration.c
+++ b/exa/exa_migration.c
@@ -463,7 +463,11 @@ exaMigrateTowardFb (ExaMigrationPtr migrate)
exaDoMoveInPixmap(migrate);
}
- ExaOffscreenMarkUsed (pPixmap);
+ if (exaPixmapIsOffscreen(pPixmap)) {
+ exaCopyDirtyToFb (migrate);
+ ExaOffscreenMarkUsed (pPixmap);
+ } else
+ exaCopyDirtyToSys (migrate);
}
/**
@@ -496,6 +500,12 @@ exaMigrateTowardSys (ExaMigrationPtr migrate)
if (pExaPixmap->score <= EXA_PIXMAP_SCORE_MOVE_OUT && pExaPixmap->area)
exaDoMoveOutPixmap(migrate);
+
+ if (exaPixmapIsOffscreen(pPixmap)) {
+ exaCopyDirtyToFb (migrate);
+ ExaOffscreenMarkUsed (pPixmap);
+ } else
+ exaCopyDirtyToSys (migrate);
}
/**
commit 3948b523893d3d44b6a088340c4252e969613769
Author: Michel Dänzer <daenzer at vmware.com>
Date: Fri Feb 6 11:37:53 2009 +0100
EXA: Guard empty pending region warning by DEBUG_MIGRATE.
It isn't very useful yet while the damage layer calls us for empty operations,
mostly confuses users.
diff --git a/exa/exa_migration.c b/exa/exa_migration.c
index 571650c..4623ecc 100644
--- a/exa/exa_migration.c
+++ b/exa/exa_migration.c
@@ -162,6 +162,7 @@ exaCopyDirty(ExaMigrationPtr migrate, RegionPtr pValidDst, RegionPtr pValidSrc,
if (pExaScr->optimize_migration) {
RegionPtr pending_damage = DamagePendingRegion(pExaPixmap->pDamage);
+#if DEBUG_MIGRATE
if (REGION_NIL(pending_damage)) {
static Bool firsttime = TRUE;
@@ -170,6 +171,7 @@ exaCopyDirty(ExaMigrationPtr migrate, RegionPtr pValidDst, RegionPtr pValidSrc,
firsttime = FALSE;
}
}
+#endif
REGION_INTERSECT(pScreen, &CopyReg, &CopyReg, pending_damage);
}
More information about the xorg-commit
mailing list