Mesa (master): pan/midgard: Lower texr/texw mixed registers

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Jul 30 17:02:26 UTC 2019


Module: Mesa
Branch: master
Commit: 2d2abb08d0eaeb7bf25655bdff4ea8dccee9a504
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=2d2abb08d0eaeb7bf25655bdff4ea8dccee9a504

Author: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Date:   Tue Jul 30 08:09:51 2019 -0700

pan/midgard: Lower texr/texw mixed registers

Conceptually, r28-r29 (as used for reading) and r28-r29 (as used for
writing) aren't registers at all, merely push/pull arrangements. So you
can't feed a texture result back into itself without explicitly moving
in the middle.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>

---

 src/panfrost/midgard/midgard_ra.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/panfrost/midgard/midgard_ra.c b/src/panfrost/midgard/midgard_ra.c
index 60dadae945a..48a8c94bdd7 100644
--- a/src/panfrost/midgard/midgard_ra.c
+++ b/src/panfrost/midgard/midgard_ra.c
@@ -467,8 +467,8 @@ mir_lower_special_reads(compiler_context *ctx)
                 bool collision =
                         (is_alur && (is_ldst || is_texr)) ||
                         (is_ldst && (is_alur || is_texr || is_texw)) ||
-                        (is_texr && (is_alur || is_ldst)) ||
-                        (is_texw && (is_aluw || is_ldst));
+                        (is_texr && (is_alur || is_ldst || is_texw)) ||
+                        (is_texw && (is_aluw || is_ldst || is_texr));
         
                 if (!collision)
                         continue;




More information about the mesa-commit mailing list