r500_fragprog: Fix RSQ with negative parameters

This commit is contained in:
Nicolai Haehnle 2008-07-06 16:39:31 +02:00
parent 2b2cb56656
commit 056689d457
1 changed files with 2 additions and 1 deletions

View File

@ -784,7 +784,8 @@ static void do_inst(struct r500_pfs_compile_state *cs, struct prog_instruction *
break;
case OPCODE_RSQ:
src[0] = make_src(cs, fpi->SrcReg[0]);
emit_sop(cs, R500_ALPHA_OP_RSQ, fpi->DstReg, src[0], make_sop_swizzle(fpi->SrcReg[0]));
emit_sop(cs, R500_ALPHA_OP_RSQ, fpi->DstReg, src[0],
(make_sop_swizzle(fpi->SrcReg[0]) | (R500_SWIZ_MOD_ABS<<3)) & ~(R500_SWIZ_MOD_NEG<<3));
break;
case OPCODE_SCS:
emit_trig(cs, fpi);