[Mesa-dev] [PATCH 2/2] glsl: set user defined varyings to smooth by default

Timothy Arceri t_arceri at yahoo.com.au
Tue Feb 16 00:07:00 UTC 2016


On Tue, 2016-02-16 at 09:04 +1100, Timothy Arceri wrote:
> On Mon, 2016-02-15 at 16:12 +0100, Iago Toral wrote:
> > On Mon, 2016-02-15 at 18:38 +1100, Timothy Arceri wrote:
> > > This is usually handled by the backends in order to handle the
> > > various interactions with the gl_*Color built-ins.
> > > 
> > > The problem is this means linking will fail if one side on the
> > > interface adds the smooth qualifier to the varying and the other
> > > side just uses the default even though they match.
> > > 
> > > This fixes various deqp tests and should have no impact on
> > > built-ins as they generate GLSL IR directly.
> > > 
> > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=92743
> > > ---
> > >  src/compiler/glsl/ast_to_hir.cpp | 5 +++++
> > >  1 file changed, 5 insertions(+)
> > > 
> > > diff --git a/src/compiler/glsl/ast_to_hir.cpp
> > > b/src/compiler/glsl/ast_to_hir.cpp
> > > index b639378..47d52ee 100644
> > > --- a/src/compiler/glsl/ast_to_hir.cpp
> > > +++ b/src/compiler/glsl/ast_to_hir.cpp
> > > @@ -2750,6 +2750,11 @@ interpret_interpolation_qualifier(const
> > > struct ast_type_qualifier *qual,
> > >                            "vertex shader inputs or fragment
> > > shader
> > > outputs",
> > >                            interpolation_string(interpolation));
> > >        }
> > > +   } else if ((mode == ir_var_shader_in &&
> > > +               state->stage != MESA_SHADER_VERTEX) ||
> > > +              (mode == ir_var_shader_out &&
> > > +               state->stage != MESA_SHADER_FRAGMENT)) {
> > > +      interpolation = INTERP_QUALIFIER_SMOOTH;
> > >     }
> > 
> > The GLES spec explicitly says that in the absence of an interp
> > qualifier
> > smooth is used, but I can't find the same statement in the desktop
> > GLSL
> > spec. Should we make this ES specific?
> 
> I couldn't find it in the spec either thats why I didn't send this
> out
> last year when I wrote it. However the OpenGL wiki says thats what it
> is by default, and thats what our implementation does after
> validation
> 
> I'll write a piglit test to see what AMD and Nvidia do on the desktop
> just to be sure.

They are inconsitent even not failing to link when they should so I
just sent a patch to change this for ES.

> 
> Thanks for taking a look.
> 
> > 
> > Iago
> > 
> > _______________________________________________
> > mesa-dev mailing list
> > mesa-dev at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/mesa-dev
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list