[Mesa-dev] [PATCH] nv50/ir: do not call textureMask() for non-texture ops

Samuel Pitoiset samuel.pitoiset at gmail.com
Sun Nov 29 06:57:10 PST 2015


This fixes a segmentation fault with the 'test_surface_st' test from
src/gallium/tests/trivial/compute.c on Fermi.

While we are it, apply the same change for Tesla.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
---
 src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp
index 7859c8e..7b183ea 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp
@@ -2046,7 +2046,8 @@ RegAlloc::InsertConstraintsPass::texConstraintNVC0(TexInstruction *tex)
 {
    int n, s;
 
-   textureMask(tex);
+   if (isTextureOp(tex->op))
+      textureMask(tex);
 
    if (tex->op == OP_TXQ) {
       s = tex->srcCount(0xff);
@@ -2077,7 +2078,8 @@ RegAlloc::InsertConstraintsPass::texConstraintNV50(TexInstruction *tex)
    if (pred)
       tex->setPredicate(tex->cc, NULL);
 
-   textureMask(tex);
+   if (isTextureOp(tex->op))
+      textureMask(tex);
 
    assert(tex->defExists(0) && tex->srcExists(0));
    // make src and def count match
-- 
2.6.2



More information about the mesa-dev mailing list