Commit a1c2bdb6 authored by Michel Dänzer's avatar Michel Dänzer Committed by Keith Packard

EXA: Wrap Glyphs even without Composite acceleration.

In order to avoid migration ping-pong when accumulating glyphs in a mask
picture.
Signed-off-by: default avatarMichel Dänzer <daenzer@vmware.com>
Reviewed-by: Adam Jackson's avatarAdam Jackson <ajax@redhat.com>
Signed-off-by: Keith Packard's avatarKeith Packard <keithp@keithp.com>
parent 00581d4a
......@@ -932,8 +932,11 @@ exaDriverInit (ScreenPtr pScreen,
if (ps) {
wrap(pExaScr, ps, Composite, exaComposite);
if (pScreenInfo->PrepareComposite)
if (pScreenInfo->PrepareComposite) {
wrap(pExaScr, ps, Glyphs, exaGlyphs);
} else {
wrap(pExaScr, ps, Glyphs, ExaCheckGlyphs);
}
wrap(pExaScr, ps, Trapezoids, exaTrapezoids);
wrap(pExaScr, ps, Triangles, exaTriangles);
wrap(pExaScr, ps, AddTraps, ExaCheckAddTraps);
......
......@@ -509,6 +509,17 @@ ExaCheckComposite (CARD8 op,
CARD16 width,
CARD16 height);
void
ExaCheckGlyphs (CARD8 op,
PicturePtr pSrc,
PicturePtr pDst,
PictFormatPtr maskFormat,
INT16 xSrc,
INT16 ySrc,
int nlist,
GlyphListPtr list,
GlyphPtr *glyphs);
/* exa_offscreen.c */
void
ExaOffscreenSwapOut (ScreenPtr pScreen);
......
......@@ -680,6 +680,28 @@ out_no_clip:
EXA_POST_FALLBACK(pScreen);
}
/**
* Avoid migration ping-pong when using a mask.
*/
void
ExaCheckGlyphs (CARD8 op,
PicturePtr pSrc,
PicturePtr pDst,
PictFormatPtr maskFormat,
INT16 xSrc,
INT16 ySrc,
int nlist,
GlyphListPtr list,
GlyphPtr *glyphs)
{
ScreenPtr pScreen = pDst->pDrawable->pScreen;
EXA_PRE_FALLBACK(pScreen);
miGlyphs(op, pSrc, pDst, maskFormat, xSrc, ySrc, nlist, list, glyphs);
EXA_POST_FALLBACK(pScreen);
}
void
ExaCheckAddTraps (PicturePtr pPicture,
INT16 x_off,
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment