On 11/29/2015 04:11 PM, Ilia Mirkin wrote:
Under what circumstances can you get into this code and not be a texture op?

This only happens with surface ops. In this example, it's related to sustp. I don't think we need to add that texture mask for surface ops
because we don't do that for nve4+.

Note that the commit message and the description need to be adjusted.


On Sun, Nov 29, 2015 at 9:57 AM, Samuel Pitoiset
<samuel.pitoi...@gmail.com> wrote:
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.pitoi...@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

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to