diff options
author | Maciej Cencora <m.cencora@gmail.com> | 2009-07-22 22:10:22 +0200 |
---|---|---|
committer | Maciej Cencora <m.cencora@gmail.com> | 2009-07-22 22:10:22 +0200 |
commit | b129c55f428b37325094a3f0da55c337ee94e515 (patch) | |
tree | 26fc9be6941a0d2cdbe04e212a917e0f0bd67d02 /src | |
parent | db40bb028726b10e86cd9d683dc9db18181b638d (diff) |
r300: fix address register handling in NQSSADCE
For address register we always use X component
Diffstat (limited to 'src')
-rw-r--r-- | src/mesa/drivers/dri/r300/radeon_nqssadce.c | 12 |
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; } |