MGA EXA: problems when writing to A8 textures/pictures

Ville Syrjälä syrjala at sci.fi
Thu Sep 14 12:23:15 PDT 2006


On Thu, Sep 14, 2006 at 09:11:43PM +0300, Ville Syrjälä wrote:
> On Thu, Sep 14, 2006 at 07:35:55PM +0200, Tilman Sauerbeck wrote:
> > Ville Syrjälä [2006-09-14 20:06]:
> > > On Thu, Sep 14, 2006 at 06:31:00PM +0200, Tilman Sauerbeck wrote:
> > > > Hi,
> > > > I'm almost finished with the EXA implementation in the MGA driver, but
> > > > I've got one major problem left.
> > > > 
> > > > Rendering to A8 textures is broken in weird ways. It's easily
> > > > reproducable with rendercheck doing Src blends (you'll need to get
> > > > rendercheck from git to see the errors though).
> > > 
> > > I had a quick look at the code.
> > > 
> > > Did you enable bypass332 and nodither bits in MACCESS? I didn't see it.
> > 
> > I think I didn't try the combination of these two flags recently.
> > Using both for A8->A8 writes fixes these rendering issues :)
> > 
> > It also adds more artefacts to A8 Add blends though, but these can
> > probably be fixed by adjusting DUALSTAGE0...
> 
> IIRC TW8A actually behaves like I8, ie. every channel has the same 
> value.
> 
> I also noticed (with glean) that srcblendf and dstblendf (ALPHACTRL) 
> don't seem to work correctly when ADD is selected in the TDUALSTAGE 
> registers.

Oh and a couple of things more :)

I think MGA_G400_TC2_MAGIC is actually a 'split texture cache' bit. I 
can observe a rather big texturing performance drop (10% - 20%) in 
single texturing mode if enable that bit. With dual texturing it doesn't 
seem to make much of a difference.

I noticed the code doesn't enable composite on G550. I know of only one 
visible difference in the drawing engine between G400/G450 and G550. 
G550 can combine srcalphasat + zero blending functions but G400/G450 
can't.

-- 
Ville Syrjälä
syrjala at sci.fi
http://www.sci.fi/~syrjala/



More information about the xorg mailing list