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