Tugkan,

Don Burns is the expert in the area so I'll let him jump up if I get
this wrong.  I believe you answered your own question.  If you have only
one GPU trying to accommodate multiple threads, then you will have a
performance hit.  This is probably partly because each draw thread is
hitting the GPU with rendering data that has different GL states and the
pipe has to flush as it goes back and forth from each thread to the
other.  I think you will do better with single threaded because the
state management built into OSG will better optimize the data stream
going to the GPU to limit GL state changes.  The multithread support is
really meant for systems with multiple graphics pipes (SGI, etc).  I'm
not sure, but I'd guess that something like an SLI system can be
configured to either act like 2 independent pipes (driving separate
monitors) or a single pipe (with higher performance).

Corbin

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Tugkan
Calapoglu
Sent: Friday, August 18, 2006 3:34 AM
To: osg users
Subject: [osg-users] Multiprocessing and OSG

Hi All, 

AFAIK to harness the power of multiple CPU's what we have to do is to 
create multiple windows and cameras and use ThreadPerCamera model. In 
this way we can get a cull&draw thread for (say) left and right half of 
the screen.

This method, however, requires also multiple pipes because otherwise 
each camera fights for the graphics card during draw. I couldn't observe

a performance improvement when I tried that. Indeed it was worse.

When I tried to use a single window and multiple cameras I received:

Warning: disabling multi-threading of cull and draw to avoid
          threading problems when camera's share a RenderSurface.


Now, this architecture is good for a machine with multiple CPU's, GPU's 
and projectors/monitors. If I want to drive only one monitor/projector 
than I am bound to single threaded mode because two windows on one 
display will not be rendered with two GPUs. Instead one of the GPUs will

render both windows.

So the question is, is there a method that lets us use multiple threads 
without the need of multiple projectors/monitors?

Thanks,
Tugkan.

_______________________________________________
osg-users mailing list
[email protected]
http://openscenegraph.net/mailman/listinfo/osg-users
http://www.openscenegraph.org/

_______________________________________________
osg-users mailing list
[email protected]
http://openscenegraph.net/mailman/listinfo/osg-users
http://www.openscenegraph.org/

Reply via email to