summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBrian Paul <brianp@vmware.com>2009-03-31 14:25:32 -0600
committerBrian Paul <brianp@vmware.com>2009-04-03 09:07:04 -0600
commita9c62a2340794977a87cba4a352c02fc16f81505 (patch)
treedf0ddcba56715eae02071c6aaaff02e5ee611910 /src
parent5f1ce6b87e837b9f6bc2a4f3e81cf8feea4af2df (diff)
i965: do negation and Abs in get_src_reg_imm()
Fixes regression seen with progs/glsl/bump.c
Diffstat (limited to 'src')
-rw-r--r--src/mesa/drivers/dri/i965/brw_wm_glsl.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_wm_glsl.c b/src/mesa/drivers/dri/i965/brw_wm_glsl.c
index 4e99611be8..67ba59c325 100644
--- a/src/mesa/drivers/dri/i965/brw_wm_glsl.c
+++ b/src/mesa/drivers/dri/i965/brw_wm_glsl.c
@@ -276,7 +276,12 @@ static struct brw_reg get_src_reg_imm(struct brw_wm_compile *c,
const int component = GET_SWZ(src->Swizzle, index);
const GLfloat *param =
c->fp->program.Base.Parameters->ParameterValues[src->Index];
- return brw_imm_f(param[component]);
+ GLfloat value = param[component];
+ if (src->NegateBase)
+ value = -value;
+ if (src->Abs)
+ value = FABSF(value);
+ return brw_imm_f(value);
}
else {
return get_src_reg(c, src, index);