Android 10 with OpenGL ES 2.0 on top of Vulkan 1.1

Hi All,
I was just reading that Android 10 uses OpenGL ES 2,0 on top of Vulkan 1.1. Is that true? If so does that mean it makes calls to Vulkan for every OpenGL ES 2.0 call? Or does it need to be configured to do that?
I have a Samsung S9 with Android 10 that I want to run performance tests on.

Thanks!

Are you referring to this?:

If so, it should probably be mentioned that the OpenGL ES (GLES) 2.0 support isn’t directly through the native GPU driver, but rather via the ANGLE graphics API mapping shim.

So it’s probably still worth benching perf with this against the native graphics driver’s GLES implementation, which in addition will likely offer support for more recent GLES versions (3.0-3.2).

It’s also worth noting that the ANGLE home page lists “OpenGL ES 3.0 -> Vulkan” support as “complete”. So you might get better than GLES 2.0 support through the GLES -> ANGLE -> Vulkan -> graphics driver path. A quote from their page:

With the Vulkan backend, ANGLE 2.1.0.d46e2fb1e341 was certified compliant to ES 2.0 in Nov 2019, and ANGLE 2.1.0.f18ff947360d to ES 3.0 in Feb 2020. ANGLE also provides an implementation of the EGL 1.4 specification.

Thanks Dark Photon for your reply.
What I was hoping specifically is the ANGLE for Android 10 would render much quicker due to using multiple GPU’s and dividing up the display into strips. But I am not sure if that is done by default or you have to use specific OpenGL ES 2.0 commands or structure your commands in a specific way. I read about conflicting reports of people measuring performance gains of only a few percent and others the rendering is smoother. When I run the android app vulkanCaps Viewer I see a lot of red for capabilities indicating perhaps the implementation of Vulkan on my Samsung S9+Android 10 device may not run as fast as hoped.

Best Regards,
Quark. Go to the light Dark Photon lol.

I’m curious about your multi-GPU comment. As far I’ve read, the Samsung S9 only has 1 GPU not 2 (though which GPU varies by region: Adreno 630 in the western hemisphere and China; Mali-G72 MP18 elsewhere). Are you really talking about multi-“GPU” rendering on the S9, or multi-core CPU rendering?

Good question. I am thinking it depends upon the implementation of Vulkan and probably the capability of the GPU. I prefer the GPU do the work and leave the CPU’s alone but again depends upon Vulkan and the GPU. The GPU itself may support internally running multiple threads so the idea of needing multiple GPU’s may be moot.

I sense the good in you Dark Photon. :slight_smile:

Ok I looked at the Adreno 630 and it looks as if it is 2 core GPU with 4 shaders. What is really interesting is support for Vulkan 1.1 is not there but is in the new Adreno 650. Not sure those specs though.

Ok according to the Andreno Wiki the 630 does support Vulkan 1.0 and 1.1. It has more info about some of the micro architecture but not much.