diff options
author | Michel Dänzer <michel@tungstengraphics.com> | 2007-08-30 13:59:07 +0200 |
---|---|---|
committer | Michel Dänzer <michel@tungstengraphics.com> | 2007-09-07 18:41:33 +0200 |
commit | be922b30486abce3a8c13996d579b211a7b56f0e (patch) | |
tree | c0a83cfcf700f7e487d70dac16c71ac628082c35 /exa/exa_unaccel.c | |
parent | ea92ea415665e294a1ba233e9a1d39b6daa0cee1 (diff) |
EXA: exa(Shm)PutImage improvements.
Improve exaShmPutImage performance and reuse its core in exaPutImage as it
seems faster than the previous code when the driver doesn't provide an
UploadToScreen hook.
Make sure all damage records are notified of the damage incurred by actual
ShmPutImage calls.
Remove superfluous manual damage tracking for actual PutImage calls.
Diffstat (limited to 'exa/exa_unaccel.c')
-rw-r--r-- | exa/exa_unaccel.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/exa/exa_unaccel.c b/exa/exa_unaccel.c index 8fb7b526e..f4d453eaa 100644 --- a/exa/exa_unaccel.c +++ b/exa/exa_unaccel.c @@ -97,14 +97,14 @@ ExaCheckPutImage (DrawablePtr pDrawable, GCPtr pGC, int depth, int x, int y, int w, int h, int leftPad, int format, char *bits) { - PixmapPtr pPixmap = exaGetDrawablePixmap(pDrawable); - int xoff, yoff; - EXA_FALLBACK(("to %p (%c)\n", pDrawable, exaDrawableLocation(pDrawable))); - exaPrepareAccess (pDrawable, EXA_PREPARE_DEST); + if (exaGCReadsDestination(pDrawable, pGC->planemask, pGC->fillStyle, + pGC->alu)) + exaPrepareAccess (pDrawable, EXA_PREPARE_DEST); + else + ExaDoPrepareAccess (pDrawable, EXA_PREPARE_DEST); fbPutImage (pDrawable, pGC, depth, x, y, w, h, leftPad, format, bits); exaFinishAccess (pDrawable, EXA_PREPARE_DEST); - exaGetDrawableDeltas(pDrawable, pPixmap, &xoff, &yoff); } RegionPtr |