http://bugs.winehq.org/show_bug.cgi?id=17437
--- Comment #21 from Christoph Hohmann reboot@gmx.ch 2009-02-26 13:40:48 --- The problem with the NVIDIA 7600 is that is only support 1024 uniforms.
glxinfo -l:
GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB = 1024
That means gl_info->vs_glsl_constantsF is 256. And in dlls/wined3d/directx.c max_vshader_constantsF is then set to
gl_info->vs_glsl_constantsF - (MAX_CONST_B / 4) - MAX_CONST_I - 1;
which is then 235, resulting in
uniform vec4 VC[235];
in the shader code. But it seems Apocrypha needs more uniforms. Since i didn't see any reference to VI and VB in the shader code I changed MAX_CONST_B and MAX_CONST_I to 0 and recompiled wine. After that the models were rendered and the overall graphics didn't look bad. There were some miner graphics bugs, but the game worked.
Looks like the TODO in dlls/wined3d/wined3d_private.h needs to be done for EVE:
TODO: Make this dynamic, based on shader limits