summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/r300/r300_state_tcl.c
diff options
context:
space:
mode:
authorCorbin Simpson <MostAwesomeDude@gmail.com>2009-04-06 23:36:34 -0700
committerCorbin Simpson <MostAwesomeDude@gmail.com>2009-04-06 23:36:34 -0700
commit799f43f2e01be8b3143c44fbd45485220174febd (patch)
treec828d954a763e798c48c392c5e435aacd621a8b7 /src/gallium/drivers/r300/r300_state_tcl.c
parent00bb3deed24bd721686d6db45506fffb2a442dc9 (diff)
r300-gallium: vs: Add MAD.
Diffstat (limited to 'src/gallium/drivers/r300/r300_state_tcl.c')
-rw-r--r--src/gallium/drivers/r300/r300_state_tcl.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/gallium/drivers/r300/r300_state_tcl.c b/src/gallium/drivers/r300/r300_state_tcl.c
index 24e522ce8b..44365f563c 100644
--- a/src/gallium/drivers/r300/r300_state_tcl.c
+++ b/src/gallium/drivers/r300/r300_state_tcl.c
@@ -121,6 +121,8 @@ static uint32_t r300_vs_op(unsigned op)
case TGSI_OPCODE_MOV:
case TGSI_OPCODE_SWZ:
return R300_VE_ADD;
+ case TGSI_OPCODE_MAD:
+ return R300_PVS_DST_MACRO_INST | R300_PVS_MACRO_OP_2CLK_MADD;
default:
break;
}
@@ -198,6 +200,11 @@ static void r300_vs_instruction(struct r300_vertex_shader* vs,
&inst->FullDstRegisters[0], inst->Instruction.Opcode,
2);
break;
+ case TGSI_OPCODE_MAD:
+ r300_vs_emit_inst(vs, assembler, inst->FullSrcRegisters,
+ &inst->FullDstRegisters[0], inst->Instruction.Opcode,
+ 3);
+ break;
case TGSI_OPCODE_END:
break;
default: