We are running into an issue where an existing GLES3 app rendering performance has dropped significantly after upgrading a couple of Galaxy devices S10 (SM-G975F, SM-G970F) from Android Q from P.
Unfortunately I can't provide an actual apk nor a minimal example reproducing the issue right now but I've managed to narrow the issue down to a two-pass separable blur with a rather large kernel size (size 41). The blur is performed on a region of a 720x1280 RGBA texture with scissors covering about 40% to 60%. Both horizontal and vertical blurs are manually unrolled in the FS.
I ran a couple of Streamline captures (see attached files) for the exact same app running on two different devices:
I know comparing different GPUs is far from ideal but it's the best I can do given that I don't have any G76 devices running Android 9 available right now.
Comparing A to B seems to show there is now a huge difference in bandwidth use (4.83/5.40 GiB vs 288/300 MiB) for the selected timespan. I am new to Streamline so I might be misinterpreting its output, please correct me if that's the case.
Any ideas on what may trigger this behavior? I guess I'm doing something the newer driver doesn't like but I have no idea what.
Streamline captures (screenshots)
Device: S10+ (SM-G975F)OS: Android 10OpenGL ES 3.2 v1.r19p0-01rel.0.###other-sha0123456789ABCDEF0###
Device: S8 (SM-G950)OS: Android 9OpenGL ES 3.2 v1.r16p0-01rel0.###other-sha0123456789ABCDEF0###
There are quite a lot of hardware differences between Mali-G71 and Mali-G76 so I wouldn't assume this is related to Android version. Is it possible to share the full Streamline .apc exports of those two test cases?
If you don't want to share them in the open please email our gaming support team: developer <at> arm.com
View all questions in Graphics and Gaming forum