From 2d2abb08d0eaeb7bf25655bdff4ea8dccee9a504 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Tue, 30 Jul 2019 08:09:51 -0700 Subject: [PATCH] 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 --- 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 60dadae..48a8c94 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; -- 2.7.4