stride3d / stride

Stride (formerly Xenko), a free and open-source cross-platform C# game engine.
https://stride3d.net
MIT License
6.65k stars 957 forks source link

Can Veldrid help to simplify graphics API abstraction code? #59

Closed tebjan closed 6 years ago

tebjan commented 6 years ago

Veldrid looks like a very promising project and could help with graphics api abstraction: https://github.com/mellinoe/veldrid

not sure if it supports as much as in here: https://github.com/xenko3d/xenko/tree/master/sources/engine/Xenko.Graphics

but it might still be of help? and maybe @mellinoe is even able to jump in?

mellinoe commented 6 years ago

(Oops, didn't see which repo this was posted in)

Veldrid's abstraction is pretty similar to Xenko's, from what I see. If you were building something from scratch, it would make more sense to build on top of an abstraction like Veldrid's, but given that the code in here is already written and tested, etc. there's probably very little to be gained by rewriting it.

xen2 commented 6 years ago

Interesting, didn't know this project! Looks like they have many abstractions similar to D3D12/Vulkan just like we did, such as ResourceSet.

It probably need a careful check/inspection to see if all the custom internal needs we have are available (if we end up having to customize it a lot to the point it's almost a separate fork, there is no point).

Still, lot of work and so many other things to do, so I don't expect this to be checked/happen anytime soon, but when things settle down little bit I will try to keep it in mind and take a closer look at it.

@mellinoe I am curious, how did you generate the OpenGL binding? I wanted to get rid of OpenTK at some point (huge dll, no big improvements in sight, and we mostly need only bindings).

mellinoe commented 6 years ago

@xen2 I've actually written the OpenGL bindings by hand. I figured that the number of functions I was actually interested in calling was small compared to the entire set. I believe MonoGame is doing something similar -- just importing what they need. I was never all that interested in the other parts of OpenTK, so I didn't need them either.

tebjan commented 6 years ago

i see, as it is overlapping quite a lot, it would need a comparison by feature. since xenko bindings run fine and having them in the repo makes it more easy to change/add features.

however, picking only the OpenGL methods needed as in #68 sounds like a good plan for mobile.

xen2 commented 6 years ago

@tebjan Agree, it won't replace Xenko Graphics code as it is quite tailored to our need and it evolves quite a lot, I was mostly interested to look into it for specific parts/improvements (such as #68 as you mentioned).

tebjan commented 6 years ago

i'd consider this closed then since veldrid is currently not an option.