I found two problems with the current FirePro/FireGL drivers
First, uniform initializers don’t seem to work. I tried something like this:
uniform float u_scale=7.0;
But it didn’t work as expected. The shader compiles and links, but produced wrong outputs. I needed to set the value manually via glUniformf to get the shader work.
The second problem concerns only FirePro V5700 and V8750 class cards, not V5600 cards, though.
I’m using texture2DLod() and texture2DGradARB() in a shader (GLSL 1.20 with extensions). On V5700 and V8750 I get artifacts at the edges of each triangle; the V5600 ouput looks good.
I did not yet investigate, if texture2DLod() or texture2DGradARB or both go wrong, though.
I haven’t had problems with uniform initializers getting set in the actual shader but I’ve had problems querying initial uniform values using both ATI (post) and NVIDIA (post). I suspect not many people use this feature.
I don’t know, but there seems like there’s something missing from this function. Like a closing brace. Or something that sets gl_Position (required in a vertex shader).