Since we modified the way in which multiple repetitions of the same layout-qualifier-name in a single declaration collapse into the ast_type_qualifier class, we can simplify the merge_[in|out]_qualifier APIs through removing the create_node parameter.
Signed-off-by: Andres Gomez <ago...@igalia.com> --- src/compiler/glsl/ast.h | 4 ++-- src/compiler/glsl/ast_type.cpp | 18 +++++++----------- src/compiler/glsl/glsl_parser.yy | 4 ++-- 3 files changed, 11 insertions(+), 15 deletions(-) diff --git a/src/compiler/glsl/ast.h b/src/compiler/glsl/ast.h index 875506f..f03f1b5 100644 --- a/src/compiler/glsl/ast.h +++ b/src/compiler/glsl/ast.h @@ -758,12 +758,12 @@ struct ast_type_qualifier { bool merge_out_qualifier(YYLTYPE *loc, _mesa_glsl_parse_state *state, const ast_type_qualifier &q, - ast_node* &node, bool create_node); + ast_node* &node); bool merge_in_qualifier(YYLTYPE *loc, _mesa_glsl_parse_state *state, const ast_type_qualifier &q, - ast_node* &node, bool create_node); + ast_node* &node); /** * Push pending layout qualifiers to the global values. diff --git a/src/compiler/glsl/ast_type.cpp b/src/compiler/glsl/ast_type.cpp index ce451c2..2a19293 100644 --- a/src/compiler/glsl/ast_type.cpp +++ b/src/compiler/glsl/ast_type.cpp @@ -368,7 +368,7 @@ bool ast_type_qualifier::merge_out_qualifier(YYLTYPE *loc, _mesa_glsl_parse_state *state, const ast_type_qualifier &q, - ast_node* &node, bool create_node) + ast_node* &node) { void *mem_ctx = state; const bool r = this->merge_qualifier(loc, state, q, false); @@ -402,9 +402,7 @@ ast_type_qualifier::merge_out_qualifier(YYLTYPE *loc, valid_out_mask.flags.q.max_vertices = 1; valid_out_mask.flags.q.prim_type = 1; } else if (state->stage == MESA_SHADER_TESS_CTRL) { - if (create_node) { - node = new(mem_ctx) ast_tcs_output_layout(*loc); - } + node = new(mem_ctx) ast_tcs_output_layout(*loc); valid_out_mask.flags.q.vertices = 1; valid_out_mask.flags.q.explicit_xfb_buffer = 1; valid_out_mask.flags.q.xfb_buffer = 1; @@ -441,7 +439,7 @@ bool ast_type_qualifier::merge_in_qualifier(YYLTYPE *loc, _mesa_glsl_parse_state *state, const ast_type_qualifier &q, - ast_node* &node, bool create_node) + ast_node* &node) { void *mem_ctx = state; bool create_gs_ast = false; @@ -585,12 +583,10 @@ ast_type_qualifier::merge_in_qualifier(YYLTYPE *loc, state->cs_input_local_size_variable_specified = true; } - if (create_node) { - if (create_gs_ast) { - node = new(mem_ctx) ast_gs_input_layout(*loc, q.prim_type); - } else if (create_cs_ast) { - node = new(mem_ctx) ast_cs_input_layout(*loc, q.local_size); - } + if (create_gs_ast) { + node = new(mem_ctx) ast_gs_input_layout(*loc, q.prim_type); + } else if (create_cs_ast) { + node = new(mem_ctx) ast_cs_input_layout(*loc, q.local_size); } return true; diff --git a/src/compiler/glsl/glsl_parser.yy b/src/compiler/glsl/glsl_parser.yy index 6767ce3..8e6c5e8 100644 --- a/src/compiler/glsl/glsl_parser.yy +++ b/src/compiler/glsl/glsl_parser.yy @@ -2933,7 +2933,7 @@ layout_defaults: { $$ = NULL; if (!state->in_qualifier-> - merge_in_qualifier(& @1, state, $1, $$, true)) { + merge_in_qualifier(& @1, state, $1, $$)) { YYERROR; } if (!state->in_qualifier->push_to_global(& @1, state)) { @@ -2944,7 +2944,7 @@ layout_defaults: { $$ = NULL; if (!state->out_qualifier-> - merge_out_qualifier(& @1, state, $1, $$, true)) { + merge_out_qualifier(& @1, state, $1, $$)) { YYERROR; } if (!state->out_qualifier->push_to_global(& @1, state)) { -- 2.9.3 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev