I gave a try to run Fluidmark on intel integrated graphics, which allegedly supports OpenGL 2.0 and what I realized was that it fails because shader implemented in Fluidmark uses simplicit type conversion which is forbidden in GLSL 1.10 (introduced in 1.20), while it does not declare #version 120. Probably nvidia/ati does not check for that, but using it this way looks likes violating the spec:
GLSL 1.10.59 spec says in section 5.9 Expressions
The arithmetic binary operators add (+), subtract (-), multiply (*), and divide (/), that operate on integer and floating-point typed expressions (including vectors and matrices). The two operands must be the same type, or one can be a scalar float and the other a float vector or matrix, or one can be a scalar integer and the other an integer vector.
The part of shader that is doing the implicit conversion:
#define NUM_BLUR_TAPS 12
...
float shadowColor = 0.0;
for (i=0; i<NUM_BLUR_TAPS; i++)
shadowColor += ...
shadowColor /= NUM_BLUR_TAPS; // <<< error: float type divided by integer const
Can you confirm / fix / comment?
Thank you
Dexter