From 6b0865bf6d8884f4869ca45ecb1f9b368c1561ad Mon Sep 17 00:00:00 2001 From: ferdymercury Date: Wed, 16 Sep 2026 20:55:38 +0200 Subject: [PATCH 1/4] [geom] privatize bvh headers that are only used by cxx files --- README/ReleaseNotes/v642/index.md | 1 + geom/geom/CMakeLists.txt | 1 + geom/geom/{inc => res}/bvh/v2/CMakeLists.txt | 0 geom/geom/{inc => res}/bvh/v2/README.md | 0 geom/geom/{inc => res}/bvh/v2/bbox.h | 0 geom/geom/{inc => res}/bvh/v2/binned_sah_builder.h | 0 geom/geom/{inc => res}/bvh/v2/bvh.h | 0 geom/geom/{inc => res}/bvh/v2/default_builder.h | 0 geom/geom/{inc => res}/bvh/v2/executor.h | 0 geom/geom/{inc => res}/bvh/v2/index.h | 0 geom/geom/{inc => res}/bvh/v2/mini_tree_builder.h | 0 geom/geom/{inc => res}/bvh/v2/node.h | 0 geom/geom/{inc => res}/bvh/v2/platform.h | 0 geom/geom/{inc => res}/bvh/v2/ray.h | 0 geom/geom/{inc => res}/bvh/v2/reinsertion_optimizer.h | 0 geom/geom/{inc => res}/bvh/v2/split_heuristic.h | 0 geom/geom/{inc => res}/bvh/v2/stack.h | 0 geom/geom/{inc => res}/bvh/v2/stream.h | 0 geom/geom/{inc => res}/bvh/v2/sweep_sah_builder.h | 0 geom/geom/{inc => res}/bvh/v2/thread_pool.h | 0 geom/geom/{inc => res}/bvh/v2/top_down_sah_builder.h | 0 geom/geom/{inc => res}/bvh/v2/utils.h | 0 geom/geom/{inc => res}/bvh/v2/vec.h | 0 geom/geom/{inc => res}/bvh2_extra_kernels.h | 0 geom/geom/{inc => res}/bvh2_third_party.h | 0 25 files changed, 2 insertions(+) rename geom/geom/{inc => res}/bvh/v2/CMakeLists.txt (100%) rename geom/geom/{inc => res}/bvh/v2/README.md (100%) rename geom/geom/{inc => res}/bvh/v2/bbox.h (100%) rename geom/geom/{inc => res}/bvh/v2/binned_sah_builder.h (100%) rename geom/geom/{inc => res}/bvh/v2/bvh.h (100%) rename geom/geom/{inc => res}/bvh/v2/default_builder.h (100%) rename geom/geom/{inc => res}/bvh/v2/executor.h (100%) rename geom/geom/{inc => res}/bvh/v2/index.h (100%) rename geom/geom/{inc => res}/bvh/v2/mini_tree_builder.h (100%) rename geom/geom/{inc => res}/bvh/v2/node.h (100%) rename geom/geom/{inc => res}/bvh/v2/platform.h (100%) rename geom/geom/{inc => res}/bvh/v2/ray.h (100%) rename geom/geom/{inc => res}/bvh/v2/reinsertion_optimizer.h (100%) rename geom/geom/{inc => res}/bvh/v2/split_heuristic.h (100%) rename geom/geom/{inc => res}/bvh/v2/stack.h (100%) rename geom/geom/{inc => res}/bvh/v2/stream.h (100%) rename geom/geom/{inc => res}/bvh/v2/sweep_sah_builder.h (100%) rename geom/geom/{inc => res}/bvh/v2/thread_pool.h (100%) rename geom/geom/{inc => res}/bvh/v2/top_down_sah_builder.h (100%) rename geom/geom/{inc => res}/bvh/v2/utils.h (100%) rename geom/geom/{inc => res}/bvh/v2/vec.h (100%) rename geom/geom/{inc => res}/bvh2_extra_kernels.h (100%) rename geom/geom/{inc => res}/bvh2_third_party.h (100%) diff --git a/README/ReleaseNotes/v642/index.md b/README/ReleaseNotes/v642/index.md index 61c80c9c5b822..c486699e02610 100644 --- a/README/ReleaseNotes/v642/index.md +++ b/README/ReleaseNotes/v642/index.md @@ -74,6 +74,7 @@ The `TMVA_SOFIE_GNN` tutorials have been migrated to this workflow and produce i * Including `RConfig.h` and `RVersion.h` is now deprecated and will be removed after ROOT 6.44, use instead `ROOT/RConfig.hxx` and `ROOT/RVersion.hxx`. * The header `Rpair.h` is deprecated and will be removed after ROOT 6.44, use `` instead. * The headers `Htypes.h` and `Gtypes.h` that were deprecated in ROOT 6.20 will now emit warnings and will be fully removed in ROOT 6.44. Use instead `Rtypes.h`. +* The headers of the `bvh` library in `Geom` are no longer public in ROOT 6.42. * The header `GLConstants.h` is no longer part of ROOT installed headers. * The header `PosixThreadInc.h` is deprecated and will be removed after ROOT 6.44. Use instead `` and ``. * The header `RStringView.h` deprecated in ROOT 6.14 will now emit warnings and will be fully removed after ROOT 6.44. Use `ROOT/RStringView.hxx` instead. diff --git a/geom/geom/CMakeLists.txt b/geom/geom/CMakeLists.txt index 71d76e74fb8a1..7bc5afd055eb6 100644 --- a/geom/geom/CMakeLists.txt +++ b/geom/geom/CMakeLists.txt @@ -130,6 +130,7 @@ ROOT_STANDARD_LIBRARY_PACKAGE(Geom Imt ) +target_include_directories(Geom PRIVATE res) # GCC has bugs with -O3 or -Ofast that break Geom if(CMAKE_COMPILER_IS_GNUCXX) if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5 OR CMAKE_SIZEOF_VOID_P LESS 8) diff --git a/geom/geom/inc/bvh/v2/CMakeLists.txt b/geom/geom/res/bvh/v2/CMakeLists.txt similarity index 100% rename from geom/geom/inc/bvh/v2/CMakeLists.txt rename to geom/geom/res/bvh/v2/CMakeLists.txt diff --git a/geom/geom/inc/bvh/v2/README.md b/geom/geom/res/bvh/v2/README.md similarity index 100% rename from geom/geom/inc/bvh/v2/README.md rename to geom/geom/res/bvh/v2/README.md diff --git a/geom/geom/inc/bvh/v2/bbox.h b/geom/geom/res/bvh/v2/bbox.h similarity index 100% rename from geom/geom/inc/bvh/v2/bbox.h rename to geom/geom/res/bvh/v2/bbox.h diff --git a/geom/geom/inc/bvh/v2/binned_sah_builder.h b/geom/geom/res/bvh/v2/binned_sah_builder.h similarity index 100% rename from geom/geom/inc/bvh/v2/binned_sah_builder.h rename to geom/geom/res/bvh/v2/binned_sah_builder.h diff --git a/geom/geom/inc/bvh/v2/bvh.h b/geom/geom/res/bvh/v2/bvh.h similarity index 100% rename from geom/geom/inc/bvh/v2/bvh.h rename to geom/geom/res/bvh/v2/bvh.h diff --git a/geom/geom/inc/bvh/v2/default_builder.h b/geom/geom/res/bvh/v2/default_builder.h similarity index 100% rename from geom/geom/inc/bvh/v2/default_builder.h rename to geom/geom/res/bvh/v2/default_builder.h diff --git a/geom/geom/inc/bvh/v2/executor.h b/geom/geom/res/bvh/v2/executor.h similarity index 100% rename from geom/geom/inc/bvh/v2/executor.h rename to geom/geom/res/bvh/v2/executor.h diff --git a/geom/geom/inc/bvh/v2/index.h b/geom/geom/res/bvh/v2/index.h similarity index 100% rename from geom/geom/inc/bvh/v2/index.h rename to geom/geom/res/bvh/v2/index.h diff --git a/geom/geom/inc/bvh/v2/mini_tree_builder.h b/geom/geom/res/bvh/v2/mini_tree_builder.h similarity index 100% rename from geom/geom/inc/bvh/v2/mini_tree_builder.h rename to geom/geom/res/bvh/v2/mini_tree_builder.h diff --git a/geom/geom/inc/bvh/v2/node.h b/geom/geom/res/bvh/v2/node.h similarity index 100% rename from geom/geom/inc/bvh/v2/node.h rename to geom/geom/res/bvh/v2/node.h diff --git a/geom/geom/inc/bvh/v2/platform.h b/geom/geom/res/bvh/v2/platform.h similarity index 100% rename from geom/geom/inc/bvh/v2/platform.h rename to geom/geom/res/bvh/v2/platform.h diff --git a/geom/geom/inc/bvh/v2/ray.h b/geom/geom/res/bvh/v2/ray.h similarity index 100% rename from geom/geom/inc/bvh/v2/ray.h rename to geom/geom/res/bvh/v2/ray.h diff --git a/geom/geom/inc/bvh/v2/reinsertion_optimizer.h b/geom/geom/res/bvh/v2/reinsertion_optimizer.h similarity index 100% rename from geom/geom/inc/bvh/v2/reinsertion_optimizer.h rename to geom/geom/res/bvh/v2/reinsertion_optimizer.h diff --git a/geom/geom/inc/bvh/v2/split_heuristic.h b/geom/geom/res/bvh/v2/split_heuristic.h similarity index 100% rename from geom/geom/inc/bvh/v2/split_heuristic.h rename to geom/geom/res/bvh/v2/split_heuristic.h diff --git a/geom/geom/inc/bvh/v2/stack.h b/geom/geom/res/bvh/v2/stack.h similarity index 100% rename from geom/geom/inc/bvh/v2/stack.h rename to geom/geom/res/bvh/v2/stack.h diff --git a/geom/geom/inc/bvh/v2/stream.h b/geom/geom/res/bvh/v2/stream.h similarity index 100% rename from geom/geom/inc/bvh/v2/stream.h rename to geom/geom/res/bvh/v2/stream.h diff --git a/geom/geom/inc/bvh/v2/sweep_sah_builder.h b/geom/geom/res/bvh/v2/sweep_sah_builder.h similarity index 100% rename from geom/geom/inc/bvh/v2/sweep_sah_builder.h rename to geom/geom/res/bvh/v2/sweep_sah_builder.h diff --git a/geom/geom/inc/bvh/v2/thread_pool.h b/geom/geom/res/bvh/v2/thread_pool.h similarity index 100% rename from geom/geom/inc/bvh/v2/thread_pool.h rename to geom/geom/res/bvh/v2/thread_pool.h diff --git a/geom/geom/inc/bvh/v2/top_down_sah_builder.h b/geom/geom/res/bvh/v2/top_down_sah_builder.h similarity index 100% rename from geom/geom/inc/bvh/v2/top_down_sah_builder.h rename to geom/geom/res/bvh/v2/top_down_sah_builder.h diff --git a/geom/geom/inc/bvh/v2/utils.h b/geom/geom/res/bvh/v2/utils.h similarity index 100% rename from geom/geom/inc/bvh/v2/utils.h rename to geom/geom/res/bvh/v2/utils.h diff --git a/geom/geom/inc/bvh/v2/vec.h b/geom/geom/res/bvh/v2/vec.h similarity index 100% rename from geom/geom/inc/bvh/v2/vec.h rename to geom/geom/res/bvh/v2/vec.h diff --git a/geom/geom/inc/bvh2_extra_kernels.h b/geom/geom/res/bvh2_extra_kernels.h similarity index 100% rename from geom/geom/inc/bvh2_extra_kernels.h rename to geom/geom/res/bvh2_extra_kernels.h diff --git a/geom/geom/inc/bvh2_third_party.h b/geom/geom/res/bvh2_third_party.h similarity index 100% rename from geom/geom/inc/bvh2_third_party.h rename to geom/geom/res/bvh2_third_party.h From d3bef5eb893a92b7efeaca464568390579bfedbd Mon Sep 17 00:00:00 2001 From: ferdymercury Date: Wed, 16 Sep 2026 23:32:24 +0200 Subject: [PATCH 2/4] [bvh] mv to builtins folder It was only very minorly modified for ROOT --- {geom/geom/res => builtins}/bvh/v2/CMakeLists.txt | 0 {geom/geom/res => builtins}/bvh/v2/README.md | 0 {geom/geom/res => builtins}/bvh/v2/bbox.h | 0 {geom/geom/res => builtins}/bvh/v2/binned_sah_builder.h | 0 {geom/geom/res => builtins}/bvh/v2/bvh.h | 0 {geom/geom/res => builtins}/bvh/v2/default_builder.h | 0 {geom/geom/res => builtins}/bvh/v2/executor.h | 0 {geom/geom/res => builtins}/bvh/v2/index.h | 0 {geom/geom/res => builtins}/bvh/v2/mini_tree_builder.h | 0 {geom/geom/res => builtins}/bvh/v2/node.h | 0 {geom/geom/res => builtins}/bvh/v2/platform.h | 0 {geom/geom/res => builtins}/bvh/v2/ray.h | 0 {geom/geom/res => builtins}/bvh/v2/reinsertion_optimizer.h | 0 {geom/geom/res => builtins}/bvh/v2/split_heuristic.h | 0 {geom/geom/res => builtins}/bvh/v2/stack.h | 0 {geom/geom/res => builtins}/bvh/v2/stream.h | 0 {geom/geom/res => builtins}/bvh/v2/sweep_sah_builder.h | 0 {geom/geom/res => builtins}/bvh/v2/thread_pool.h | 0 {geom/geom/res => builtins}/bvh/v2/top_down_sah_builder.h | 0 {geom/geom/res => builtins}/bvh/v2/utils.h | 0 {geom/geom/res => builtins}/bvh/v2/vec.h | 0 geom/geom/CMakeLists.txt | 4 +++- 22 files changed, 3 insertions(+), 1 deletion(-) rename {geom/geom/res => builtins}/bvh/v2/CMakeLists.txt (100%) rename {geom/geom/res => builtins}/bvh/v2/README.md (100%) rename {geom/geom/res => builtins}/bvh/v2/bbox.h (100%) rename {geom/geom/res => builtins}/bvh/v2/binned_sah_builder.h (100%) rename {geom/geom/res => builtins}/bvh/v2/bvh.h (100%) rename {geom/geom/res => builtins}/bvh/v2/default_builder.h (100%) rename {geom/geom/res => builtins}/bvh/v2/executor.h (100%) rename {geom/geom/res => builtins}/bvh/v2/index.h (100%) rename {geom/geom/res => builtins}/bvh/v2/mini_tree_builder.h (100%) rename {geom/geom/res => builtins}/bvh/v2/node.h (100%) rename {geom/geom/res => builtins}/bvh/v2/platform.h (100%) rename {geom/geom/res => builtins}/bvh/v2/ray.h (100%) rename {geom/geom/res => builtins}/bvh/v2/reinsertion_optimizer.h (100%) rename {geom/geom/res => builtins}/bvh/v2/split_heuristic.h (100%) rename {geom/geom/res => builtins}/bvh/v2/stack.h (100%) rename {geom/geom/res => builtins}/bvh/v2/stream.h (100%) rename {geom/geom/res => builtins}/bvh/v2/sweep_sah_builder.h (100%) rename {geom/geom/res => builtins}/bvh/v2/thread_pool.h (100%) rename {geom/geom/res => builtins}/bvh/v2/top_down_sah_builder.h (100%) rename {geom/geom/res => builtins}/bvh/v2/utils.h (100%) rename {geom/geom/res => builtins}/bvh/v2/vec.h (100%) diff --git a/geom/geom/res/bvh/v2/CMakeLists.txt b/builtins/bvh/v2/CMakeLists.txt similarity index 100% rename from geom/geom/res/bvh/v2/CMakeLists.txt rename to builtins/bvh/v2/CMakeLists.txt diff --git a/geom/geom/res/bvh/v2/README.md b/builtins/bvh/v2/README.md similarity index 100% rename from geom/geom/res/bvh/v2/README.md rename to builtins/bvh/v2/README.md diff --git a/geom/geom/res/bvh/v2/bbox.h b/builtins/bvh/v2/bbox.h similarity index 100% rename from geom/geom/res/bvh/v2/bbox.h rename to builtins/bvh/v2/bbox.h diff --git a/geom/geom/res/bvh/v2/binned_sah_builder.h b/builtins/bvh/v2/binned_sah_builder.h similarity index 100% rename from geom/geom/res/bvh/v2/binned_sah_builder.h rename to builtins/bvh/v2/binned_sah_builder.h diff --git a/geom/geom/res/bvh/v2/bvh.h b/builtins/bvh/v2/bvh.h similarity index 100% rename from geom/geom/res/bvh/v2/bvh.h rename to builtins/bvh/v2/bvh.h diff --git a/geom/geom/res/bvh/v2/default_builder.h b/builtins/bvh/v2/default_builder.h similarity index 100% rename from geom/geom/res/bvh/v2/default_builder.h rename to builtins/bvh/v2/default_builder.h diff --git a/geom/geom/res/bvh/v2/executor.h b/builtins/bvh/v2/executor.h similarity index 100% rename from geom/geom/res/bvh/v2/executor.h rename to builtins/bvh/v2/executor.h diff --git a/geom/geom/res/bvh/v2/index.h b/builtins/bvh/v2/index.h similarity index 100% rename from geom/geom/res/bvh/v2/index.h rename to builtins/bvh/v2/index.h diff --git a/geom/geom/res/bvh/v2/mini_tree_builder.h b/builtins/bvh/v2/mini_tree_builder.h similarity index 100% rename from geom/geom/res/bvh/v2/mini_tree_builder.h rename to builtins/bvh/v2/mini_tree_builder.h diff --git a/geom/geom/res/bvh/v2/node.h b/builtins/bvh/v2/node.h similarity index 100% rename from geom/geom/res/bvh/v2/node.h rename to builtins/bvh/v2/node.h diff --git a/geom/geom/res/bvh/v2/platform.h b/builtins/bvh/v2/platform.h similarity index 100% rename from geom/geom/res/bvh/v2/platform.h rename to builtins/bvh/v2/platform.h diff --git a/geom/geom/res/bvh/v2/ray.h b/builtins/bvh/v2/ray.h similarity index 100% rename from geom/geom/res/bvh/v2/ray.h rename to builtins/bvh/v2/ray.h diff --git a/geom/geom/res/bvh/v2/reinsertion_optimizer.h b/builtins/bvh/v2/reinsertion_optimizer.h similarity index 100% rename from geom/geom/res/bvh/v2/reinsertion_optimizer.h rename to builtins/bvh/v2/reinsertion_optimizer.h diff --git a/geom/geom/res/bvh/v2/split_heuristic.h b/builtins/bvh/v2/split_heuristic.h similarity index 100% rename from geom/geom/res/bvh/v2/split_heuristic.h rename to builtins/bvh/v2/split_heuristic.h diff --git a/geom/geom/res/bvh/v2/stack.h b/builtins/bvh/v2/stack.h similarity index 100% rename from geom/geom/res/bvh/v2/stack.h rename to builtins/bvh/v2/stack.h diff --git a/geom/geom/res/bvh/v2/stream.h b/builtins/bvh/v2/stream.h similarity index 100% rename from geom/geom/res/bvh/v2/stream.h rename to builtins/bvh/v2/stream.h diff --git a/geom/geom/res/bvh/v2/sweep_sah_builder.h b/builtins/bvh/v2/sweep_sah_builder.h similarity index 100% rename from geom/geom/res/bvh/v2/sweep_sah_builder.h rename to builtins/bvh/v2/sweep_sah_builder.h diff --git a/geom/geom/res/bvh/v2/thread_pool.h b/builtins/bvh/v2/thread_pool.h similarity index 100% rename from geom/geom/res/bvh/v2/thread_pool.h rename to builtins/bvh/v2/thread_pool.h diff --git a/geom/geom/res/bvh/v2/top_down_sah_builder.h b/builtins/bvh/v2/top_down_sah_builder.h similarity index 100% rename from geom/geom/res/bvh/v2/top_down_sah_builder.h rename to builtins/bvh/v2/top_down_sah_builder.h diff --git a/geom/geom/res/bvh/v2/utils.h b/builtins/bvh/v2/utils.h similarity index 100% rename from geom/geom/res/bvh/v2/utils.h rename to builtins/bvh/v2/utils.h diff --git a/geom/geom/res/bvh/v2/vec.h b/builtins/bvh/v2/vec.h similarity index 100% rename from geom/geom/res/bvh/v2/vec.h rename to builtins/bvh/v2/vec.h diff --git a/geom/geom/CMakeLists.txt b/geom/geom/CMakeLists.txt index 7bc5afd055eb6..a405c1a2f36ae 100644 --- a/geom/geom/CMakeLists.txt +++ b/geom/geom/CMakeLists.txt @@ -130,7 +130,9 @@ ROOT_STANDARD_LIBRARY_PACKAGE(Geom Imt ) -target_include_directories(Geom PRIVATE res) +target_include_directories(Geom PRIVATE res +../../builtins/ # for bvh hard-coded builtin, forked from https://github.com/madmann91/bvh/commit/66e445b92f68801a6dd8ef943fe3038976ecb4ff +) # GCC has bugs with -O3 or -Ofast that break Geom if(CMAKE_COMPILER_IS_GNUCXX) if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5 OR CMAKE_SIZEOF_VOID_P LESS 8) From 18842770a7696062acd6e2d9204b202bbef67f3f Mon Sep 17 00:00:00 2001 From: ferdymercury Date: Wed, 16 Sep 2026 23:34:39 +0200 Subject: [PATCH 3/4] [bvh] add license file --- builtins/bvh/LICENSE.txt | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 builtins/bvh/LICENSE.txt diff --git a/builtins/bvh/LICENSE.txt b/builtins/bvh/LICENSE.txt new file mode 100644 index 0000000000000..8fe2274ab8872 --- /dev/null +++ b/builtins/bvh/LICENSE.txt @@ -0,0 +1,16 @@ +Copyright 2022 Arsène Pérard-Gayot + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and +associated documentation files (the "Software"), to deal in the Software without restriction, +including without limitation the rights to use, copy, modify, merge, publish, distribute, +sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial +portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT +NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES +OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. From de8f78b14f7ba67e658beaec948191961db51cb5 Mon Sep 17 00:00:00 2001 From: ferdymercury Date: Wed, 16 Sep 2026 23:36:38 +0200 Subject: [PATCH 4/4] [cmake] comment bvh builtin roadmap --- geom/geom/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/geom/geom/CMakeLists.txt b/geom/geom/CMakeLists.txt index a405c1a2f36ae..8d186eb24b20d 100644 --- a/geom/geom/CMakeLists.txt +++ b/geom/geom/CMakeLists.txt @@ -132,6 +132,7 @@ ROOT_STANDARD_LIBRARY_PACKAGE(Geom target_include_directories(Geom PRIVATE res ../../builtins/ # for bvh hard-coded builtin, forked from https://github.com/madmann91/bvh/commit/66e445b92f68801a6dd8ef943fe3038976ecb4ff +# TODO: move this to a proper isolated builtin with find_package, and resync with upstream version, add ROOT builtin_bvh option ) # GCC has bugs with -O3 or -Ofast that break Geom if(CMAKE_COMPILER_IS_GNUCXX)