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