gwaldron / osgearth

3D Maps for OpenSceneGraph / C++14
https://www.pelicanmapping.com/home-1/opensource
Other
1.51k stars 779 forks source link

Excessive time spent in update phase of frame rendering when GPU clamping is enabled for annotation geometry #373

Closed otherjason closed 9 years ago

otherjason commented 11 years ago

Full details are at this forum thread:

http://forum.osgearth.org/Excessive-time-in-spent-in-event-phase-of-frame-rendering-with-latest-trunk-td7582352.html

Here is a summary of the problem.

If I change the annotations to use "gpu" clamping mode, then two things happen: the event phase of the frame rendering process balloons in time to ~20-25 msec, and on-demand frame rendering stops working. It seems that OSG believes that there is continually an event that is waiting to be handled, and thus frames get rendered continually.

The duration spent in the event phase in this failure mode seems to be linear in the number of ellipses that are marked as visible. If I hide some of them (using osg::Node::setNodeMask()), then the time spent in the event phase of the frame loop decreases accordingly. If I hide them all, then the event processing goes down to a low number (~0.2 msec), but on-demand rendering is still broken.

gwaldron commented 11 years ago

Jason, do you have a drop-in .cpp example I can use to test this? If so we can try to resolve it before 2.5. Thanks.

otherjason commented 11 years ago

I haven't been able to generate a simple example that demonstrates the problem yet. I will attempt to do so and will add it here if I find one.

gwaldron commented 9 years ago

old.