Skip to content

feat(wrapper): Bump JoltPhysics to v5.6.0 #14

Description

@github-actions

What this does

Moves the JoltPhysics/ submodule from v5.5.0 to v5.6.0 (23dadd0e77f175) and repairs the single API break the release caused. Version macro JOLTC_JOLT_VERSION updated to 5.6.0.

Build passes; all 259 C tests pass on linux-x64. The CMake pins already anticipated 5.6.0: JPH_USE_DX12/VK/MTL/CPU_COMPUTE are forced OFF in JoltC/CMakeLists.txt, so the new compute/hair GPU code is not compiled and needs no toolchain (dxc/spirv-cross). No new JPH_* build variable required pinning beyond what is already present.

Repair (mechanical)

CharacterContactListener was refactored upstream: its OnContactValidate, OnContactAdded and OnContactPersisted virtuals now take a single const CharacterContact & struct instead of loose BodyID / SubShapeID / position / normal parameters. This broke the override in JoltC/src/wrappers.h.

Adapted the three overrides to read from the struct:

  • inBodyID2inContact.mBodyB
  • inContactPositioninContact.mPosition
  • inContactNormalinContact.mContactNormal

The C ABI is unchanged — the JoltC_OnCharacterContact*Fn callback signatures and everything a downstream binding sees are identical. No wrapper function was removed. This is a signature-only repair.

Additions upstream that this wrapper does not expose (proposal, not implemented)

Deciding what to expose is a product call; listing for a human to triage:

  • GPU compute + strand-based hair simulation (DX12/Vulkan/Metal/CPU). Large new subsystem, disabled at build time here and pulls a dxc/spirv-cross toolchain dependency. Likely out of scope for this C layer.
  • New friction model — internal solver change; no new public API to wrap, behavior-only.
  • HeightFieldShape::mBitsPerSample max raised to 16 — existing setter already covers it; no new surface.
  • CollideShapeSettings::mInternalEdgeRemovalVertexToleranceSq and PhysicsSettings::mInternalEdgeRemovalVertexToleranceSq — new configurable tolerances; candidates for getter/setter exposure.
  • ShapeCastSettings::mExtraConvexRadius — new field on shape-cast settings.
  • ESpringMode::MassNormalizedStiffnessAndDamping and EMotorState::PositionAndVelocity — new enum values for glTF KHR_physics_rigid_bodies motor support.
  • Ragdoll::DriveToPoseUsingMotors position+velocity variant.
  • Body::ApplyBodyCreationSettings and Body::ApplySoftBodyCreationSettings — update a body from creation settings post-creation.
  • JPH_BUILD_SHARED_LIBS CMake variable — build-system only.
  • RISC-V RVV SIMD support and collision-step simulation stats — platform/diagnostics, no C API.

Deprecations upstream (informational)

UWP, Windows ARM32, and compilers older than VS2022 / Clang 16 / GCC 12 are deprecated upstream. None affect the platforms this wrapper builds for.

Testing

cmake -S JoltC -B JoltC/build -DCMAKE_BUILD_TYPE=Release -DJOLTC_BUILD_TESTS=ON -DPHYSICS_REPO_ROOT="$PWD/JoltPhysics"
cmake --build JoltC/build --config Release   # Jolt + JoltC + JoltC_Tests built
ctest --test-dir JoltC/build --output-on-failure --no-tests=error   # 259/259 passed

Generated by 🔧 C++ Wrapper Porter · opus48 · 185 AIC · ⌖ 18.8 AIC · ⊞ 7.6K ·


Note

This was originally intended as a pull request, but the git push operation failed.

Error: Signed commit push refused — submodule change detected

GitHub's createCommitOnBranch GraphQL API cannot represent:

  • Merge commits
  • Symlinks (mode 120000)
  • Submodule entries (mode 160000)
  • Executable files (mode 100755)

To fix: Remove the submodule entry from the commit history,
or set signed-commits: false in your workflow step if signed commits are not required.

Workflow Run: View run details and download bundle artifact

The bundle file is available in the agent artifact in the workflow run linked above.

To create a pull request with the changes:

# Download the artifact from the workflow run
gh run download 30918179814 -n agent -D /tmp/agent-30918179814

# Fetch the bundle into a temporary ref, then update the local branch
git fetch /tmp/agent-30918179814/aw-bump-jolt-v5.6.0.bundle refs/heads/bump-jolt-v5.6.0:refs/bundles/create-pr-bump-jolt-v5-6-0-b24ae2adb5bab9ba-133095d5
git update-ref refs/heads/bump-jolt-v5.6.0-b24ae2adb5bab9ba refs/bundles/create-pr-bump-jolt-v5-6-0-b24ae2adb5bab9ba-133095d5
git checkout bump-jolt-v5.6.0-b24ae2adb5bab9ba
# Ensure the working tree matches the updated branch
git reset --hard
# Remove the temporary bundle ref
git update-ref -d refs/bundles/create-pr-bump-jolt-v5-6-0-b24ae2adb5bab9ba-133095d5

# Push the branch to origin
git push origin bump-jolt-v5.6.0-b24ae2adb5bab9ba

# Create the pull request
gh pr create --title 'feat(wrapper): Bump JoltPhysics to v5.6.0' --base main --head bump-jolt-v5.6.0-b24ae2adb5bab9ba --repo EvergineTeam/JoltPhysicsC

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions