diff options
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 -}; |