[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