GLSL and SM3.0

Seems that new Nvidia Forceware 66.81 supports SM3.0 features in GLSL.

Madelbrot and Julia shaders works perfectly with this new drivers. NV40 owners should try it.


Weren’t you using 66.28’s before these came out? I would’ve thought the feature set was the same.

Well, 66.28 has some of SM3.0 features in GLSL, but not all. I think 66.28 compile fragment shaders in SM2.0. Now, 66.81 compile fragment shaders with SM3.0 instructions.

66.81 are on nv registered developer page too and they suggest developers to use it.


Yeah, I’ve seen you there. I hadn’t found any limitations in 66.28 with preliminary experiments yet. I’ve since installed 66.81 anyway, but ~50MB? Ouch.

Huh? I’ve found 66.81 betas on with 13.2 MB for English and 25.5 MB for international.

I got the devrel one. I just double checked and it’s 50.72MB. I didn’t look at the files after I downloaded it so I’m not sure what’s making it so huge. It’s on another computer and I’m not going to download it here just to check again either :wink: . At the time I was surprised because the sizes you mentioned are what I would expect.

so what are the features that SM 3.0 brings to glsl? and how can they be used ? do they need special directives/extensions/keywords/options to activate them ?

They allow you to do texture lookups in the vertex shader and branching/looping in the fragment shader. No special keywords are required to use these features.

As yooyo said, the Mandelbrot and Julia shaders work, because using a progammable for-loop in a fragment shader compiles now.
For example with iterations going to 200 and beyond per pixel(!), there’s no way you could unroll that:

// Taken from the 3Dlabs mandel shader.
uniform int   maxIterations;
void main (void)
  int iter;
  for (iter = 0; iter < maxIterations && r2 < 4.0; ++iter) 
    r2 = ...;

Texture accesses in vertex shaders now works (hardware displacement mapping).
Branching performance should be better.

This topic was automatically closed 183 days after the last reply. New replies are no longer allowed.