wined3d: GLSL shader status

Jason Green jave27 at
Tue May 30 01:53:52 CDT 2006

I'm working on the conversion from DirectX pixel and vertex shaders to
GLSL function and have made a good bit of progress this weekend.  At
the moment, I'm able to run just about every simple vertex shader
(version <= 1.4, and a few 2.0's) that I can find which already works
on ARB_vertex_program (the current way that Wine handles this).  I'm
having a bit more trouble with pixel shaders, but I haven't really dug
into it yet.  Some of the really simple ones work, but I believe I'm
missing a step in the texture binding code somewhere.

I've posted a patch to enable this shader generation here:

If you want to try this and help debug things, you'll have to apply
the patch (it's against the current git tree as of 2:00 AM EST, May
30th).  Plus, you'll need a video card and driver capable of using
GLSL (type 'glxinfo' and look for "GL_ARB_shading_language_100") .
You'll also have to set a new registry key in your Wine installation
(it is case sensitve):

HKEY_CURRENT_USER\Software\Wine\Direct3D\UseGLSL = "enabled"

Here are a few comparison screenshots (note, yes, they should be identical  ;-): (vanilla wine, or with
UseGLSL != "enabled") (using GLSL) (DX8 SDK dolphin sample)  (not *quite* there yet  ;-)

In theory, once this all works, we'll be able to support shader model
2.0+, which a lot of newer games either require or strongly suggest
(aka prettier graphics).  Now, there are plenty of other bugs to be
worked out in wined3d, so this isn't the holy grail of patches or
anything, but it will take us that much closer to supporting new
games.  Please lend a hand if you're able to.  Thanks!

(by the way, many thanks to the entire #winehackers crew for all the
help along the way so far, it's been fun)

More information about the wine-devel mailing list