From: Alyssa Rosenzweig Date: Tue, 16 Feb 2021 23:10:08 +0000 (-0500) Subject: panfrost: Flesh out allow_forward_pixel_to_kill check X-Git-Tag: upstream/21.2.3~7642 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=9d2b2e3c6705db42c253bfa45ff6c8335c16a0f5;p=platform%2Fupstream%2Fmesa.git panfrost: Flesh out allow_forward_pixel_to_kill check A few cases missed, probably some more bugs hidden here! Signed-off-by: Alyssa Rosenzweig Part-of: --- diff --git a/src/gallium/drivers/panfrost/pan_cmdstream.c b/src/gallium/drivers/panfrost/pan_cmdstream.c index db89df1..f95e6ab 100644 --- a/src/gallium/drivers/panfrost/pan_cmdstream.c +++ b/src/gallium/drivers/panfrost/pan_cmdstream.c @@ -427,6 +427,7 @@ panfrost_prepare_bifrost_fs_state(struct panfrost_context *ctx, const struct panfrost_device *dev = pan_device(ctx->base.screen); struct panfrost_shader_state *fs = panfrost_get_shader_state(ctx, PIPE_SHADER_FRAGMENT); unsigned rt_count = ctx->pipe_framebuffer.nr_cbufs; + bool alpha_to_coverage = ctx->blend->base.alpha_to_coverage; if (!panfrost_fs_required(fs, blend, rt_count)) { state->properties.uniform_buffer_count = 32; @@ -445,8 +446,12 @@ panfrost_prepare_bifrost_fs_state(struct panfrost_context *ctx, no_blend &= (!blend[i].load_dest | blend[i].no_colour); state->properties.bifrost.allow_forward_pixel_to_kill = - !fs->info.fs.can_discard && !fs->info.fs.writes_depth && + !fs->info.fs.writes_stencil && + !fs->info.fs.writes_coverage && + !fs->info.fs.can_discard && + !fs->info.fs.outputs_read && + !alpha_to_coverage && no_blend; } }