Rendering in geode
Huang, FrankR
FrankR.Huang at amd.com
Sun Jun 13 01:47:56 PDT 2010
Morton,
Seems that I have found the root cause of that.
According to my debug, there are two places in error of geode
driver.
I have one question to ask you for one bug:
You know when the driver does the composite, it is called in
exaTryDriverComposite() function. You guess what? It give a driver a
composite call that the source's width is less than srcX. That is
impossible from my point.
Make is more simple:
A XRenderComposite() call below:
XRenderComposite(dpy, PictOpOver, picture_10x10[0].pict,
0, win->pict, 11, 0, 0, 0, 50, 50, 40, 40)
The source is a 10x10 pixmap, but the srcX is 11. The rendering
result is none! I think the driver should refuse that parameter to do
the rendering. It will bring chaos operation. That is my thought.
Thanks,
Frank
-----Original Message-----
From: Huang, FrankR
Sent: 2010?6?12? 17:51
To: 'jonathan.morton at movial.com'
Cc: 'xorg-devel at lists.x.org'; 'xorg-driver-geode at lists.x.org'
Subject: Rendering in geode
Resend it. Forget the subject.
-----Original Message-----
From: Huang, FrankR
Sent: 2010?6?12? 17:43
To: 'jonathan.morton at movial.com'
Cc: 'xorg-devel at lists.x.org'; xorg-driver-geode at lists.x.org
Subject:
Morton,
After I fix the PictOpOver operation, the geode still has
another rendering issue. That is also serious. I attached a picture,
please take a look. I have not find the root cause.
I use this simple gtk program to reproduce. When I move the
mouse on the button, some green add-on region is appearing. You can see
the green part on scissor button.
I trace the code and found that when I move the mouse on the
button, the driver will do two rendering operation(lx_do_composite). The
format of these two operations are:
1)pSrc : PICT_a8r8g8b8 pMsk: 0 pDst: PICT_r5g6b5
2)pSrc : PICT_a8r8g8b8 pMsk: PICT_a8 pDst:
PICT_r5g6b5
When I note the 1) condition handle in geode driver code,
everything is ok. No add-on region is appeared again. But I am sure our
driver can handle the 1) condition correctly, I use rendercheck to test
that case.
At the same time, when I move the mouse on the button, other
rendering is done by Xserver because our driver can not handle all the
rendering condition. That is due to our limited rendering function. I am
not sure if it is caused by this mixed rendering result( our driver and
pixman rendering together).
Thanks,
Frank
More information about the xorg-devel
mailing list