nvc0/ir: fetch shadow value from proper place for TG4 cube array
authorIlia Mirkin <imirkin@alum.mit.edu>
Thu, 24 Apr 2014 04:45:19 +0000 (00:45 -0400)
committerIlia Mirkin <imirkin@alum.mit.edu>
Sat, 26 Apr 2014 16:01:13 +0000 (12:01 -0400)
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp

index ea545c214156675214f144af6ce1866643769ad2..fc418bf4e3cb27fb573aeb74806bdf7daa68a49a 100644 (file)
@@ -1683,7 +1683,10 @@ Converter::handleTEX(Value *dst[4], int R, int S, int L, int C, int Dx, int Dy)
    if (C == 0x0f)
       C = 0x00 | MAX2(tgt.getArgCount(), 2); // guess DC src
 
-   if (tgt.isShadow())
+   if (tgsi.getOpcode() == TGSI_OPCODE_TG4 &&
+       tgt == TEX_TARGET_CUBE_ARRAY_SHADOW)
+      shd = fetchSrc(1, 0);
+   else if (tgt.isShadow())
       shd = fetchSrc(C >> 4, C & 3);
 
    if (texi->op == OP_TXD) {