llvmpipe: handle early test property.

Also handle setting late for shaders that use stores

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
This commit is contained in:
Dave Airlie 2019-07-19 15:45:22 +10:00
parent a1e8fcef47
commit cf84b46a1c

View file

@ -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) {