Joltphysics/5.6.0 - #30778
Open
sunbubble wants to merge 3 commits into
Open
Conversation
Register it in config.yml; also disable the GPU compute backends (JPH_USE_DX12/VK/MTL/CPU_COMPUTE) introduced in 5.6.0 that default to ON but require optional SDKs not managed by this recipe. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add a simd option (sse2/sse41/sse42/avx/avx2/avx512, default avx2, matching Jolt's own CMake defaults) so the SIMD baseline is part of the package identity and can be lowered by a consumer that cannot require AVX2 at runtime, or that cannot afford the ABI consequences of the flags this recipe propagates. Wire the corresponding USE_* CMake variables so the compiled library matches the selected level, and propagate matching cxxflags and defines in package_info so consumer TUs that include Jolt's SIMD-guarded headers compile correctly without extra profile configuration. Set the JPH_USE_* defines and the ISA compiler flags from the toolchain as well. Jolt emits both from a CMake branch guarded on CMAKE_VS_PLATFORM_NAME, which is empty for every generator other than Visual Studio, so under Ninja the library was compiled without them while package_info() still exported them to consumers. JPH_USE_AVX changes the layout of DVec3 and is not part of JPH_VERSION_ID, so RegisterTypes() cannot catch that mismatch and it corrupts silently. Setting them here makes them follow the selected option rather than the generator. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Add Conan options for all user-facing CMake knobs that produce public defines or affect the compiled ABI: - double_precision (DOUBLE_PRECISION / JPH_DOUBLE_PRECISION) - object_layer_bits 16|32 (OBJECT_LAYER_BITS / JPH_OBJECT_LAYER_BITS) - cross_platform_deterministic (JPH_CROSS_PLATFORM_DETERMINISTIC) - object_stream (ENABLE_OBJECT_STREAM / JPH_OBJECT_STREAM) - enable_asserts (USE_ASSERTS / JPH_ENABLE_ASSERTS) - custom_allocator (DISABLE_CUSTOM_ALLOCATOR / JPH_DISABLE_CUSTOM_ALLOCATOR) - use_std_vector (USE_STD_VECTOR / JPH_USE_STD_VECTOR) - cpu_compute (JPH_USE_CPU_COMPUTE) - floating_point_exceptions (FLOATING_POINT_EXCEPTIONS_ENABLED / JPH_FLOATING_POINT_EXCEPTIONS_ENABLED), MSVC only, since that is the only toolchain Jolt ever defines it for Also fix three latent bugs: - OBJECT_LAYER_BITS was hardcoded to 16 in package_info() but never passed to CMake, so the define and the build could silently diverge. - USE_FMADD and the -mfma consumer flag are now gated on both _has_avx2 and not cross_platform_deterministic, matching Jolt's own CMake logic. - JPH_FLOATING_POINT_EXCEPTIONS_ENABLED was exported for every MSVC build, but Jolt compiles it into the Debug and Release configurations only, so a RelWithDebInfo package exported a define the library was not built with. It is one of the JPH_VERSION_ID feature bits and RegisterTypesInternal() calls std::abort() on a mismatch, so the export now tracks the configuration that was actually compiled. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
sunbubble
force-pushed
the
joltphysics/5.6.0-simd
branch
from
August 12, 2026 10:58
cd6be6e to
9c7e407
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Changes to recipe: joltphysics/5.6.0
Motivation
Two bugs in the existing recipe plus a new version:
Details