diff options
author | Samuel Pitoiset <[email protected]> | 2016-05-20 00:52:26 +0200 |
---|---|---|
committer | Samuel Pitoiset <[email protected]> | 2016-05-21 16:06:14 +0200 |
commit | 70834d05cd2ac6ccceff3a8cbf7c797c6d3679ba (patch) | |
tree | ee6cd7080e91e6351bfaa6fddee5605ca56c09b1 /src/gallium/drivers/nouveau | |
parent | 9c0d16adc16e53f8d978eb0e8857071fbd1f07cd (diff) |
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 <[email protected]>
Reviewed-by: Ilia Mirkin <[email protected]>
Diffstat (limited to 'src/gallium/drivers/nouveau')
-rw-r--r-- | src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp | 4 |
1 files changed, 1 insertions, 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 7e8bb17fb25..30772e6363e 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); |