The gl_FragColor lowering in the fragment shader depends on the number
of render targets, which can change every set_framebuffer_state.
set_framebuffer_state thus needs to force a rebind of the fragment
shader.
Fixes a regression in Piglit fbo-drawbuffers-none gl_FragColor -auto
-fbo from enabling AFBC on Mali G52.
Fixes:
28ac4d1e005 ("panfrost: Call nir_lower_fragcolor based on key")
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13498>
}
/* We may need to generate a new variant if the fragment shader is
- * keyed to the framebuffer format (due to EXT_framebuffer_fetch) */
+ * keyed to the framebuffer format or render target count */
struct panfrost_shader_variants *fs = ctx->shader[PIPE_SHADER_FRAGMENT];
- if (fs && fs->variant_count &&
- fs->variants[fs->active_variant].info.fs.outputs_read)
+ if (fs && fs->variant_count)
ctx->base.bind_fs_state(&ctx->base, fs);
}