diff options
author | Nian Wu <nian.wu@intel.com> | 2007-03-26 17:00:29 +0800 |
---|---|---|
committer | Nian Wu <nian.wu@intel.com> | 2007-03-26 17:00:29 +0800 |
commit | ee9bc897f8ea361539c5f422fdecc2326271e673 (patch) | |
tree | 42396ed93352516dc1da6cb23c5b82679fb5ce47 /src/mesa/drivers/dri/r300/r300_fragprog.c | |
parent | 1b354bb5e4c4524533a8f2c3293df73a403e011a (diff) | |
parent | 42aaa548a1020be5d40b3dce9448d8004b1ef947 (diff) |
Merge git://proxy01.pd.intel.com:9419/git/mesa/mesa into crestline
Diffstat (limited to 'src/mesa/drivers/dri/r300/r300_fragprog.c')
-rw-r--r-- | src/mesa/drivers/dri/r300/r300_fragprog.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/mesa/drivers/dri/r300/r300_fragprog.c b/src/mesa/drivers/dri/r300/r300_fragprog.c index 68a75ec7f0..e01f56d99d 100644 --- a/src/mesa/drivers/dri/r300/r300_fragprog.c +++ b/src/mesa/drivers/dri/r300/r300_fragprog.c @@ -934,6 +934,9 @@ static void emit_tex(struct r300_fragment_program *rp, int hwsrc, hwdest; GLuint tempreg = 0; + uin = cs->used_in_node; + din = cs->dest_in_node; + /* Resolve source/dest to hardware registers */ if (opcode != R300_FPITX_OP_KIL) { if (fpi->TexSrcTarget == TEXTURE_RECT_INDEX) { @@ -958,6 +961,10 @@ static void emit_tex(struct r300_fragment_program *rp, emit_arith(rp, PFS_OP_MAD, tempreg, WRITEMASK_XYZW, coord, factorreg, pfs_zero, 0); + /* Ensure correct node indirection */ + uin = cs->used_in_node; + din = cs->dest_in_node; + hwsrc = t_hw_src(rp, tempreg, GL_TRUE); } else { hwsrc = t_hw_src(rp, coord, GL_TRUE); @@ -986,8 +993,6 @@ static void emit_tex(struct r300_fragment_program *rp, hwsrc = t_hw_src(rp, coord, GL_TRUE); } - din = cs->dest_in_node; - uin = cs->used_in_node; /* Indirection if source has been written in this node, or if the * dest has been read/written in this node |