diff options
author | Nicolai Hähnle <[email protected]> | 2017-09-11 16:40:37 +0200 |
---|---|---|
committer | Nicolai Hähnle <[email protected]> | 2017-10-02 15:07:42 +0200 |
commit | fcae1a64ec0ef96bf90e473893849213ab9c14dd (patch) | |
tree | c6ff8fdcb4f32d8021295ad5be77de2551ebb0a9 /src/compiler/glsl/ast_to_hir.cpp | |
parent | d304c467ba3cdda4ad85a31ca9981cb039e3c1f3 (diff) |
glsl: do not set the 'smooth' qualifier by default on ES shaders
It leads to surprising states with integer inputs and outputs on
vertex processing stages (e.g. geometry stages). Instead, rely on the
driver to choose smooth interpolation by default.
We still allow varyings to match when one stage declares it as smooth
and the other declares it without interpolation qualifiers.
Reviewed-by: Marek Olšák <[email protected]>
Tested-by: Dieter Nützel <[email protected]>
Diffstat (limited to 'src/compiler/glsl/ast_to_hir.cpp')
-rw-r--r-- | src/compiler/glsl/ast_to_hir.cpp | 11 |
1 files changed, 0 insertions, 11 deletions
diff --git a/src/compiler/glsl/ast_to_hir.cpp b/src/compiler/glsl/ast_to_hir.cpp index c46454956d7..1999e68158c 100644 --- a/src/compiler/glsl/ast_to_hir.cpp +++ b/src/compiler/glsl/ast_to_hir.cpp @@ -3126,17 +3126,6 @@ interpret_interpolation_qualifier(const struct ast_type_qualifier *qual, interpolation = INTERP_MODE_NOPERSPECTIVE; else if (qual->flags.q.smooth) interpolation = INTERP_MODE_SMOOTH; - 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))) - /* Section 4.3.9 (Interpolation) of the GLSL ES 3.00 spec says: - * - * "When no interpolation qualifier is present, smooth interpolation - * is used." - */ - interpolation = INTERP_MODE_SMOOTH; else interpolation = INTERP_MODE_NONE; |