Original Post
I noticed that D3D's rendering calls, those calls like SetRenderState(), SetTexture(), Draw*() and so on, consume very much time. I think that Draw*() returns only after rendering is completely done. So I wonder whether I can promote performance by doing CPU work and rendering in separate threads. For example, I start a thread to do physics before rendering calls. While the main thread holds in Draw*(), the separate thread goes on its computing. I wonder whether the most time in Draw*() is used for waiting GPU to complete its work.