There are a number of OpenGL ES drivers supplied by the different hardware vendors on Android devices. This contributes to an inconsistent behavior on those drivers. It also means that bug fixes often do not propagate to all devices and helps lead to fragmentation of the OpenGL ES ecosystem.
With the release of Android Q, Android developers and partners have the option to run using ANGLE, a project in the Chrome organization that layers ES on top of Vulkan, instead of using the vendor-provided ES driver.
When ANGLE is available, developers and OEMs can decide whether or not a particular application should use ANGLE. Since a complete OpenGL driver will take time, Android Q introduces an opt-in option that lets developers make the shift gradually. ANGLE will be updated over time, introducing more OpenGL functionality, bug fixes and performance optimizations. Android Q introduces two new features to help you evaluate and choose ANGLE on a per-app basis:
To evaluate ANGLE at the developer level, Android Q includes a developer options setting that allows a developer to specify that a non-core application should run with ANGLE.
When Android Q is released, the ANGLE APK will include a configuration file that indicates what applications should or should not use ANGLE.
How to select ANGLE
The new ANGLE developer option can be used to get quick feedback on how ANGLE works with an installed application on a specific device. Follow these steps to run an app with ANGLE:
- Enable developer options.
- Open developer options and then select ANGLE Preferences.
- Select an app.
- Choose the driver for the app. There are three options:
- Uses the driver determined from the ANGLE APK configuration file. Since the current APK doesn't opt anything in to ANGLE, this is the same as selecting "native".
- Uses ANGLE.
- Uses the native OpenGL driver.
How to configure ANGLE
Android Q Beta 1 includes the ANGLE APK. The APK contains a configuration file that determines which applications will use ANGLE. Developers can override this default by selecting ANGLE in the developer options, as explained above.
The configuration file allows customization so that ANGLE can be enabled based on the application name, version, the device, Vulkan driver version, GPU vendor, and other factors.
Since the configuration file is part of the ANGLE APK, ANGLE can be used on any AOSP solution. In addition, the configuration rules can be updated whenever ANGLE is updated. Google will manage the configuration file based on ISV requests, partner feedback, customer issues, and test results.
Report an ANGLE issue
Developers can log issues on the ANGLE bug tracker.