It's not just wine problem, shader is not compiling in c++ either.

This:

color.rgb = vec3( 1.0-pow(l,pow((1.0-sin(length(pos)))*colorSeed.r,2)*2),

1.0-pow(l,pow((1.0-sin(length(pos)))*colorSeed.g,2)*1.4),

1.0-pow(l,pow((sin(length(pos)))*colorSeed.b,2)*1.2) );

changed to this:

color.rgb = vec3( 1.0-pow(l,pow((1.0-sin(length(pos)))*colorSeed.r,2)*2.0),

1.0-pow(l,pow((1.0-sin(length(pos)))*colorSeed.g,2)*1.4),

1.0-pow(l,pow((sin(length(pos)))*colorSeed.b,2)*1.2) );

works, because C(++) Linux and GL aren't C#, Windows and D3D so we get inconsistencies like that and more.

I always make floats end in .0 because things like that tend to happen...