--- Lionel Ulmer lionel.ulmer@free.fr wrote:
On Sat, Oct 15, 2005 at 08:13:24PM +0100, Oliver Stieber wrote:
We could do that, or we could signal the other thread an tell it to release the context which should cut down on the context switching, I'm not sure how easy that would be to setup (it
doesn't
seem possible using even objects because the thread has to be waiting)
Well, the 'signal' option is (AFAIK) what Transgaming does in Cedega to fix the issue.
Another option would be to create a new context that shares resources with the other contexts
and
copy over the state from the old context to the new one.
And this is what I planned to implement when the I have the motivation and the time (discussed about it on IRC with a guy some time ago trying to find the best way to do that).
I may try it one of these days for some specific cases (like for Dungeon Siege) and if it works, generalize to all cases.
For wined3d the code in device.c:IWineD3DDeviceImpl_ActiveRender could be improved and used, it creates a new context for a render target and then applies the current state block to update the states. I've got some code that improves updating the states so that only changes are updated but it's a bit work in progress at the moment. It may be easier to do in DirectX 7 because of the way it manages states.
Oliver.
Lionel
-- Lionel Ulmer - http://www.bbrox.org/
___________________________________________________________ How much free photo storage do you get? Store your holiday snaps for FREE with Yahoo! Photos http://uk.photos.yahoo.com