Mesa (staging/21.2): pan/bi: Don't set td in blend shaders
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Wed Aug 25 16:36:12 UTC 2021
Module: Mesa
Branch: staging/21.2
Commit: 277e0c45a9dae57c3288fb31282a9ddbea9f5a8c
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=277e0c45a9dae57c3288fb31282a9ddbea9f5a8c
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>
(cherry picked from commit 710498e424e31ad4f308f52a03338ac30a70271b)
---
.pick_status.json | 2 +-
src/panfrost/bifrost/bi_helper_invocations.c | 5 +++--
2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/.pick_status.json b/.pick_status.json
index 571571ee4d1..51b6a7da975 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -787,7 +787,7 @@
"description": "pan/bi: Don't set td in blend shaders",
"nominated": true,
"nomination_type": 0,
- "resolution": 0,
+ "resolution": 1,
"main_sha": null,
"because_sha": null
},
diff --git a/src/panfrost/bifrost/bi_helper_invocations.c b/src/panfrost/bifrost/bi_helper_invocations.c
index a8d2c61c1e2..c9b5b4e3ebf 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