mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-08 23:40:12 +01:00
nvfx: implement DP2 in vp and fp
This commit is contained in:
parent
4aec8aa2e3
commit
32d2525d64
2 changed files with 10 additions and 0 deletions
|
|
@ -573,6 +573,11 @@ nvfx_fragprog_parse_instruction(struct nvfx_context* nvfx, struct nvfx_fpc *fpc,
|
|||
nvfx_fp_emit(fpc, arith(sat, DDY, dst, mask, src[0], none, none));
|
||||
}
|
||||
break;
|
||||
case TGSI_OPCODE_DP2:
|
||||
tmp = nvfx_src(temp(fpc));
|
||||
nvfx_fp_emit(fpc, arith(0, MUL, tmp.reg, NVFX_FP_MASK_X | NVFX_FP_MASK_Y, src[0], src[1], none));
|
||||
nvfx_fp_emit(fpc, arith(0, ADD, dst, mask, swz(tmp, X, X, X, X), swz(tmp, Y, Y, Y, Y), none));
|
||||
break;
|
||||
case TGSI_OPCODE_DP3:
|
||||
nvfx_fp_emit(fpc, arith(sat, DP3, dst, mask, src[0], src[1], none));
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -514,6 +514,11 @@ nvfx_vertprog_parse_instruction(struct nvfx_context* nvfx, struct nvfx_vpc *vpc,
|
|||
case TGSI_OPCODE_COS:
|
||||
nvfx_vp_emit(vpc, arith(SCA, COS, dst, mask, none, none, src[0]));
|
||||
break;
|
||||
case TGSI_OPCODE_DP2:
|
||||
tmp = nvfx_src(temp(vpc));
|
||||
nvfx_vp_emit(vpc, arith(VEC, MUL, tmp.reg, NVFX_VP_MASK_X | NVFX_VP_MASK_Y, src[0], src[1], none));
|
||||
nvfx_vp_emit(vpc, arith(VEC, ADD, dst, mask, swz(tmp, X, X, X, X), swz(tmp, Y, Y, Y, Y), none));
|
||||
break;
|
||||
case TGSI_OPCODE_DP3:
|
||||
nvfx_vp_emit(vpc, arith(VEC, DP3, dst, mask, src[0], src[1], none));
|
||||
break;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue