From fb4e68b72499261fceb9385df79dc0f43d61529d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timur=20Krist=C3=B3f?= Date: Wed, 3 Aug 2022 11:36:34 +0200 Subject: [PATCH] ac/nir/cull: Move the contents of cull_bbox into ac_nir_cull_triangle. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit No Fossil DB changes. Signed-off-by: Timur Kristóf Reviewed-by: Marek Olšák Reviewed-by: Qiang Yu Part-of: --- src/amd/common/ac_nir_cull.c | 31 +++++++++++++------------------ 1 file changed, 13 insertions(+), 18 deletions(-) diff --git a/src/amd/common/ac_nir_cull.c b/src/amd/common/ac_nir_cull.c index c614f204aba..ceb4a3276e3 100644 --- a/src/amd/common/ac_nir_cull.c +++ b/src/amd/common/ac_nir_cull.c @@ -142,11 +142,20 @@ cull_small_primitive(nir_builder *b, nir_ssa_def *bbox_min[3], nir_ssa_def *bbox return nir_if_phi(b, prim_is_small, prim_is_small_else); } -static nir_ssa_def * -cull_bbox(nir_builder *b, nir_ssa_def *pos[3][4], nir_ssa_def *accepted, const position_w_info *w_info) +nir_ssa_def * +ac_nir_cull_triangle(nir_builder *b, + nir_ssa_def *initially_accepted, + nir_ssa_def *pos[3][4]) { + position_w_info w_info = {0}; + analyze_position_w(b, pos, &w_info); + + nir_ssa_def *accepted = initially_accepted; + accepted = nir_iand(b, accepted, w_info.w_accepted); + accepted = nir_iand(b, accepted, cull_face(b, pos, &w_info)); + nir_ssa_def *bbox_accepted = NULL; - nir_ssa_def *try_cull_bbox = nir_iand(b, accepted, w_info->all_w_positive); + nir_ssa_def *try_cull_bbox = nir_iand(b, accepted, w_info.all_w_positive); nir_if *if_cull_bbox = nir_push_if(b, try_cull_bbox); { @@ -160,21 +169,7 @@ cull_bbox(nir_builder *b, nir_ssa_def *pos[3][4], nir_ssa_def *accepted, const p bbox_accepted = nir_inot(b, prim_invisible); } nir_pop_if(b, if_cull_bbox); - return nir_if_phi(b, bbox_accepted, accepted); -} - -nir_ssa_def * -ac_nir_cull_triangle(nir_builder *b, - nir_ssa_def *initially_accepted, - nir_ssa_def *pos[3][4]) -{ - position_w_info w_info = {0}; - analyze_position_w(b, pos, &w_info); - - nir_ssa_def *accepted = initially_accepted; - accepted = nir_iand(b, accepted, w_info.w_accepted); - accepted = nir_iand(b, accepted, cull_face(b, pos, &w_info)); - accepted = nir_iand(b, accepted, cull_bbox(b, pos, accepted, &w_info)); + accepted = nir_iand(b, accepted, nir_if_phi(b, bbox_accepted, accepted)); return accepted; }