Smarter developers than myself (Which would be most of them) have told me that there are “Tricks” to making DirectX 9 support multithreaded graphics. Unfortunately, they’re beyond my capability.
DirectX 11, by contrast, natively supports a process spinning off a graphics related job into a thread (as opposed to it being in the same thread as the main message pump thread).
When I joined the Fallen Enchantress team as lead developer (the first time I’ve held that position in over a decade), my first task was to take our existing Elemental engine and make it multithreaded. So everything – except graphics related tasks – gets spun off into a thread.
If you have the beta, you can load it up with the /cheat parameter. Have lots of players going, then bring up task manager and hit Ctrl-Z to watch the game play itself. Every core on the machine will get used.
However, the graphics themselves, because it’s DirectX 9, remains in the main thread.