From: VS R. <aki...@ya...> - 2001-06-08 13:46:39
|
Curt, > I don't know specifically what could be wrong. But, you need to > ensure that ***every*** opengl call is made from only one thread, and > no opengl calls are made from any other thread. This includes > configuring lighting, setting up the view frustum, fog, texture > loading, model loading, etc. Otherwise, the opengl calls can get > mixed arbitrarily from the different threads, and since OpenGL is a > "state machine" this can cause terrible problems and usually ends up > in a crash. Imagine intermixing texture load calls with the render > thread. You end up with illegal calls being made inside a glBegin() / > glEnd() and this is just the start of the bad stuff that can happen. > > You could protect the opengl sections with semaphores somehow, but > then you will probably lose any benefits of threading the render loop. > I understand. I have played around with Performer on our OnyxRE2 and that is why I tried the renedering thread. We are now going to attempt something like this to overcome the problem of *invisible textures* : - initialisation + rendering (FgRenderFrame() function) in the main thread - tile-paging in another thread - all the rest (network, keyboard etc.) in another ( I dont know whether this is non-trivial). I *want* to try it out in order to make the best use of our dual processor machines. Under Win2k I find that while running FlighGear alone one processor is about 60-70% loaded and other about 20-30% loaded. I wish to improve that. > This all is very much non-trivial to do, and I'm not sure how much of > a win it would be overall in terms of performance. Can someone tell me why it wont improve overall performance on dual processor machines even if I get it right?. >but my gut feeling would be that threading should > probably be addressed inside plib. However, this is very much > non-trivial, and Steve speaks of the immense contortions that the > Performer development team had to go through to get this all right for > their scene graph. Their model of application+cull+draw works very well on the OnyxRE2. Let me see if a similar model works with FlightGear!!!. If someday Steve gets all that into PLib then maybe.... I'll try till then. Regards Ranga _________________________________________________________ Do You Yahoo!? Get your free @yahoo.com address at http://mail.yahoo.com |