From: Jonathan Marek Date: Thu, 5 Sep 2019 15:19:21 +0000 (-0400) Subject: freedreno/a2xx: ir2: fix saturate in cp X-Git-Tag: upstream/19.3.0~2191 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=19e62fec608a0864e8fabd8dc46011dc56d24c88;p=platform%2Fupstream%2Fmesa.git freedreno/a2xx: ir2: fix saturate in cp Signed-off-by: Jonathan Marek Reviewed-by: Rob Clark Reviewed-by: Eric Anholt --- diff --git a/src/gallium/drivers/freedreno/a2xx/ir2_cp.c b/src/gallium/drivers/freedreno/a2xx/ir2_cp.c index fa15588..0e16bda 100644 --- a/src/gallium/drivers/freedreno/a2xx/ir2_cp.c +++ b/src/gallium/drivers/freedreno/a2xx/ir2_cp.c @@ -68,6 +68,9 @@ void cp_src(struct ir2_context *ctx) if (!is_mov(p)) break; + if (p->alu.saturate) + break; + /* cant apply abs to const src, const src only for alu */ if (p->src[0].type == IR2_SRC_CONST && (src->abs || instr->type != IR2_ALU)) @@ -200,6 +203,7 @@ void cp_export(struct ir2_context *ctx) p->is_ssa = true; p->ssa.ncomp = 0; memset(p->ssa.comp, 0, sizeof(p->ssa.comp)); + p->alu.saturate |= instr->alu.saturate; switch (instr->alu.vector_opc) { case PRED_SETE_PUSHv ... PRED_SETGTE_PUSHv: