From: "\"Ian Romanick\"" <i...@freedesktop.org> From: Ian Romanick <ian.d.roman...@intel.com>
Signed-off-by: Ian Romanick <ian.d.roman...@intel.com> --- src/compiler/glsl/lower_if_to_cond_assign.cpp | 22 ++++++++----------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/src/compiler/glsl/lower_if_to_cond_assign.cpp b/src/compiler/glsl/lower_if_to_cond_assign.cpp index 0d6aa00..42163c3 100644 --- a/src/compiler/glsl/lower_if_to_cond_assign.cpp +++ b/src/compiler/glsl/lower_if_to_cond_assign.cpp @@ -189,22 +189,18 @@ move_block_to_cond_assign(void *mem_ctx, _mesa_set_search( set, assign->lhs->variable_referenced()) != NULL; - if (!assign->condition) { - if (assign_to_cv) { - assign->rhs = - new(mem_ctx) ir_expression(ir_binop_logic_and, - glsl_type::bool_type, - cond_expr->clone(mem_ctx, NULL), - assign->rhs); - } else { - assign->condition = cond_expr->clone(mem_ctx, NULL); - } - } else { - assign->condition = + if (assign_to_cv) { + assign->rhs = new(mem_ctx) ir_expression(ir_binop_logic_and, glsl_type::bool_type, cond_expr->clone(mem_ctx, NULL), - assign->condition); + assign->rhs); + } else { + assign->rhs = + new(mem_ctx) ir_expression(ir_triop_csel, + cond_expr->clone(mem_ctx, NULL), + assign->rhs, + assign->lhs->clone(mem_ctx, NULL)); } } } -- 2.9.5 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev