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

Author: Konstantin Seurer <[email protected]>
Date:   Thu Jan 19 20:55:06 2023 +0100

radv/bvh/encode: Use the node type for identifying internal nodes

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20818>

---

 src/amd/vulkan/bvh/encode.comp | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/amd/vulkan/bvh/encode.comp b/src/amd/vulkan/bvh/encode.comp
index f77283ea191..ad559c888b8 100644
--- a/src/amd/vulkan/bvh/encode.comp
+++ b/src/amd/vulkan/bvh/encode.comp
@@ -232,12 +232,7 @@ main()
          uint32_t offset = ir_id_to_offset(children[i]);
          uint32_t dst_offset;
 
-         if (offset < intermediate_leaf_nodes_size) {
-            uint32_t child_index = offset / intermediate_leaf_node_size;
-            dst_offset = dst_leaf_offset + child_index * output_leaf_node_size;
-
-            encode_leaf_node(type, args.intermediate_bvh + offset, 
args.output_bvh + dst_offset);
-         } else {
+         if (type == radv_ir_node_internal) {
             uint32_t offset_in_internal_nodes = offset - 
intermediate_leaf_nodes_size;
             uint32_t child_index = offset_in_internal_nodes / 
SIZEOF(radv_ir_box_node);
             dst_offset = dst_internal_offset + child_index * 
SIZEOF(radv_bvh_box32_node);
@@ -246,6 +241,11 @@ main()
                REF(radv_ir_box_node) child_node = 
REF(radv_ir_box_node)OFFSET(args.intermediate_bvh, offset);
                DEREF(child_node).in_final_tree = FINAL_TREE_PRESENT;
             }
+         } else {
+            uint32_t child_index = offset / intermediate_leaf_node_size;
+            dst_offset = dst_leaf_offset + child_index * output_leaf_node_size;
+
+            encode_leaf_node(type, args.intermediate_bvh + offset, 
args.output_bvh + dst_offset);
          }
 
          radv_aabb child_aabb =

Reply via email to