Mesa (master): r600: disallow negative offsets for relative addressing for now
Andre Maasikas
andrem at kemper.freedesktop.org
Mon Dec 21 13:30:04 UTC 2009
Module: Mesa
Branch: master
Commit: 69728a2ae28d11e48b87e51dc3ea2fcc040c40fb
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=69728a2ae28d11e48b87e51dc3ea2fcc040c40fb
Author: Andre Maasikas <amaasikas at gmail.com>
Date: Mon Dec 21 11:47:12 2009 +0200
r600: disallow negative offsets for relative addressing for now
otherwise for example const[ADDR-3] gets us 253 - ALU_SRC_LITERAL which
expects immediate floats to follow and hangs
---
src/mesa/drivers/dri/r600/r700_assembler.c | 10 +++++++++-
1 files changed, 9 insertions(+), 1 deletions(-)
diff --git a/src/mesa/drivers/dri/r600/r700_assembler.c b/src/mesa/drivers/dri/r600/r700_assembler.c
index e10b23b..51692a1 100644
--- a/src/mesa/drivers/dri/r600/r700_assembler.c
+++ b/src/mesa/drivers/dri/r600/r700_assembler.c
@@ -1262,7 +1262,15 @@ GLboolean assemble_src(r700_AssemblerBase *pAsm,
}
pAsm->S[fld].src.rtype = SRC_REG_CONSTANT;
- pAsm->S[fld].src.reg = pILInst->SrcReg[src].Index;
+ if(pILInst->SrcReg[src].Index < 0)
+ {
+ WARN_ONCE("Negative register offsets not supported yet!\n");
+ pAsm->S[fld].src.reg = 0;
+ }
+ else
+ {
+ pAsm->S[fld].src.reg = pILInst->SrcReg[src].Index;
+ }
break;
case PROGRAM_INPUT:
setaddrmode_PVSSRC(&(pAsm->S[fld].src), ADDR_ABSOLUTE);
More information about the mesa-commit
mailing list