From 99d88ef69d5f7dbf99ca605eceb92f42230a89f4 Mon Sep 17 00:00:00 2001 From: Maarten Maathuis Date: Sat, 28 Nov 2009 10:34:45 +0100 Subject: exa: a few small pitch related changes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Setting pitch before exaCopyDirty* is not needed. Signed-off-by: Maarten Maathuis Acked-by: Michel Dänzer Signed-off-by: Keith Packard --- exa/exa.c | 11 +++++++++-- exa/exa_migration_mixed.c | 11 +++++------ 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/exa/exa.c b/exa/exa.c index 023288c12..16f39f6f0 100644 --- a/exa/exa.c +++ b/exa/exa.c @@ -323,10 +323,17 @@ ExaDoPrepareAccess(PixmapPtr pPixmap, int index) has_gpu_copy = exaPixmapHasGpuCopy(pPixmap); - if (has_gpu_copy && pExaPixmap->fb_ptr) + if (has_gpu_copy) { + /* This can be NULL, but the driver prepareAccess call should + * take care of that. */ pPixmap->devPrivate.ptr = pExaPixmap->fb_ptr; - else + pPixmap->devKind = pExaPixmap->fb_pitch; + } else { + /* For mixed pixmaps this can be NULL, but that will be fixed + * later in exaPrepareAccessReg_mixed(). */ pPixmap->devPrivate.ptr = pExaPixmap->sys_ptr; + pPixmap->devKind = pExaPixmap->sys_pitch; + } /* Store so we can handle repeated / nested calls. */ pExaScr->access[index].pixmap = pPixmap; diff --git a/exa/exa_migration_mixed.c b/exa/exa_migration_mixed.c index a7fdf631a..ee32b215d 100644 --- a/exa/exa_migration_mixed.c +++ b/exa/exa_migration_mixed.c @@ -101,7 +101,6 @@ exaDoMigration_mixed(ExaMigrationPtr pixmaps, int npixmaps, Bool can_accel) if (pExaPixmap->pDamage && exaPixmapHasGpuCopy(pPixmap)) { ExaScreenPriv(pPixmap->drawable.pScreen); - pPixmap->devKind = pExaPixmap->fb_pitch; exaCopyDirtyToFb(pixmaps + i); if (pExaScr->deferred_mixed_pixmap == pPixmap) @@ -109,6 +108,10 @@ exaDoMigration_mixed(ExaMigrationPtr pixmaps, int npixmaps, Bool can_accel) } pExaPixmap->use_gpu_copy = exaPixmapHasGpuCopy(pPixmap); + if (pExaPixmap->use_gpu_copy) + pPixmap->devKind = pExaPixmap->fb_pitch; + else + pPixmap->devKind = pExaPixmap->sys_pitch; } } @@ -183,17 +186,14 @@ exaPrepareAccessReg_mixed(PixmapPtr pPixmap, int index, RegionPtr pReg) pixmaps[0].as_src = TRUE; pixmaps[0].pReg = NULL; } - pPixmap->devKind = pExaPixmap->fb_pitch; exaCopyDirtyToSys(pixmaps); } if (as_dst) exaPixmapDirty(pPixmap, 0, 0, pPixmap->drawable.width, pPixmap->drawable.height); - } else if (has_gpu_copy) { - pPixmap->devKind = pExaPixmap->fb_pitch; + } else if (has_gpu_copy) exaCopyDirtyToSys(pixmaps); - } pPixmap->devPrivate.ptr = pExaPixmap->sys_ptr; pPixmap->devKind = pExaPixmap->sys_pitch; @@ -222,7 +222,6 @@ void exaFinishAccess_mixed(PixmapPtr pPixmap, int index) pExaScr->deferred_mixed_pixmap != pPixmap) exaMoveInPixmap_mixed(pExaScr->deferred_mixed_pixmap); pExaScr->deferred_mixed_pixmap = pPixmap; - pPixmap->devKind = pExaPixmap->fb_pitch; } else exaMoveInPixmap_mixed(pPixmap); } -- cgit v1.2.3