[Xorg-driver-geode] [PATCH 1/3] Put the one pixel rendering work back to the server to handle if the pMsk is not zero

Huang, FrankR FrankR.Huang at amd.com
Tue Jul 6 03:05:29 PDT 2010


From: Frank Huang <frankr.huang at amd.com>

*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 <frankr.huang at amd.com>
---
 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




More information about the Xorg-driver-geode mailing list