OpenGL ES vs Vulkan vs Angle

Sure, I had doubts regarding my initial OpenGL ES choice.

  • Is it really SO cross-platform?
  • Maybe I should have chosen Vulkan? Or something else?
  • Am I ready to sacrifice Apple's support for the sake of my decision?

Now I have some answers:


Vulkan

Is it good? Well... Yes:

  • Super fast
  • Multi-core support
  • VERY hardware oriented

However, I'm mainly interested in how cross-platform it is. Unfortunately, not exactly.

  • Not all GPUs support it (at least yet)
  • Apple announced dropping Vulkan and OpenGL support in favor of their Metal
  • Turned out that it's even not cross-GPU !! It is GPU-specific, which means that Vulkan apps for AMD and for Nvidia for example will differ!

Besides:

  • Not easy to use
  • Intended for driver-level programming, not for apps

Actually, quite enough to exclude it from my consideration…


OpenGL ES

The situation around OpenGL ES seems to me much more optimistic and reassuring. Why? Because:

  • Implemented on most GPUs
  • Available on most platforms
  • Powerful and fast enough
  • is required by WebGL, which means that ALL platforms (including Apple) eventually will HAVE to support it. Be assured that Google (the main WebGL's promoter) WILL find ways to "convince" everybody to follow their standard.

Angle

Google's Angle Project (Almost Native Graphics Layer Engine) - is a good illustration to my previous statement. Wasn't obvious to me before, but the main purpose of this project - is a cross-platform WebGL support. It's a driver (not actually an "engine") which converts OpenGL ES calls into available native calls (in case of Apple - into Metal).

  • Please note, that this is true for OpenGL ES ONLY, it doesn't cover any other APIs.

So far Apple supports OpenGL by himself, but in the nearest future, (if they will be consistent and persistent enough) they will not. But for Angle it won't be a problem, it will still accept GLES calls and will execute them on Metal or on whatever is available.

BTW, Angle can also execute OpenGL ES calls on Vulkan (when necessary).


Summary:

I am glad and grateful to myself that I chose OpenGL ES from the beginning. It WAS a wise (and the best) choice.

  • Didn't try it on Mac and iPhone yet, but one thing is certain: with or without Angle, it WILL work. Not to mention all the other platforms.

Leave a Reply

Your email address will not be published. Required fields are marked *