Skip to content

Update dependencies and CI, fixes - #603

Merged
johguenther merged 11 commits into
develfrom
guj/bump_ispc
Oct 2, 2026
Merged

johguenther merged 11 commits into
develfrom
guj/bump_ispc

Conversation

@johguenther

@johguenther johguenther commented Nov 25, 2024 •

Copy link
Copy Markdown
Contributor

Just the CI and dependencies updates. (older Fixes and optimizations moved to #611)

@johguenther
johguenther force-pushed the guj/bump_ispc branch 9 times, most recently from f793752 to 5ad92e2 Compare November 28, 2024 10:55
@johguenther

Copy link
Copy Markdown
Contributor Author

depends on RenderKit/openvkl#31

@johguenther johguenther changed the title Update dependencies, fix initialization of OpenGL on OSX Update dependencies and CI, fixes and optimizations Dec 9, 2025
@johguenther
johguenther force-pushed the guj/bump_ispc branch 3 times, most recently from e160114 to ea1958e Compare February 25, 2026 17:56
@johguenther
johguenther force-pushed the guj/bump_ispc branch 3 times, most recently from f9b1654 to 0473a4b Compare March 12, 2026 11:04
@johguenther johguenther changed the title Update dependencies and CI, fixes and optimizations Update dependencies and CI Mar 17, 2026
@johguenther
johguenther force-pushed the guj/bump_ispc branch 2 times, most recently from 8cf57e4 to d7d82fc Compare March 18, 2026 16:27
@johguenther
johguenther force-pushed the guj/bump_ispc branch 2 times, most recently from e215dd7 to d4e1e72 Compare August 11, 2026 20:16
- ISPC v1.30.0 (the new minimum required version)
- OIDN v2.5.1
- OpenVKL devel (until v2.0.3, for AMR fix)
- rkcommon v1.15.4 (also update test images, because changed
  LinearSpace3::frame(vec3f N) leads to different noise)
- oneTBB v2023.1
- Dear ImGui v1.92.9b
- glfw v3.5.1 (disable Wayland backend)
- glm v1.0.3
- snappy v1.3.1
- benchmark v1.9.5
- gtest v1.18
- icx 2025.3 / dpcpp v7.1.0
- remove benny
- superbuild: forward the compiler to the remaining dependencies
- link the apps with DT_RPATH (to find libumf)
Newer CMake v4.x dropped support for versions < 3.10
- testing BMG and LNL
- update Windows runner tags
- no benchmarking on PVC
- no storage of release packages
- remove msvc15
The benchmarked shutdown/init cycles reload the CPU module, registering
Embree's static destructors after the atexit of f3f1416, thus they run
first. Shut down at the end of main; keep that handler (the benchmark
library may call exit, a second ospShutdown is a no-op).

Also drop the catch(...) in ~ISPCDevice: it describes a segfault, which is
not catchable, and Embree's C API turns exceptions into error callbacks.

Sanitize jobs need our TBB (Debug OSPRay ships only the debug one) and
intercept_tls_get_addr=0.
- Correct row-major strides (use .x/.y, not .y/.z)
- Reseatable currentLevel pointer instead of const_cast on in
- Reject non-multiple input dims and blockSize (fixes OOB + data race)
- Drop dead counters; move brick data into output
Superbuild uses v4.4.1 from source for GPU builds but v4.4.0 pre-built
for CPU-only builds (because v4.4.1 pre-built changed folder to `lib64`)
@johguenther
johguenther force-pushed the guj/bump_ispc branch 2 times, most recently from 34967b3 to e2006e9 Compare September 29, 2026 20:38
@johguenther
johguenther requested a balanced review from Copilot September 29, 2026 20:48

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

Release authentication, dependency reproducibility, shared-install ownership, and PR scope discrepancies remain unresolved.

Review effort: Balanced
Findings: 1 High severity · 2 Medium severity · 1 Low severity

Open (4)
What changed in this PR

Updates dependencies and CI, migrates Embree integration to traversables, and includes several runtime fixes.

Changes:

  • Updates build requirements and third-party dependencies.
  • Expands and modernizes CI/release coverage.
  • Adapts rendering code to newer Embree APIs and fixes several behaviors.
File Description
test_image_data/​CMakeLists.txt Raises minimum CMake version.
test_image_data/​baseline/​TestScenesVolumes_UnstructuredVolume.simple_3.png.md5 Updates image baseline.
test_image_data/​baseline/​Light_AmbientLight.parameter_0.png.md5 Updates image baseline.
scripts/​tests/​sanitize_ignore.txt Adds leak-sanitizer suppressions.
scripts/​tests/​run-benchmarks.sh Removes Benny result uploads.
scripts/​tests/​run_tests.sh Restores ARM shadow-catcher test.
scripts/​tests/​run_gpu_tests.sh Consolidates GPU ID-buffer exclusions.
scripts/​tests/​run_gpu_tests.ps1 Mirrors GPU test exclusions on Windows.
scripts/​superbuild/​toolchains/​macos-rosetta.cmake Configures Objective-C cross-compilation targets.
scripts/​superbuild/​dependencies/​package_install.cmake Adds shared-prefix package installation.
scripts/​superbuild/​dependencies/​glfw.patch Updates secure Windows module loading patch.
scripts/​superbuild/​dependencies/​dep_snappy.cmake Updates Snappy and visibility settings.
scripts/​superbuild/​dependencies/​dep_rkcommon.cmake Updates dependency ordering.
scripts/​superbuild/​dependencies/​dep_openvkl.cmake Updates OpenVKL installation and dependencies.
scripts/​superbuild/​dependencies/​dep_oidn.cmake Updates OIDN source/package handling.
scripts/​superbuild/​dependencies/​dep_ispc.cmake Updates ISPC package layout handling.
scripts/​superbuild/​dependencies/​dep_gtest.cmake Updates GoogleTest.
scripts/​superbuild/​dependencies/​dep_glm.cmake Updates GLM.
scripts/​superbuild/​dependencies/​dep_glfw.cmake Updates GLFW and build options.
scripts/​superbuild/​dependencies/​dep_embree.cmake Updates Embree installation handling.
scripts/​superbuild/​dependencies/​dep_benchmark.cmake Updates Google Benchmark.
scripts/​superbuild/​CMakeLists.txt Updates dependency versions and orchestration.
scripts/​release/​macosx.sh Reorders release options.
README.md Updates ISPC prerequisite.
ospray/​include/​ospray/​ospray.h Adjusts C++ NULL detection.
ospray/​include/​ospray/​OSPEnums.h Stabilizes C++ enum widths.
ospray/​common/​ISPCMessages.h Stabilizes message enum width.
ospray/​api/​API.cpp Changes sanitizer shutdown behavior.
modules/​mpi/​tutorials/​GLFWDistribOSPRayWindow.cpp Uses a monotonic frame timer.
modules/​mpi/​ospray/​render/​distributed/​DistributedRenderer.ispc Uses Embree traversable intersection.
modules/​mpi/​ospray/​common/​DistributedWorldShared.h Stores a region traversable.
modules/​mpi/​ospray/​common/​DistributedWorld.cpp Manages region scene ownership.
modules/​cpu/​volume/​Volume.ispc Adjusts GPU volume-hit bookkeeping.
modules/​cpu/​ISPCDevice.cpp Removes exception suppression during teardown.
modules/​cpu/​geometry/​Geometry.h Supports custom vector allocators.
modules/​cpu/​geometry/​Curves.h Uses device-accessible curve flags.
modules/​cpu/​geometry/​Curves.cpp Allocates and initializes shared curve flags.
modules/​cpu/​common/​WorldShared.h Replaces scene handles with traversables.
modules/​cpu/​common/​World.ih Uses traversable tracing APIs.
modules/​cpu/​common/​World.h Retains host-owned Embree scenes.
modules/​cpu/​common/​World.cpp Manages scenes and traversables separately.
modules/​cpu/​common/​InstanceShared.h Stores an instance traversable.
modules/​cpu/​common/​Instance.ih Queries transforms through traversables.
modules/​cpu/​common/​Instance.h Adds traversable assignment.
modules/​cpu/​common/​Instance.cpp Queries transforms directly from geometry.
modules/​cpu/​CMakeLists.txt Maps traversable APIs for GPU builds.
modules/​cpu/​camera/​PerspectiveCamera.ispc Uses traversable camera transforms.
modules/​cpu/​camera/​PanoramicCamera.ispc Uses traversable camera transforms.
modules/​cpu/​camera/​OrthographicCamera.ispc Uses traversable camera transforms.
modules/​cpu/​camera/​CameraShared.h Stores a camera traversable.
modules/​cpu/​camera/​Camera.h Adds an Embree dummy scene.
modules/​cpu/​camera/​Camera.cpp Builds camera transform traversables.
doc/​prerequisites.md Updates tool and dependency prerequisites.
doc/​compilation.md Updates package lookup example.
CMakeLists.txt Raises minimum CMake version.
cmake/​package.cmake Configures transitive archive RPATH behavior.
cmake/​ospray_redistribute_deps.cmake Adds Unified Runtime libraries.
cmake/​ospray_options.cmake Updates required dependency versions.
cmake/​ospray_cmake_config/​osprayConfig.cmake.in Removes legacy MSVC workaround.
cmake/​compiler/​msvc.cmake Removes legacy __cplusplus flag.
cmake/​compiler/​ispc.cmake Enforces the minimum ISPC version.
cmake/​compiler/​dpcpp.cmake Removes unsupported offload flag.
cmake/​compiler/​clang.cmake Adds secure Windows dependency loading.
CHANGELOG.md Documents dependency and runtime changes.
apps/​ospTutorial/​ospTutorialFindospray/​CMakeLists.txt Raises tutorial CMake minimum.
apps/​ospBenchmark/​ospBenchmark.cpp Performs explicit benchmark shutdown.
apps/​common/​raw_to_amr/​rawToAMR.cpp Fixes AMR indexing and concurrency.
apps/​common/​external/​imgui/​imgui.patch Updates ImGui integration patch.
.github/​workflows/​scheduled.yml Updates scheduled Windows runners.
.github/​workflows/​release.yml Modernizes release and validation jobs.
.github/​workflows/​icx-windows.env Updates Windows Intel compiler.
.github/​workflows/​icx-linux.env Updates Linux Intel compiler.
.github/​workflows/​gfx-windows.env Tracks the latest Windows GPU driver.
.github/​workflows/​dpcpp.env Updates the DPC++ toolchain.
.github/​workflows/​ci.windows.yml Updates Windows build/test coverage.
.github/​workflows/​ci.windows.gpu.yml Expands Windows GPU coverage.
.github/​workflows/​ci.linux.yml Updates Linux toolchains and sanitizer jobs.
.github/​workflows/​ci.linux.gpu.yml Expands Linux GPU coverage.
.github/​workflows/​benchmark.yml Removes Benny and obsolete PVC coverage.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread .github/workflows/release.yml Resolved
Comment thread scripts/superbuild/CMakeLists.txt Resolved
Comment thread CHANGELOG.md Resolved
@johguenther johguenther changed the title Update dependencies and CI Update dependencies and CI, fixes Sep 29, 2026
- workers SIGILL: Open MPI patches mmap over ASan's interceptor, disable
  its patcher
- leaks: Open MPI per-process state, prterun kills the workers before
  MPI_Finalize; sanitize_ignore.txt back (was dropped by a04c1a3)
- odr-violation on snappy::Sink vtable: static snappy in 3 shared libs,
  build it hidden
- rank 0 leaks unnameable (<unknown module>): ospShutdown unmaps the MPI
  module before LSan looks, thus keep modules loaded under ASan
@johguenther
johguenther merged commit 1fc3647 into devel Oct 2, 2026
10 checks passed
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.

2 participants