From: Marek Olšák Date: Thu, 16 Feb 2017 16:11:30 +0000 (+0100) Subject: tgsi/lowering: stop using TGSI_OPCODE_CLAMP X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=73d1c8c686a8e8fe600098cbf8a4f8b27acef105;p=mesa.git tgsi/lowering: stop using TGSI_OPCODE_CLAMP v2: do it correctly Reviewed-by: Dave Airlie Reviewed-by: Nicolai Hähnle --- diff --git a/src/gallium/auxiliary/tgsi/tgsi_lowering.c b/src/gallium/auxiliary/tgsi/tgsi_lowering.c index bf6cbb361a9..c26c13b5e58 100644 --- a/src/gallium/auxiliary/tgsi/tgsi_lowering.c +++ b/src/gallium/auxiliary/tgsi/tgsi_lowering.c @@ -572,16 +572,25 @@ transform_lit(struct tgsi_transform_context *tctx, reg_src(&new_inst.Src[1], &ctx->imm, SWIZ(X, X, _, _)); tctx->emit_instruction(tctx, &new_inst); - /* CLAMP tmpA.z, src.w, -imm{128.0}, imm{128.0} */ + /* MIN tmpA.z, src.w, imm{128.0} */ new_inst = tgsi_default_full_instruction(); - new_inst.Instruction.Opcode = TGSI_OPCODE_CLAMP; + new_inst.Instruction.Opcode = TGSI_OPCODE_MIN; new_inst.Instruction.NumDstRegs = 1; reg_dst(&new_inst.Dst[0], &ctx->tmp[A].dst, TGSI_WRITEMASK_Z); - new_inst.Instruction.NumSrcRegs = 3; + new_inst.Instruction.NumSrcRegs = 2; reg_src(&new_inst.Src[0], src, SWIZ(_, _, W, _)); reg_src(&new_inst.Src[1], &ctx->imm, SWIZ(_, _, Z, _)); + tctx->emit_instruction(tctx, &new_inst); + + /* MAX tmpA.z, tmpA.z, -imm{128.0} */ + new_inst = tgsi_default_full_instruction(); + new_inst.Instruction.Opcode = TGSI_OPCODE_MAX; + new_inst.Instruction.NumDstRegs = 1; + reg_dst(&new_inst.Dst[0], &ctx->tmp[A].dst, TGSI_WRITEMASK_Z); + new_inst.Instruction.NumSrcRegs = 2; + reg_src(&new_inst.Src[0], &ctx->tmp[A].src, SWIZ(_, _, Z, _)); + reg_src(&new_inst.Src[1], &ctx->imm, SWIZ(_, _, Z, _)); new_inst.Src[1].Register.Negate = true; - reg_src(&new_inst.Src[2], &ctx->imm, SWIZ(_, _, Z, _)); tctx->emit_instruction(tctx, &new_inst); /* LG2 tmpA.y, tmpA.y */