Mojo2 next step?

Wingnut

Well-known member
3rd Party Module Dev
Tutorial Author
Joined
Jan 2, 2020
Messages
1,345
Is it feasible to transition Cerberus-X Mojo2 to utilize OpenGL ES 3 instead of OpenGL ES 2 to enable MRT and UBO support?

This would of course shift the minimum Android API level of 18. Is Vulkan the primary target now?
 
Regarding Android. On Google Play the minimum SDK target level is 19.
I assume, for OpenGLES 3 some rewritting would be needed. Vulkan is currently not a thing with CX but if we are talking mojo3, where I think something like this should be implemented, then surely this is imho a must have. Funny thing is that I was researching Vulkan over the last 2 days. I have done no coding but was looking it up.

Then it could be…
Windows and Linux - Vulkan
MacOS and IOS - Metal
Android - Vulkan
Html5 - Emscripten / WegGL2 or WGPU

Or what do you think?
 
Then it could be…
Windows and Linux - Vulkan
MacOS and IOS - Metal
Android - Vulkan
Html5 - Emscripten / WegGL2 or WGPU

Or what do you think?

Would you be able to maintain all this?
Maybe it would be better to drop some platforms or all of them and target Web only maybe?
I think Web is a must have, we can package Web to run anywhere.

To be honest with all these constant API changes I don't think I ever want to target mobile. Too much work, too many different mobile devices. If Web can do it, great but I would not care about native support now. Too much trouble.
 
Regarding Android. On Google Play the minimum SDK target level is 19.
I assume, for OpenGLES 3 some rewritting would be needed. Vulkan is currently not a thing with CX but if we are talking mojo3, where I think something like this should be implemented, then surely this is imho a must have. Funny thing is that I was researching Vulkan over the last 2 days. I have done no coding but was looking it up.

Then it could be…
Windows and Linux - Vulkan
MacOS and IOS - Metal
Android - Vulkan
Html5 - Emscripten / WegGL2 or WGPU

Or what do you think?
I'm thinking Vulkan, WebGPU and Metal are the ones we should focus on becuase they are the current state of the art and the future combined. WebGL2 I don't think is worth considering, its higher level than WebGPU but also you dont' get as much power.

The problem would be to handle all three, maybe a crossplatform like https://github.com/gfx-rs/wgpu woudl be suitable.
That way we culd have al three, on Android, iOS, macOS, Windows and Linux?
 
WGPU is not that stable when I read up about it. Adding to that it is a Rust crate. To be honest I would try to avoid any 3rd party wrapper as you will always depend on that.

Sure, only targeting one set of graphics api would be a dream. I would prefer that but CX is a multiple platform tool. You would go against its nature, wouldn’t you?
Plus I would never make that decision by myself.

I think that web is the future, but it’s standards develop sooooo slow. At least imo.
 
You would go against its nature, wouldn’t you?
You are just 1 developer and makes no sense to feel obligated to support multiple platform because of the nature of Monkey X. It is Cerberus X not Monkey X. Especially platforms you are not personally interested in. Then beating your self to support it just because someone is making a commercial project for a platform you have no interest in would only get you hospitalised.

I would totally stand behind the idea to support only 1 or 2 platforms with full speed than 6 platforms and constantly struggling with releasing updates because you have no time to implement everything for every platform and you end up not releasing any updates at all.
 
I think OpenGL/GLES was a pretty easy decision at the time because it dealt with all targets, and with mojo2 (GLES2) it is still pretty capable.
Nowadays there is nothing to replace it properly. Vulkan is said to do so but seems still to have issues and is quite verbose. I'd say we can stick with GLES2 and maybe have a GLES3 option if it is a low hanging fuit to get some performance or functionality gains. And only go for a different graphics API if there is a really reliable and capable solution for all current targets, be it something native like Vulkan or a minimal crossplatform layer lib like Sokol (BTW Not a fan of it anymore).

Sure, only targeting one set of graphics api would be a dream. I would prefer that but CX is a multiple platform tool. You would go against its nature, wouldn’t you?
Yes, being performant and native on all platforms is something special about Cerberus X.
 
Opengles 3, from what I saw so far is performance wise a lot slower than GLes2.
 
Yes, it is probably the same like with Vulkan. If you don't start using all its fancy capabilities customised for every occasion you don't get on par with GLES2. And this is pretty hard to do if you want to provide an easy to grasp API for the user.
 
I agree that the web is the future, and it is amazingly slow in its progress. Even the internal development of things like MIDI APIs and Audio APIs on the web is super slow. Graphical performance is faster, and I think it's time to suspect that things will change very soon.

Out of WebGL2 and WebGPU, WebGPU will probably be the only survivor. Eventually, I think it will even take over Metal's place, maybe even Vulkan after a few years. To be covered in the best possible way, I would vote for using Vulkan, Metal, and WebGPU, directly.

OpenGL ES 2/3 is still an amazing standard, of course, one that I personally enjoy very much!
 
@Wingnut keep using what is already there. That is my take out of todays posts.
 
Back
Top Bottom