In the ARB spec operations like
MUL temp, temp, 0.125
are valid (Taken from issue 75 in the spec). Nvidia drvers seem to have no problem with the above, but the ATI drivers don’t seem to like the 0.125.

Using {0.125,1,1,1}.x in place of the value does work on both ATI and NVidia drivers.

So is the above a ATI bug or am I missing something in the spec.

(I also have a hunch that the ATI drivers accept “{0.125}” as a value but it generates no compile error (should it?), It does not work correctly in the program)

Sounds like a bug, but I’m not in a position to know all the details.

As far as {0.125} is concerned, it’s valid syntax, and will be interpreted as {0.125,0,0,1}. From the spec:

If a program parameter binding matches <paramConstVector>, the
corresponding program parameter variable is bound to the vector (X,Y,Z,W),
where X, Y, Z, and W are the values corresponding to the first, second,
third, and fourth match of <signedFloatConstant>.  If fewer than four
constants are specified, Y, Z, and W assume the values 0.0, 0.0, and 1.0,
if their respective constants are not specified.

[This message has been edited by pbrown (edited 11-24-2002).]