I'm expecting to sign a contract in the near future with a company that is backing development and research in this area, so I hope to characterize this information in a more thorough and informative way through some real tests. The tests will be slanted toward NVidia hardware and drivers, but should be useful for all.
In your original question, I believe you wanted to know of advantages for threading in an environment with a single display device (that is, two windows, one monitor type thing, right?). I believe the answer to that question is quite dependent on hardware, OS and drivers.
-don
On 8/18/06, Holtz, Corbin L <[EMAIL PROTECTED]> wrote:
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/
_______________________________________________ osg-users mailing list [email protected] http://openscenegraph.net/mailman/listinfo/osg-users http://www.openscenegraph.org/
