i965/vs: Fix abs/negate handling on attributes.

Fixes glsl-vs-neg-attribute and glsl-vs-abs-attribute.
This commit is contained in:
Eric Anholt 2011-08-11 16:27:41 -07:00
parent 7642c1de6b
commit 54e66a0a63

View file

@ -65,9 +65,16 @@ vec4_visitor::setup_attributes(int payload_reg)
continue;
int grf = attribute_map[inst->src[i].reg + inst->src[i].reg_offset];
struct brw_reg reg = brw_vec8_grf(grf, 0);
reg.dw1.bits.swizzle = inst->src[i].swizzle;
if (inst->src[i].abs)
reg = brw_abs(reg);
if (inst->src[i].negate)
reg = negate(reg);
inst->src[i].file = HW_REG;
inst->src[i].fixed_hw_reg = brw_vec8_grf(grf, 0);
inst->src[i].fixed_hw_reg.dw1.bits.swizzle = inst->src[i].swizzle;
inst->src[i].fixed_hw_reg = reg;
}
}