Hi!
DimA wrote:Unfortunately/fortunately I cannot left Ogre and switch to Mesa or any other engine
I have been using Ogre since 2005 and I like it a lot!
Mesa is not a different engine. It's only an OpenGL driver in software. You would use Ogre, and Mesa would provide the required OpenGL.
DimA wrote:Matias, I saw some HLMS code in the 1.10 branch. Is it OK?
Also, what do you think about possibility to port Metal back to 1.10 branch?
Murat backported the HLMS to 1.10; however it has diverged significantly from the one present in 2.1; I do not know its quality, performance or usability.
As for backporting Metal to 1.10; it is not impossible but it would be extremely difficult.
Metal relies on PSOs (Pipeline State Objects) and explicit synchronization, and Ogre 2.1 also works with PSOs and explicit sync; therefore the Metal RenderSystem was very easy to write because most of Ogre 2.1 mapped 1:1 with Metal. However this is not true for Ogre 1.x which uses a Fixed Function / D3D9 style approach.
DimA wrote:
1. Stay with Ogre 1.10 as is.
2. Stay with Ogre 1.10 but port back Metal and re-implement PBS.
3. Switch to Ogre 2.1 and adopt GLES3
4. Switch to Ogre 2.1 and make fallbacks for GL3+
5. Added by me: Use Ogre 2.1 with GL3+ and use Mesa SW. (potentially slow, depends solely on CPU speed and number of cores)
Point 1 & 2 rely on what you chose.
I can comment on points 3 & 4: Point 3 looks like a much more reasonable approach. First, because any fallback you want to do would likely end up looking very similar to whatever GLES3 is doing, since the limitations are very similar. So there is little point in trying to make a fallback when it would end up being almost the same.
So if you choose to go for Ogre 2.1, investing in getting GLES3 to work sounds like the smartest idea.
Hotshot5000 wrote a port of GLES3 and got it working on ANGLE, Linux and Android. I started testing it but due to several reasons I didn't finish testing it (I started by building the Android version but unfortunately hit a few minor walls then I got distracting into something else).
I do not know the state but it's likely the option with highest chance of success among Ogre 2.1 and macOS.