Giter Club home page Giter Club logo

Comments (5)

bitshifter avatar bitshifter commented on August 27, 2024 3

There is one largish change I have in mind for glam before calling it 1.0 but I need to find the time to experiment with it, write it up and discuss with the community. One that happens (or the idea is rejected by the community) then I think I could call it 1.0.

from glam-rs.

bitshifter avatar bitshifter commented on August 27, 2024 2

In short I'm looking at moving away to defaulting some types to using SIMD registers and requiring 16 byte alignment and instead making separate explicit types for that. There are a bunch of reasons why. I'll talk about it more once I've had time to collect my thoughts and written about it, I doubt it will break much existing code.

from glam-rs.

John-Nagle avatar John-Nagle commented on August 27, 2024

It's hard to think of any change that would justify the massive efforts required in other crates for a breaking change.

from glam-rs.

bitshifter avatar bitshifter commented on August 27, 2024

I spent some time working on this idea of splitting types into explicit float and SIMD versions, much like Vec3 and Vec3A but for all of the other types that use SIMD, e.g. splitting Vec4 into Vec4 and Vec4A and so on. For anyone who is interested the changes are here main...experimental. I was attempting to modify a fork of bevy to use this branch which made it pretty clear that this would be quite a disruptive change, so I have backed away from this idea. It also introduces way more types to glam.

The reason I was considering it in the first place is there is a cost to many types being 16 byte aligned and it is not always clear that the benefits outweigh this cost. In microbenchmarks they do but microbenchmarks are not representative of real game code.

In any case, people seem largely happy with glam as it is and as you say many projects depend on it, so I think it's best to not make any large changes at this point. Now that I've finished with the aarch64 neon work I'll focus on getting to 1.0, which will mostly involve making sure any outstanding issues that would be breaking changes are done before then.

from glam-rs.

John-Nagle avatar John-Nagle commented on August 27, 2024

Thanks. That's probably a good decision at this point. Churn in low-level crates forces churn in other crates.

from glam-rs.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.