summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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;
}