GTX 470 driver issues.

Hi all,

Some issues of the GL4.0 drivers under Vista, to report and to see if others had the same issue(s).

Driver version: 197.44, Vista 32bit, linky:…ternational.exe from

Firstly the driver did NOT recognize the card as is, I modified the .inf file replacing the string 06CD0 with 06CD4. The new value I got from Vista’s device manager, the old value is what was matched to “470 GTX” in the inf file. After doing this the driver installed fine.

Now for GL issues:
(1) doing this:

    for(int i=0;i<some_uniform_int;++i)
        gl_ClipDistance[i]=dot(some_uniform_vec4[i], position);

produced: “lvalue in assignment to complex”.
This error was not reported in the shader compilation log, but in the link log.

getting grungy and doing:


produced: “fatal error C9999: *** exception during compilation ***”

On Linux with, linky:

the driver installed with no issues, but error (1) above did happen where as error (2) did not.

Additionally, changing the code to:

 #define MAX_CLIP_PLANES 6
 for(int i=0;i<MAX_CLIP_PLANES; ++i)
      float r;
      r= (i<number_clip_planes)?
        dot( position, clip_planes[i]):

      gl_ClipDistance[i]=dot( position, some_uniform_ver4[i]);

works, so chances are the GLSL compiler is unrolling the above and avoiding the too complicated lvalue, “gl_ClipDistance[i]”.

Note that under older drivers(such as 195.62) with a GeForce9800GT the original code worked just fine.

Best Regards

Thanks kRogue. We’ll take a look.

(with my NVIDIA hat on)

Hi kRogue,

The index to gl_ClipDistance needs to be an integral constant, or one that the compiler can derive. Basically we need to know ahead of time how big gl_ClipDistance needs to be, and with constant indexes we can figure that out.

The GLSL spec talks about this requirement of gl_ClipDistance on page 87:


i don’t want to cross post, but this also fits in here: