freedreno/a6xx: don't enable early-z/lrz if no z-test
[mesa.git] / src / gallium / drivers / freedreno / a6xx / fd6_emit.c
index dd52edcc35a6e341997be114230f6bdbfb6e868a..3187fb1e1c8265d10293ea547ed73058a2e5fe46 100644 (file)
@@ -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)) {