On Wednesday 08 April 2009, Tim Moore wrote:
> LeeE wrote:
> > I've been following this but I don't remember anyone, in either
> > camp, pointing out where it brings a significant performance
> > increase, or where the failure to adopt it will result in a
> > significant performance drop.  I specifically asked about this
> > in one of my earlier posts but if anyone answered I must have
> > missed their replies.
>
> Here's the theory: the values in question, such as material
> colors or vector parameters for a shader, must be set in a vector
> operation in OSG. The values are set at startup and also at
> runtime by material animations. Typically the raw C++ values that
> could be set by a property system "tie" are protected members and
> not accessible.
>
> Currently a big performance hit is the need to run an update
> callback on every state set involved in a material animation (not
> to mention on every animation). It might not seem like this could
> be expensive, but the need to traverse the big scene graph every
> frame is expensive in terms of what is costly on today's
> hardware: pointer chasing, cache misses, etc. If we can move away
> from update callbacks, we will see a gain.

Ok - seems fair enough.

> However, if the individual components of the values in question
> exist independently in the property tree and can be set
> individually, this greatly complicates the bookkeeping needed to
> avoid update callbacks, or forces us to just use update callbacks.

It seems to me then, that if the data is updated in the tree, update 
callbacks will be required.  If just a single property node is 
updated then just a single update callback will be required but if 
three nodes are needed to be read, when perhaps only one has been 
updated, then three update callbacks will be needed.

However, even though using a single node results in just a single 
update callback instead of three, whatever is updating that data 
will still need to work with the individual values and so will not 
only need to parse the node to extract the three values before it 
works with them, but also re-form the compound data item when it 
wants to write it back to the node.  It seems then, that there will 
be an overhead whichever way we look at it; if the overhead is 
removed from the OSG point of view, it's just added to whatever 
other subsystem is updating the data.

How often is this data likely to be updated, and does this data 
really need to be exposed in the property tree anyway?

>
> > As for the idea that the new datatypes should be adopted on the
> > principle that if they do turn out to cause problems they can
> > be fixed later, well, no offence intended Durk, but that just
> > seems extremely foolhardy to me.  Planned development? - we've
> > heard of it.
>
> "Agile development" is the new hotness :)
>
> Tim

To me, "Agile development" just seems to be the latest 
developer-centric buzzword for an approach to software development 
that puts the importance of the introduction of new features over 
maintaining software quality, and to be honest, I think FG has 
enough problems with quality as it is.  To be fair, in many 
respects FG is still seeking solutions to problems i.e. get it 
working before worrying about making it perfect.  The thing is 
though, are the solutions actually being refined and de-bugged 
adequately once they've been got working?  I would have to say not, 
because I've been watching the cvs updates come through, 
specifically looking for fixes to a number of problems that have 
been reported, but which show no signs of being dealt with.

To coin an old Windows joke, rather than FG just working, FG works, 
just, and agile development is going to do nothing to improve this 
state of affairs.

LeeE

------------------------------------------------------------------------------
This SF.net email is sponsored by:
High Quality Requirements in a Collaborative Environment.
Download a free trial of Rational Requirements Composer Now!
http://p.sf.net/sfu/www-ibm-com
_______________________________________________
Flightgear-devel mailing list
Flightgear-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/flightgear-devel

Reply via email to