This may be slightly difficult to explain.
So whenever Android advertises that it supports OpenGL ES X.Y in whatever version of Android. This means they provide Java bindings for that version of ES starting with that particular version of Android.
So, Android 4.3 added support for OpenGL ES 3.0
Android 5.0 added support for OpenGL ES 3.1 + Android Extension Pack.
Android 6.0 does NOT add support for OpenGL ES 3.2.
So since Dolphin mobile uses java purely for the UI, we don't need to use the Java function calls to the OpenGL ES library.
All of the OpenGL/ES code is in the C++(JNI) portion of the application. Since we are linking "directly" with the vendor's OpenGL system library, and due to how OpenGL and extensions are set up, we can use newer versions of OpenGL without Android "supporting" it.
This is how we get desktop OpenGL on Tegra devices. Android doesn't support OpenGL 4.5, nor has Nvidia changed the Android java bindings to support it.
Another example is that the Samsung Galaxy S4 was the first OpenGL ES 3.0 device and it initially shipped with Android 4.2. A version of Android that didn't support ES 3.0 yet Dolphin could still run on it.
So then, Android doesn't need to "support" it, but the video drivers still need to. The Nvidia graphics driver is still fairly recent with its OpenGL ES 3.2 support (358.xx minimum) and Google decided not to upgrade the video driver on the device.
So the Nexus 9 is running an older video driver that doesn't support OpenGL ES 3.2. While the Nvidia SHIELD Android TV is supporting OpenGL 4.5 and OpenGL ES 3.2 currently.
Of course all this nonsense doesn't really matter to the Dolphin application itself. We already properly support ES 3.2 and OpenGL 4.5 in the application with the latest development versions. Once the video drivers on the device receive an update and get ES 3.2 support, then it will automatically use it.
A good way for finding out what version of OpenGL ES your device supports is to download this application. https://play.google.com/store/apps/details?id=nl.svdree.glesinfo
Then move over to the GLES2.X tab and it will show which version of OpenGL ES your device supports.
Sadly this application doesn't support showing desktop GL features, so you can't see what version of desktop GL the device supports, and we've removed the device information in Dolphin Mobile. I don't think there is currently any application that shows this information, and I won't be adding it back to Dolphin.
So whenever Android advertises that it supports OpenGL ES X.Y in whatever version of Android. This means they provide Java bindings for that version of ES starting with that particular version of Android.
So, Android 4.3 added support for OpenGL ES 3.0
Android 5.0 added support for OpenGL ES 3.1 + Android Extension Pack.
Android 6.0 does NOT add support for OpenGL ES 3.2.
So since Dolphin mobile uses java purely for the UI, we don't need to use the Java function calls to the OpenGL ES library.
All of the OpenGL/ES code is in the C++(JNI) portion of the application. Since we are linking "directly" with the vendor's OpenGL system library, and due to how OpenGL and extensions are set up, we can use newer versions of OpenGL without Android "supporting" it.
This is how we get desktop OpenGL on Tegra devices. Android doesn't support OpenGL 4.5, nor has Nvidia changed the Android java bindings to support it.
Another example is that the Samsung Galaxy S4 was the first OpenGL ES 3.0 device and it initially shipped with Android 4.2. A version of Android that didn't support ES 3.0 yet Dolphin could still run on it.
So then, Android doesn't need to "support" it, but the video drivers still need to. The Nvidia graphics driver is still fairly recent with its OpenGL ES 3.2 support (358.xx minimum) and Google decided not to upgrade the video driver on the device.
So the Nexus 9 is running an older video driver that doesn't support OpenGL ES 3.2. While the Nvidia SHIELD Android TV is supporting OpenGL 4.5 and OpenGL ES 3.2 currently.
Of course all this nonsense doesn't really matter to the Dolphin application itself. We already properly support ES 3.2 and OpenGL 4.5 in the application with the latest development versions. Once the video drivers on the device receive an update and get ES 3.2 support, then it will automatically use it.
A good way for finding out what version of OpenGL ES your device supports is to download this application. https://play.google.com/store/apps/details?id=nl.svdree.glesinfo
Then move over to the GLES2.X tab and it will show which version of OpenGL ES your device supports.
Sadly this application doesn't support showing desktop GL features, so you can't see what version of desktop GL the device supports, and we've removed the device information in Dolphin Mobile. I don't think there is currently any application that shows this information, and I won't be adding it back to Dolphin.
