[osg-users] Using GLObjectsVisitor with DrawThreadPerContext

2009-08-05 Thread Tugkan Calapoglu

Hi,

In our application we create new objects in runtime. Most of the time 
newly created objects are not in frustum in the beginning hence they do 
not result in a stutter But, when the object comes into the frustum 
texture download and display list creation results in stutters.


It is acceptable for us to have stutter when the object is created so 
whenever we create an object we use GLObjectVisitor to compile GL 
objects. We do this in a FinalDrawCallback. The problem we are facing is 
that this results in crashes. The crash is very rare. Sometimes more 
than an hour passes with hundreds of objects created and destroyed. 
There are some computers; however, where the problem is far more 
frequent. The difference of these computers is that they have Quaddro 
cards and more powerful CPU's.


Our application uses DrawThreadPerContext and all test computers have at 
 least two CPU's. When we run in SingleThreaded mode we do not see any 
problems. So the question is whether it is safe to use GLObjectsVisitor 
in a FinalDrawCallback? If not, how should it be used?



General info:
OS: Suse 10.3
CPU: Several different CPU's (at least two CPU)
Graphics : Several different NVidia cards
OSG: 2.9.5 (SVN version 10258)


Tugkan
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Using GLObjectsVisitor with DrawThreadPerContext

2009-08-05 Thread Robert Osfield
Hi Tugkan,

I don't know offhand why it's crashing, but in svn/trunk there is now
a helper class for incrementally compiling OpenGL objects prior to
merging with the scene graph to help prevent frame drops.  The class
is osgUtil::IncrementalCompileOperation, and this can be assigned to
the Viewer/CompositeViewer using:

/** Set the incremental compile operation.
  * Used to manage the OpenGL object compilation and merging
of subgraphs in a way that avoids overloading
  * the rendering of frame with too many new objects in one frame. */
void 
setIncrementalCompileOperation(osgUtil::IncrementalCompileOperation*
ico);


Robert.

On Wed, Aug 5, 2009 at 10:48 AM, Tugkan Calapoglutug...@vires.com wrote:
 Hi,

 In our application we create new objects in runtime. Most of the time newly
 created objects are not in frustum in the beginning hence they do not result
 in a stutter But, when the object comes into the frustum texture download
 and display list creation results in stutters.

 It is acceptable for us to have stutter when the object is created so
 whenever we create an object we use GLObjectVisitor to compile GL objects.
 We do this in a FinalDrawCallback. The problem we are facing is that this
 results in crashes. The crash is very rare. Sometimes more than an hour
 passes with hundreds of objects created and destroyed. There are some
 computers; however, where the problem is far more frequent. The difference
 of these computers is that they have Quaddro cards and more powerful CPU's.

 Our application uses DrawThreadPerContext and all test computers have at
  least two CPU's. When we run in SingleThreaded mode we do not see any
 problems. So the question is whether it is safe to use GLObjectsVisitor in a
 FinalDrawCallback? If not, how should it be used?


 General info:
 OS: Suse 10.3
 CPU: Several different CPU's (at least two CPU)
 Graphics : Several different NVidia cards
 OSG: 2.9.5 (SVN version 10258)


 Tugkan
 ___
 osg-users mailing list
 osg-users@lists.openscenegraph.org
 http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org