"Curtis L. Olson" <[EMAIL PROTECTED]> said:

> Geoff Reidy writes:
> > The major problem I have with fgfs is that I seem to hit a race
> > condition where all graphics and sound stop for extended periods of time
> > (up to about 30 secs), long enough for autopilot (or me!) to lose
> > control and the plane will always crash.
> > During this time there is no disk access happening or lack of memory,
> > fgfs still uses 99% CPU.
> > Doesn't make any difference whether I use the Mesa files or not. Tried
> > compiling with/without random-objects and threading.
> > Tried running with textures disabled, 16 or 24 bit.
> > 
> > It happens after covering a certain amount of terrain. It doesn't matter
> > if I'm flying the A4 or a Cessna I will go down about 1000km north of
> > Sydney, give or take a couple of hundred.
> > Over other parts of the world I usually get further but it always gets
> > me in the end. The program itself never crashes.
> > 
> > It's been happening since before version 8.0 came out but noone else
> > seems to have the problem? I had put it down to some gcc3.2 weirdness
> > but others are using it now.
> > 
> > I can sometimes precipitate it by switching to tower view, will get a
> > white screen, elevation goes to 40000 ft or so, sound stops, oh-oh.
> 
> This most likely relates to freeing tile memory (i.e. moving old tiles
> out of the cache and reclaiming their memory.)  This was never a fast
> process and could result in frame rate glitches.  When David added
> random ground cover objects, the problem got *really* bad because the
> scene graph structure of a tile got a lot larger.  David and I worked
> really hard to optimize that, and I further worked on a partial tile
> free-er so we could spread the load out over multiple frames.  This
> should have been all fixed by version 0.8.0 so that you should see
> very little frame rate impact when you cross a tile boundary.  What
> version of flightgear are you running?
> 

This discription sounds like a problem that I think I've seen,  but haven't
tracked down.  It seemed as though the tile cache is getting clogged up with
unusable entries (this was 2 or 3 months ago btw).  IIRC I traced this through
to plib to make sure everything was being deleted, but still couldn't verify
this was happening.

Of course with time, all the tiles for the tower view will be released, and 
they will require reloading, if tower view is not used.  Normally the tiles
under the FDM location will be kept "current" by the code that queries for
ground elevation (see end of Main Loop) when the FDM location is not the
current view (as in tower view).  I don't have time to look right now, but I
assume that the code still updates the timestamp for tiles whenever the
tilemgr.update() is run as it was a couple months ago.

In any case if the capacity of the tile cache is dimminished somehow, maybe
with the timestamps getting screwed up, or all the tiles including the one
under the FDM location end up with the same timestamp (or the timestamp isn't
kept current--so it gets old--by the tilemgr update as mentioned in the
previous paragraph), then the tile under the FDM location may get removed when
switching to tower view by the reloading that is going on.  This would explain
the whacky elevation figure.

Best,

Jim

_______________________________________________
Flightgear-devel mailing list
[EMAIL PROTECTED]
http://mail.flightgear.org/mailman/listinfo/flightgear-devel

Reply via email to