glGetActiveUniform strange type values

When iterating over the active uniforms in a program (via glGetActiveUniformARB ) I find that the uniform samplers for 1D,2D and 3D textures have unique unknown type identifiers.

Specificialy the type should be one of GL_FLOAT,GL_INT,GL_BOOL etc… but the values that are returned are:

0x8B5D = sampler 1D?
0x8B5E = sampler 2D
0x8B5F = sampler 3D
(possibly others for CUBE and RECT?)

Now since the last identifier names in the spec list are:
GL_FLOAT_MAT2_ARB = 0x8B5A,
GL_FLOAT_MAT3_ARB = 0x8B5B,
GL_FLOAT_MAT4_ARB = 0x8B5C,

These come directly after so it is not just a random value.

So, has the spec been updated so that samplers have their own types (not seen on the web) or is this a driver bug? (Using Nvidia 5200 with leaked 61.12 drivers)

Take a look at the ARB March 04 notes:

Shading Language and related extension specification edits reviewed. There are some functional changes. The glslang array function parameters now have to be sized and can be overloaded on array size. Updated fragment shader spec with mostly trivial changes, but reserved some new sampler type enumerants in addition to int/float/matrix types. This is backwards compatible.

There will be a specification update where glGetActiveUniform returns different values for samplers. So I think this driver has already included that.

Thanks for the info… I hope they release an updated spec soon.

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