diff options
author | Samuel Pitoiset <[email protected]> | 2016-04-27 18:27:10 +0200 |
---|---|---|
committer | Samuel Pitoiset <[email protected]> | 2016-05-21 18:32:49 +0200 |
commit | 8aa1fd321dd26a9e3cd348f218f102a6debebe92 (patch) | |
tree | fcaf45f333299c48712d090a3052f05ed663dda8 | |
parent | be4caaf247d8a9908d50e31037421d22bed7a2d6 (diff) |
nv50/ir: fix tex constraints for surface coords on Fermi
Signed-off-by: Samuel Pitoiset <[email protected]>
Reviewed-by: Ilia Mirkin <[email protected]>
-rw-r--r-- | src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp index 65d11f8237a..6b52d7b4d33 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp @@ -2152,6 +2152,12 @@ RegAlloc::InsertConstraintsPass::texConstraintNVC0(TexInstruction *tex) if (tex->op == OP_TXQ) { s = tex->srcCount(0xff); n = 0; + } else if (isSurfaceOp(tex->op)) { + s = tex->tex.target.getDim() + (tex->tex.target.isArray() || tex->tex.target.isCube()); + if (tex->op == OP_SUSTB || tex->op == OP_SUSTP) + n = 4; + else + n = 0; } else { s = tex->tex.target.getArgCount() - tex->tex.target.isMS(); if (!tex->tex.target.isArray() && |