Hi Robert, yes I'm working on a standalone test program now. Multithreaded
crashes are often hard to reproduce in a vacuum, but as soon as I have
something I'll post here.

I'm running on Win10, Nvidia GTX 980 (latest drivers), Visual Studio 2013,
OpenSceneGraph-3.6 branch.

Ravi

On Tue, Dec 18, 2018 at 4:24 AM Robert Osfield <robert.osfi...@gmail.com>
wrote:

> Hi Ravi,
>
> My guess is that the new text implementation isn't the cause of the crash,
> only it's the straw that broke the camels back, and actually there is an
> underlying limitation with the OSG w..r.t you specific usage case.
>
> Could you create a small test program that reproduces the crash.  Details
> on your OS/dev tools/hardware will be useful too.
>
> Cheers.
> Robert.
>
> On Tue, 18 Dec 2018 at 08:50, Ravi Mathur <ravid...@utexas.edu> wrote:
>
>> Hello all,
>>
>> I'm seeing a crash on the OpenSceneGraph-3.6 branch that occurs when I
>> have two CompositeViewers that contain Text objects in their scenes. My
>> simplified scenario is this:
>> - 2 CompositeViewers, each in singlethreaded mode, but being run at the
>> same time in separate threads (via OpenThreads::Thread wrappers)
>> - The viewers do not share scenes or contexts, and each has a single Text
>> object as its scene
>> - Each viewer is destroyed immediately after its run() loop returns
>> (needed for my application)
>>
>> Both viewers animate just fine in their own windows. The crash happens if
>> one viewer is being destroyed while the other is actively rendering. Note
>> that it only seems to crash if there are Text objects in each scene, and
>> did not crash with the old (pre-3.6) Text implementation.
>>
>> Is this usage model ok in the first place? Robert, I read your post in
>> this recent thread
>> <http://forum.openscenegraph.org/viewtopic.php?t=16844> in which you
>> advise against manually destroying viewers. Should I assume that I was just
>> lucky in getting away with this until now? The new Text implementation
>> seems to be the only thing that triggers the crash.
>>
>> In case anybody is interested, the crash happens due to this sequence of
>> calls:
>> - ~CompositeViewer() calls GraphicsContext::close(), which deletes its
>> State
>> - ~CompositeViewer() then destroys its osgViewer::View, which in turn
>> destroys its Camera
>> - ~Camera() eventually calls osgText::releaseGLObjects() with a null
>> State.
>> - osgText::releaseGLObjects(null) deletes text-related objects (Programs)
>> on ALL contexts
>> - The other CompositeViewer, which is actively rendering its Text on
>> another context, crashes with an access violation since its Text-related
>> Programs were just deleted.
>>
>> Thanks,
>> Ravi
>> _______________________________________________
>> 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