From: Maciej Cencora Date: Wed, 22 Jul 2009 20:10:22 +0000 (+0200) Subject: r300: fix address register handling in NQSSADCE X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b129c55f428b37325094a3f0da55c337ee94e515;p=mesa.git r300: fix address register handling in NQSSADCE For address register we always use X component --- diff --git a/src/mesa/drivers/dri/r300/radeon_nqssadce.c b/src/mesa/drivers/dri/r300/radeon_nqssadce.c index 840c9733b16..202a8532b6d 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; }