Skip to content

[SPH] add stack in shared_mem variant of neighbour cache tree traversal - #2424

Draft
tdavidcl wants to merge 12 commits into
Shamrock-code:mainfrom
tdavidcl:new_strat_tree2
Draft

tdavidcl wants to merge 12 commits into
Shamrock-code:mainfrom
tdavidcl:new_strat_tree2

Conversation

@tdavidcl

Copy link
Copy Markdown
Member

No description provided.

Mirrors the TwoStage algorithm, but every tree traversal (leaf-to-leaf
search and particle parent-leaf lookup) uses a work-group local_accessor
slice as its rtree_for stack instead of a per-work-item std::array,
launched over nd_range work-groups of 256.

Assisted-by: Claude Code
The shared offload single stage neighbour cache now computes the exact
tree depth per patch and sizes its local memory stack as depth + 1.
The external stack of rtree_for is now given as an (u32 id) -> u32 &
functor with a runtime stack size instead of a raw pointer.

Assisted-by: Claude Code
@coderabbitai

coderabbitai Bot commented Sep 21, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown
Contributor

Thanks @tdavidcl for opening this PR!

You can do multiple things directly here:
1 - Comment pre-commit.ci run to run pre-commit checks.
2 - Comment pre-commit.ci autofix to apply fixes.
3 - Add label autofix.ci to fix authorship & pre-commit for every commit made.
4 - Add label full-ci to run the full test suite (default is light CI; full CI also runs on Mergify merge-queue branches).
5 - Add label profile-build to run the compile-time build profile job even in light CI.
6 - Add label trigger-ci to create an empty commit to trigger the CI.

Once the workflow completes a message will appear displaying informations related to the run.

Also the PR gets automatically reviewed by gemini, you can:
1 - Comment /gemini review to trigger a review
2 - Comment /gemini summary for a summary
3 - Tag it using @gemini-code-assist either in the PR or in review comments on files

tdavidcl and others added 4 commits September 22, 2026 12:05
leaf_part_id now uses sham::DeviceBuffer instead of a raw sycl::buffer,
and the repeated shamsys::instance::get_compute_scheduler().get_queue()
calls in each cache-building lambda are hoisted to a single fetch. Also
drops now-redundant wait_and_throw() calls.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Replace the hand-rolled EventList/get_read_access/complete_event_state
boilerplate around every SYCL launch in NeighbourCache.cpp with
sham::kernel_call (plain launches) and sham::kernel_call_hndl
(shared-offload launches needing an nd_range + local_accessor stack).
Also swaps shambase::make_range for sham::make_ndrange in those
nd_range launches.
Replace the two shamalgs::memory::extract_element(queue, buf, idx)
calls with buf.get_val_at_idx(idx), dropping the manual queue fetch.
mergify Bot pushed a commit that referenced this pull request Sep 22, 2026
…rch (#2430)

Extracted from the sycl::buffer -> sham::DeviceBuffer migration in #2424 (commit bbca40c).

Assisted-by: Claude Code
@github-actions

Copy link
Copy Markdown
Contributor

Workflow report

workflow report corresponding to commit 71cd334
Commiter email is timothee.davidcleris@proton.me

Light CI is enabled (the default for pull requests). This will only run the basic tests and not the full tests.
Full CI runs if the full-ci label is set, or automatically on Mergify merge-queue branches (mergify/merge-queue/*).
The merge gate job "on PR / all" is skipped in this case. Queue entry uses "on PR / all_light"; full CI runs in the merge queue.

Pre-commit check report

Pre-commit check: ✅

trim trailing whitespace.................................................Passed
fix end of files.........................................................Passed
check for merge conflicts................................................Passed
check that executables have shebangs.....................................Passed
check that scripts with shebangs are executable..........................Passed
check for added large files..............................................Passed
check for case conflicts.................................................Passed
check for broken symlinks................................................Passed
check yaml...............................................................Passed
detect private key.......................................................Passed
No-tabs checker..........................................................Passed
Tabs remover.............................................................Passed
cmake-format.............................................................Passed
Validate GitHub Workflows................................................Passed
clang-format.............................................................Passed
ruff check...............................................................Passed
ruff format..............................................................Passed
Check doxygen headers....................................................Passed
Check license headers....................................................Passed
Check #pragma once.......................................................Passed
Check SYCL #include......................................................Passed
No ssh in git submodules remote..........................................Passed
No UTF-8 in files (except for authors)...................................Passed

Test pipeline can run.

Clang-tidy diff report


18894 warnings generated.
Suppressed 18895 warnings (18894 in non-user code, 1 NOLINT).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.

27892 warnings generated.
Suppressed 27893 warnings (27892 in non-user code, 1 NOLINT).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.

30773 warnings generated.
Suppressed 30774 warnings (30771 in non-user code, 2 due to line filter, 1 NOLINT).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.

/__w/Shamrock/Shamrock/src/shamtree/include/shamtree/KarrasTreeTraverser.hpp:151:30: warning: invalid case style for constexpr variable '_nindex' [readability-identifier-naming]
  151 |         static constexpr u32 _nindex = 4294967295;
      |                              ^~~~~~~
      |                              nindex
  152 | 
  153 |         // Init the stack state
  154 |         u32 stack_cursor    = stack_size - 1;
  155 |         stack(stack_cursor) = root_node;
  156 | 
  157 |         // until the stack is empty
  158 |         while (stack_cursor < stack_size) {
  159 | 
  160 |             // Pop the top of the stack
  161 |             u32 current_node_id = stack(stack_cursor);
  162 |             stack(stack_cursor) = _nindex;
      |                                   ~~~~~~~
      |                                   nindex
/__w/Shamrock/Shamrock/src/shamtree/include/shamtree/KarrasTreeTraverser.hpp:151:30: note: FIX-IT applied suggested code changes
/__w/Shamrock/Shamrock/src/shamtree/include/shamtree/KarrasTreeTraverser.hpp:162:35: note: FIX-IT applied suggested code changes
  162 |             stack(stack_cursor) = _nindex;
      |                                   ^

24251 warnings generated.
clang-tidy applied 2 of 2 suggested fixes.
Suppressed 24250 warnings (24248 in non-user code, 2 due to line filter).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.

/__w/Shamrock/Shamrock/src/shammodels/sph/src/modules/NeighbourCache.cpp:267:37: warning: invalid case style for constexpr variable 'Rker2' [readability-identifier-naming]
  267 |                     constexpr Tscal Rker2    = Kernel::Rkern * Kernel::Rkern;
      |                                     ^~~~~
      |                                     rker2
/__w/Shamrock/Shamrock/src/shammodels/sph/src/modules/NeighbourCache.cpp:267:37: note: FIX-IT applied suggested code changes
/__w/Shamrock/Shamrock/src/shammodels/sph/src/modules/NeighbourCache.cpp:316:77: note: FIX-IT applied suggested code changes
  316 |                                 bool no_interact = rab2 > rint_a * rint_a * Rker2
      |                                                                             ^
/__w/Shamrock/Shamrock/src/shammodels/sph/src/modules/NeighbourCache.cpp:317:80: note: FIX-IT applied suggested code changes
  317 |                                                    && rab2 > rint_b * rint_b * Rker2;
      |                                                                                ^
/__w/Shamrock/Shamrock/src/shammodels/sph/src/modules/NeighbourCache.cpp:344:37: warning: invalid case style for constexpr variable 'Rker2' [readability-identifier-naming]
  344 |                     constexpr Tscal Rker2    = Kernel::Rkern * Kernel::Rkern;
      |                                     ^~~~~
      |                                     rker2
/__w/Shamrock/Shamrock/src/shammodels/sph/src/modules/NeighbourCache.cpp:344:37: note: FIX-IT applied suggested code changes
/__w/Shamrock/Shamrock/src/shammodels/sph/src/modules/NeighbourCache.cpp:393:77: note: FIX-IT applied suggested code changes
  393 |                                 bool no_interact = rab2 > rint_a * rint_a * Rker2
      |                                                                             ^
/__w/Shamrock/Shamrock/src/shammodels/sph/src/modules/NeighbourCache.cpp:394:80: note: FIX-IT applied suggested code changes
  394 |                                                    && rab2 > rint_b * rint_b * Rker2;
      |                                                                                ^
/__w/Shamrock/Shamrock/src/shammodels/sph/src/modules/NeighbourCache.cpp:1012:33: warning: invalid case style for constexpr variable 'Rker2' [readability-identifier-naming]
 1012 |                 constexpr Tscal Rker2 = Kernel::Rkern * Kernel::Rkern;
      |                                 ^~~~~
      |                                 rker2
/__w/Shamrock/Shamrock/src/shammodels/sph/src/modules/NeighbourCache.cpp:1012:33: note: FIX-IT applied suggested code changes
/__w/Shamrock/Shamrock/src/shammodels/sph/src/modules/NeighbourCache.cpp:1031:56: note: FIX-IT applied suggested code changes
 1031 |                             = rab2 > rint_a * rint_a * Rker2 && rab2 > rint_b * rint_b * Rker2;
      |                                                        ^
/__w/Shamrock/Shamrock/src/shammodels/sph/src/modules/NeighbourCache.cpp:1031:90: note: FIX-IT applied suggested code changes
 1031 |                             = rab2 > rint_a * rint_a * Rker2 && rab2 > rint_b * rint_b * Rker2;
      |                                                                                          ^
/__w/Shamrock/Shamrock/src/shammodels/sph/src/modules/NeighbourCache.cpp:1068:33: warning: invalid case style for constexpr variable 'Rker2' [readability-identifier-naming]
 1068 |                 constexpr Tscal Rker2 = Kernel::Rkern * Kernel::Rkern;
      |                                 ^~~~~
      |                                 rker2
/__w/Shamrock/Shamrock/src/shammodels/sph/src/modules/NeighbourCache.cpp:1068:33: note: FIX-IT applied suggested code changes
/__w/Shamrock/Shamrock/src/shammodels/sph/src/modules/NeighbourCache.cpp:1087:56: note: FIX-IT applied suggested code changes
 1087 |                             = rab2 > rint_a * rint_a * Rker2 && rab2 > rint_b * rint_b * Rker2;
      |                                                        ^
/__w/Shamrock/Shamrock/src/shammodels/sph/src/modules/NeighbourCache.cpp:1087:90: note: FIX-IT applied suggested code changes
 1087 |                             = rab2 > rint_a * rint_a * Rker2 && rab2 > rint_b * rint_b * Rker2;
      |                                                                                          ^

28618 warnings generated.
clang-tidy applied 12 of 12 suggested fixes.
Suppressed 28615 warnings (28610 in non-user code, 4 due to line filter, 1 NOLINT).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.

28299 warnings generated.
Suppressed 28300 warnings (28283 in non-user code, 16 due to line filter, 1 NOLINT).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.

Suggested changes

Detailed changes :
diff --git a/src/shammodels/sph/src/modules/NeighbourCache.cpp b/src/shammodels/sph/src/modules/NeighbourCache.cpp
index 56f65756..e3d40f8a 100644
--- a/src/shammodels/sph/src/modules/NeighbourCache.cpp
+++ b/src/shammodels/sph/src/modules/NeighbourCache.cpp
@@ -264,7 +264,7 @@ void shammodels::sph::modules::NeighbourCache<Tvec, Tmorton, SPHKernel>::
                 auto particle_looper,
                 u32 *__restrict neigh_cnt) {
                 return [=](sycl::handler &cgh) {
-                    constexpr Tscal Rker2    = Kernel::Rkern * Kernel::Rkern;
+                    constexpr Tscal rker2    = Kernel::Rkern * Kernel::Rkern;
                     constexpr u32 group_size = 256;
 
                     sycl::local_accessor<u32, 1> stack_local(stack_size * group_size, cgh);
@@ -313,8 +313,8 @@ void shammodels::sph::modules::NeighbourCache<Tvec, Tmorton, SPHKernel>::
                                 Tscal rab2   = sycl::dot(dr, dr);
                                 Tscal rint_b = hpart[id_b] * h_tolerance;
 
-                                bool no_interact = rab2 > rint_a * rint_a * Rker2
-                                                   && rab2 > rint_b * rint_b * Rker2;
+                                bool no_interact = rab2 > rint_a * rint_a * rker2
+                                                   && rab2 > rint_b * rint_b * rker2;
 
                                 cnt += (no_interact) ? 0 : 1;
                             });
@@ -341,7 +341,7 @@ void shammodels::sph::modules::NeighbourCache<Tvec, Tmorton, SPHKernel>::
                 auto particle_looper,
                 u32 *__restrict neigh) {
                 return [=](sycl::handler &cgh) {
-                    constexpr Tscal Rker2    = Kernel::Rkern * Kernel::Rkern;
+                    constexpr Tscal rker2    = Kernel::Rkern * Kernel::Rkern;
                     constexpr u32 group_size = 256;
 
                     sycl::local_accessor<u32, 1> stack_local(stack_size * group_size, cgh);
@@ -390,8 +390,8 @@ void shammodels::sph::modules::NeighbourCache<Tvec, Tmorton, SPHKernel>::
                                 Tscal rab2   = sycl::dot(dr, dr);
                                 Tscal rint_b = hpart[id_b] * h_tolerance;
 
-                                bool no_interact = rab2 > rint_a * rint_a * Rker2
-                                                   && rab2 > rint_b * rint_b * Rker2;
+                                bool no_interact = rab2 > rint_a * rint_a * rker2
+                                                   && rab2 > rint_b * rint_b * rker2;
 
                                 if (!no_interact) {
                                     neigh[cnt] = id_b;
@@ -1009,7 +1009,7 @@ void shammodels::sph::modules::NeighbourCache<Tvec, Tmorton, SPHKernel>::
 
                 u32 offset_leaf = intnode_cnt;
 
-                constexpr Tscal Rker2 = Kernel::Rkern * Kernel::Rkern;
+                constexpr Tscal rker2 = Kernel::Rkern * Kernel::Rkern;
 
                 Tscal rint_a = hpart[id_a] * h_tolerance;
 
@@ -1028,7 +1028,7 @@ void shammodels::sph::modules::NeighbourCache<Tvec, Tmorton, SPHKernel>::
                         Tscal rint_b = hpart[id_b] * h_tolerance;
 
                         bool no_interact
-                            = rab2 > rint_a * rint_a * Rker2 && rab2 > rint_b * rint_b * Rker2;
+                            = rab2 > rint_a * rint_a * rker2 && rab2 > rint_b * rint_b * rker2;
 
                         cnt += (no_interact) ? 0 : 1;
                     });
@@ -1065,7 +1065,7 @@ void shammodels::sph::modules::NeighbourCache<Tvec, Tmorton, SPHKernel>::
 
                 u32 offset_leaf = intnode_cnt;
 
-                constexpr Tscal Rker2 = Kernel::Rkern * Kernel::Rkern;
+                constexpr Tscal rker2 = Kernel::Rkern * Kernel::Rkern;
 
                 Tscal rint_a = hpart[id_a] * h_tolerance;
 
@@ -1084,7 +1084,7 @@ void shammodels::sph::modules::NeighbourCache<Tvec, Tmorton, SPHKernel>::
                         Tscal rint_b = hpart[id_b] * h_tolerance;
 
                         bool no_interact
-                            = rab2 > rint_a * rint_a * Rker2 && rab2 > rint_b * rint_b * Rker2;
+                            = rab2 > rint_a * rint_a * rker2 && rab2 > rint_b * rint_b * rker2;
 
                         if (!no_interact) {
                             neigh[cnt] = id_b;
diff --git a/src/shamtree/include/shamtree/KarrasTreeTraverser.hpp b/src/shamtree/include/shamtree/KarrasTreeTraverser.hpp
index 694ec005..f2d491cc 100644
--- a/src/shamtree/include/shamtree/KarrasTreeTraverser.hpp
+++ b/src/shamtree/include/shamtree/KarrasTreeTraverser.hpp
@@ -148,7 +148,7 @@ struct shamtree::KarrasTreeTraverserAccessed {
         Functor2 &&on_found_leaf,
         Functor3 &&on_excluded_node) const {
 
-        static constexpr u32 _nindex = 4294967295;
+        static constexpr u32 nindex = 4294967295;
 
         // Init the stack state
         u32 stack_cursor    = stack_size - 1;
@@ -159,7 +159,7 @@ struct shamtree::KarrasTreeTraverserAccessed {
 
             // Pop the top of the stack
             u32 current_node_id = stack(stack_cursor);
-            stack(stack_cursor) = _nindex;
+            stack(stack_cursor) = nindex;
             stack_cursor++;
 
             // check iteraction creteria
# Doxygen diff with `main` Removed warnings : 17 New warnings : 19 Warnings count : 8186 → 8188 (0.0%)
Detailed changes :
- src/shammodels/common/include/shammodels/common/config/enum_NeighCacheStrategy.hpp:39: warning: Member from_json(const BasicJsonType &j, NeighCacheStrategy &e) (function) of namespace shammodels is not documented.
- src/shammodels/common/include/shammodels/common/config/enum_NeighCacheStrategy.hpp:39: warning: Member to_json(BasicJsonType &j, const NeighCacheStrategy &e) (function) of namespace shammodels is not documented.
+ src/shammodels/common/include/shammodels/common/config/enum_NeighCacheStrategy.hpp:45: warning: Member from_json(const BasicJsonType &j, NeighCacheStrategy &e) (function) of namespace shammodels is not documented.
+ src/shammodels/common/include/shammodels/common/config/enum_NeighCacheStrategy.hpp:45: warning: Member to_json(BasicJsonType &j, const NeighCacheStrategy &e) (function) of namespace shammodels is not documented.
+ src/shammodels/sph/include/shammodels/sph/modules/NeighbourCache.hpp:46: warning: Member start_neighbors_cache_shared_offload() (function) of class shammodels::sph::modules::NeighbourCache is not documented.
+ src/shammodels/sph/include/shammodels/sph/modules/NeighbourCache.hpp:47: warning: Member start_neighbors_cache_2stages_shared_offload() (function) of class shammodels::sph::modules::NeighbourCache is not documented.
- src/shammodels/sph/src/Solver.cpp:2236: warning: Member map_field_refs(PatchScheduler &sched, u32 field_idx, shamrock::solvergraph::FieldRefs< T > &refs) (function) of file Solver.cpp is not documented.
+ src/shammodels/sph/src/Solver.cpp:2242: warning: Member map_field_refs(PatchScheduler &sched, u32 field_idx, shamrock::solvergraph::FieldRefs< T > &refs) (function) of file Solver.cpp is not documented.
- src/shammodels/sph/src/Solver.cpp:2251: warning: Member map_field_refs_ext(PatchScheduler &sched, shambase::DistributedData< shamrock::patch::PatchDataLayer > &mpdats, u32 field_idx, shamrock::solvergraph::FieldRefs< T > &refs) (function) of file Solver.cpp is not documented.
+ src/shammodels/sph/src/Solver.cpp:2257: warning: Member map_field_refs_ext(PatchScheduler &sched, shambase::DistributedData< shamrock::patch::PatchDataLayer > &mpdats, u32 field_idx, shamrock::solvergraph::FieldRefs< T > &refs) (function) of file Solver.cpp is not documented.
- src/shammodels/sph/src/Solver.cpp:2270: warning: Member map_field_refs_ext(PatchScheduler &sched, shamrock::ComputeField< T > &field_data, shamrock::solvergraph::FieldRefs< T > &refs) (function) of file Solver.cpp is not documented.
+ src/shammodels/sph/src/Solver.cpp:2276: warning: Member map_field_refs_ext(PatchScheduler &sched, shamrock::ComputeField< T > &field_data, shamrock::solvergraph::FieldRefs< T > &refs) (function) of file Solver.cpp is not documented.
- src/shamtree/include/shamtree/CompressedLeafBVH.hpp:125: warning: Member rebuild_from_position_range(sham::DeviceBuffer< Tvec > &min, sham::DeviceBuffer< Tvec > &max, u32 obj_cnt, shammath::AABB< Tvec > &bounding_box, u32 compression_level) (function) of class shamtree::CompressedLeafBVH is not documented.
- src/shamtree/include/shamtree/CompressedLeafBVH.hpp:132: warning: Member rebuild_from_position_range(sham::DeviceBuffer< Tvec > &min, sham::DeviceBuffer< Tvec > &max, shammath::AABB< Tvec > &bounding_box, u32 compression_level) (function) of class shamtree::CompressedLeafBVH is not documented.
+ src/shamtree/include/shamtree/CompressedLeafBVH.hpp:137: warning: Member rebuild_from_position_range(sham::DeviceBuffer< Tvec > &min, sham::DeviceBuffer< Tvec > &max, u32 obj_cnt, shammath::AABB< Tvec > &bounding_box, u32 compression_level) (function) of class shamtree::CompressedLeafBVH is not documented.
- src/shamtree/include/shamtree/CompressedLeafBVH.hpp:138: warning: Member get_traverser() const (function) of class shamtree::CompressedLeafBVH is not documented.
- src/shamtree/include/shamtree/CompressedLeafBVH.hpp:142: warning: Member get_traverser_host() const (function) of class shamtree::CompressedLeafBVH is not documented.
+ src/shamtree/include/shamtree/CompressedLeafBVH.hpp:144: warning: Member rebuild_from_position_range(sham::DeviceBuffer< Tvec > &min, sham::DeviceBuffer< Tvec > &max, shammath::AABB< Tvec > &bounding_box, u32 compression_level) (function) of class shamtree::CompressedLeafBVH is not documented.
+ src/shamtree/include/shamtree/CompressedLeafBVH.hpp:150: warning: Member get_traverser() const (function) of class shamtree::CompressedLeafBVH is not documented.
+ src/shamtree/include/shamtree/CompressedLeafBVH.hpp:154: warning: Member get_traverser_host() const (function) of class shamtree::CompressedLeafBVH is not documented.
- src/shamtree/include/shamtree/CompressedLeafBVH.hpp:164: warning: Member get_object_iterator_host() const (function) of class shamtree::CompressedLeafBVH is not documented.
- src/shamtree/include/shamtree/CompressedLeafBVH.hpp:168: warning: Member get_cell_iterator() const (function) of class shamtree::CompressedLeafBVH is not documented.
- src/shamtree/include/shamtree/CompressedLeafBVH.hpp:173: warning: Member get_cell_iterator_host() const (function) of class shamtree::CompressedLeafBVH is not documented.
+ src/shamtree/include/shamtree/CompressedLeafBVH.hpp:176: warning: Member get_object_iterator_host() const (function) of class shamtree::CompressedLeafBVH is not documented.
+ src/shamtree/include/shamtree/CompressedLeafBVH.hpp:180: warning: Member get_cell_iterator() const (function) of class shamtree::CompressedLeafBVH is not documented.
+ src/shamtree/include/shamtree/CompressedLeafBVH.hpp:185: warning: Member get_cell_iterator_host() const (function) of class shamtree::CompressedLeafBVH is not documented.
- src/shamtree/include/shamtree/KarrasTreeTraverser.hpp:168: warning: Compound shamtree::KarrasTreeTraverserHost is not documented.
+ src/shamtree/include/shamtree/KarrasTreeTraverser.hpp:244: warning: Compound shamtree::KarrasTreeTraverserHost is not documented.
+ src/shamtree/include/shamtree/TreeTraversal.hpp:482: warning: Compound shamrock::tree::ObjectCacheIterator is not documented.
- src/shamtree/include/shamtree/TreeTraversal.hpp:487: warning: Compound shamrock::tree::ObjectCacheIterator is not documented.
+ src/shamtree/include/shamtree/TreeTraversal.hpp:490: warning: Member ObjectCacheIterator(const ObjectCache::ptrs_read &cache) (function) of class shamrock::tree::ObjectCacheIterator is not documented.
- src/shamtree/include/shamtree/TreeTraversal.hpp:495: warning: Member ObjectCacheIterator(const ObjectCache::ptrs_read &cache) (function) of class shamrock::tree::ObjectCacheIterator is not documented.
+ src/shamtree/include/shamtree/TreeTraversal.hpp:498: warning: Member for_each_object(u32 idx, Functor_iter &&func_it) const (function) of class shamrock::tree::ObjectCacheIterator is not documented.
- src/shamtree/include/shamtree/TreeTraversal.hpp:503: warning: Member for_each_object(u32 idx, Functor_iter &&func_it) const (function) of class shamrock::tree::ObjectCacheIterator is not documented.
+ src/shamtree/include/shamtree/TreeTraversal.hpp:510: warning: Member for_each_object_with_id(u32 idx, Functor_iter &&func_it) const (function) of class shamrock::tree::ObjectCacheIterator is not documented.
- src/shamtree/include/shamtree/TreeTraversal.hpp:515: warning: Member for_each_object_with_id(u32 idx, Functor_iter &&func_it) const (function) of class shamrock::tree::ObjectCacheIterator is not documented.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant