Switch all vector/quaternions to System.Numerics
#6699
+662
−465
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Part of the #2448
This changes all usages of
Vector2,Vector3,Vector4andQuaternionfromosuTKtoSystem.Numerics.Matrices were left as is because they require way more involved changes (column- vs row-major) and this PR is already quite massive.
Changes were split into several commits:
using osuTK->using System.Numericsrefusage. Those should still be fine unless I missed some hidden pitfalls which is the reason for the separate commitI've ran all tests (framework and game side) with no issues, as well as a couple of benchmarks and the game itself - everything seems to be working so far. Performance seems to be the same which is expected - while Numerics can use SIMD they prefer doing it only for workloads that are alignable - which are mostly Vector4's (barely being used) and matrices (didn't change)
This PR is missing mobile platforms for now - I'll go through them if this PR is considered worth merging
Game-side branch: https://github.com/stanriders/osu/tree/switch-to-numerics-vectors