Re: [Flightgear-devel] ***long*** pauses after flying a while

2002-10-24 Thread Erik Hofman
John Check wrote: On Wednesday 23 October 2002 11:48 pm, Curtis L. Olson wrote: I just fixed a bug in the tile freeing code which accounted for the very long pauses people were seeing after flying for a while. Cool, but it breaks for gcc3.2 line 704 of tileentry.cxx needs std::cout

Re: [Flightgear-devel] ***long*** pauses after flying a while

2002-10-24 Thread Curtis L. Olson
John Check writes: On Wednesday 23 October 2002 11:48 pm, Curtis L. Olson wrote: I just fixed a bug in the tile freeing code which accounted for the very long pauses people were seeing after flying for a while. Cool, but it breaks for gcc3.2 line 704 of tileentry.cxx needs std::cout

Re: [Flightgear-devel] ***long*** pauses after flying a while

2002-10-24 Thread Curtis L. Olson
David Megginson writes: Norman Vine writes: Also even though we probably would be drawing more objects I wouldn't expect much of a hit in that there would be lot fewer culling operations When I was initially experimenting, putting all objects under a fan-level branch gave quite a

Re: [Flightgear-devel] ***long*** pauses after flying a while

2002-10-24 Thread David Megginson
Norman Vine writes: Also even though we probably would be drawing more objects I wouldn't expect much of a hit in that there would be lot fewer culling operations When I was initially experimenting, putting all objects under a fan-level branch gave quite a performance hit, as well as

Re: [Flightgear-devel] ***long*** pauses after flying a while

2002-10-24 Thread Norman Vine
David Megginson Norman Vine writes: IMHO we should take advantage of our existing bucketing by fans and put the LOD nodes at the 'leaf's branch' level instead of the individual triangle level. Just doing this would save us LOTS of nodes and should speed things up a bit and not

Re: [Flightgear-devel] ***long*** pauses after flying a while

2002-10-24 Thread Curtis L. Olson
David Megginson writes: No, unfortunately, it does not handle a plain old recursive destruction without having to do a linear search to find each kid first. (Granted it's a short linear search since it should find it right at the beginning of the list, but still, a lot more overhead

Re: [Flightgear-devel] ***long*** pauses after flying a while

2002-10-24 Thread David Megginson
Norman Vine writes: IMHO we should take advantage of our existing bucketing by fans and put the LOD nodes at the 'leaf's branch' level instead of the individual triangle level. Just doing this would save us LOTS of nodes and should speed things up a bit and not require YAN set of

Re: [Flightgear-devel] ***long*** pauses after flying a while

2002-10-24 Thread David Megginson
Curtis L. Olson writes: Andy Ross writes: Ah, never mind then. :) Yeah, O(N^2) deletion behavior with thousands of nodes is bad, and no allocator hack is going to fix that for us. I'm with David now; plib might have trouble doing constant-time deletion of children, but it

Re: [Flightgear-devel] ***long*** pauses after flying a while

2002-10-24 Thread Norman Vine
Curtis L. Olson writes: Norman Vine writes: How big is the hit if you simply delete a higher-level node and let plib delete all of the branches and leaves underneath automatically? My guess is that we would gain more by having the random objects connected to the leaf rather then to

Re: [Flightgear-devel] ***long*** pauses after flying a while

2002-10-24 Thread Curtis L. Olson
Norman, This seems like a sensible optimization. If you remove the last entry you don't need to do a memmove ... just decrement the total count. We don't worry about freeing the memory until the entire list goes away, and we never shrink list memory allocation. But ok, while we are optimizing

RE: [Flightgear-devel] ***long*** pauses after flying a while

2002-10-24 Thread Michael Basler
From: [EMAIL PROTECTED] [mailto:flightgear-devel-admin;flightgear.org]On Behalf Of Norman Vine So if you aren't comfortable hacking, I suggest waiting a bit yet Thanks, Norman, so I'll prefer to wait. As a close watcher of the scene you might give a shout to the list when you think it's time

Re: [Flightgear-devel] ***long*** pauses after flying a while

2002-10-24 Thread Norman Vine
Curtis L. Olson writes: David Megginson writes: What I meant is that you use your scheduler a little higher up the scene tree. The dynamic objects, for example, are under separate branches for each scenery triangle; just deleting the top-level triangle branch should be good enough,

Re: [Flightgear-devel] ***long*** pauses after flying a while

2002-10-24 Thread Curtis L. Olson
Andy Ross writes: Ah, never mind then. :) Yeah, O(N^2) deletion behavior with thousands of nodes is bad, and no allocator hack is going to fix that for us. I'm with David now; plib might have trouble doing constant-time deletion of children, but it certainly should handle a plain old

Re: [Flightgear-devel] ***long*** pauses after flying a while

2002-10-24 Thread John Check
On Thursday 24 October 2002 8:02 am, Curtis L. Olson wrote: John Check writes: On Wednesday 23 October 2002 11:48 pm, Curtis L. Olson wrote: I just fixed a bug in the tile freeing code which accounted for the very long pauses people were seeing after flying for a while. Cool, but it

Re: [Flightgear-devel] ***long*** pauses after flying a while

2002-10-24 Thread David Megginson
Andy Ross writes: David Megginson wrote: How big is the hit if you simply delete a higher-level node and let plib delete all of the branches and leaves underneath automatically? Probably equivalent. The overhead is usually in all the per-chunk bookeeping, not the function calls.

Re: [Flightgear-devel] ***long*** pauses after flying a while

2002-10-24 Thread Norman Vine
Andy Ross writes: David Megginson wrote: How big is the hit if you simply delete a higher-level node and let plib delete all of the branches and leaves underneath automatically? Probably equivalent. The overhead is usually in all the per-chunk bookeeping, not the function calls. We

Re: [Flightgear-devel] ***long*** pauses after flying a while

2002-10-24 Thread Andy Ross
David Megginson wrote: How big is the hit if you simply delete a higher-level node and let plib delete all of the branches and leaves underneath automatically? Probably equivalent. The overhead is usually in all the per-chunk bookeeping, not the function calls. We could try playing games with

re: [Flightgear-devel] ***long*** pauses after flying a while

2002-10-24 Thread David Megginson
Curtis L. Olson writes: However there is still an issue to worry about. The random ground cover code can create thousands of objects which means a branch node in our scene graph with thousands of kids. plib is not exactly efficient at deleting kids and even if you know the index, it

re: [Flightgear-devel] ***long*** pauses after flying a while

2002-10-24 Thread Curtis L. Olson
David Megginson writes: Curtis L. Olson writes: However there is still an issue to worry about. The random ground cover code can create thousands of objects which means a branch node in our scene graph with thousands of kids. plib is not exactly efficient at deleting kids and even

re: [Flightgear-devel] ***long*** pauses after flying a while

2002-10-24 Thread Curtis L. Olson
David Megginson writes: What I meant is that you use your scheduler a little higher up the scene tree. The dynamic objects, for example, are under separate branches for each scenery triangle; just deleting the top-level triangle branch should be good enough, rather than recursing right to

Re: [Flightgear-devel] ***long*** pauses after flying a while

2002-10-24 Thread Andy Ross
David Megginson wrote: Curt's problem, though, is that his deletion code has to do a linear search in the parent for each child node to remove it; I assume that plib's internal code just iterates. Ah, never mind then. :) Yeah, O(N^2) deletion behavior with thousands of nodes is bad, and no

Re: [Flightgear-devel] ***long*** pauses after flying a while

2002-10-24 Thread Norman Vine
David Megginson writes: Curtis L. Olson writes: However there is still an issue to worry about. The random ground cover code can create thousands of objects which means a branch node in our scene graph with thousands of kids. plib is not exactly efficient at deleting kids and

Re: [Flightgear-devel] ***long*** pauses after flying a while

2002-10-24 Thread Jim Wilson
Curtis L. Olson [EMAIL PROTECTED] said: David Megginson writes: Maybe a middle ground approach would be to add a branch for each fan/strip and then underneath that, add a branch for the objects from each leaf. This is a **long** thread :-) (and I'm behind reading the list). I'm glad you

[Flightgear-devel] ***long*** pauses after flying a while

2002-10-23 Thread Curtis L. Olson
I just fixed a bug in the tile freeing code which accounted for the very long pauses people were seeing after flying for a while. After a while the tile cache fills up and the oldest entries need to be purged. The problem is that to free an entire tile takes mroe that a frame's worth of time so

Re: [Flightgear-devel] ***long*** pauses after flying a while

2002-10-23 Thread John Check
On Wednesday 23 October 2002 11:48 pm, Curtis L. Olson wrote: I just fixed a bug in the tile freeing code which accounted for the very long pauses people were seeing after flying for a while. Cool, but it breaks for gcc3.2 line 704 of tileentry.cxx needs std::cout