From 051a41d3d56ee0eccf99e1871133cfaa4606b728 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 4 Jan 2019 13:33:35 -0800 Subject: [PATCH] v3d: Add support for the early_fragment_tests flag. If this flag hasn't been set by the shader and it has some visible side effects, then we need to disable EZ. --- src/broadcom/compiler/vir.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/broadcom/compiler/vir.c b/src/broadcom/compiler/vir.c index 4e6149d11aa..ae7b362f3ba 100644 --- a/src/broadcom/compiler/vir.c +++ b/src/broadcom/compiler/vir.c @@ -781,6 +781,16 @@ v3d_fs_set_prog_data(struct v3d_compile *c, prog_data->discard = (c->s->info.fs.uses_discard || c->fs_key->sample_alpha_to_coverage); prog_data->uses_center_w = c->uses_center_w; + + /* If the shader has some side effects and hasn't allowed early + * fragment tests, disable them. + */ + if (!c->s->info.fs.early_fragment_tests && + (c->s->info.num_images || + c->s->info.num_ssbos || + c->s->info.num_abos)) { + prog_data->discard = true; + } } static void -- 2.30.2