From: Dave Airlie Date: Fri, 19 Jul 2019 05:45:22 +0000 (+1000) Subject: llvmpipe: handle early test property. X-Git-Tag: upstream/19.3.0~2485 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=cf84b46a1cd8f602341b1fce32d5f5ec41633e40;p=platform%2Fupstream%2Fmesa.git llvmpipe: handle early test property. Also handle setting late for shaders that use stores Reviewed-by: Roland Scheidegger --- diff --git a/src/gallium/drivers/llvmpipe/lp_state_fs.c b/src/gallium/drivers/llvmpipe/lp_state_fs.c index 101877d..bf2c031 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) {