Skip to content

Move bevy_mikktspace out of tree #19798

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

Conversation

atlv24
Copy link
Contributor

@atlv24 atlv24 commented Jun 24, 2025

Objective

Related issues and PRs:

Solution

Testing

  • Test suite made by Layl

@atlv24 atlv24 added A-Rendering Drawing game state to the screen C-Dependencies A change to the crates that Bevy depends on C-Code-Quality A section of code that is hard to understand or change A-Math Fundamental domain-agnostic mathematical operations S-Needs-Review Needs reviewer attention (from anyone!) to move forward labels Jun 24, 2025
@alice-i-cecile alice-i-cecile added S-Needs-SME Decision or review from an SME is required and removed S-Needs-Review Needs reviewer attention (from anyone!) to move forward labels Jun 24, 2025
@alice-i-cecile
Copy link
Member

I like this direction. Strongly in favor of:

  1. Not using glam in this, to make it more stable
  2. Swapping to the safe version by @LaylBongers
  3. Moving it out of our main repo, for both easier independent use and simplified contributions

I'd like to get SME-Rendering sign-off, and figure out our publishing strategy.

@atlv24
Copy link
Contributor Author

atlv24 commented Jun 25, 2025

I would suggest publishing it at 0.17, letting it sit for a release or two, and if no issues then publishing 1.0 and forgetting about it for the rest of time

@atlv24
Copy link
Contributor Author

atlv24 commented Jun 25, 2025

Copy link
Member

@tychedelia tychedelia left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ty for taking this on!

@atlv24 atlv24 requested a review from bushrat011899 June 25, 2025 15:25
@atlv24
Copy link
Contributor Author

atlv24 commented Jun 25, 2025

bushrat had opinions on how to handle no_std/libm stuff and the api surface of it, so i'd like to hear from him before merge

@mweatherley
Copy link
Contributor

Seconding Alice's comment that avoiding a glam dependency is a good idea (so that it can never be touched again for eternity, or ideally multiple eternities)

@alice-i-cecile alice-i-cecile added this to the 0.17 milestone Jun 28, 2025
Copy link
Contributor

@bushrat011899 bushrat011899 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Absolutely in favour of this direction. I have a PR here which makes the new crate totally independent of std and even libm, while also removing about a third of the total Rust code and being (IMO) much easier to read.

Additionally, I have another PR here which removes the binary blobs and all C code, instead using mikktspace-sys to provide live A/B comparison when in a #[cfg(test)] environment.

I could pretty easily see the new bevy_mikktspace hitting 1.0 before the end of the year and just not being worried about possibly ever again.

@LaylBongers
Copy link

Glad to see this moving forward 🎉, feel free to ping me on discord (or here) with any questions about my original port or the safe conversion. It's been a while but I'm sure I can still answer the trickier details.

@atlv24 atlv24 modified the milestones: 0.17, 0.18 Jul 8, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-Math Fundamental domain-agnostic mathematical operations A-Rendering Drawing game state to the screen C-Code-Quality A section of code that is hard to understand or change C-Dependencies A change to the crates that Bevy depends on S-Needs-SME Decision or review from an SME is required
Projects
Status: No status
Development

Successfully merging this pull request may close these issues.

bevy_mikktspace: crash 'attempt to subtract with overflow' Improve safety of bevy_mikktspace
6 participants