[Mesa-dev] [PATCH] nv50/ir: use levelZero for texgather and non-frag tex/txp ops
Ilia Mirkin
imirkin at alum.mit.edu
Tue Oct 18 04:29:44 UTC 2016
radeonsi also does the same thing. I suspect that this is likely to be a
no-op in reality, but it brings nouveau code closer to what the blob
produces. Plus it makes sense to not try to do auto-derivatives on this.
Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
---
src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp
index e43c951..0e0eecc 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp
@@ -2193,7 +2193,13 @@ Converter::handleTEX(Value *dst[4], int R, int S, int L, int C, int Dx, int Dy)
setTexRS(texi, s, R, S);
- if (tgsi.getOpcode() == TGSI_OPCODE_SAMPLE_C_LZ)
+ if (tgsi.getOpcode() == TGSI_OPCODE_SAMPLE_C_LZ ||
+ tgsi.getOpcode() == TGSI_OPCODE_TG4)
+ texi->tex.levelZero = true;
+ if (prog->getType() != Program::TYPE_FRAGMENT &&
+ (tgsi.getOpcode() == TGSI_OPCODE_TEX ||
+ tgsi.getOpcode() == TGSI_OPCODE_TEX2 ||
+ tgsi.getOpcode() == TGSI_OPCODE_TXP))
texi->tex.levelZero = true;
if (tgsi.getOpcode() == TGSI_OPCODE_TG4 && !tgt.isShadow())
texi->tex.gatherComp = tgsi.getSrc(1).getValueU32(0, info);
--
2.7.3
More information about the mesa-dev
mailing list