summaryrefslogtreecommitdiffstats
path: root/src/gallium/state_trackers/nine
diff options
context:
space:
mode:
authorAxel Davy <axel.davy@ens.fr>2016-09-25 14:50:32 +0200
committerAxel Davy <axel.davy@ens.fr>2016-10-10 23:43:50 +0200
commit4ed3d5ee571bc25e04759667f632810c6ccb749e (patch)
treeb68b89315c4550be868c89a02b5cde13ecf893d7 /src/gallium/state_trackers/nine
parentd9b8b3196ecb8d84536cf2449d394288e408b1da (diff)
downloadexternal_mesa3d-4ed3d5ee571bc25e04759667f632810c6ccb749e.zip
external_mesa3d-4ed3d5ee571bc25e04759667f632810c6ccb749e.tar.gz
external_mesa3d-4ed3d5ee571bc25e04759667f632810c6ccb749e.tar.bz2
st/nine: Do not pollute rTmp in ff ps
Signed-off-by: Axel Davy <axel.davy@ens.fr> Reviewed-by: Patrick Rudolph <siro@das-labor.org>
Diffstat (limited to 'src/gallium/state_trackers/nine')
-rw-r--r--src/gallium/state_trackers/nine/nine_ff.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/gallium/state_trackers/nine/nine_ff.c b/src/gallium/state_trackers/nine/nine_ff.c
index 680b967..1fc96fb 100644
--- a/src/gallium/state_trackers/nine/nine_ff.c
+++ b/src/gallium/state_trackers/nine/nine_ff.c
@@ -1429,9 +1429,11 @@ nine_ff_build_ps(struct NineDevice9 *device, struct nine_ff_ps_key *key)
if (dim == 4)
ureg_TXP(ureg, ps.rTex, target, texture_coord, ps.s[s]);
else {
- ureg_RCP(ureg, ureg_writemask(ps.rTmp, TGSI_WRITEMASK_X), ureg_scalar(texture_coord, dim-1));
- ureg_MUL(ureg, ps.rTmp, _XXXX(ps.rTmpSrc), texture_coord);
+ struct ureg_dst tmp = ureg_DECL_temporary(ureg);
+ ureg_RCP(ureg, ureg_writemask(tmp, TGSI_WRITEMASK_X), ureg_scalar(texture_coord, dim-1));
+ ureg_MUL(ureg, ps.rTmp, _X(tmp), texture_coord);
ureg_TEX(ureg, ps.rTex, target, ps.rTmpSrc, ps.s[s]);
+ ureg_release_temporary(ureg, tmp);
}
} else {
ureg_TEX(ureg, ps.rTex, target, texture_coord, ps.s[s]);