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: http://developer.download.nvidia.com/ope…ternational.exe from http://developer.nvidia.com/object/opengl_driver.html.
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:
gl_ClipVertex=position;
produced: “fatal error C9999: *** exception during compilation ***”
On Linux with 195.36.07.04, linky: http://developer.download.nvidia.com/opengl/4.0/linux/NVIDIA-Linux-x86-195.36.07.04-pkg1.run
the driver installed with no issues, but error (1) above did happen where as error (2) did not.
Additionally, changing the code to:
#ifndef MAX_CLIP_PLANES
#define MAX_CLIP_PLANES 6
#endif
for(int i=0;i<MAX_CLIP_PLANES; ++i)
{
float r;
r= (i<number_clip_planes)?
dot( position, clip_planes[i]):
1.0;
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
-Kevin