summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaciej Cencora <m.cencora@gmail.com>2009-07-22 22:10:22 +0200
committerMaciej Cencora <m.cencora@gmail.com>2009-07-22 22:10:22 +0200
commitb129c55f428b37325094a3f0da55c337ee94e515 (patch)
tree26fc9be6941a0d2cdbe04e212a917e0f0bd67d02
parentdb40bb028726b10e86cd9d683dc9db18181b638d (diff)
r300: fix address register handling in NQSSADCE
For address register we always use X component
-rw-r--r--src/mesa/drivers/dri/r300/radeon_nqssadce.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/mesa/drivers/dri/r300/radeon_nqssadce.c b/src/mesa/drivers/dri/r300/radeon_nqssadce.c
index 840c9733b1..202a8532b6 100644
--- a/src/mesa/drivers/dri/r300/radeon_nqssadce.c
+++ b/src/mesa/drivers/dri/r300/radeon_nqssadce.c
@@ -117,13 +117,15 @@ static struct prog_instruction* track_used_srcreg(struct nqssadce_state* s,
struct register_state *regstate;
- if (inst->SrcReg[src].RelAddr)
+ if (inst->SrcReg[src].RelAddr) {
regstate = get_reg_state(s, PROGRAM_ADDRESS, 0);
- else
+ if (regstate)
+ regstate->Sourced |= WRITEMASK_X;
+ } else {
regstate = get_reg_state(s, inst->SrcReg[src].File, inst->SrcReg[src].Index);
-
- if (regstate)
- regstate->Sourced |= deswz_source & 0xf;
+ if (regstate)
+ regstate->Sourced |= deswz_source & 0xf;
+ }
return inst;
}