From 54e66a0a6327b55f15a7c641ec68da505ff19a35 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 11 Aug 2011 16:27:41 -0700 Subject: [PATCH] i965/vs: Fix abs/negate handling on attributes. Fixes glsl-vs-neg-attribute and glsl-vs-abs-attribute. --- src/mesa/drivers/dri/i965/brw_vec4_emit.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/mesa/drivers/dri/i965/brw_vec4_emit.cpp b/src/mesa/drivers/dri/i965/brw_vec4_emit.cpp index 9ef6ab6..6b0ae42 100644 --- a/src/mesa/drivers/dri/i965/brw_vec4_emit.cpp +++ b/src/mesa/drivers/dri/i965/brw_vec4_emit.cpp @@ -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; } } -- 2.7.4