Forget to mention, in release before the crash I had this message :
Warning: deleting still referenced object 0145DFF8 of type 'class
osg::Referenced *'
the final reference count was 2, memory corruption possible.
It seems someone force the delete of the SwapBuffersOperation...
On Thu, Jun 26, 2008 at 4:30 PM, Serge Lages <[EMAIL PROTECTED]> wrote:
> Hi again,
>
> I've reproduced it in release mode, but I had to wait a much longer time
> (around 20 and 30 minutes), still with the osgwindows example.
>
>
> On Thu, Jun 26, 2008 at 4:03 PM, Serge Lages <[EMAIL PROTECTED]>
> wrote:
>
>> Thanks for your reply Robert,
>>
>> I was able to reproduce the crash with the example osgwindows (but not
>> with osgcompositeviewer). I launched the example with the cow.osg model in
>> debug mode, moved a little with the camera and gave a rotation, then waited
>> a couple of minutes (less than 5) and it crash for the same reason (the
>> OperationQueue has its SwapBuffersOperation corrupted) at the same location
>> (line 75 in OperationThread.cpp).
>>
>> Anyone can try to reproduce it ? :)
>> I'll try to launch it in release mode to see if it also crash.
>>
>>
>> On Thu, Jun 26, 2008 at 3:43 PM, Robert Osfield <[EMAIL PROTECTED]>
>> wrote:
>>
>>> Hi Serge,
>>>
>>> What you are doing looks OK, and there are already OSG examples doing
>>> similar things so it "should" work. To track down what it might be
>>> it'd worth trying out different threading models, and also try out
>>> examples like osgthirdpersonview, osgcompositeviewer and osgcamera to
>>> see if you can recreate the problems here, if so then others can try
>>> it out at there end to see if problems occurs across OS/machines/build
>>> combinations.
>>>
>>> For one point of reference, the type of usage you are putting the OSG
>>> through is something I've put the OSG through many times before
>>> without coming across this problem.
>>>
>>> Robert.
>>>
>>> On Thu, Jun 26, 2008 at 1:57 PM, Serge Lages <[EMAIL PROTECTED]>
>>> wrote:
>>> > Hi all,
>>> >
>>> > I am having a crash with a CompositeViewer setup on Windows XP (VS 8
>>> Sp1, 1
>>> > GeForce card, SVN trunk). It is composed of 2 windows into 1 screen,
>>> with
>>> > one context for each window. My threading model is
>>> DrawThreadPerContext.
>>> > The crash takes place into OperationQueue, the _operations list has a
>>> > corrupted element : the last one (the SwapBuffersOperation). The two
>>> > graphics threads have their OperationQueue corrupted.
>>> >
>>> > So it crash line 75 into OperationThread.cpp because
>>> > _currentOperationIterator points to a corrupted pointer.
>>> > About my app, it just load the cow.osg, nothing else.
>>> >
>>> > Anyone have seen this problem before ? Or am I making something wrong
>>> on my
>>> > viewer setup (my code is below) ?
>>> > Thanks in advance !
>>> >
>>> > osgViewer::CompositeViewer viewer;
>>> > osg::Node *root =
>>> osgDB::readNodeFile("cow.osg");
>>> >
>>> > // upper window
>>> > {
>>> > // Traits
>>> > osg::ref_ptr<osg::GraphicsContext::Traits> traits = new
>>> > osg::GraphicsContext::Traits;
>>> >
>>> > traits->x = 300;
>>> > traits->y = 40;
>>> > traits->width = 600;
>>> > traits->height = 300;
>>> > traits->windowDecoration = true;
>>> > traits->doubleBuffer = true;
>>> > traits->sharedContext = 0;
>>> >
>>> > // Graphic context
>>> > osg::ref_ptr<osg::GraphicsContext> gc =
>>> > osg::GraphicsContext::createGraphicsContext(traits.get());
>>> > osgViewer::View *view = new
>>> osgViewer::View;
>>> > GLenum buffer =
>>> traits->doubleBuffer
>>> > ? GL_BACK : GL_FRONT;
>>> >
>>> > viewer.addView(view);
>>> > view->getCamera()->setGraphicsContext(gc.get());
>>> > view->getCamera()->setViewport(new osg::Viewport(0,0,
>>> traits->width,
>>> > traits->height));
>>> > view->getCamera()->setDrawBuffer(buffer);
>>> > view->getCamera()->setReadBuffer(buffer);
>>> > view->setSceneData(root);
>>> > }
>>> > // lower window
>>> > {
>>> > // Traits
>>> > osg::ref_ptr<osg::GraphicsContext::Traits> traits = new
>>> > osg::GraphicsContext::Traits;
>>> >
>>> > traits->x = 300;
>>> > traits->y = 375;
>>> > traits->width = 600;
>>> > traits->height = 480;
>>> > traits->windowDecoration = true;
>>> > traits->doubleBuffer = true;
>>> > traits->sharedContext = 0;
>>> >
>>> > // Graphic context
>>> > osg::ref_ptr<osg::GraphicsContext> gc =
>>> > osg::GraphicsContext::createGraphicsContext(traits.get());
>>> > osgViewer::View *view = new
>>> osgViewer::View;
>>> > GLenum buffer =
>>> traits->doubleBuffer
>>> > ? GL_BACK : GL_FRONT;
>>> >
>>> > viewer.addView(view);
>>> > view->getCamera()->setGraphicsContext(gc.get());
>>> > view->getCamera()->setViewport(new osg::Viewport(0,0,
>>> traits->width,
>>> > traits->height));
>>> > view->getCamera()->setDrawBuffer(buffer);
>>> > view->getCamera()->setReadBuffer(buffer);
>>> > view->setSceneData(root);
>>> > view->addEventHandler(new
>>> > osgGA::StateSetManipulator(view->getCamera()->getOrCreateStateSet()));
>>> > view->addEventHandler(new osgViewer::StatsHandler());
>>> > }
>>> >
>>> > viewer.run();
>>> >
>>> > return (0);
>>> >
>>> > --
>>> > Serge Lages
>>> > http://www.tharsis-software.com
>>> > _______________________________________________
>>> > 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
>>>
>>
>>
>>
>> --
>> Serge Lages
>> http://www.tharsis-software.com
>>
>
>
>
> --
> Serge Lages
> http://www.tharsis-software.com
>
--
Serge Lages
http://www.tharsis-software.com
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org