[osg-users] Open Scene Graph 3.4.0 has bug when using two monitor setup

Robert Osfield robert.osfield at gmail.com
Tue Dec 20 00:16:23 PST 2016


Hi Bruce,

On 19 December 2016 at 21:34, Bruce Clay <bclay1297 at gmail.com> wrote:
> Robert:
>   Just to be sure I pulled the latest git release and diffed it against the code I had and only found differences in commented headers.  I built the code as I had previously and got the same errors.  I am using the 32 bit version of 3rd party dependencies which is not the latest posted but only a 64 bit version of the latest dependencies is posted and I need a 32 bit app.
>
> I tried a couple of different things based on flags I saw in the cmake file.
>
> first I tried using the OSG_MULTIMONITOR_WIN32_NVIDIA_WORKAROUND flag.  I rebuilt the entire package and ran osgViewer cessnafire.osg.  In this configuration, the program sometime crashed immediately with no scene display and other times ran fine.  It we still to unstable to leave in this configuration.

I've just looked at the history of GraphicsWindowWin32.cpp, the
OSG_MULTIMONITOR_WIN32_NVIDIA_WORKAROUND is a workaround for an NVidia
driver bug from 8 years ago, I'd hope that it's no longer relevant...

    https://github.com/openscenegraph/OpenSceneGraph/commit/7c23951ee17ab444220220951dae16df7c691e2a

> next I turned off the flag set in the previous step  and tried the BUILD_OPENTHREADS_WITH_QT flag and rebuilt the package.  With this configuration, osgViewer never crashed but some of the other / larger apps still crashed.   I can not name those that crashed or where they crashed at this moment because I am installing Visual Studio 2015 and the installer won't let me run any version of Visual Studio while it is doing a setup.  It did still point towards a threading problem though.  I can check tomorrow when the install is finished.  Hope this sheds some light on the problem.  I will try vs2015 tomorrow as well.

The effect of shifting the BUILD_OPENTHREADS_WITH_QT suggests a either
that the bug is timing sensitive or the OpenThreads::Win32 implement
is not protecting threads as it should be.  It may be worth looking at
the differences between OSG-3.2 and 3.4 w.r.t OpenThreads, perhaps one
of the "fixes" has actually caused a regression.

Do you have any non NVidia or non Windows setups?

Robert



More information about the osg-users mailing list