EXA: Wrap Glyphs even without Composite acceleration.
In order to avoid migration ping-pong when accumulating glyphs in a mask picture. Signed-off-by: Michel Dänzer <daenzer@vmware.com> Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Keith Packard <keithp@keithp.com>
This commit is contained in:
parent
00581d4a42
commit
a1c2bdb6ab
|
@ -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,
|
||||
|
|
Loading…
Reference in New Issue