http://bugs.winehq.org/show_bug.cgi?id=17818
--- Comment #88 from Henri Verbeet hverbeet@gmail.com 2010-06-15 06:38:25 --- (In reply to comment #87)
Looks like a typical case of running out of available uniforms.
Not really. The shader program uses indirect addressing, which means wine doesn't know which uniforms are used and reserves the maximum (which is 256 - 3 in glsl_shader.c).
Unfortunately the shader program also uses c254.
It even uses c255, actually. How exactly is this not a typical case of running out of available uniforms? Any shader that uses indirect addressing potentially uses all 256 uniforms, and wined3d needs a few for internal use. If your graphics card doesn't have that many, and the shader actually uses those higher constants, you're currently simply out of luck.