diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_emit.c b/src/gallium/drivers/freedreno/a6xx/fd6_emit.c index dd52edcc35a..3187fb1e1c8 100644 --- a/src/gallium/drivers/freedreno/a6xx/fd6_emit.c +++ b/src/gallium/drivers/freedreno/a6xx/fd6_emit.c @@ -588,7 +588,10 @@ compute_ztest_mode(struct fd6_emit *emit, bool lrz_valid) struct fd6_zsa_stateobj *zsa = fd6_zsa_stateobj(ctx->zsa); const struct ir3_shader_variant *fs = emit->fs; - if (fs->no_earlyz || fs->writes_pos) { + if (fs->shader->nir->info.fs.early_fragment_tests) + return A6XX_EARLY_Z; + + if (fs->no_earlyz || fs->writes_pos || !zsa->base.depth.enabled) { return A6XX_LATE_Z; } else if ((fs->has_kill || zsa->alpha_test) && (zsa->base.depth.writemask || !pfb->zsbuf)) {