NVidia just made a typo.
/usr/include/GL/glext.h:3178: type specifier omitted for parameter `boolean'
/usr/include/GL/glext.h:3178: parse error before `*' token
Change boolean to GLboolean:
extern GLboolean glAreProgramsResidentNV(GLsizei n, const GLuint *ids, boolean *residences);
extern GLboolean glAreProgramsResidentNV(GLsizei n, const GLuint *ids, GLboolean *residences);
I just found this too with 5336. Probably it crept through because VC++ defines a boolean type for C, whereas gcc doesn't. But that's just a guess. If so, this could cause problems as GLboolean is unsigned char while VC++ boolean might be an int, so the library would have it as 1 unsigned byte while the program would be expecting 4 bytes, signed.
Anyhow 5336 is 20% slower on my Ti4200 than 4496, so I am only using its headers. Mysterious performance problems make me wish for driver source code, not to mention all the headaches poor VIA chipset folks have.
On my system the 3xxx drivers couldn't do TwinView except for Clone -- right and left monitors caused a lockup.
4xxx is slower but works for TwinView, but is prone to occasional lockups. 5xxx is slower still, so I didn't wait around to check its stability.