On Sat, 03 Jan 2004 22:06:27 +0000
Keith Whitwell <[EMAIL PROTECTED]> wrote:

> Felix Kühling wrote:
> > Hi,
> > 
> > I was wondering why flightgear was so slow so I did some profiling and
> > debugging. And I found out that apperently the entire vtxfmt code path
> > is not working. I believe the root cause is that radeonNotifyBegin is
> > never called with current Mesa. So the driver's own vtxfmt functions are
> > never installed into the exec API.
> > 
> > As evidence, when I run
> > 
> > RADEON_DEBUG=vfmt fgfs
> > 
> > I get no debugging output at all. Also profile output shows some
> > functions that should never be used if vtxfmt was working (e.g.
> > tnl_Vertex3fv).
> > 
> > I couldn't figure out how to fix this. Whatever I tried gave me
> > segfaults :(. It's also hard to figure out where tnl->Driver.NotifyBegin
> > should be called. I couldn't find any central _mesa_Begin function, only
> > tnl_Begin which is a function of a different vtxfmt. Does anyone know
> > how this is supposed to work?
> 
> Felix,
> 
> This is something that changed as a result of the recent rework in the tnl/ 
> module in mesa.  The NotifyBegin thing was always a bit of a hack, and 
> hopefully we can work out a better replacement.  It would be good to try and 
> do this perhaps from the r200ValidateState() function.  Poke around, well done 

Isn't r200ValidateState called too late? _tnl_Begin calls (through
_mesa_update_state) the driver's UpdateState callback which is
r200InvalidateState. _tnl_Begin assumes that the driver has installed
its own vtxfmt when _mesa_update_state returns. So the right place to
call r200ValidateVtxfmt may be r200InvalidateState. This is what I
proposed in my first patch. But I think this would be overkill since
r200InvalidateState is called in many more situations. Also this didn't
seem to work 100% correctly.

> for spotting the bug, but it'll be a couple of days before I'm able to look at it.
> 
> Keith


------------    __\|/__    ___     ___       -------------------------
 Felix       ___\_e -_/___/ __\___/ __\_____   You can do anything,
   Kühling  (_____\Ä/____/ /_____/ /________)  just not everything
 [EMAIL PROTECTED]       \___/   \___/   U        at the same time.


-------------------------------------------------------
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
--
_______________________________________________
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to