Comments (9)
another option would be the new SIMD enabled vectors of System.Numerics. the missing methods could be provided as an extension package.
from stride.
SharpDX.Mathematics depends on SharpDX, which I think would be pretty undesirable.
Moving to System.Numerics seems a natural choice but I think any move needs a bit of research. .NET runtime people have been discussing hardware intrinsics like SIMD for a while but it's still a work in progress AFAICT.
.NET Platform Dependent Intrinsics
API Proposal: Add Intel hardware intrinsic functions and namespace
We might also consider the improvements offered by C# 7.2's readonly structs. One benefit of Xenko.Core.Mathematics is that it'd be a lot easier to update to using readonly structs than to try and update an external dependency like SharpDX.
from stride.
I can't name a serious engine that doesn't maintain its own math library.
The reality is that the math library is tiny in relation to the rest of the engine -but- it is used everywhere. So this is a case where the premium on maintaining consistency/style with the rest of the engine is extraordinarily high. The benefits for switching should therefore likewise be extraordinarily high.
from stride.
The xenko mathematics is a fork of the SharpDX one.
from stride.
IMO this would require effort better spent elsewhere and the current state of affairs actually has some advantages.
from stride.
it would be interesting to know whether xenko changed/fixed anything compared to the sharp dx ones.
from stride.
No idea if they kept it up to date with the SharpDX one. After a brief looking at the history of SharpDX doesn't look like a whole lot has been changed over the last couple of years. Not sure how much effort would be involved doing a compare etc.
from stride.
Agree with @jhorv and @jmkinzer that we better have math lib inside Xenko.
However, nothing prevent us from improving them (readonly structs etc...) and/or merging SharpDX changes. Feel free to open separate issues when there is a concrete improvement idea, closing this one.
from stride.
I wanted to add to this discussion that, switching to something like SIMD enabled Vectors wouldn't actually replace much. The functionalities that comes with them should be well tested to be useful in Xenko's context while the functionalities that are unique to Xenko can still be added as extensions methods which still retains certain control over it.
It also allows Xenko to accept a wide variety of libraries that utilizes System.Numerics which should be a great plus to developers.
from stride.
Related Issues (20)
- Cherrypick stride.core.assets.(https://github.com/stride3d/stride/commit/3490d527f3ca8135eaf8f544560b2105abd21e80) I messed up a bit.
- JumpyJet example won't build inside VS2022 if building for Android platform was selected during creation
- build error if AssemblyOriginatorKeyFile property is set
- solution item is disappeared when save in Stride Editor HOT 6
- YamlSerializer doesnt get subprojects assemblies
- Unable to create CSharpIntermediate due to packet mismatch HOT 1
- When there are multiple identical UIs in my scene, why do all UIs respond when I click on different UIs?
- Activable equivalent of SyncScript
- Stride - Model import (with material) best practice ? HOT 3
- NET 8 HOT 2
- Asset compiler crashes when using `System.Windows.Forms` HOT 9
- Stride appears to assume that no nuget package source will be authenticated and falls over when encountering one.
- Stride's new library projects target uap10.0.16299 which causes build issues until manually fixed HOT 1
- Annotate with nullable attributes
- Review code annotations
- Playstation and XBox? HOT 2
- BoundingCircle? HOT 3
- Crash or main scene window goes black when drag it or dock it.
- [EXEC(0,0)]: Error: [AssetCompiler] Unhandled exception. Exception: InvalidOperationException: HOT 3
- IDE crash - Exception: InvalidCastException: Unable to cast object of type 'Stride.Assets.Models.ModelAsset' to type HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from stride.