I am working on vertex blending support for WineD3D. First I implemented it
using GL_ARB_vertex_blend in hardware, an extension that is unfortunately
only supported by ati cards, and not nvidia. So I took Frank Richter's
started software emulation for vertex blending, with that it works
everywhere.
The question is wether we should report support for this feature in our d3d
caps. Because it is software emulated it forces wined3d into the
drawStridedSlow path which is, well, slow. Enabling this may cause a game to
choose this slower render path over something else, like vertex shaders. On
the other hand it can get applications run that wouldn't work without this
feature.
For vertex blending it doesn't matter much. Its hardly used, and all games
using it provide a vertex shader path too and prefer it(exception are the dx
sdk demos). The other alternative the apps have is to either disable the
feature entirely, thus have lower graphics quality, or calculate it
themselves, which won't be slower than wined3d doing it. So I think we should
advertize vertex blending, but the general question remains.
What do you think?
PS: Ideally we'd have a vertex pipeline replacement in form of a vertex
shader, but that wouldn't invalidate the point of this since not all cards
support vertex shaders. (And I personally dislike the idea of a pipeline
replacement for this reason).