From: Alyssa Rosenzweig Date: Tue, 30 Jul 2019 15:09:51 +0000 (-0700) Subject: pan/midgard: Lower texr/texw mixed registers X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=2d2abb08d0eaeb7bf25655bdff4ea8dccee9a504;p=mesa.git 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 --- 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;