From cf84b46a1cd8f602341b1fce32d5f5ec41633e40 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Fri, 19 Jul 2019 15:45:22 +1000 Subject: [PATCH] llvmpipe: handle early test property. Also handle setting late for shaders that use stores Reviewed-by: Roland Scheidegger --- src/gallium/drivers/llvmpipe/lp_state_fs.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/llvmpipe/lp_state_fs.c b/src/gallium/drivers/llvmpipe/lp_state_fs.c index 101877ded34..bf2c0313572 100644 --- a/src/gallium/drivers/llvmpipe/lp_state_fs.c +++ b/src/gallium/drivers/llvmpipe/lp_state_fs.c @@ -346,8 +346,12 @@ generate_fs_loop(struct gallivm_state *gallivm, zs_format_desc = util_format_description(key->zsbuf_format); assert(zs_format_desc); - if (!shader->info.base.writes_z && !shader->info.base.writes_stencil) { - if (key->alpha.enabled || + if (shader->info.base.properties[TGSI_PROPERTY_FS_EARLY_DEPTH_STENCIL]) + depth_mode = EARLY_DEPTH_TEST | EARLY_DEPTH_WRITE; + else if (!shader->info.base.writes_z && !shader->info.base.writes_stencil) { + if (shader->info.base.writes_memory) + depth_mode = LATE_DEPTH_TEST | LATE_DEPTH_WRITE; + else if (key->alpha.enabled || key->blend.alpha_to_coverage || shader->info.base.uses_kill || shader->info.base.writes_samplemask) { -- 2.30.2