[Mesa-dev] [PATCH] glsl: gl_Max{Vertex, Fragment}UniformComponents exist in all desktop GL versions

Iago Toral itoral at igalia.com
Thu Jul 6 13:48:37 UTC 2017


Yes, I think so, thanks Andres.

Iago

On Thu, 2017-07-06 at 16:45 +0300, Andres Gomez wrote:
> It looks like we could want this into -stable (?)
> 
> On Fri, 2017-06-16 at 12:05 +0200, Iago Toral Quiroga wrote:
> > The current implementation assumed that these were replaced in GLSL
> > >= 4.10
> > by gl_Max{Vertex,Fragment}UniformVectors, however this is not true:
> > both
> > built-ins should be produced from GLSL 4.10 onwards.
> > 
> > This was raised by new CTS tests that are in development.
> > ---
> >  src/compiler/glsl/builtin_variables.cpp | 16 +++++++++-------
> >  1 file changed, 9 insertions(+), 7 deletions(-)
> > 
> > diff --git a/src/compiler/glsl/builtin_variables.cpp
> > b/src/compiler/glsl/builtin_variables.cpp
> > index 405502e..19d427e 100644
> > --- a/src/compiler/glsl/builtin_variables.cpp
> > +++ b/src/compiler/glsl/builtin_variables.cpp
> > @@ -632,8 +632,16 @@
> > builtin_variable_generator::generate_constants()
> >     add_const("gl_MaxDrawBuffers", state->Const.MaxDrawBuffers);
> >  
> >     /* Max uniforms/varyings: GLSL ES counts these in units of
> > vectors; desktop
> > -    * GL counts them in units of "components" or "floats".
> > +    * GL counts them in units of "components" or "floats" and also
> > in units
> > +    * of vectors since GL 4.1
> >      */
> > +   if (!state->es_shader) {
> > +      add_const("gl_MaxFragmentUniformComponents",
> > +                state->Const.MaxFragmentUniformComponents);
> > +      add_const("gl_MaxVertexUniformComponents",
> > +                state->Const.MaxVertexUniformComponents);
> > +   }
> > +
> >     if (state->is_version(410, 100)) {
> >        add_const("gl_MaxVertexUniformVectors",
> >                  state->Const.MaxVertexUniformComponents / 4);
> > @@ -661,16 +669,10 @@
> > builtin_variable_generator::generate_constants()
> >                     state->Const.MaxDualSourceDrawBuffers);
> >        }
> >     } else {
> > -      add_const("gl_MaxVertexUniformComponents",
> > -                state->Const.MaxVertexUniformComponents);
> > -
> >        /* Note: gl_MaxVaryingFloats was deprecated in GLSL 1.30+,
> > but not
> >         * removed
> >         */
> >        add_const("gl_MaxVaryingFloats", state->ctx-
> > >Const.MaxVarying * 4);
> > -
> > -      add_const("gl_MaxFragmentUniformComponents",
> > -                state->Const.MaxFragmentUniformComponents);
> >     }
> >  
> >     /* Texel offsets were introduced in
> > ARB_shading_language_420pack (which
> 
> 


More information about the mesa-dev mailing list