summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2010-09-07 12:53:19 -0700
committerEric Anholt <eric@anholt.net>2010-09-07 13:00:22 -0700
commit24c12e6c7f8aa8c2f4c163d23d740b070bfabfc3 (patch)
tree9ef700af26932f0212ac8ec9cdb2fdc40cd3e6bc
parent32b84ef4ca50998914184fc4600d8e43674a9a22 (diff)
i965: Store the byte address in the VS constant buffer as an integer.
We carefully multiplied our two ints (since we want to be precise after all) then stored them in a float, which is not specced to really work, in addition to wasting precision. Fixes vp-arl-constant-array-huge-* things since the assertions were added.
-rw-r--r--src/mesa/drivers/dri/i965/brw_vs_emit.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_vs_emit.c b/src/mesa/drivers/dri/i965/brw_vs_emit.c
index 49ef9742a2..ad0d00b87c 100644
--- a/src/mesa/drivers/dri/i965/brw_vs_emit.c
+++ b/src/mesa/drivers/dri/i965/brw_vs_emit.c
@@ -954,7 +954,7 @@ get_reladdr_constant(struct brw_vs_compile *c,
struct brw_compile *p = &c->func;
struct brw_reg const_reg = c->current_const[argIndex].reg;
struct brw_reg addrReg = c->regs[PROGRAM_ADDRESS][0];
- struct brw_reg byte_addr_reg = get_tmp(c);
+ struct brw_reg byte_addr_reg = retype(get_tmp(c), BRW_REGISTER_TYPE_D);
assert(argIndex < 3);