[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: Possible nVidia driver bug? - (code sample attached)

Jan Ekholm wrote:

It could also be that not too many use these advanced features of OpenGL
on Linux? Shaders etc are at least in my mental book considered to be
advanced topics.

Where I work we build flight simulator graphics using Linux/OpenGL and (mostly) nVidia graphics hardware. We use shaders absolutely EVERYWHERE on massive realtime render farms and we don't have any special problems.

What's different in your case though is that you are using GLSL and we
are using Cg.  Cg is infinitely better tested than GLSL because it's
been around for several years and GLSL (on nVidia hardware) is less
than a year old.

However, GLSL is the portable solution for OpenGL.  Cg has morphed
into HLSL (which is now a Microsoft-owned quasi-standard) for Direct3D -
so Cg is a dying language.  That's why it's important that people switch
from Cg to GLSL - and that we all work to beat the bugs out of it.  But
it doesn't suprise me that you are seeing odd problems because you are
in relatively new terratory.

The one thing that's kinda encouraging is that the nVidia GLSL compiler
appears to share a LOT of code with their Cg compiler.  We can infer this
because some keywords that Cg uses (but GLSL doesn't) are incorrectly
disallowed as variable names in nVidia's GLSL comiler!

Punting your problem to nVidia is a good idea - but their time is valuable
and unless you work for Id, your access to them is more valuable still!
If you repeatedly bombard them with problems that ultimately turn out to
be your fault, it'll be harder to get them to pay attention to you in the
future.  It could be a case of 'The Little Boy Who Cried Wolf'.

So it's very much worth your while to explore every other avenue and if
you truly cannot find anything wrong at your end, make life as easy as
possible for the guys at nVidia.  eg: Get this to work in a GLUT application
instead of SDL - use a *simple* Makefile and link as few other libraries as
possible, make the code be as simple as it can be and yet still exhibit
the bug, give them a concise description of the problem, the hardware you
used, the driver revisions and any information about how it behaved with
other driver revisions - explain that the problem happens under Windows
as well as Linux, try to get someone to run it on an ATI card and hopefully
be able report that it works OK there.

That way, the next time you need their help, they'll be more likely to
give it because they'll get to know you as someone who doesn't cry
'Wolf' and they'll come to respect your abilities and actually value
your bug reports as genuine contributions.

The second law of Frisbee throwing states: "Never precede any maneuver
by a comment more predictive than "Watch this!"...it turns out that
this also applies to writing Fragment Shaders.
Steve Baker                      (817)619-2657 (Vox/Vox-Mail)
L3Com/Link Simulation & Training (817)619-2466 (Fax)
Work: sjbaker@xxxxxxxx           http://www.link.com
Home: sjbaker1@xxxxxxxxxxx       http://www.sjbaker.org