Hi Folks,

I know this has been discussed several times in the mailing list, but I could not figure out everything by browsing the archives. Even knowing that the osgViewer will soon replace the Producer dependency, I believe my questions are independent on that and remain the same.

I'm working under WindowsXP, on a workstation with a
- Pentium D dual core
- nVidia GeForce 7900 GTX

I tested a heavy model with the following configurations:

*** Config 1 ***
Is the example osgWindows with the 2 windows options

Producer::RenderSurface1    Producer::RenderSurface2
         |                              |
        cam1                           cam2

This gives 2 cameras each on his rendering thread, and the CPU load goes up to 90% (it almost saturate the 2 CPUs)


*** Config 2 ***
Same osgWindows example, but on the single window option, which gives:

Producer::RenderSurface
   /    |     |     \
cam1   cam2  cam3   cam4

The 4 cameras share the same RenderSurface, each of them owns a rendering thread, but the whole CPU load goes at 50% (saturate only 1 CPU)


*** Config 3 ***
osgViewer --stereo HORIZONTAL_SPLIT

Producer::RenderSurface1
         |
        cam1

This creates a single camera with its rendering thread (as I can see from the stats), and thus saturates only one CPU (50%).


Now my questions are:
1) The 50% bottleneck of Config2 is due to the fact that the 4 rendering thread must be in sync with the shared RenderSurface, which is a single thread and thus can run only on 1 cpu? Is this limit given by Windows OS?

2) If so, I guess that's the reason that Config 1 performs better, having 2 renderSurfaces dispatched on the 2 cpus.

3) Why doesn't the HORIZONTAL_SPLIT option create 2 cameras (similarly to osgWindows with the 1 window config)?

4) In case I use passive stereo (HMD or 2 projectors, typically setting horizontal span on nVidia driver to use the output of the 2 heads), the only way to achieve the performances of Config1 is to create a "fake" fullscreen, with 2 windows without borders?
Or is there a cleaner way?

Sorry for the trivial questions, but I should better clarify my ideas on that before thinking about multiple GPUs...

Thanks a lot
Ricky
_______________________________________________
osg-users mailing list
osg-users@openscenegraph.net
http://openscenegraph.net/mailman/listinfo/osg-users
http://www.openscenegraph.org/

Reply via email to