[osg-users] System requirements for OpenSceneGraph

44 views
Skip to first unread message

Nikita Petrov

unread,
Dec 28, 2016, 1:27:46 PM12/28/16
to osg-...@lists.openscenegraph.org
Hi,

I'm trying to run OSG and osgEarth on very old PC.

nVidia GeForce MX440 with latest drivers (93.71_forceware_winxp2k_english_whql.exe) - OpenGL 1.5
Pentium 4 2.4GHz
WinXP x86

I've successfully built OSG in Visual Studio 2010.
osgversion.exe - works fine.
But when I run anything like osgviewer.exe, osgtext.exe I get an error report from Windows and something like this warning in console:
Warning: detected openGL error, invalid enumerant

I've googled a lot and I can't find any info about OpenGL or graphic card requirements for OSG.

The question is - is it possible to run OSG and osgEarth on GeForce MX440 (OpenGL 1.5)? Or I shouldn't spend time on debugging this problem?

Thank you!

Cheers,
Nikita

------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=69783#69783





_______________________________________________
osg-users mailing list
osg-...@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Alberto Luaces

unread,
Dec 28, 2016, 3:42:59 PM12/28/16
to osg-...@lists.openscenegraph.org
"Nikita Petrov" writes:

> I've googled a lot and I can't find any info about OpenGL or graphic card requirements for OSG.
>

Yes, because it pretty much depends on what your code is doing and in
which hardware it is executing. I would dare to say that there are not
any minimum requirements for OSG as long as your platform has any kind
of OpenGL implementation available.

>
> The question is - is it possible to run OSG and osgEarth on GeForce
> MX440 (OpenGL 1.5)? Or I shouldn't spend time on debugging this
> problem?

As you found, if your driver/hardware does not support any specific
OpenGL feature, a warning is issued for each error, but the program
continues as it is not usually fatal. Most of the time failing commands
do not make anything.

If what you see on the screen satisfies you, I would not try to debug
that problem in more depth. If not, you can use a GL debugger/tracer
and catch the exact point in the code that triggers the warning in the
hope that you can change it to have it working.

--
Alberto

Robert Osfield

unread,
Jan 5, 2017, 4:47:59 AM1/5/17
to OpenSceneGraph Users
Hi Nikita,

The OSG started out life before the GeForce MX440 was released, and
although I'm not 100% certain, I have vague recollection of actually
owning one when working on the OSG. This is a looong time back
though....

In early days the OSG started out with just OpenGL 1.1 as a
requirement. The OSG hasn't officially dropped support for OpenGL
versions as old as this but practically this may have happened simple
because no active community member have such system to test against or
any need to.

As Alberto mentions that specific OpenGL version that will be required
will depend upon the scene graph you use and the OpenGL features that
it requires rather than the software side. For instance you could load
a simple model like cow.osgt and it only uses OpenGL 1.1 features and
you'll be fine, but load glsl_mandelbrot.osgt and you'll then need
hardware and drives that support GLSL shaders. The OSG queries OpenGL
for advanced features at runtime and will do an non op when features
aren't supported - so you'll get an error on the console and missing
scene graph element.

What is happening in your case is hard to say remotely. It could be
the that standard set up of OpenGL that the OSG uses even with simple
scene graphs goes beyond the OpenGL version your driver/hardware
support, something that suggests a missing version check, or could
simply be a driver bug.

For osgEarth, you'll need to check it's requirements w.r.t OpenGL
version, I know there a code paths that use modern OpenGL features so
it may be that you won't be able to use it.

For sanity sake though, it might be worth just investing your time in
finding upgrades for your hardware as it's likely to eventually butt
up against things you want to use that aren't supported.

Robert.

Nikita Petrov

unread,
Jan 6, 2017, 10:17:53 AM1/6/17
to osg-...@lists.openscenegraph.org
Thank you for replies!

I've managed to find another old PC at home and now I have more specific questions.

1. To save time while compiling I've built OSG in VirtualBox on my main PC.
I've installed on virtual machine:
- WinXP SP3 x86
- MS Visual Studio 2010
- CMake 3.7.1
And I've built OSG from github master.

2. I have an old PC with the following specs:
- Pentium 4 CPU 2.66GHz
- 1 GB RAM
- NVIDIA GeForce FX 5700 (OpenGL 2.1 according to wikipedia)

3. I've made the same clean install of WinXP SP3 with Visual Studio on old PC.

4. I've installed latest NVIDIA drivers (I've tried several drivers):
- 175.16_geforce_winxp_32bit_international_whql.exe
- 175.19_geforce_winxp_32bit_english_whql.exe

5. I've copied all needed files (binaries) from virtual machine to old PC.

6. When I launch simple examples like cow.osg I get an error. Here is the output:


Code:

D:\OSG\build\OSG\bin>osgviewer.exe cow.osg
_forceVertexArrayObject = 0
_forceVertexBufferObject = 0
ViewerBase::configureAffinity() numProcessors=1
SetThreadAffinity() : affinity.activeCPUs.size()=0, numprocessors=1
Fallback setting affinityMask : 0x1
Warning: detected OpenGL error 'invalid enumerant' at Before Renderer::compile

D:\OSG\build\OSG\bin>




I guess this simple example should work with OpenGL 2.1. So what am I doing wrong?
osgversion.exe works fine.

While using CMake to generate OSG project, I've checked that OPENGL_PROFILE is set to GL2. Maybe it is not important.

Also I've downloaded and successfully launched a simple 3D game (Scorched3D) to test that video card is working properly.

Cheers,
Nikita[/code]

------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=69904#69904

Robert Osfield

unread,
Jan 6, 2017, 11:28:07 AM1/6/17
to OpenSceneGraph Users
Hi Nikita,

On 6 January 2017 at 15:18, Nikita Petrov <nikita...@gmail.com> wrote:
> D:\OSG\build\OSG\bin>osgviewer.exe cow.osg
> _forceVertexArrayObject = 0
> _forceVertexBufferObject = 0
> ViewerBase::configureAffinity() numProcessors=1
> SetThreadAffinity() : affinity.activeCPUs.size()=0, numprocessors=1
> Fallback setting affinityMask : 0x1
> Warning: detected OpenGL error 'invalid enumerant' at Before Renderer::compile

Most of the output is debug information for some newly developed
features found in git master, the values are all correct, once we get
closer to the next stable release this information will be removed or
quietened down. For the purpose of tracking down what is going wrong
you can safely ignore this part of the output.

The "Warning: detected OpenGL error 'invalid enumerant' at Before
Renderer::compile" does suggest that some OpenGL state is being passed
from the OSG that isn't passed in a way that the driver is happy with,
either a feature that isn't supported by the driver that the OSG is
assuming is that will be supported, or a bug in either the driver or
the OSG.

The line that is triggering the "Warning: detected OpenGL error
'invalid enumerant' at Before Renderer::compile" can be found in
OpenSceneGraph/src/osgViewer/Renderer.cpp (see the Renderer::compile()
method) with the line:

sceneView->getState()->checkGLErrors("Before Renderer::compile");

This occurs before any of the scene graph related GL object
compilation and since the Renderer::compile() by default is called on
the first frame that is renderer it's likely that no scene graph
related state has been passed to OpenGL by the OSG yet. The only
state that will have been passed will have been during graphics
context set up. I have just run through the
src/osgViewer/GraphicsWindow32.cpp but can't see any OpenGL calls so
I'm stumped at where to look for the OpenGL calls that might have put
the driver into the error state.

Do you see anything on screen with any of the examples of models
passed to osgviewer? Cow.osgt should work with just OpenGL 1.1. so
all your hardware should be able to handle.

I do wonder if there is some change to GraphicsWindowWin32.cpp that
has caused a regression for older hardware.

Unfortunately I'm not a Windows developer myself so will have to defer
to Windows users in the community to pitch in with platform specific
expertise. Hopefully some will be tracking this thread and be able to
pitch in.

Robert.

Nikita Petrov

unread,
Jan 7, 2017, 1:11:54 PM1/7/17
to osg-...@lists.openscenegraph.org
Hi Robert,
Once again thanks for the detailed replies!


> Do you see anything on screen with any of the examples of models
> passed to osgviewer? Cow.osgt should work with just OpenGL 1.1. so
> all your hardware should be able to handle.


The only things I saw were the console output and Windows error message, which suggest to debug app with Visual Studio.

But(!) I've successfully built OSG stable version 3.4.0 from scratch and now everything works! I still have the same warning in console output, but all examples works fine.

Moreover I compiled osgEarth stable 2.8 and it is also working on NVIDIA FX 5700. It shows a lot of output about unsupported OpenGL extensions, but still it works!

So, I guess something is broken in the master branch (3.5.6).
My advice to those people who want to use OSG on ancient PCs is to use stable versions :)

Cheers,
Nikita

------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=69918#69918

Robert Osfield

unread,
Jan 8, 2017, 5:35:10 AM1/8/17
to OpenSceneGraph Users
On 7 January 2017 at 18:12, Nikita Petrov <nikita...@gmail.com> wrote:
> But(!) I've successfully built OSG stable version 3.4.0 from scratch and now everything works! I still have the same warning in console output, but all examples works fine.

That's a bit of good news.

> Moreover I compiled osgEarth stable 2.8 and it is also working on NVIDIA FX 5700. It shows a lot of output about unsupported OpenGL extensions, but still it works!

Second bit of good news :-)

> So, I guess something is broken in the master branch (3.5.6).
> My advice to those people who want to use OSG on ancient PCs is to use stable versions :)

We'll need to work out what caused the regression otherwise the next
stable release will go out without this being fixed.

I will do a diff between 3.4 and master's GraphicsWindowWin32.cpp to
see if anything pops up as being a possible cause.

Robert.

Jannik Heller

unread,
Jan 8, 2017, 9:20:21 AM1/8/17
to osg-...@lists.openscenegraph.org
Hi Nikita,

If you want to help finding the cause for the bug in master you can run a git bisect.

git bisect will use a binary search pattern and give you commits to test on your PC, usually this takes about 10 steps and you'll arrive at the problem commit.

http://webchick.net/node/99

Once we've identified the commit that introduced the bug it should be easy to find a solution.

Cheers,
Jannik

------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=69927#69927
Reply all
Reply to author
Forward
0 new messages