---CONTEXT--- http://dri.sourceforge.net/doc/dri_driver_features.phtml
The Voodoo3/Banshee driver reverts to software rendering under the following conditions:
- Setting GL_LIGHT_MODEL_COLOR_CONTROL to GL_SEPARATE_SPECULAR_COLOR. - Enabling line stippling or polygon stippling. - Enabling point smoothing or polygon smoothing. - Enabling line smoothing when line width is not 1.0. That is, antialiased lines are done in hardware only when the line width is 1.0. - Using 1-D or 3-D texture maps. - Using the GL_BLEND texture environment. - Using stencil operations. - Using the accumulation buffer. - Using glBlendEquation(GL_LOGIC_OP). - Using glDrawBuffer(GL_FRONT_AND_BACK). - Using glPolygonMode(face, GL_POINT) or glPolygonMode(face, GL_LINE). - Using point size attenuation (i.e. GL_DISTANCE_ATTENUATION_EXT). - Using glColorMask(r, g, b, a) when r!=g or g!=b. ---END-CONTEXT---
Both wined3d/directx.c and d3d8/directx.c have an IWineD3DImpl_CreateDevice that includes the following call:
glLightModeli(GL_LIGHT_MODEL_COLOR_CONTROL, GL_SEPARATE_SPECULAR_COLOR);
In effect this prevents WINE from using the Voodoo3 for 3D rendering. Not only does this make D3D games intolerably slow (forget measuring FPS - start measuring FPM or worse), the result for many operations is just plain wrong.
Commenting out the offending line makes it work much better (at least until it hits one of the other problems), but with a list of software fallbacks this large, and given that the Voodoo3 is over 5 years old now, there must be some question as to whether this is worth fixing. Is the response to people with this problem "just go pick up an old GeForce card for $30"?