From 3ff58049b5a19a1153ea3267ee54acaa9646b403 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Tue, 15 Nov 2022 08:29:15 +0100 Subject: [PATCH] radv: implement AMD_shader_early_and_late_fragment_tests Signed-off-by: Samuel Pitoiset Reviewed-by: Tatsuyuki Ishi Part-of: --- src/amd/vulkan/radv_shader_info.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/amd/vulkan/radv_shader_info.c b/src/amd/vulkan/radv_shader_info.c index b310fbc7500..6c7ccf24a8b 100644 --- a/src/amd/vulkan/radv_shader_info.c +++ b/src/amd/vulkan/radv_shader_info.c @@ -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;