Voodoo3, Banshee and D3D

Troy Rollo wine at troy.rollo.name
Sat Mar 5 16:19:19 CST 2005


---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"?




More information about the wine-devel mailing list