Nvidia guys,
I found the NVidia problem. After I compiled and ran >20 versions of my code and found nothing I resorted to reading the web.
http://developer.download.nvidia.com/opengl/glsl/glsl_release_notes.pdf is very interesting.
It says:
Flow Control Limitations and Caveats
NVIDIA’s GLSL implementation does not (currently) provide for arbitrary branching and looping in the fragment domain on the NV30 and NV40 targets. Branching and looping is more general in the vertex domain. Loops will perform best when the iteration count can be determined statically at compile time. Loops based on uniforms are restricted to 255 iterations on NV40, and they are not supported on NV30. It may be best to compile multiple versions with constant loop counts rather than attempting to use a uniform value to control the loop count. The G80 target is significantly more capable with branching and dynamic flow control, so it does not face these caveats.
6XXX series cards are NV40 variants, meaning they cannot run real PS3.0 no matter what the marketing says.
I checked an 8800 and its G80 works fine with my code (as the document says it would).
I guess the 7XXX series with G70 have the same issue as g40 and explains why they dont run my code.
So , to cut a long story short, I dont currently see a way to get the code to work on Nvidia platforms <8800. That said, I will continue to think...as obviously, no point in writing code that doesnt run...
Chris
Chris
Chris