r600g: DP4 also supports writemasking

This commit is contained in:
Christian König
2010-12-14 19:32:08 +01:00
parent 7be5455796
commit a1146c1373
+6 -8
View File
@@ -1668,15 +1668,13 @@ static int tgsi_dp(struct r600_shader_ctx *ctx)
alu.src[j] = r600_src[j];
alu.src[j].chan = tgsi_chan(&inst->Src[j], i);
}
if(inst->Dst[0].Register.WriteMask & (1 << i)) {
r = tgsi_dst(ctx, &inst->Dst[0], i, &alu.dst);
if (r)
return r;
} else {
alu.dst.sel = ctx->temp_reg;
}
r = tgsi_dst(ctx, &inst->Dst[0], i, &alu.dst);
if (r)
return r;
alu.dst.chan = i;
alu.dst.write = 1;
alu.dst.write = (inst->Dst[0].Register.WriteMask >> i) & 1;
/* handle some special cases */
switch (ctx->inst_info->tgsi_opcode) {
case TGSI_OPCODE_DP2: