http://bugs.winehq.org/show_bug.cgi?id=8051
--- Comment #111 from Stefan Dösinger stefandoesinger@gmx.at 2011-04-26 07:21:41 CDT --- We don't need SW emulation for fragment shaders. Windows doesn't offer that, at least not in a way that it can be used for "productive" playing(there's the refrast, but it is not a replacement for GPU fragment processing).
But still you want a fairly sophisticated solution for SW shaders that includes generating x86 / x86_64 code. An interpreter will probably not give satisfying performance, especially on older hardware where SW vp is intended to replace missing GPU functionality. So LLVM sounds like a good idea. Integrating LLVM into Wine is already a challenge.
The other challenge is integrating SW shaders into the existing wined3d codebase in a clear way. The SW shader stuff should be a new shader backend, and you'll have to make sure the shader input(Steam sources) are read properly. The shader output(processed vertices) has to be passed to the opengl fixed function pipeline. The gl pipeline has to be set up in a way that the processed vertex data is passed through to the fragment pipeline properly, similarly to how RHW vertices are treated now.
Wrt Microsoft Office & friends: Yeah, there are monetary incentives for that. Lots of CodeWeavers customers use that app. Wrt WoW, the fixes are likely to benefit other apps. Monetary incentives could help Sims 2 as well, but the amount we're talking about would probably in the tens of thousands of dollars given the amount of work needed for SW vertex processing.