I have published an instant app, which can be downloaded from android marshmallow, nougat, etc. but openGL is only being rendered on android pie, the normal app works fine on all android versions, both APK's are the same actually it is an app bundle.
https://issuetracker.google.com/issues/132952558
Quoting the answer here so it helps others as well:
OpenGL ES 1.0 is only partially supported, we do not recommend you to
use this.
OpenGL ES 2.0 is fully supported for Instant Apps.
Additionally, OpenGL ES 3.0 is not supported on pre-O Instant Apps.
This was previously documented somewhere, but not anymore, so we’re
working on getting these details back in.
Related
What's the currently supported version of OpenGL ES in WearOS 2? Ist OpenGL ES 3.x supported, assuming the hardware can support it? I can't find any documentation for it.
According to the Play console, Wear OS devices do support GL ES 3.0. Here's a screen grab from the device page for the Huawei Watch 2 on my console:
Given that Wear OS is Android under the hood, you can usually assume that anything not obvious or documented to be different is the same. So yes, it probably is going to be whatever the hardware supports.
I have a very simple question. I am now uploading an app to Google Play for the first time. The app was made in Unity and it allows OpenGLES 2 and OpenGLES 3 however it runs much better with the latter. In my APK info that I can access via Google Play Console, it says:
OpenGL ES versions: 2.0+
I just wanted to make sure that 2.0+ means all OpenGLES versions including and greater than 2.0. That means 3.0, 3.1, 3.2 etc as well. Is that correct? I really wouldn't want to release the app without OpenGLES 3 by mistake.
According to developer.android.com:
The OpenGL ES 3.0 API provides additional features and better performance than the 2.0 API and is also backward compatible.
I. e. OpenGL ES 3 is a superset of OpenGL ES 2.
So you can set the requirement as OpenGL ES 2.0+ without a doubt.
I have spent a few dozen man hours searching Google and asking questions on forums trying to figure out whether or not my OpenGL ES 2.0 application on Android is lagging due to errors on my end, a virus on my device, OpenGL implementation on Android, or OpenGL implementation on the Samsung Galaxy Express.
I have found nothing, if anyone wants to try answer that root issue I would greatly appreciate it, but my question is if I should revert back to OpenGL ES 1.0 and if that is what everyone else uses.
The exact same application (single spinning triangle) using the exact same timestep with the only difference being a barebones OpenGL ES 1.0 vs OpenGL ES 2.0 change causes stuttering in the 2.0 app and smooth animation in the 1.0 app.
Do other games only use 1.0? If they use 2.0 can you point me to an example that is known to cause no noticeable stuttering, that I may download and test on my device? I have downloaded the OpenGL ES 2.0 sample from Google themselves, stutters the same.
Does Samsung Galaxy Express not handle OpenGL ES 2.0 gracefully? Is there any way to get another Android device without stealing or asking random strangers, I have no money.
Thank you.
Thing is that OpenGL ( not just ES ) is a specification, the other part the implementation is not governed by anyone, well by the specification to a certain extent meaning that the implementations can differ greatly altho they shouldn't.
This is due to the fact that OpenGL uses client drivers to handle the commands and those are written by the GPU creators ( usually ). For PCs you can easily name all the prominent GPU builders, nVidia and ATI so there you can at least know what to expect.
For phones there are lots of GPU/CPU combos so more errors to be discovered due to faulty or wrong form the start designs, not just the GPU's drivers, since the phone's creator may also make changes to the system or use low speed/grad parts which will result in poor performance.
OpenGL ES 1.0 I would say is more common since 2.0, mainly because it's backwards compatible so a device that supports 2.0 will most certainly support 1.0 as well. For development you can skip the whole "build on phone" thing by making a framework and using an emulator ( OpenGL ES ) on PC and when you are done just copy over your OpenGL code into your phone app.
Since manufactures try to keep their costs low, they tend to lie about what they actually do, or support so ES 1.0 being more simple and hard-wired than 2.0 it is possible that the lag may be due to the poorly supported OpenGL.
According to the latest Android Platform Dashboards, Open GL 2.0 makes up 98.3% of devices that visited the Play Store in the last 7 days, making it the standard for game development.
I have noticed a lot of people seem to have trouble with the OpenGL ES drivers for Samsung Android devices. You should try another device with a different graphics core.
Since Ice Cream Sandwich, the Android platform itself mostly uses OpenGL ES 2.0, including major components, such as the SurfaceFlinger. It's not optional anymore. Check out this article.
I am looking for Android 3.0's CCD (compatibility definition document), mainly to confirm if OpenGL ES 2.0 support is a common spec across all Honeycomb devices.
Unfortunately the official download site for CCDs seems to omit Android 3.0:
http://source.android.com/compatibility/downloads.html
Can anyone point me to an official resource that states whether OpenGL ES 2.0 support is optional or mandatory on Android 3.0?
So Google has downplayed 3.0 and has stressed the fact that they didn't want people becoming too attached to Honeycomb because it was incomplete. My advise would be to skip 3.0 and go straight to Ice Cream Sandwich. I know this isn't the best answer, but from everything I've seen I feel this would be the approved solution.
OpenGL ES 2.0 is mandatory as of 3.0 (it's required for hardware acceleration of the UI and RenderScript.)
Can I use renderscript in an application that is meant to be for android 2.2 and up?
Because I know that it has been used for wallpapers, but only internal. Did that change, because renderscript is public now?
I am building an application for the tablet, and i am writing it in renderscript, but i want to be able to release it for mobile phones as well. Porting the renderscript code to open gl es 2.0 or sth would be very very hard work for me.
Renderscript is a 3.0+ API only. Renderscript was present in 2.2 but the API (and language and compiler) changed a lot in 3.0.
Google has published a compatibility library for Renderscript, which allows you to use it starting from Android 2.2 (API8).
The disadvantage is that it uses the CPU unless the OS version is 4.3 and above.
more information about it is available on the android developers blog, here