Skip to content

Dav/pr7 chrono10 followups - #17

Open
dav-og wants to merge 3 commits into
Project-SEA-Stack:salhus/linux-support-fixesfrom
dav-og:dav/pr7-chrono10-followups
Open

dav-og wants to merge 3 commits into
Project-SEA-Stack:salhus/linux-support-fixesfrom
dav-og:dav/pr7-chrono10-followups

Conversation

@dav-og

@dav-og dav-og commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Follow-up changes from testing PR #7 on Ubuntu 22.04 against SEA-Stack’s documented Chrono 10.0.0 baseline.

This adds three targeted changes on top of salhus/linux-support-fixes:

  • restore the Chrono 10.0.0-compatible m_script_directory API;
  • revert the opaque-water workaround - translucent VSG water works correctly here with Chrono 10.0.0 and its pinned VSG stack;
  • allow Ubuntu libhdf5-dev to be discovered through CMake module mode when HDF5Dir is unset, so HydroIO remains enabled.

Tested locally on Ubuntu 22.04 with Chrono 10.0.0:

  • clean VSG build succeeds;
  • HydroIO enabled with empty HDF5Dir;
  • unit tests pass;
  • 5SA bimodal reaches 600 s;
  • translucent VSG GUI runs without the reported DepthSorted crash.

@salhus - could you please retest this combined branch on your Linux setup using Chrono 10.0.0? It would also be useful to know which Chrono version/commit you originally tested PR #7 against, as a couple of the original changes appear to target a newer Chrono main API.

a0d34cc switched HCParser::SetScriptDir to
m_file_handler.SetReferenceDirectory(dir). That member exists on Chrono
main, but not on the Chrono 10.0.0 release that SEA-Stack documents as
its baseline, so the app fails to compile against 10.0.0.

Restore the protected m_script_directory assignment, which is the
Chrono 10.0.0 API. The yaml-cpp half of a0d34cc is kept unchanged --
preferring Chrono::yaml-cpp over a system yaml-cpp is correct on both
Chrono versions and avoids the YAML::FpToString / YAML::Emitter::Write
link errors Salhus reported.

Verified on Ubuntu 22.04 against Chrono 10.0.0 built with Chrono's
pinned VSG stack (vsg 1.1.11, vsgXchange 1.1.7, vsgImGui 0.7.0).
…Sorted crash"

This reverts 2172d0b, restoring the intended translucent free surface
(kWaterOpacity = 0.55) and the faint translucent wireframe overlay
(SetOpacity(0.35)).

The DepthSorted / vsg::Bin::add crash does not reproduce against the
documented Chrono 10.0.0 baseline. Chrono 10.0.0 has no
wrapIfTransparent() helper and does not wrap runtime-added nodes in
vsg::DepthSorted, so a sub-1.0 material opacity never reaches the bin-10
path described in 2172d0b. That code was added on Chrono main after the
10.0.0 release, which is the most likely reason the crash was seen.

Validated on Ubuntu 22.04.5 + RTX 3060 against Chrono 10.0.0 built with
Chrono's pinned VSG stack (vsg 1.1.11, vsgXchange 1.1.7, vsgImGui 0.7.0,
glslang 15.4.0): the 5SA bimodal GUI runs with translucent water and the
wireframe toggle without any FATAL or renderer crash.

Please retest on your Linux machine against Chrono 10.0.0 specifically.
If the crash returns there, the VSG stack version is the thing to
compare first, and we should fix the runtime compile traversal rather
than force opacity to 1.0.
On Ubuntu, scripts/unix/build.sh treated an empty HDF5Dir in
build-config.json as "HDF5 missing" and forced
SEASTACK_ENABLE_HYDRO_IO=OFF. CMake was therefore never given a chance
to find the apt libhdf5-dev package, and builds that did want HydroIO
failed later on a missing h5_reader.h rather than at configure time.
The only workaround was an undocumented manual HDF5Dir entry.

Two small changes:

* scripts/unix/build.sh - leave HydroIO ON when HDF5Dir is unset and
  print an INFO note instead. CMake's FindHDF5 then runs normally, and a
  genuinely missing HDF5 fails at configure time with a clear error.

* CMakeLists.txt - Chrono's ChronoConfig can leave HDF5_DIR cached as
  NOTFOUND when Chrono itself found HDF5 via module mode. Clear that
  stale value, then probe module-mode find_package(HDF5 COMPONENTS CXX)
  when HydroIO is enabled and HDF5 is not yet found.

Validated on Ubuntu 22.04.5 with "HDF5Dir": "" and Chrono 10.0.0 + VSG:
configure reports HydroIO ON, libseastack_hydro_io.a builds, and
run_seastack links libhdf5_serial 1.10.7 via module mode while HDF5_DIR
stays NOTFOUND.
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