Optimize rollback sync-test performance (#86)
CI / build-and-test (push) Successful in 2m11s
CI / production-build (push) Successful in 11m44s

## Summary

- remove immutable stage geometry and derived animation/collision data from rollback snapshots
- avoid a duplicate full skeletal hierarchy traversal during root-motion sampling
- cache root-motion cycle deltas per animation clip
- optimize the game crate in development builds
- make Tracy profiling opt-in via the `tracy` feature

Reviewed-on: #86
Co-authored-by: Álex Román Núñez <eirexe@eirteam.moe>
This commit was merged in pull request #86.
This commit is contained in:
2026-10-07 15:50:45 +00:00
committed by EIREXE
parent 259dada54f
commit 3dfe2fa000
4 changed files with 127 additions and 27 deletions
+7 -1
View File
@@ -9,6 +9,7 @@ authors = [""]
[features]
default = ["development", "debug_features", "gamecube-adapter"]
development = ["bevy/dynamic_linking", "bevy/file_watcher", "bevy/embedded_watcher", "hitbox-viewer"]
tracy = ["bevy/trace_tracy"]
debug_features = ["bevy/free_camera"]
gamecube-adapter = ["dep:gc-adapter-neo"]
hitbox-viewer = ["bevy/bevy_dev_tools", "dep:egui_extras"]
@@ -44,6 +45,11 @@ fixed_math = "0.4.1"
[profile.dev.package."*"]
opt-level = 3
# The rollback simulation runs multiple times per rendered frame in sync-test
# mode, so optimizing the game crate is important even for development builds.
[profile.dev]
opt-level = 1
[profile.production]
inherits = "release"
lto = "thin"
@@ -56,4 +62,4 @@ gc-adapter-neo = { version = "1.1.1", features = ["libusb"], optional = true }
[[bin]]
name = "hitbox-editor"
path = "src/bin/hitbox-editor.rs"
required-features = ["hitbox-viewer"]
required-features = ["hitbox-viewer"]