[Mesa-dev] [PATCH] glsl: do not set the 'smooth' qualifier by default on ES shaders

Nicolai Hähnle nhaehnle at gmail.com
Mon Sep 11 14:44:30 UTC 2017


From: Nicolai Hähnle <nicolai.haehnle at amd.com>

It breaks integer inputs and outputs on vertex processing stages
(e.g. geometry stages). Instead, rely on the driver to choose
smooth interpolation by default.
---

How about this instead? I haven't fully thought it through, but
that's where the INTERP_MODE_SMOOTH is coming from.

To be honest I'm not 100% sure about what INTERP_MODE_NONE can
mean, but I think it's definitely better than removing the (very
valid!) assertion in the packing code.

---
 src/compiler/glsl/ast_to_hir.cpp | 11 -----------
 1 file changed, 11 deletions(-)

diff --git a/src/compiler/glsl/ast_to_hir.cpp b/src/compiler/glsl/ast_to_hir.cpp
index 98d2f94e129..cb42041642d 100644
--- a/src/compiler/glsl/ast_to_hir.cpp
+++ b/src/compiler/glsl/ast_to_hir.cpp
@@ -3119,31 +3119,20 @@ interpret_interpolation_qualifier(const struct ast_type_qualifier *qual,
                                   struct _mesa_glsl_parse_state *state,
                                   YYLTYPE *loc)
 {
    glsl_interp_mode interpolation;
    if (qual->flags.q.flat)
       interpolation = INTERP_MODE_FLAT;
    else if (qual->flags.q.noperspective)
       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;
 
    validate_interpolation_qualifier(state, loc,
                                     interpolation,
                                     qual, var_type, mode);
 
    return interpolation;
 }
 
-- 
2.11.0



More information about the mesa-dev mailing list