Mesa (main): pan/bi: Don't set td in blend shaders

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Aug 20 20:29:21 UTC 2021


Module: Mesa
Branch: main
Commit: 710498e424e31ad4f308f52a03338ac30a70271b
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=710498e424e31ad4f308f52a03338ac30a70271b

Author: Alyssa Rosenzweig <alyssa at collabora.com>
Date:   Wed Aug 18 21:38:07 2021 +0000

pan/bi: Don't set td in blend shaders

This breaks screen-space derivatives in a shader that uses multiple
render targets, if the derivative calculation is scheduled after a BLEND
instruction calling into a blend shader.

Signed-off-by: Alyssa Rosenzweig <alyssa at collabora.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12478>

---

 src/panfrost/bifrost/bi_helper_invocations.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/panfrost/bifrost/bi_helper_invocations.c b/src/panfrost/bifrost/bi_helper_invocations.c
index 184796eae74..fbd2ddfa621 100644
--- a/src/panfrost/bifrost/bi_helper_invocations.c
+++ b/src/panfrost/bifrost/bi_helper_invocations.c
@@ -133,8 +133,9 @@ void
 bi_analyze_helper_terminate(bi_context *ctx)
 {
         /* Other shader stages do not have a notion of helper threads, so we
-         * can skip the analysis */
-        if (ctx->stage != MESA_SHADER_FRAGMENT)
+         * can skip the analysis. Don't run for blend shaders, either, since
+         * they run in the context of another shader that we don't see. */
+        if (ctx->stage != MESA_SHADER_FRAGMENT || ctx->inputs->is_blend)
                 return;
 
         /* Set blocks as directly requiring helpers, and if they do add them to



More information about the mesa-commit mailing list