makepad/libs/rapier/vendor/safe_arch
Admin 630577cb98 rapier: restore simd-stable (vendor wide + safe_arch), retest vs box3d
Re-vendors wide 0.7 + safe_arch, restores the upstream simd-stable
wiring in rapier3d/parry3d manifests and the cfg-simd source, and drops
the added 'stripped build does not support SIMD' guards (upstream's
simd-vs-enhanced-determinism exclusivity guard kept).

Interleaved single-thread retest (min of 4): SIMD buys rapier 1.8-2.2x;
box3d vs rapier-simd is now near parity — large_pyramid 1579 vs 1638 ms,
joint_grid 957 vs 1008 ms (box3d ahead), many_pyramids 2389 vs 1970 ms
(rapier ahead). box3d README grid updated with the honest three-column
table; box3d keeps cross-arch determinism + zero deps at that speed.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-05 14:17:26 +02:00
..
.cargo rapier: restore simd-stable (vendor wide + safe_arch), retest vs box3d 2026-07-05 14:17:26 +02:00
.github/workflows rapier: restore simd-stable (vendor wide + safe_arch), retest vs box3d 2026-07-05 14:17:26 +02:00
scripts rapier: restore simd-stable (vendor wide + safe_arch), retest vs box3d 2026-07-05 14:17:26 +02:00
src rapier: restore simd-stable (vendor wide + safe_arch), retest vs box3d 2026-07-05 14:17:26 +02:00
tests/integration rapier: restore simd-stable (vendor wide + safe_arch), retest vs box3d 2026-07-05 14:17:26 +02:00
.gitignore rapier: restore simd-stable (vendor wide + safe_arch), retest vs box3d 2026-07-05 14:17:26 +02:00
Cargo.toml rapier: restore simd-stable (vendor wide + safe_arch), retest vs box3d 2026-07-05 14:17:26 +02:00
LICENSE-APACHE.md rapier: restore simd-stable (vendor wide + safe_arch), retest vs box3d 2026-07-05 14:17:26 +02:00
LICENSE-MIT.md rapier: restore simd-stable (vendor wide + safe_arch), retest vs box3d 2026-07-05 14:17:26 +02:00
LICENSE-ZLIB.md rapier: restore simd-stable (vendor wide + safe_arch), retest vs box3d 2026-07-05 14:17:26 +02:00
README.md rapier: restore simd-stable (vendor wide + safe_arch), retest vs box3d 2026-07-05 14:17:26 +02:00
rustfmt.toml rapier: restore simd-stable (vendor wide + safe_arch), retest vs box3d 2026-07-05 14:17:26 +02:00

Docs.rs

safe_arch

Exposes arch-specific intrinsics as safe function.

  • SIMD types are newtype'd (with a pub field) and given appropriate trait impls such as From, Into, Default, etc.
  • Each intrinsic gets either a function or macro so that you can safely use it as directly as possible.
    • Functions are used when all arguments are runtime arguments.
    • Macros are used when one of the arguments must be a compile time constant, because Rust doesn't let you "pass through" compile time constants.
  • There's hundreds and hundreds of intrinsics, so the names of functions and macros tend to be very long and specific because there's often many similar ways to do nearly the same thing.
    • This crate isn't really intended for "everyday users". It is intended to be an "unopinionated" middle layer crate that just provides the safety. Higher level abstractions should mostly come from some other crate that wraps over this crate.

All function and macro availability is done purely at compile time via #[cfg()] attributes on the various modules. If a CPU feature isn't enabled for the build then those functions or macros won't be available. If you'd like to determine what CPU features are available at runtime and then call different code accordingly, this crate is not for you.

See the crate docs for more details.

Additional Resources