summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2010-08-28 18:10:09 +0200
committerChristoph Bumiller <e0425955@student.tuwien.ac.at>2010-09-01 18:02:50 +0200
commite02c63bc10fd935537441917a10fef63fb3f9bfa (patch)
tree87655437ed41d44a7c1d75549171e26108040bd5 /src
parent7145ab214f1bd0d84671936dddb87db05f2861f6 (diff)
nv50: DPH
Diffstat (limited to 'src')
-rw-r--r--src/gallium/drivers/nv50/nv50_tgsi_to_nc.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/gallium/drivers/nv50/nv50_tgsi_to_nc.c b/src/gallium/drivers/nv50/nv50_tgsi_to_nc.c
index 0ea2912846..5ac61f108e 100644
--- a/src/gallium/drivers/nv50/nv50_tgsi_to_nc.c
+++ b/src/gallium/drivers/nv50/nv50_tgsi_to_nc.c
@@ -1337,6 +1337,13 @@ bld_instruction(struct bld_context *bld,
FOR_EACH_DST0_ENABLED_CHANNEL(c, insn)
dst0[c] = temp;
break;
+ case TGSI_OPCODE_DPH:
+ src0 = bld_dot(bld, insn, 3);
+ src1 = emit_fetch(bld, insn, 1, 3);
+ temp = bld_insn_2(bld, NV_OP_ADD, src0, src1);
+ FOR_EACH_DST0_ENABLED_CHANNEL(c, insn)
+ dst0[c] = temp;
+ break;
case TGSI_OPCODE_DST:
if (insn->Dst[0].Register.WriteMask & 1)
dst0[0] = bld_imm_f32(bld, 1.0f);