radv: implement AMD_shader_early_and_late_fragment_tests

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Tatsuyuki Ishi <ishitatsuyuki@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19738>
This commit is contained in:
Samuel Pitoiset 2022-11-15 08:29:15 +01:00 committed by Marge Bot
parent 877c10efd1
commit 3ff58049b5

View file

@ -531,7 +531,11 @@ gather_shader_info_fs(const nir_shader *nir, const struct radv_pipeline_key *pip
info->ps.num_interp = nir->num_inputs - num_per_primitive_inputs;
info->ps.num_prim_interp = num_per_primitive_inputs;
info->ps.can_discard = nir->info.fs.uses_discard;
info->ps.early_fragment_test = nir->info.fs.early_fragment_tests;
info->ps.early_fragment_test = nir->info.fs.early_fragment_tests ||
(nir->info.fs.early_and_late_fragment_tests &&
nir->info.fs.depth_layout == FRAG_DEPTH_LAYOUT_NONE &&
nir->info.fs.stencil_front_layout == FRAG_STENCIL_LAYOUT_NONE &&
nir->info.fs.stencil_back_layout == FRAG_STENCIL_LAYOUT_NONE);
info->ps.post_depth_coverage = nir->info.fs.post_depth_coverage;
info->ps.depth_layout = nir->info.fs.depth_layout;
info->ps.uses_sample_shading = nir->info.fs.uses_sample_shading;