On Thu, Apr 06, 2006 at 10:23:11AM +0200, Stefan Dösinger wrote:
That would be usefull too for multithreaded direct3d. Somehow we have to bring another thread to releasing the glxContext, so we can re-use it in a new thread.
After discussing this at length on IRC with another coder, we think that the easiest solution would be to have one GL context per thread (and multiple contexts can share the same rendering target and also texture handles).
If we add 'intelligent' (i.e. 'lazy' or 'just in time' :-) ) state change evaluation it could even be pretty efficient code-wise (maybe not so efficient in the GL driver though as it may lead to more 'pipeline flushes' than the 'hacky' solution).
After we just have to rely that this is properly implemented at the GL driver level...
I once wanted to toy with this in the DDraw code base but well, seeing that it will phased out pretty soon I did not do any work on it. On the other hand I could try for some specific games (like DungeonSiege) as an experiment to then port it over to WineD3D.
Lionel