diff options
author | Maarten Maathuis <madman2003@gmail.com> | 2009-12-02 20:24:02 +0100 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2009-12-03 08:41:48 -0800 |
commit | 8ea415d417b3ef6b8a288d10da76ff4bc334e08b (patch) | |
tree | 5802b4fcafaa91a79531af1228cf6c038a706259 | |
parent | 98c8b752254a27ab1aaf881b36bfda0f74929d0a (diff) |
Revert "exa: a few small pitch related changes"
This reverts commit 99d88ef69d5f7dbf99ca605eceb92f42230a89f4.
- Some pixmaps under classic have a sys_pitch which is 0, no idea why. This is
causing rendering corruption.
Signed-off-by: Maarten Maathuis <madman2003@gmail.com>
Acked-by: Michel Dänzer <michel@daenzer.net>
Signed-off-by: Keith Packard <keithp@keithp.com>
-rw-r--r-- | exa/exa.c | 11 | ||||
-rw-r--r-- | exa/exa_migration_mixed.c | 11 |
2 files changed, 8 insertions, 14 deletions
@@ -323,17 +323,10 @@ ExaDoPrepareAccess(PixmapPtr pPixmap, int index) has_gpu_copy = exaPixmapHasGpuCopy(pPixmap); - if (has_gpu_copy) { - /* This can be NULL, but the driver prepareAccess call should - * take care of that. */ + if (has_gpu_copy && pExaPixmap->fb_ptr) pPixmap->devPrivate.ptr = pExaPixmap->fb_ptr; - pPixmap->devKind = pExaPixmap->fb_pitch; - } else { - /* For mixed pixmaps this can be NULL, but that will be fixed - * later in exaPrepareAccessReg_mixed(). */ + else 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 ee32b215d..a7fdf631a 100644 --- a/exa/exa_migration_mixed.c +++ b/exa/exa_migration_mixed.c @@ -101,6 +101,7 @@ 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) @@ -108,10 +109,6 @@ 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; } } @@ -186,14 +183,17 @@ 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) + } else if (has_gpu_copy) { + pPixmap->devKind = pExaPixmap->fb_pitch; exaCopyDirtyToSys(pixmaps); + } pPixmap->devPrivate.ptr = pExaPixmap->sys_ptr; pPixmap->devKind = pExaPixmap->sys_pitch; @@ -222,6 +222,7 @@ 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); } |