Mesa (11.2): nv50/ir: we can't load local memory directly into an output

Emil Velikov evelikov at kemper.freedesktop.org
Mon Apr 4 11:52:52 UTC 2016


Module: Mesa
Branch: 11.2
Commit: e8b521f8241b18c684b2955b75242e9d6db252a6
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=e8b521f8241b18c684b2955b75242e9d6db252a6

Author: Ilia Mirkin <imirkin at alum.mit.edu>
Date:   Sat Apr  2 17:46:58 2016 -0400

nv50/ir: we can't load local memory directly into an output

This fixes piglit tests like

tests/spec/glsl-1.10/execution/variable-indexing/vs-output-array-float-index-wr.shader_test

and related ones.

Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
Cc: "11.1 11.2" <mesa-stable at lists.freedesktop.org>
(cherry picked from commit 3610b1466d573983d80e3019e8e01ebb97d67d9c)

---

 src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nv50.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nv50.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nv50.cpp
index f56528b..d672b7a 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nv50.cpp
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nv50.cpp
@@ -372,7 +372,8 @@ NV50LegalizeSSA::propagateWriteToOutput(Instruction *st)
       return;
 
    for (int s = 0; di->srcExists(s); ++s)
-      if (di->src(s).getFile() == FILE_IMMEDIATE)
+      if (di->src(s).getFile() == FILE_IMMEDIATE ||
+          di->src(s).getFile() == FILE_MEMORY_LOCAL)
          return;
 
    if (prog->getType() == Program::TYPE_GEOMETRY) {




More information about the mesa-commit mailing list