diff options
author | Ilia Mirkin <imirkin@alum.mit.edu> | 2014-07-04 18:38:28 -0400 |
---|---|---|
committer | Ilia Mirkin <imirkin@alum.mit.edu> | 2014-07-08 00:14:33 -0400 |
commit | 1065aa92f4e448fbfe47c074f08dded1933a7f1f (patch) | |
tree | 17520fd44ad447de64de35320cfcdcab1e08ee15 /src/gallium/drivers/nouveau | |
parent | 30d91e0eecfe79e0d8515189a59051ee4f21f3da (diff) |
nv50/ir: ignore bias for samplerCubeShadow on nv50
Unfortunately there's no good way to do this on the nv50 shader isa.
Dropping the bias seems preferable to doing the compare post-filtering.
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: <mesa-stable@lists.freedesktop.org>
Diffstat (limited to 'src/gallium/drivers/nouveau')
-rw-r--r-- | src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nv50.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nv50.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nv50.cpp index ed06def24ff..e283424844e 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nv50.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nv50.cpp @@ -797,6 +797,16 @@ NV50LoweringPreSSA::handleTXB(TexInstruction *i) const CondCode cc[4] = { CC_EQU, CC_S, CC_C, CC_O }; int l, d; + // We can't actually apply bias *and* do a compare for a cube + // texture. Since the compare has to be done before the filtering, just + // drop the bias on the floor. + if (i->tex.target == TEX_TARGET_CUBE_SHADOW) { + i->op = OP_TEX; + i->setSrc(3, i->getSrc(4)); + i->setSrc(4, NULL); + return handleTEX(i); + } + handleTEX(i); Value *bias = i->getSrc(i->tex.target.getArgCount()); if (bias->isUniform()) |