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

Iago Toral itoral at igalia.com
Tue Feb 16 07:26:12 UTC 2016


On Tue, 2016-02-16 at 11:03 +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. The spec is not clear what to for
> deskto GL so leave it as is for now.
> 
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=92743
> ---
>  src/compiler/glsl/ast_to_hir.cpp | 11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/src/compiler/glsl/ast_to_hir.cpp b/src/compiler/glsl/ast_to_hir.cpp
> index b639378..4203cd5 100644
> --- a/src/compiler/glsl/ast_to_hir.cpp
> +++ b/src/compiler/glsl/ast_to_hir.cpp
> @@ -2750,6 +2750,17 @@ interpret_interpolation_qualifier(const struct ast_type_qualifier *qual,
>                            "vertex shader inputs or fragment shader outputs",
>                            interpolation_string(interpolation));
>        }
> +   } else if (state->es_shader &&
> +              ((mode == ir_var_shader_in &&
> +                state->stage != MESA_SHADER_VERTEX) ||
> +               (mode == ir_var_shader_out &&
> +                state->stage != MESA_SHADER_FRAGMENT))) {
> +      /* From Section 4.3.9 (Interpolation) of the GLSL ES spec:
> +       *
> +       *    " When no interpolation qualifier is present, smooth interpolation
> +       *    is used."
> +       */
> +      interpolation = INTERP_QUALIFIER_SMOOTH;
>     }
>  
>     return interpolation;

Reviewed-by: Iago Toral Quiroga <itoral at igalia.com>




More information about the mesa-dev mailing list