hi curt,

i have since tried to run flightgear on the weaker machine (atholon xp 2000+, 
geforce 6200 128mb, 768 mb ram). and i get about the same amount of stutters 
with and without the patch when new terrain is paged in. this is highly 
subjective, though.

i don't know how to *prove* that the new code doesn't impact performance. if 
you have a good idea, could you give me a hint?

otherwise we might just put it on cvs and see if people notice performance 
loss?

thanks,

 -till


On Tuesday 22 January 2008, till busch wrote:
> hi curt,
>
> why i think that this shouldn't impact performance:
>
> 1. afaik the database pager now runs in its own thread
> 2. most texture-data will be loaded before the screen gets bright
> 3. i assume adjacent tiles will have similar materials (in real world,
> changes to ground material aren't abrupt) -- so loading the next tile will
> require only few new textures.
> 4. i tested this on my machine, and it was just fine
>
> why i think changing this is a good thing:
>
> 1. at LOAV where i tested this, memory usage after startup dropped by 24
> megs 2. we might want to have more different ground textures and material
> types in future.
> 3. globals->get_matlib()->load_next_deferred() in fgMainLoop iterated
> through 210 materials during each frame, just to see that there is
> *nothing* to do. 4. matlib held a reference to each SGMaterial, which in
> turn held a reference to osg::State (ok so far, and enough for never being
> freed during runtime). the contained osg::State held a reference to the
> SGMaterial defining it. this made it impossible for SGMaterial to ever get
> deleted - even on exit (yes, i know the kernel takes care of freeing memory
> left over - but this isn't good practice, anyway). i saw the leaks in
> valgrind, but it took quite some time for me to find the reason in the
> code.
>
> i'm not yet sure how unloading textures could be done. i know it must be
> done in a way that won't unload and load the same texture too often. the
> osg does caching though, so the impact might be lower than expected.
>
> the hardware i tested this on is rather new (macbook pro, core 2 duo with
> nv 8600M GT 512mb, 2g ram). if you want, i can test this on some older
> hardware (atholon xp 2000+, geforce 6200 128mb, 768 mb ram)
>
>
> regards,
>
>  -till
>
> On Tuesday 22 January 2008, Curtis Olson wrote:
> > On Jan 21, 2008 4:03 PM, till busch wrote:
> > > hi all,
> >
> > Hi Till,
> >
> > I don't know all the nuances of the OSG branch and OSG usage, but
> > originally the common material library textures were all loaded at start
> > time so they'd be available at any time and not hit the fps like they
> > would if they needed to be loaded on demand.  Then we bumped up the
> > reference count by one so they would never be deleted from the system.
> >
> > Regards,
> >
> > Curt.
> >
> > i have continued my random optimizations to flightgear (and simgear, this
> >
> > > time).
> > >
> > > changes in the attached diffs
> > > =================
> > >
> > > in simgear:
> > >  * made textures load on demand when SGMaterial::get_state() is first
> > > called
> > >    (the only drawback so far is get_state() becoming non-const)
> > >  * osg::State held a reference to its "parent" material in userData -
> > > this prevented the reference count for SGMaterial from dropping to 0
> >
> > Regards,
> >
> > Curt.

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Flightgear-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/flightgear-devel

Reply via email to