Mesa (master): nv50: fix TEX for WriteMask not equal 0xf
Christoph Bumiller
chrisbmr at kemper.freedesktop.org
Fri Sep 25 09:02:06 UTC 2009
Module: Mesa
Branch: master
Commit: 5f4f7ad965c40327f16297606ed4f425598bfc2c
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=5f4f7ad965c40327f16297606ed4f425598bfc2c
Author: Christoph Bumiller <e0425955 at student.tuwien.ac.at>
Date: Fri Sep 25 10:53:01 2009 +0200
nv50: fix TEX for WriteMask not equal 0xf
If you e.g. only need alpha, it ends up in the first reg,
not the last, as it would when reading rgb too.
---
src/gallium/drivers/nv50/nv50_program.c | 9 +++++----
1 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/src/gallium/drivers/nv50/nv50_program.c b/src/gallium/drivers/nv50/nv50_program.c
index 272fd8d..576d075 100644
--- a/src/gallium/drivers/nv50/nv50_program.c
+++ b/src/gallium/drivers/nv50/nv50_program.c
@@ -1166,10 +1166,11 @@ emit_tex(struct nv50_pc *pc, struct nv50_reg **dst, unsigned mask,
emit(pc, e);
#if 1
- if (mask & 1) emit_mov(pc, dst[0], t[0]);
- if (mask & 2) emit_mov(pc, dst[1], t[1]);
- if (mask & 4) emit_mov(pc, dst[2], t[2]);
- if (mask & 8) emit_mov(pc, dst[3], t[3]);
+ c = 0;
+ if (mask & 1) emit_mov(pc, dst[0], t[c++]);
+ if (mask & 2) emit_mov(pc, dst[1], t[c++]);
+ if (mask & 4) emit_mov(pc, dst[2], t[c++]);
+ if (mask & 8) emit_mov(pc, dst[3], t[c]);
free_temp4(pc, t);
#else
More information about the mesa-commit
mailing list