GL applications call into Mesa using the standard gl* functions, many of which have to validate internal state. Currently, all of that processing happens in the main thread, so while your application would like to be doing physics calculations or something, it's stuck waiting for Mesa to validate GL state.
Threading the GL API functions means that when you call a gl* function, that function queues up some work for the render thread to do. The render thread will do all the state checking on another core, and allow the gl* functions to return almost immediately back to the application, allowing the application do get to other things.


Reply With Quote
