summaryrefslogtreecommitdiff
path: root/exa/exa_unaccel.c
diff options
context:
space:
mode:
authorMichel Dänzer <michel@tungstengraphics.com>2007-08-30 13:59:07 +0200
committerMichel Dänzer <michel@tungstengraphics.com>2007-09-07 18:41:33 +0200
commitbe922b30486abce3a8c13996d579b211a7b56f0e (patch)
treec0a83cfcf700f7e487d70dac16c71ac628082c35 /exa/exa_unaccel.c
parentea92ea415665e294a1ba233e9a1d39b6daa0cee1 (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.c10
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