One other Question: How slow is DrawStridedSlow? WineD3D uses it because of the diffuse ans specular colors. Currently I get only one useable vertex into DrawIndexedPrimitiveVB from ProcessVertices, the other 5 to draw have their values zeroed. Without drawing anything I get 70 fps(screen refresh rate, expected), with the 6 Vertices I get 1.5 fps. Is this normal for DrawStridedSlow()? Might this be because of drawing 2 triangles with useless vertices? Or might something else be wrong?
It's slow, but not *that* slow in my experience. When testing with an about three years old DX8 game on an Athlon Tb 1,33 Ghz & Geforce 4400 Ti I get about 15-20 fps when using drawStridedSlow and about 40-45 fps when using drawStridedFast. Curiously, changing graphics settings doesn't seem to have much of an effect on performance.
On the subject of drawStridedSlow / color fixups, something I was wondering about is how feasible it would be to use vertex shaders to fix the colors. I guess it would require reimplementing pretty much the entire fixed function pipeline as shaders. I also don't know what the impact would be on performance, but I seem to remember reading somewhere that modern gfx cards don't have a real fixed function pipeline anymore and that the drivers use the programmable pipeline to implement much of that functionality anyway. I've got no idea how reliable that claim is though.