Last week I spent a while with my local copy of the CVS head bringing the DX9 implementation closer to the current GL implementation. My first pass focused on better support for multiple arrays of vertex data. This largely fixed the class of problem mentioned for example in this thread:
The bump mapping sample now works identically in DX9 and GL, as does the per-pixel lighting in the disco lights sample. Turning on shadows in the disco lights sample still causes an assert in DX9 however; fixing that is my next target.
I'm going to work my way through the rest of the samples and fix up any other problems I find. After that I'll probably loop back and take a look at the "PandaSE" code from ETC to see if I can support that with DX9 as well.
If anyone has pointers to other parts of the current DX9 implementation that need attention, I'd certainly be willing to add things to my list. Issues with example code to illustrate the problem are particularly appreciated, and will probably get higher priority.