https://bugs.winehq.org/show_bug.cgi?id=37424
--- Comment #8 from Stefan Dösinger stefan@codeweavers.com --- I haven't looked at the details yet, but my guess is that the game switches between fixed function fragment processing and pixel shaders without changing any pixel shader constants at the same time. In the GLSL ffp replacement shader bump map constants are separated from pixel shader constants. In ARB they share the same global constant "namespace".
Henri's patch probably doesn't trigger a constant update in this case since it is not needed in GLSL. If my theory is right the solution may be to trigger a constant reload in shader_arb_select if the previous draw did not use a pixel shader, but the current one does, or vice versa. I believe such a reload is already triggered somewhere, but I can't find it right now.