diff options
author | Eric Anholt <anholt@freebsd.org> | 2006-03-30 21:44:36 +0000 |
---|---|---|
committer | Eric Anholt <anholt@freebsd.org> | 2006-03-30 21:44:36 +0000 |
commit | 759033703ce17b20d57756206f48a7ae410a50d1 (patch) | |
tree | 57a81a6717aa85da5ed29cb74f20501fe25e4732 /exa | |
parent | b9203dc068ccd4c0d22d49a94b910783432b96a8 (diff) |
Remove the exaAsyncPixmapGCOps mostly-unaccelerated ops vector, and always
plug in the accelerated one, even if the destination pixmap is
currently offscreen. This was a leftover from when kaa originally got
accelerated offscreen pixmap support, and its only concievable use was
to avoid a little overhead on ops to in-system pixmaps that weren't
going to get migrated. At this point, we probably care more about just
getting everything accelerated that we easily can, which should happen
with the new migration support.
Diffstat (limited to 'exa')
-rw-r--r-- | exa/exa.c | 21 | ||||
-rw-r--r-- | exa/exa_priv.h | 2 | ||||
-rw-r--r-- | exa/exa_unaccel.c | 30 |
3 files changed, 4 insertions, 49 deletions
@@ -339,30 +339,15 @@ exaFinishAccess(DrawablePtr pDrawable, int index) } /** - * exaValidateGC() chooses between the accelerated and unaccelerated GC Ops - * vectors. - * - * The unaccelerated (exaAsyncPixmapGCOps) vector is chosen if the drawable is - * offscreen. This means that operations that affect only that drawable will - * not result in migration of the pixmap. However, exaAsyncPixmapGCOps does use - * the accelerated operations for the Copy* functions, because the other - * drawable involved might be in framebuffer and require synchronization before - * accessing it. This means that for the Copy* functions, even using - * exaAsyncPixmapGCOps may result in migration, and therefore acceleration. - * - * Because of how nonintuitive exaAsyncPixmapGCOps is, and the fact that its - * only use is for dubious performance reasons (and probably just historical - * reasons), it is likely to go away in the future. + * exaValidateGC() sets the ops to EXA's implementations, which may be + * accelerated or may sync the card and */ static void exaValidateGC (GCPtr pGC, Mask changes, DrawablePtr pDrawable) { fbValidateGC (pGC, changes, pDrawable); - if (exaDrawableIsOffscreen (pDrawable)) - pGC->ops = (GCOps *) &exaOps; - else - pGC->ops = (GCOps *) &exaAsyncPixmapGCOps; + pGC->ops = (GCOps *) &exaOps; } static GCFuncs exaGCFuncs = { diff --git a/exa/exa_priv.h b/exa/exa_priv.h index 8a1b27710..0a94cfe73 100644 --- a/exa/exa_priv.h +++ b/exa/exa_priv.h @@ -301,7 +301,7 @@ void exaGetSpans (DrawablePtr pDrawable, int wMax, DDXPointPtr ppt, int *pwidth, int nspans, char *pdstStart); -extern const GCOps exaOps, exaAsyncPixmapGCOps; +extern const GCOps exaOps; #ifdef RENDER void diff --git a/exa/exa_unaccel.c b/exa/exa_unaccel.c index 1ffecb811..a6e0c482a 100644 --- a/exa/exa_unaccel.c +++ b/exa/exa_unaccel.c @@ -362,33 +362,3 @@ exaGetPixmapFirstPixel (PixmapPtr pPixmap) return pixel; } - -/* - * Only need to stall for CopyArea/CopyPlane, but we want to have the chance to - * do migration for CopyArea. - */ -const GCOps exaAsyncPixmapGCOps = { - ExaCheckFillSpans, - ExaCheckSetSpans, - ExaCheckPutImage, - exaCopyArea, - ExaCheckCopyPlane, - ExaCheckPolyPoint, - ExaCheckPolylines, - ExaCheckPolySegment, - ExaCheckPolyRectangle, - ExaCheckPolyArc, - ExaCheckFillPolygon, - ExaCheckPolyFillRect, - ExaCheckPolyFillArc, - miPolyText8, - miPolyText16, - miImageText8, - miImageText16, - ExaCheckImageGlyphBlt, - ExaCheckPolyGlyphBlt, - ExaCheckPushPixels -#ifdef NEED_LINEHELPER - ,NULL -#endif -}; |