Hi,

Short Version

Run the attached files with the osgCamera example on your nVidia Geforce GPU 
(we're on Windows), with the parameters "-s -3 [FILENAME]". You'll notice the 
file 1_UV.OSG renders the single triangle fine. 2_UV.OSG does not render 
correctly across the windows (it  added only a second UV set).

Has anyone else seen this and have any other solutions or workarounds, other 
than enabling VBO and/or multi-threaded viewer?

Long Version

We've identified an issue with nVidia Geforce hardware and geometry with 
multiple UV sets when being displayed on multiple windows. This may be a driver 
bug, as we don't see it on Intel or AMD GPUs (or interestingly, an nVidia 
Quadro in a laptop here), but there are some interesting details.

I've narrowed the problem down to an OSG file containing a single triangle, and 
I can reproduce the issue in the osgCamera example. I will attach the minimal 
example files.

The issue only seems to appear in the single threaded viewer model. When 
running with the parameters "-s -3" in osgCamera, we get the following behavior:

1_UV.OSG - Single triangle with one texture, one UV set. Works fine.

2_UV.OSG - Same as above, but added one additional UV set. Initially it was 
another texture added as well, but that is unnecessary to generate the problem. 
Triangle only renders in one of the spawned windows.

2_UV_VBO.OSG - Same as 2_UV.OSG, but with VBO turned on. Renders fine across 
all windows.

So the two workarounds we've found so far is to enable VBO on all geometry, or 
enable the multi-threaded viewer.

Using VBO across the board does give us a performance hit in our application, 
from 5% to 35% depending on the scene being rendered and the GPU/Driver combo 
(including Intel and AMD).

When we first enabled it on our OSG Composite Viewer, the multi-threaded mode 
was set, but "startThreading" was never called (we're creating our own windows, 
so realize is not called). Interestingly, this seems to have made the geometry 
corruption issue go away even though the additional threads were not spawned... 
Enabling the multi-threaded viewer properly has caused some other misbehavior 
in our app, but we may be able to work around the problems. 

Platform:
Windows 7 x64
16 GB RAM
nVidia 680, driver 306.97 (we've tried back to 275.33 with a 460 board)
OSG 3.0.0 via VS 2010 SP1
Two monitors (so my osgCamera example spawns across them both, although we've 
reproduced the issues on a single monitor machine).

Any help, suggestions, or commiseration would be appreciated :)

Thanks!
Baker Searles

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




Attachments: 
http://forum.openscenegraph.org//files/20121016_nvidia_multi_context_render_corruption_191.zip


_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to