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