Module: Mesa
Branch: main
Commit: fb4e68b72499261fceb9385df79dc0f43d61529d
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=fb4e68b72499261fceb9385df79dc0f43d61529d

Author: Timur Kristóf <[email protected]>
Date:   Wed Aug  3 11:36:34 2022 +0200

ac/nir/cull: Move the contents of cull_bbox into ac_nir_cull_triangle.

No Fossil DB changes.

Signed-off-by: Timur Kristóf <[email protected]>
Reviewed-by: Marek Olšák <[email protected]>
Reviewed-by: Qiang Yu <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17870>

---

 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;
 }

Reply via email to