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@collabora.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12478>
This commit is contained in:
Alyssa Rosenzweig 2021-08-18 21:38:07 +00:00 committed by Marge Bot
parent 0a26ec78b1
commit 710498e424
1 changed files with 3 additions and 2 deletions

View File

@ -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