[Xorg-driver-geode] [PATCH 1/4] 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
Fri Jul 9 00:26:43 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