makepad/libs/rapier/vendor/wide/.github/workflows/rust.yml
Admin 2a0b1e803d 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

98 lines
4.3 KiB
YAML

name: Rust
on:
push: {}
pull_request: {}
jobs:
build_test:
runs-on: ${{ matrix.rust.os }}
strategy:
matrix:
rust:
# x86
- { target: i686-pc-windows-msvc, toolchain: "1.61", os: windows-latest }
- { target: i686-pc-windows-msvc, toolchain: stable, os: windows-latest }
- { target: i686-pc-windows-msvc, toolchain: beta, os: windows-latest }
- { target: i686-pc-windows-msvc, toolchain: nightly, os: windows-latest }
# x86_64
- { target: x86_64-unknown-linux-gnu, toolchain: "1.61", os: ubuntu-latest }
- { target: x86_64-unknown-linux-gnu, toolchain: stable, os: ubuntu-latest }
- { target: x86_64-unknown-linux-gnu, toolchain: beta, os: ubuntu-latest }
- { target: x86_64-unknown-linux-gnu, toolchain: nightly, os: ubuntu-latest }
# aarch64
- { target: aarch64-apple-darwin, toolchain: "1.61", os: macos-latest }
- { target: aarch64-apple-darwin, toolchain: stable, os: macos-latest }
- { target: aarch64-apple-darwin, toolchain: beta, os: macos-latest }
- { target: aarch64-apple-darwin, toolchain: nightly, os: macos-latest }
# wasm32
#- { target: wasm32-wasi, toolchain: "1.61", os: ubuntu-latest, wasmtime: v5.0.0 }
#- { target: wasm32-wasi, toolchain: stable, os: ubuntu-latest, wasmtime: v5.0.0 }
#- { target: wasm32-wasip1, toolchain: beta, os: ubuntu-latest, wasmtime: v5.0.0 }
#- { target: wasm32-wasip1, toolchain: nightly, os: ubuntu-latest, wasmtime: v5.0.0 }
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.rust.toolchain }}
target: ${{ matrix.rust.target }}
- name: Install wasmtime
if: matrix.rust.target == 'wasm32-wasi' || matrix.rust.target == 'wasm32-wasip1'
run: |
curl https://wasmtime.dev/install.sh -sSf | bash -s -- --version ${{ matrix.rust.wasmtime }}
echo "$HOME/.wasmtime/bin" >> $GITHUB_PATH
- name: Build the crate
run: cargo build --target ${{ matrix.rust.target }}
- name: Test with default CPU features + No Default Cargo Features
env:
CARGO_TARGET_WASM32_WASI_RUNNER: wasmtime run --wasm-features all --dir .
run: cargo test --target ${{ matrix.rust.target }} --no-default-features
- name: Test with default CPU features + All Cargo Features
env:
CARGO_TARGET_WASM32_WASI_RUNNER: wasmtime run --wasm-features all --dir .
run: cargo test --target ${{ matrix.rust.target }} --all-features
- name: Build the crate with SSE4.1 (the "native" of CI will be above this)
if: matrix.rust.os == 'ubuntu-latest' && matrix.rust.target == 'x86_64-unknown-linux-gnu'
run: RUSTFLAGS="-Ctarget-feature=+sse4.1" cargo build --target ${{ matrix.rust.target }}
- name: switch over to native cpu features
run: mv .cargo-ci .cargo
- name: Test with 'native' CPU features + No Default Cargo Features
run: cargo test --target ${{ matrix.rust.target }} --no-default-features
- name: Test with 'native' CPU features + All Cargo Features
run: cargo test --target ${{ matrix.rust.target }} --all-features
#cross_compile_aarch64:
# runs-on: ubuntu-latest
# strategy:
# matrix:
# rust: ["1.61", stable, nightly]
# features: ["", "std"]
# steps:
# - name: Installing emulator and linker
# run: |
# sudo apt-get update
# sudo apt-get install qemu binfmt-support qemu-user-static gcc-aarch64-linux-gnu binutils-aarch64-linux-gnu
# - name: Installing Rust toolchain
# uses: dtolnay/rust-toolchain@master
# with:
# toolchain: ${{ matrix.rust }}
# target: aarch64-unknown-linux-musl
# - uses: actions/checkout@v4
# - name: build
# run: >
# cargo build --verbose --no-default-features --target aarch64-unknown-linux-musl --features "$FEATURES"
# env:
# CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER: aarch64-linux-gnu-gcc
# - name: test
# run: >
# cargo test --tests --benches --no-default-features --target aarch64-unknown-linux-musl --features "$FEATURES"
# env:
# FEATURES: ${{ matrix.features }}
# CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER: aarch64-linux-gnu-gcc