[Mesa-dev] GLSL 1.40 and fixed function

Ian Romanick idr at freedesktop.org
Tue Mar 27 10:31:23 PDT 2012


On 03/26/2012 01:35 PM, Eric Anholt wrote:
> I've got a question for GLSL 1.40 that could use some interpretation:
>
> Section 1.2.5 in the spec says:
>      "The following features, previously deprecated, are removed:
>       ...
>       Fixed functionality for a programmable stage. Supply shaders for
>       all stages currently being used."
>
> What exactly does this mean?  Undefined results?  Link error?  Draw
> time error?  I couldn't find anything explicit in the 3.1 core spec
> (since it doesn't have fixed function, so it doesn't really explain
> interaction with it) or the compat spec (since it has
> ARB_compatibility, so that deprecated functionality is re-allowed).

At the bottom of that list is also the line:

     "Removed features were recast under the ARB_compatibility
     extension, within this specification."

I believe this implies the same link error as in ES 2.0.  The wording is 
weird.  I thought we ended up saying something more clear than this, but 
it was a long time ago.

> I think my resolution would be: Don't expose GLSL 1.40 outside of a GL
> 3.1+ core context, thus dodging the question of how to interact between
> the FF and GLSL 1.40 without GL_ARB_compatibility exposed.

I think that's reasonable.  Though, this may lead to people wanting 
EXT_gpu_shader4 to get UBOs in some apps.  I guess we can cross that 
bridge when we come to it.

There is also a requirement that shaders from different stage must have 
the same version.  We could just enable the same all-stages linker check 
if any stage is 1.40 that we already have for ES shaders.

It's not a huge deal to me either way.


More information about the mesa-dev mailing list