I want to know if it is possible to have parallel rendering in DirectX 9.0. I am working on a WPF application which uses DirectX 9.0 for rendering. To make my application more efficient I want to have parallel rendering capability in my application if possible. When I try to render from multiple threads, it gives me an Direct3D exception. Is there any way to do this? Any ideas?
Direct3D9 does not support rendering from more than one thread at once. The best you can do is render from a non-GUI thread.
However, there are operations which can be done outside D3D9, for example, computing world matrices, or copying into vertex buffers, which can be parallelised. However, anything that involves calling into a D3D9 API cannot ever be multi-threaded.