Hi Robert,

Thank You for your reply !

So you mean that I should not update my scenegraph from a different thread than 
viewer. I can only do these updations in my main thread during update and event 
traversals right ?


robertosfield wrote:
> Hi Abhishek,
> 
> So... you'll need to take a step back and work on how to work best
> with the design of the OSG.  The OSG is designed to allow single
> threaded updates of the scene graph during the update and event
> traversals.
> 
> Robert.
> 
> On 23 February 2013 05:42, Abhishek Bansal <> wrote:
> 
> > Hi,
> > 
> > In my scene graph I have  root node and  I am doing deletion/addition of 
> > nodes in scenegraph at run time from a different thread than main thread. 
> > These nodes are simple textured quads and are having dynamic textures. Data 
> > variance of root node as well as these child nodes is set to DYNAMIC.
> > My Osg::Viewer threading model is set to SingleThreaded.
> > 
> > What I found from previous posts is that multi-threading should not be the 
> > issue as long as we are setting data variance to DYNAMIC.
> > 
> > I was trying to reproduce this crash after setting osg::NotifyLevel to 
> > INFO. I will post more details as oon as i get some log.
> > 
> > meanwhile the call stack i am getting is as follows
> > 
> > 
> > > msvcp90d.dll!std::_Debug_message(const wchar_t * message=0x57139ee0, 
> > > const wchar_t * file=0x5712f870, unsigned int line=251)  Line 24 C++
> > > 
> > osg80-osgd.dll!std::_Vector_const_iterator<osg::ref_ptr<osg::Node>,std::allocator<osg::ref_ptr<osg::Node>
> >  > >::_Compat(const 
> > std::_Vector_const_iterator<osg::ref_ptr<osg::Node>,std::allocator<osg::ref_ptr<osg::Node>
> >  > > & _Right={_ptr=0x00000000 })  Line 251 + 0x17 bytes C++
> > osg80-osgd.dll!std::_Vector_const_iterator<osg::ref_ptr<osg::Node>,std::allocator<osg::ref_ptr<osg::Node>
> >  > >::operator==(const 
> > std::_Vector_const_iterator<osg::ref_ptr<osg::Node>,std::allocator<osg::ref_ptr<osg::Node>
> >  > > & _Right={_ptr=0x00000000 })  Line 211 C++
> > osg80-osgd.dll!std::_Vector_const_iterator<osg::ref_ptr<osg::Node>,std::allocator<osg::ref_ptr<osg::Node>
> >  > >::operator!=(const 
> > std::_Vector_const_iterator<osg::ref_ptr<osg::Node>,std::allocator<osg::ref_ptr<osg::Node>
> >  > > & _Right={_ptr=0x00000000 })  Line 216 + 0xc bytes C++
> > osg80-osgd.dll!osg::Group::traverse(osg::NodeVisitor & nv={...})  Line 60 + 
> > 0x33 bytes C++
> > osg80-osgd.dll!osg::NodeVisitor::traverse(osg::Node & node={...})  Line 193 
> > + 0x1c bytes C++
> > osg80-osgUtild.dll!osgUtil::CullVisitor::handle_cull_callbacks_and_traverse(osg::Node
> >  & node={...})  Line 312 + 0xf bytes C++
> > osg80-osgUtild.dll!osgUtil::CullVisitor::apply(osg::Transform & node={...}) 
> >  Line 1151 C++
> > osg80-osgd.dll!osg::NodeVisitor::apply(osg::MatrixTransform & node={...})  
> > Line 136 + 0x13 bytes C++
> > osg80-osgd.dll!osg::MatrixTransform::accept(osg::NodeVisitor & nv={...})  
> > Line 37 + 0x41 bytes C++
> > osg80-osgd.dll!osg::Group::traverse(osg::NodeVisitor & nv={...})  Line 62 + 
> > 0x25 bytes C++
> > osg80-osgd.dll!osg::NodeVisitor::traverse(osg::Node & node={...})  Line 193 
> > + 0x1c bytes C++
> > osg80-osgUtild.dll!osgUtil::CullVisitor::handle_cull_callbacks_and_traverse(osg::Node
> >  & node={...})  Line 312 + 0xf bytes C++
> > osg80-osgUtild.dll!osgUtil::CullVisitor::apply(osg::Transform & node={...}) 
> >  Line 1151 C++
> > osg80-osgd.dll!osg::NodeVisitor::apply(osg::MatrixTransform & node={...})  
> > Line 136 + 0x13 bytes C++
> > osg80-osgd.dll!osg::MatrixTransform::accept(osg::NodeVisitor & nv={...})  
> > Line 37 + 0x41 bytes C++
> > osg80-osgd.dll!osg::Group::traverse(osg::NodeVisitor & nv={...})  Line 62 + 
> > 0x25 bytes C++
> > osg80-osgd.dll!osg::NodeVisitor::traverse(osg::Node & node={...})  Line 193 
> > + 0x1c bytes C++
> > osg80-osgUtild.dll!osgUtil::CullVisitor::handle_cull_callbacks_and_traverse(osg::Node
> >  & node={...})  Line 312 + 0xf bytes C++
> > osg80-osgUtild.dll!osgUtil::CullVisitor::apply(osg::Group & node={...})  
> > Line 1128 C++
> > osg80-osgd.dll!osg::Group::accept(osg::NodeVisitor & nv={...})  Line 38 + 
> > 0x41 bytes C++
> > osg80-osgd.dll!osg::Group::traverse(osg::NodeVisitor & nv={...})  Line 62 + 
> > 0x25 bytes C++
> > osg80-osgd.dll!osg::NodeVisitor::traverse(osg::Node & node={...})  Line 193 
> > + 0x1c bytes C++
> > osg80-osgUtild.dll!osgUtil::SceneView::cullStage(const osg::Matrixd & 
> > projection={...}, const osg::Matrixd & modelview={...}, 
> > osgUtil::CullVisitor * cullVisitor=0x04062250, osgUtil::StateGraph * 
> > rendergraph=0x04061990, osgUtil::RenderStage * renderStage=0x04061a28, 
> > osg::Viewport * viewport=0x04073f08)  Line 980 + 0x1a bytes C++
> > osg80-osgUtild.dll!osgUtil::SceneView::cull()  Line 845 + 0x57 bytes C++
> > osg80-osgViewerd.dll!osgViewer::Renderer::cull_draw()  Line 809 + 0xf bytes 
> > C++
> > osg80-osgViewerd.dll!osgViewer::Renderer::operator()(osg::GraphicsContext * 
> > context=0x04b018e0)  Line 888 + 0xf bytes C++
> > osg80-osgd.dll!osg::GraphicsContext::runOperations()  Line 756 + 0x33 bytes 
> > C++
> > osg80-osgViewerd.dll!osgViewer::ViewerBase::renderingTraversals()  Line 807 
> > + 0x15 bytes C++
> > osg80-osgViewerd.dll!osgViewer::ViewerBase::frame(double 
> > simulationTime=1.7976931348623157e+308)  Line 645 + 0xf bytes C++
> > VDViewerd.dll!VDViewer::VDViewerWindow::paintEvent(QPaintEvent * 
> > event=0x00bdcdac)  Line 204 + 0x35 bytes C++
> > 
> > here VDViewer is viewer class.
> > 
> > ...
> > 
> > Thank you!
> > 
> > Cheers,
> > Abhishek
> > 
> > ------------------
> > Read this topic online here:
> > http://forum.openscenegraph.org/viewtopic.php?p=52830#52830
> > 
> > 
> > 
> > 
> > 
> > _______________________________________________
> > osg-users mailing list
> > 
> > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
> > 
> _______________________________________________
> osg-users mailing list
> 
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
> 
>  ------------------
> Post generated by Mail2Forum


------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=52833#52833





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

Reply via email to