How about creating a new thread to to all rendering, and make the calls call this thread and block until the function's finished? Is this possible?
Yeah, this was another option we discussed (the 'marshalling' option as we called it :-) ). Was deemed too slow as it would reduce performance of games using a single-threaded rendering system (the vast majority of games).
The problem with that is either you know beforehand that it will be multi-threaded or it's too late (as once you detect it, you cannot go back as your context is already taken by the other thread).
Lionel