[Openchrome-users] XAA SolidFillRect problem with negative x value

Mark Huijgen mark.sf.net
Wed Feb 14 01:35:24 PST 2007


Mark Huijgen wrote:
> I can try on my intel card if the equivalent function is called with 
> negative X's too, the glitch does not occur with the i810 driver. So I'm 
> gonna check if that driver/card can handle negative x's by it self. Ill 
> report back if I've found something interesting.
> 
I found the following using the i810 driver (chips uses i830_accel.c):
The function is never called with negative x's. It seems the values are 
already corrected before the function is called:
(WW) I810(0): I830SubsequentFillRectSolid 0,24 17x1
(WW) I810(0): I830SubsequentFillRectSolid 0,25 17x1
(WW) I810(0): I830SubsequentFillRectSolid 0,26 17x1

This is from the openchrome driver, drawing the same place:
(EE) VIA(0): VIASubsequentSolidFillRect x-2 y24 w19 h1
(EE) VIA(0): VIASubsequentSolidFillRect correcting x 0 w 17
(EE) VIA(0): VIASubsequentSolidFillRect x-2 y25 w19 h1
(EE) VIA(0): VIASubsequentSolidFillRect correcting x 0 w 17
(EE) VIA(0): VIASubsequentSolidFillRect x-2 y26 w19 h1
(EE) VIA(0): VIASubsequentSolidFillRect correcting x 0 w 17

So somehow the the Xaa function in the i810 driver is called with 
corrected values for x. The software used on both systems is completely 
the same, both are from the same image. Only difference is the driver 
used in Xorg.

Then I looked at the code in viaInitXAA(ScreenPtr pScreen) and disabled 
this part (commented out)
xaaptr->SetClippingRectangle = viaSetClippingRectangle;
xaaptr->DisableClipping = viaDisableClipping;
xaaptr->ClippingFlags

and recompiled the driver. Now the glitch is also gone :)
The VIASubsequentSolidFillRect function is not called with negative x's 
anymore, so it seems there is a problem in the Clipping functions? 
(functions the intel driver dont have by the way).
(EE) VIA(0): VIASubsequentSolidFillRect x0 y24 w17 h1
(EE) VIA(0): VIASubsequentSolidFillRect x0 y25 w17 h1
(EE) VIA(0): VIASubsequentSolidFillRect x0 y26 w17 h1

Anyway I dont know what the via chip does and what it does not support 
in hardware, but it seems negative x's for solid fill isnt one of the 
things it supports.

Mark Huijgen




More information about the Openchrome-users mailing list