GL_ARB_separate_shader_objects requires that all inputs varying remains active.
This flag allow to distinguish input attribute from the input varying. Flag will be used on next commit. Signed-off-by: Gregory Hainaut <gregory.hain...@gmail.com> --- src/glsl/ast_to_hir.cpp | 4 ++++ src/glsl/ir.h | 9 +++++++++ 2 files changed, 13 insertions(+) diff --git a/src/glsl/ast_to_hir.cpp b/src/glsl/ast_to_hir.cpp index 72c6459..16bf849 100644 --- a/src/glsl/ast_to_hir.cpp +++ b/src/glsl/ast_to_hir.cpp @@ -2590,6 +2590,10 @@ apply_type_qualifier_to_variable(const struct ast_type_qualifier *qual, _mesa_shader_stage_to_string(state->stage)); } + if (state->stage == MESA_SHADER_VERTEX && + (qual->flags.q.attribute || qual->flags.q.in)) + var->data.attribute_input = 1; + /* Disallow layout qualifiers which may only appear on layout declarations. */ if (qual->flags.q.prim_type) { _mesa_glsl_error(loc, state, diff --git a/src/glsl/ir.h b/src/glsl/ir.h index f9ddf74..a1f5fa0 100644 --- a/src/glsl/ir.h +++ b/src/glsl/ir.h @@ -627,6 +627,15 @@ public: unsigned precise:1; /** + * Is the variable an input from the Vertex Shader? + * + * GL_ARB_separate_shader_objects doesn't allow the optimization of + * unused varying variable. However unused-attribute must still be + * optimized. + */ + unsigned attribute_input:1; + + /** * Has this variable been used for reading or writing? * * Several GLSL semantic checks require knowledge of whether or not a -- 2.1.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev