Mesa (master): i965: Store the byte address in the VS constant buffer as an integer.
Eric Anholt
anholt at kemper.freedesktop.org
Tue Sep 7 20:00:38 UTC 2010
Module: Mesa
Branch: master
Commit: 24c12e6c7f8aa8c2f4c163d23d740b070bfabfc3
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=24c12e6c7f8aa8c2f4c163d23d740b070bfabfc3
Author: Eric Anholt <eric at anholt.net>
Date: Tue Sep 7 12:53:19 2010 -0700
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.
---
src/mesa/drivers/dri/i965/brw_vs_emit.c | 2 +-
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 49ef974..ad0d00b 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);
More information about the mesa-commit
mailing list