st/vega: Fix VG_BLEND_MULTIPLY.
authorChia-I Wu <olv@lunarg.com>
Sat, 4 Dec 2010 13:02:50 +0000 (21:02 +0800)
committerChia-I Wu <olv@lunarg.com>
Sat, 4 Dec 2010 15:41:30 +0000 (23:41 +0800)
TEMP[1].w will be needed for OUT.w just below.  Use TEMP[0] to store the
intermediate value.

src/gallium/state_trackers/vega/asm_fill.h

index 566f7c95f5ba626402e5829bf815f144bebaaf78..5ff76975e22805fbf6cc3899eca19edfb4ec1c64 100644 (file)
@@ -367,7 +367,7 @@ blend_generic(struct ureg_program *ureg,
             ureg_scalar(dst, TGSI_SWIZZLE_W), ureg_negate(src), src);
       ureg_MAD(ureg, temp[1],
             src_channel_alpha, ureg_negate(dst), dst);
-      ureg_MAD(ureg, temp[1], src, dst, ureg_src(temp[1]));
+      ureg_MAD(ureg, temp[0], src, dst, ureg_src(temp[0]));
       ureg_ADD(ureg, out, ureg_src(temp[0]), ureg_src(temp[1]));
       /* alpha is src over */
       ureg_ADD(ureg, ureg_writemask(out, TGSI_WRITEMASK_W),