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/
