From: Frank Huang <[email protected]> *exaScratch.srcWidth and exaScratch.srcHeight are used to reocrd mask's width and mask's height if mask is not zero. So the one pixel source's width and height are missing in lx_do_composite. So we must fallback. Otherwise, bigger region will be wrongly rendered.
Signed-off-by: Frank Huang <[email protected]> --- src/lx_exa.c | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-) diff --git a/src/lx_exa.c b/src/lx_exa.c index a70766f..5d95e26 100644 --- a/src/lx_exa.c +++ b/src/lx_exa.c @@ -605,6 +605,12 @@ lx_check_composite(int op, PicturePtr pSrc, PicturePtr pMsk, PicturePtr pDst) /* The pSrc should be 1x1 pixel if the pMsk is not zero */ if (pSrc->pDrawable->width != 1 || pSrc->pDrawable->height != 1) return FALSE; + /* FIXME: In lx_prepare_composite, there are no variables to record the + * one pixel source's width and height when the mask is not zero. + * That will lead to bigger region to render instead of one pixel in lx + * _do_composite, so we should fallback currently to avoid this */ + if (!pSrc->repeat) + return FALSE; } /* Get the formats for the source and destination */ -- 1.7.1 _______________________________________________ Xorg-driver-geode mailing list [email protected] http://lists.x.org/mailman/listinfo/xorg-driver-geode
