diff options
author | Maarten Maathuis <madman2003@gmail.com> | 2009-11-18 21:23:09 +0100 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2009-11-18 13:32:56 -0800 |
commit | d4fc245115eb2cb323e06a82f9dd52518d9b6a16 (patch) | |
tree | 87dc89667f4c578f9ac71a62f65d80c18a471b7d | |
parent | 647b79f87a9891225678dc6fc2fbda3bdef8fa9d (diff) |
exa/mixed: be more thorough about setting fb_pitch when needed
Signed-off-by: Maarten Maathuis <madman2003@gmail.com>
Acked-by: Michel Dänzer <michel@daenzer.net>
-rw-r--r-- | exa/exa_migration_mixed.c | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/exa/exa_migration_mixed.c b/exa/exa_migration_mixed.c index ea6f878a2..121a4ada3 100644 --- a/exa/exa_migration_mixed.c +++ b/exa/exa_migration_mixed.c @@ -98,14 +98,17 @@ exaDoMigration_mixed(ExaMigrationPtr pixmaps, int npixmaps, Bool can_accel) if (!pExaPixmap->driverPriv) exaCreateDriverPixmap_mixed(pPixmap); - if (pExaPixmap->pDamage && exaPixmapIsOffscreen(pPixmap)) { - ExaScreenPriv(pPixmap->drawable.pScreen); - + if (exaPixmapIsOffscreen(pPixmap)) { pPixmap->devKind = pExaPixmap->fb_pitch; - exaCopyDirtyToFb(pixmaps + i); - if (pExaScr->deferred_mixed_pixmap == pPixmap) - pExaScr->deferred_mixed_pixmap = NULL; + if (pExaPixmap->pDamage) { + ExaScreenPriv(pPixmap->drawable.pScreen); + + exaCopyDirtyToFb(pixmaps + i); + + if (pExaScr->deferred_mixed_pixmap == pPixmap) + pExaScr->deferred_mixed_pixmap = NULL; + } } pExaPixmap->offscreen = exaPixmapIsOffscreen(pPixmap); @@ -133,8 +136,9 @@ exaMoveInPixmap_mixed(PixmapPtr pPixmap) void exaPrepareAccessReg_mixed(PixmapPtr pPixmap, int index, RegionPtr pReg) { + ExaPixmapPriv(pPixmap); + if (!ExaDoPrepareAccess(pPixmap, index)) { - ExaPixmapPriv(pPixmap); Bool is_offscreen = exaPixmapIsOffscreen(pPixmap); ExaMigrationRec pixmaps[1]; @@ -197,7 +201,8 @@ exaPrepareAccessReg_mixed(PixmapPtr pPixmap, int index, RegionPtr pReg) pPixmap->devPrivate.ptr = pExaPixmap->sys_ptr; pPixmap->devKind = pExaPixmap->sys_pitch; pExaPixmap->offscreen = FALSE; - } + } else + pPixmap->devKind = pExaPixmap->fb_pitch; } /* Move back results of software rendering on system memory copy of mixed driver |