On Wed, Dec 04, 2002 at 01:23:26 -0800, Ian Romanick wrote:
> On Wed, Dec 04, 2002 at 02:35:39PM -0500, Leif Delgass wrote:
> > On Tue, 3 Dec 2002, Ian Romanick wrote:
> > 
> > > Unless there are any objections, I'm going to commit a merge from the trunk
> > > to the texmem-0-0-1 branch tomorrow (Wednesday).  I've tested the merge on
> > > the R100, and I'll test it on an M6 and a G400 before I commit it.
> > 
> > That's fine by me.  FYI, I've started trying to debug r128 in the texmem
> > branch.  I've found some problems, but am still experiencing texture
> > corruption.  The first problem I found is in the switch/case at
> > r128_texmem.c:281 (r128UploadTexImages()).  Since the uploading of
> > textures was moved from r128EmitHwStateLocked() to functions called from
> > r128UpdateTextureState(), a texture isn't marked as bound until _after_
> > it's uploaded, so the default case was being hit (with t->base.bound ==
> > 0).
> 
> I've actually moved it again, too.  I moved it to enable_tex_2d to match the
> R100 / R200 drivers.
> 
> > Another problem I found is that r128DDBindTexture no longer sets the 
> > R128_NEW_TEXTURE flag, and this prevents the texture state from being 
> > updated when an app switches textures.  For example: running tunnel, I get 
> > the floor texture on the walls, but if I set R128_NEW_TEXTURE in 
> > r128DDBindTexture, the wall textures and floor textures appear in the 
> > right places.  How do the radeon/r200 drivers work without setting the 
> > NEW_TEXTURE flag there?  Also, shouldn't it unbind the texture currently 
> > bound to that texture unit?
> 
> Ah-ha!  The R128 driver tracks changes to texture state on its own, but the
> R100 / R200 drivers just let Mesa do it.  When the state changes, Mesa calls
> the drivers UpdateState function (r128DDInvalidateState &
> radeonInvalidateState) and passes it new_state.  If texture state has been
> called, _NEW_TEXTURE will be set in new_state.  The changes that I'm going to
> commit today are:
> 
> - Remove all usage of R128_NEW_TEXTURE.
> - Modify r128UpdateHwState to test _NEW_TEXTURE in NewGLState
> 
> I suspect that will fix the texture problems.  Somebody (that actually has
> Rage128 hardware!) should go through and eliminate the new_state field from
> r128_context altogether.  I will make similar changes to the MGA driver.  It
> would be nice to have fundamental things, like tracking state changes, as
> similar as possible across the various drivers.  It makes it easier to move
> from driver-to-driver to fix bugs and make enhancements.

I'm using an R128 for some work I'm doing at the moment. I'll take a look
when the trunk merge is done.

Alan.


-------------------------------------------------------
This SF.net email is sponsored by: Microsoft Visual Studio.NET 
comprehensive development tool, built to increase your 
productivity. Try a free online hosted session at:
http://ads.sourceforge.net/cgi-bin/redirect.pl?micr0003en
_______________________________________________
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to