I think I have discovered a problem with all i.MX6 variants in the 2D graphics area. I observe the window display latency on Android 8 on i.MX6 Android 8.0.0 demo images for both SabreSD-DL and SabreSD-Quad. Note that if you run PassMark Mobile on the boards, the 2D Image Filter test is about 10x slower on Android 8 than on Android 7. I suspect the 2D operations in this test are also the cause of the poor window display performance.
Note that this affects i.MX6 DualLite and Quad.
Details:
We managed to find a SabreSD with i.MX6DL (which is discontinued) and compared its performance with our custom board. Window display latency (from touch to window display) is about the same on both DL boards with Android 8, and the latency is significantly better on Android 7 with both boards.
We have a stripped down Android app that I instrumented to mark the start time as the "on click" method for a button that shows a Fragment with a few simple text boxes, and I mark the stop time as the "on focus" for the first text box in the fragment. This is actually a subset of the latency, since it doesn't include the time from touch (lift) detection to "on click" or the longer time between "on focus" and the window completely finished drawing. But it is representative of the delay and shows how much the delay increases from Android 7 to Android 8.
I ran the window latency test app and PassMark Mobile on:
- SabreSD-DL with Android 7.1.2 (NXP demo image)
- SabreSD-DL with Android 8.0.0 (NXP demo image)
- SabreSD-Quad with Android 7.1.2 (NXP demo image)
- SabreSD-Quad with Android 8.0.0 (NXP demo image)
I am attaching a spreadsheet with the results, but notice the following:
- Window latency on both boards is 3 to 4 times as long on Android 8 as it is on Android 7, all other factors unchanged
- Adding the 300ms or so of "extra time" required to actually finish displaying the window means the latency between touching the button and the dialog window actually appearing went from about 0.5 seconds in Android 7 to almost 1.5 seconds in Android 8, a noticeable and difference that causes causes a poor user experience (users hitting buttons multiple times).
- The PassMark 2D "image filter test" consistently shows a 90% degradation in Android 8, meaning it takes Android 8 about 10 times as long to complete the test as Android 7.
- From the PassMark site, the image filter test "applies built-in rotation, brightness and greyscale filters to an image [and] counts the number of filters applied per second."
- I suspect there is some problem (perhaps as a result of the port to Android 8's VNDK HAL or ION graphic memory allocator) with these 2D operations that are also used in the display or animation of windows.
- Note, if I disable animations (through developer settings), touch latency improves on Android 8 but is still about twice as long as on Android 7 with animations enabled (1x default).