i965: implement OPCODE_TRUNC (round toward zero) on vertex path.
Also, fix some RNDD vs. RNDZ confusion elsewhere.
This commit is contained in:
@@ -753,6 +753,7 @@ ALU2(ADD)
|
||||
ALU2(MUL)
|
||||
ALU1(FRC)
|
||||
ALU1(RNDD)
|
||||
ALU1(RNDZ)
|
||||
ALU2(MAC)
|
||||
ALU2(MACH)
|
||||
ALU1(LZD)
|
||||
|
||||
@@ -439,6 +439,7 @@ ALU2(ADD)
|
||||
ALU2(MUL)
|
||||
ALU1(FRC)
|
||||
ALU1(RNDD)
|
||||
ALU1(RNDZ)
|
||||
ALU2(MAC)
|
||||
ALU2(MACH)
|
||||
ALU1(LZD)
|
||||
|
||||
@@ -1133,6 +1133,10 @@ void brw_vs_emit(struct brw_vs_compile *c )
|
||||
*/
|
||||
emit_swz(c, dst, inst->SrcReg[0] );
|
||||
break;
|
||||
case OPCODE_TRUNC:
|
||||
/* round toward zero */
|
||||
brw_RNDZ(p, dst, args[0]);
|
||||
break;
|
||||
case OPCODE_XPD:
|
||||
emit_xpd(p, dst, args[0], args[1]);
|
||||
break;
|
||||
|
||||
@@ -267,7 +267,7 @@ static void emit_trunc( struct brw_wm_compile *c,
|
||||
struct brw_reg src, dst;
|
||||
dst = get_dst_reg(c, inst, i, 1) ;
|
||||
src = get_src_reg(c, &inst->SrcReg[0], i, 1);
|
||||
brw_RNDD(p, dst, src);
|
||||
brw_RNDZ(p, dst, src);
|
||||
}
|
||||
}
|
||||
brw_set_saturate(p, 0);
|
||||
|
||||
Reference in New Issue
Block a user