Hi Brad,

The new scene stats code isn't thread safe unfortunately.  The
original frame and update/cull/draw GPU stats should be fine though.

Robert.

On Wed, Jan 14, 2009 at 5:34 PM, Brad Huber <[email protected]> wrote:
> While using the unmodified stats handler in OSG I have notice a fairly
> consistent debug assertion on my Windows machine.  The assertion has to do
> with stl vectors and occurs when I have the stat handler showing the number
> of vertices rendered.  This is the assertion:
>
>
>
>
>
> Here is the call stack:
>
>>             msvcp80d.dll!std::_Debug_message(const wchar_t *
>> message=0x013c8c48, const wchar_t * file=0x013c75b8, unsigned int line=99)
>> Line 24      C++
>
>
> osg53-osgTextd.dll!std::_Vector_const_iterator<osg::Vec3f,std::allocator<osg::Vec3f>
>>::operator*()  Line 99 + 0x14 bytes          C++
>
>
> osg53-osgTextd.dll!std::vector<osg::Vec3f,std::allocator<osg::Vec3f>
>>::front()  Line 772 + 0x24 bytes   C++
>
>
> osg53-osgTextd.dll!osgText::Text::accept(osg::PrimitiveFunctor & pf={...})
> Line 1438 + 0x14 bytes           C++
>
>
> osg53-osgUtild.dll!osgUtil::RenderBin::getStats(osgUtil::Statistics &
> stats={...})  Line 506 + 0x13 bytes      C++
>
>
> osg53-osgUtild.dll!osgUtil::RenderBin::getStats(osgUtil::Statistics &
> stats={...})  Line 538 + 0x1d bytes     C++
>
>
> osg53-osgUtild.dll!osgUtil::RenderBin::getStats(osgUtil::Statistics &
> stats={...})  Line 538 + 0x1d bytes     C++
>
>
> osg53-osgUtild.dll!osgUtil::RenderStage::getStats(osgUtil::Statistics &
> stats={...})  Line 1296 + 0xc bytes C++
>
>
> osg53-osgUtild.dll!osgUtil::RenderStage::getStats(osgUtil::Statistics &
> stats={...})  Line 1290 + 0x1d bytes              C++
>
>
> osg53-osgUtild.dll!osgUtil::SceneView::getStats(osgUtil::Statistics &
> stats={...})  Line 1694            C++
>
>
> osg53-osgViewerd.dll!osgViewer::CameraSceneStatsTextDrawCallback::drawImplementation(osg::RenderInfo
> & renderInfo={...}, const osg::Drawable * drawable=0x0767fb38)  Line 355 +
> 0x1e bytes    C++
>
>                 osg53-osgd.dll!osg::Drawable::draw(osg::RenderInfo &
> renderInfo={...})  Line 896 + 0x27 bytes C++
>
>
> osg53-osgUtild.dll!osgUtil::RenderLeaf::render(osg::RenderInfo &
> renderInfo={...}, osgUtil::RenderLeaf * previous=0x07696260)  Line 60 + 0x19
> bytes        C++
>
>
> osg53-osgUtild.dll!osgUtil::RenderBin::drawImplementation(osg::RenderInfo &
> renderInfo={...}, osgUtil::RenderLeaf * & previous=0x07696260)  Line 419 +
> 0x19 bytes     C++
>
>                 osg53-osgUtild.dll!osgUtil::RenderBin::draw(osg::RenderInfo
> & renderInfo={...}, osgUtil::RenderLeaf * & previous=0x07696260)  Line 384 +
> 0x17 bytes      C++
>
>
> osg53-osgUtild.dll!osgUtil::RenderBin::drawImplementation(osg::RenderInfo &
> renderInfo={...}, osgUtil::RenderLeaf * & previous=0x07696260)  Line 469 +
> 0x35 bytes     C++
>
>
> osg53-osgUtild.dll!osgUtil::RenderStage::drawImplementation(osg::RenderInfo
> & renderInfo={...}, osgUtil::RenderLeaf * & previous=0x07696260)  Line
> 1253             C++
>
>                 osg53-osgUtild.dll!osgUtil::RenderBin::draw(osg::RenderInfo
> & renderInfo={...}, osgUtil::RenderLeaf * & previous=0x07696260)  Line 384 +
> 0x17 bytes      C++
>
>
> osg53-osgUtild.dll!osgUtil::RenderStage::drawInner(osg::RenderInfo &
> renderInfo={...}, osgUtil::RenderLeaf * & previous=0x07696260, bool &
> doCopyTexture=false)  Line 848    C++
>
>
> osg53-osgUtild.dll!osgUtil::RenderStage::draw(osg::RenderInfo &
> renderInfo={...}, osgUtil::RenderLeaf * & previous=0x07696260)  Line 1108 +
> 0x1b bytes   C++
>
>                 osg53-osgUtild.dll!osgUtil::SceneView::draw()  Line 1504 +
> 0x37 bytes    C++
>
>                 osg53-osgViewerd.dll!osgViewer::Renderer::cull_draw()  Line
> 545 + 0xf bytes    C++
>
>
> osg53-osgViewerd.dll!osgViewer::Renderer::operator()(osg::GraphicsContext *
> context=0x02e16b40)  Line 646 + 0xf bytes             C++
>
>                 osg53-osgd.dll!osg::GraphicsContext::runOperations()  Line
> 688 + 0x33 bytes     C++
>
>
> osg53-osgd.dll!osg::RunOperations::operator()(osg::GraphicsContext *
> context=0x02e16b40)  Line 135 C++
>
>
> osg53-osgd.dll!osg::GraphicsOperation::operator()(osg::Object *
> object=0x02e16b40)  Line 50 + 0x19 bytes        C++
>
>                 osg53-osgd.dll!osg::OperationThread::run()  Line 413 + 0x26
> bytes           C++
>
>                 osg53-osgd.dll!osg::GraphicsThread::run()  Line 40
> C++
>
>
> ot11-OpenThreadsd.dll!OpenThreads::ThreadPrivateActions::StartThread(void *
> data=0x050383c8)  Line 113 + 0xf bytes     C++
>
>                 msvcr80d.dll!_callthreadstartex()  Line 348 + 0xf bytes   C
>
>                 msvcr80d.dll!_threadstartex(void * ptd=0x0503b600)  Line
> 331  C
>
>                 kernel32.dll!7610e3f3()
>
>                 [Frames below may be incorrect and/or missing, no symbols
> loaded for kernel32.dll]
>
>                 ntdll.dll!___rtluserthreadst...@8()  + 0x23 bytes
>
>                 ntdll.dll!__rtluserthreadst...@8()  + 0x1b bytes
>
>
>
> Has anyone seen this?  Does anyone know why this is or what it relates to?
> Solution?
>
>
>
> Thanks
>
> -Brad
>
>
>
> _______________________________________________
> osg-users mailing list
> [email protected]
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
>
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to