From 70834d05cd2ac6ccceff3a8cbf7c797c6d3679ba Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Fri, 20 May 2016 00:52:26 +0200 Subject: [PATCH] nv50/ir: fix SUSTx constraints on Kepler To prevent out-of-bounds access and format mismatch we add a predicate on sustp, but we have to account for it when the sources are condensed because a predicate is a source. Using the range 3:6 will only condense the input data and it's always the case. This also fixes constraints when an indirect access is used. This ensures that sources are correctly aligned. Signed-off-by: Samuel Pitoiset Reviewed-by: Ilia Mirkin --- src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp index 7e8bb17..30772e6 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp @@ -2131,9 +2131,7 @@ RegAlloc::InsertConstraintsPass::texConstraintNVE0(TexInstruction *tex) condenseDefs(tex); if (tex->op == OP_SUSTB || tex->op == OP_SUSTP) { - int n = tex->srcCount(0xff); - if (n > 4) - condenseSrcs(tex, 3, n - 1); + condenseSrcs(tex, 3, 6); } else if (isTextureOp(tex->op)) { int n = tex->srcCount(0xff, true); -- 2.7.4