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
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org