From e85b1d8fdfb20e432518715f9768cdd576c9a281 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Thu, 15 Apr 2021 18:09:19 -0400 Subject: [PATCH] panfrost: Don't allow_forward_pixel_to_kill for Z/S blit Signed-off-by: Alyssa Rosenzweig Reviewed-by: Boris Brezillon Part-of: --- src/panfrost/lib/pan_blitter.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/panfrost/lib/pan_blitter.c b/src/panfrost/lib/pan_blitter.c index ff75ecccd76..76d9a96a4a8 100644 --- a/src/panfrost/lib/pan_blitter.c +++ b/src/panfrost/lib/pan_blitter.c @@ -163,7 +163,13 @@ pan_blitter_prepare_bifrost_rsd(const struct panfrost_device *dev, rsd->properties.bifrost.pixel_kill_operation = MALI_PIXEL_KILL_FORCE_EARLY; } - rsd->properties.bifrost.allow_forward_pixel_to_kill = true; + + /* We can only allow blit shader fragments to kill if they write all + * colour outputs. This is true for our colour (non-Z/S) blit shaders, + * but obviously not true for Z/S shaders. */ + + rsd->properties.bifrost.allow_forward_pixel_to_kill = !(z || s); + rsd->preload.fragment.coverage = true; rsd->preload.fragment.sample_mask_id = ms; }