sonyxperiadev / bug_tracker

Empty repository that is used as a bugtracker for Open Devices project
52 stars 13 forks source link

[Tone] - Android 8.1 - Unbearable GPU performance (inc. Video decoding) #139

Closed ICEE93 closed 5 years ago

ICEE93 commented 6 years ago

Platform: Tone Device: Kagura Kernel version: 4.4 Android version: 8.1

Description Not much to say, GPU seems to be having an issue putting out a decent framerate, no matter the scenario

Symptoms Laggy UI. And in 2D it is next to impossible to get an acceptable framerate, in 3D applications the framerate seem to have somewhat better framerate, it is not such as stock nor is it what would be called acceptable. Also Youtube videos stops whenever it feels like until its pause/playback'd again.

How to reproduce Example 1: Scroll alot in UI Example 2: Download a 2D application (illuminati game or any sidescroller will do), watch the world burn Example 3: Download a 3D application ( tried PUBG, stock framerate = 29, AOSP framerate = slideshow-ish ) Example 4: Watch a 10 min video on youtube, watch the decoding just halt at least once.

oshmoun commented 6 years ago

most probably related to https://github.com/sonyxperiadev/bug_tracker/issues/67 with more scenarios

kholk commented 6 years ago

A MSM8996/Tone rework is undergoing on kernel 4.9 and, at the current state, the issue seems to be at least mitigated, though further testing is required, as that software is not ready for daily use, yet.

If the issue is gone on k4.9, we may find a way to backport the restructuration on the older k4.4.

More updates on this issue will come ASAP.

ICEE93 commented 6 years ago

Changing cpuquiet to userspace does increase performance by alot so i think this is indeed related to above mentioned issue, and there seems to be three files for RQBalance that might have the wrong permissions set? idk really but something goes wrong at

cpuquiet/rqbalance/nr_run_thresholds
cpuquiet/rqbalance/nr_down_run_thresholds
cpuquiet/rqbalance/balance_level

all of which spam the error opening with permission denied in logcat each and every minute or so

oshmoun commented 6 years ago

@ICEE93 that permission error happens because you switched the cpuquiet governor. This switch overwrites the permissions set in init.

jerpelea commented 6 years ago

https://github.com/sonyxperiadev/device-sony-common/pull/490

jerpelea commented 6 years ago

please test the reported bug

ICEE93 commented 6 years ago

Extensively tested for 72h, performance remains the same, non root for 48h, 24h with magisk, nothing cpu related altered, videos in dedicated video apps seem to have the stutter alleviated, starting a video in browser brings the stutter back, this stutter becomes systemwide, and logcat says there is an invalid argument thrown with the two files referenced on commit #490, Cluster freq min max. The changes does although make this less frequent, noticeable less frequent.. But when it happens the performance deteriorates until the phone is in an unusable state, unless the culprit is killed before the slowdown is too extreme

ICEE93 commented 6 years ago

Note that 3d and 2d performance remains identical

ix5 commented 6 years ago

I can confirm the same behaviour as @ICEE93 on 4.9/9.0.0_r10 for kagura.

kholk commented 6 years ago

If you sometimes see errors about being unable to set min cluster frequency, that's because the HAL is made to not care about what is being set.

I'm trying to explain this in an easy way.

You cannot set a min freq that is higher than max freq. The HAL sometimes tries to do exactly that, but it's not critical: when this happens an error is thrown and the HAL catches it after setting both MIN and MAX, then it retries again to set the frequencies and that succeeds. The HAL is engineered like that to simplify the code and reduce the cost of execution in the vast majority of the cases.

Concluding, that error about it being unable to set min or max is not critical and not a real erro, since it succeeds in the second iteration. I just didn't hide it.

About the bad performance seen after 72hrs, that makes me think about a possible memory leak.

Will investigate, but that'll be done after solving a bug that makes the whole Yoshino and Nile platforms to reboot every minute.

ix5 commented 6 years ago

About HAL freq errorspam, I still get MapperHal: buffer descriptor with invalid usage bits 0x2000, but it's not a big issue.

About the bad performance seen after 72hrs, that makes me think about a possible memory leak. Will investigate, but that'll be done after solving a bug that makes the whole Yoshino and Nile platforms to reboot every minute.

This is really a big one, particularly because it is almost unrecoverable. Maybe we should open a new issue just for this.

kholk commented 6 years ago

That MapperHal thing is not rqb-cfl, so it's totally not inherent to what I said

ix5 commented 6 years ago

I am so sorry, didn't read your explanation carefully enough.

kholk commented 6 years ago

No problem, don't worry.

That mapper should be gralloc complaining........ ..... I think we may "automatically" solve that with the eventual migration to SDE. We currently have some issues with sde, which is why we didn't switch yet... We're anyway forced to fix the sde clock issue because Tama is also affected and the only way to get display on it is... On SDE.

Since the issue is the same, most probably once we solve it for Tama, we'll be able to switch Tone as well from fbdev to sde.

I still have some doubts about the leak issue being on the display side of things, even after seeing the gralloc error.

Let's see how it goes, if we're lucky then I won't have to specifically research about Tone. If we're not, I will.

jerpelea commented 5 years ago

To benefit from the latest patches please use Android 9