Hi Morne,

I wonder if the osgShadow technique was trying to use a Pbuffer to
implement the render to texture, this isn't supportable when using
GraphicsWindowEmbedded.  However, a crash shouldn't ensue, rather
there should be a fallback to use frame buffer for RTT.

BTW, does your OpenGL diriver support frame buffer objects?

In terms of the moving to QGLWidget and osgVIewer window inheiritance
fixing the the issue, this would indicate that pbuffer might be in
play as this is one of capabilities that it adds.

Robert.

On Mon, Feb 2, 2009 at 11:42 AM, Morné Pistorius
<mpistorius....@googlemail.com> wrote:
> Hi Robert,
>
> I tried but failed to reproduce the problem in the osg examples.  It
> must be some subtle difference in the way I set up my scene in my app.
>  I changed my viewer to the QOSGWidget implementation instead of using
> the GraphicsWindowEmbedded in a QGLWidget and that fixed the crash.
> Sorry I couldn't reproduce it, but at least there is a work around if
> others run into this issue.
>
> Cheers,
> Morne
>
> On Fri, Jan 30, 2009 at 4:59 PM, Robert Osfield
> <robert.osfi...@gmail.com> wrote:
>> Hi Morne,
>>
>> Can you get osgshadow to crash?  If others can redproduce this problem
>> there the chances of fixing it promptly go up.
>>
>> Robert.
>>
>> On Fri, Jan 30, 2009 at 4:33 PM, Morné Pistorius
>> <mpistorius....@googlemail.com> wrote:
>>> Hi guys,
>>>
>>> I am testing the current trunk version of OSG in my application (was
>>> previously using v2.6.1) and I get a crash on shutdown when trying to
>>> destroy a osgShadow::ShadowedScene.  This only occurs when I have a
>>> shadowTechnique set and is caused by destroying the shader program.  I
>>> am using OSG in Qt derived from a QGLWidget  (yes I know I should
>>> rather use the QWidget implementation, I am busy porting to that, but
>>> this used to work fine in 2.6.1 so I thought I would flag it :)
>>>
>>> I will see if this still happens when not using the GL Adapterwidget,
>>> and report back.
>>>
>>> Below is a stack trace of the relevant bits:
>>>
>>>>       osg54-osg.dll!osg::Referenced::~Referenced()  Line 262 + 0x5 bytes   
>>>>    C++
>>>        osg54-osg.dll!osg::Program::PerContextProgram::~PerContextProgram()
>>> Line 425 + 0x14b bytes  C++
>>>        osg54-osg.dll!osg::Program::PerContextProgram::`vector deleting
>>> destructor'()  + 0x3d bytes     C++
>>>        
>>> osg54-osg.dll!std::_Destroy_range<osg::ref_ptr<osg::Program::PerContextProgram>,std::allocator<osg::ref_ptr<osg::Program::PerContextProgram>
>>>> >(osg::ref_ptr<osg::Program::PerContextProgram> * _First=0x02eb7b48,
>>> osg::ref_ptr<osg::Program::PerContextProgram> * _Last=0x02eb7b50,
>>> std::allocator<osg::ref_ptr<osg::Program::PerContextProgram> > &
>>> _Al={...}, std::_Nonscalar_ptr_iterator_tag __formal={...})  Line 235
>>> + 0x30 bytes    C++
>>>        osg54-osg.dll!osg::Program::~Program()  Line 122 + 0xa8 bytes   C++
>>>        osg54-osgShadow.dll!osg::Program::`scalar deleting destructor'()  +
>>> 0x9 bytes       C++
>>>        osg54-osg.dll!std::_Tree<std::_Tmap_traits<std::pair<enum
>>> osg::StateAttribute::Type,unsigned
>>> int>,std::pair<osg::ref_ptr<osg::StateAttribute>,unsigned
>>> int>,std::less<std::pair<enum osg::StateAttribute::Type,unsigned int>
>>>>,std::allocator<std::pair<std::pair<enum
>>> osg::StateAttribute::Type,unsigned int> const
>>> ,std::pair<osg::ref_ptr<osg::StateAttribute>,unsigned int> > >,0>
>>>>::_Erase(std::_Tree_nod<std::_Tmap_traits<std::pair<enum
>>> osg::StateAttribute::Type,unsigned
>>> int>,std::pair<osg::ref_ptr<osg::StateAttribute>,unsigned
>>> int>,std::less<std::pair<enum osg::StateAttribute::Type,unsigned int>
>>>>,std::allocator<std::pair<std::pair<enum
>>> osg::StateAttribute::Type,unsigned int> const
>>> ,std::pair<osg::ref_ptr<osg::StateAttribute>,unsigned int> > >,0>
>>>>::_Node * _Rootnode=0x02eb7bf8)  Line 1078     C++
>>>        osg54-osg.dll!osg::StateSet::clear()  Line 556 + 0x26 bytes     C++
>>>        osg54-osg.dll!osg::StateSet::~StateSet()  Line 173      C++
>>>        osg54-osgShadow.dll!osg::StateSet::`scalar deleting destructor'()  +
>>> 0x9 bytes       C++
>>>        osg54-osg.dll!osg::Referenced::unref()  Line 176 + 0xf bytes    C++
>>>        osg54-osgShadow.dll!osgShadow::ShadowMap::~ShadowMap()  Line 91 +
>>> 0xfb bytes      C++
>>>        osg54-osgShadow.dll!osgShadow::SoftShadowMap::~SoftShadowMap()  Line
>>> 73 + 0x7e bytes C++
>>>        RiverTestApp.exe!osgShadow::SoftShadowMap::`scalar deleting
>>> destructor'()  + 0x10 bytes     C++
>>>        osg54-osg.dll!osg::Referenced::unref()  Line 176 + 0xf bytes    C++
>>>        
>>> osg54-osgShadow.dll!osgShadow::ShadowedScene::setShadowTechnique(osgShadow::ShadowTechnique
>>> * technique=0x00000000)  Line 76        C++
>>>        osg54-osgShadow.dll!osgShadow::ShadowedScene::~ShadowedScene()  Line 
>>> 50 C++
>>>        RiverTestApp.exe!VOSGShadowedScene::~VOSGShadowedScene()  + 0x10 
>>> bytes  C++
>>>        RiverTestApp.exe!VOSGShadowedScene::`scalar deleting destructor'()
>>> + 0xf bytes     C++
>>>        
>>> osg54-osg.dll!std::_Destroy_range<osg::ref_ptr<osg::Node>,std::allocator<osg::ref_ptr<osg::Node>
>>>> >(osg::ref_ptr<osg::Node> * _First=0x02e74f50,
>>> osg::ref_ptr<osg::Node> * _Last=0x02e74f5c,
>>> std::allocator<osg::ref_ptr<osg::Node> > & _Al={...},
>>> std::_Nonscalar_ptr_iterator_tag __formal={...})  Line 235 + 0x30
>>> bytes   C++
>>>        osg54-osg.dll!osg::Group::~Group()  Line 53 + 0x26 bytes        C++
>>>        RiverTestApp.exe!VOSGScene::~VOSGScene()  Line 25 + 0x19 bytes  C++
>>>        RiverTestApp.exe!VRiver3DScene::~VRiver3DScene()  Line 103 + 0x21 
>>> bytes C++
>>>        RiverTestApp.exe!VRiver3DScene::`scalar deleting destructor'()  +
>>> 0xf bytes       C++
>>>        osg54-osg.dll!osg::Referenced::unref()  Line 176 + 0xf bytes    C++
>>>        RiverTestApp.exe!osg::ref_ptr<VOSGScene>::~ref_ptr<VOSGScene>()
>>> Line 33 + 0x1a bytes    C++
>>>
>>> Cheers,
>>> Morne
>>> _______________________________________________
>>> 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
>>
> _______________________________________________
> 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

Reply via email to