ATI: Bug in ARB_fragment_program with constants

You can download the program here:

In summary, i have two shaders that are supposedly equivalent. The first one (in “Shaders/ati_bug1.fsh”) shows up my object in white, and all the shader does is to move to the output register the constant vector (0, 1, 0). There is a few additional constants (which are useless in this shader).

The second shader (“Shaders/ati_bug2.fsh”) works: the object appears in green.

You can change the shader used by editing the line 29 of the file “Shaders/atibug_descr.txt”.

The only difference between these two shaders is the order of the instructions in the constants declaration…

I’m really starting to be tired of ATI bugs. I tried both Catalyst 3.9 and 3.10 without success.

I have obviously reported the problem to ATI devrel. Waiting for the answer…