[Nexus 4 Original Android Development] Hanny:
r83 Gaming Test / Sampling Rate Test

Setup

AOKP Feb 15 Sethyx Unofficial - Android 4.2.2

franco r83

Interactive (default)

Deadline (default)

Thermal throttle threshold, Sampling rate, Hotplugging control and CPU frequencies will be mentioned below for each individual test.

Notes

- For GTAVC Max Graphics, I am driving the fastest car in the game on the busiest road in the game. Based on my experience, that road gives the lowest FPS, maybe cause of the number of road-connections it has, the number of palm trees, the number of random cars and the number of gangs (group of people) on the street.

On other areas of the game, you will get a 5-10 FPS increase

compared to that busiest road used in my tests.

- FPS meter and Perfmon are running at the same time during my tests (both refreshing at the interval of 1 second), they are also decreasing the FPS of the actual games so the

real experience should be 10% smoother

.

- In order to achieve a stable and accurate "average FPS" on the FPS meter, every time exit/enter the game, I run it for 2 minutes until the average FPS stays the same for ~10 seconds

First, the tests are based on GTA VC Max Graphics because it is the only game (on my phone) that was stuttering recently.

1. Everything Default

Throttle threshold = Default 70

Sampling rate = Default 10

Hotplugging control = Default Hotplugging Mode 375-275-125

384/1512

Out of busy road = 36 FPS

On the busy road = Average FPS did not go below 30

2. Control of Throttling Tests

Just noticed that I have forgotten to make this important thing in my recent tests.

Throttle threshold = Default 70

Sampling rate = Default 10

Hotplugging control = Quad Core Mode

1026/1026

This ignores the effect of frequencies scaling and the cores hotplugging, while still using the throttling frequency which is 1026. The FPS achieved is the best one we can get during throttling, and the one we want to get after enabling auto scaling and hotplugging.

26-28 FPS

3. Hotplugging Throttle Test (Sample Rate 10)

Throttle threshold = 35

Sampling rate = Default 10

Hotplugging control = Default Hotplugging Mode 375-275-125

384/1512

Compared to r80/r82, the online rate of the 3rd and 4th cores are significantly more, but not enough. It has offlines every 20 seconds. What I want to achieve is constantly getting online. The FPS is around 21-23, which is improved therefore the sampling rate does affect heavy gaming performance as franco has found out.

4. Hotplugging Throttle Test (Sample Rate 20)

Throttle threshold = 35

Sampling rate = 20

Hotplugging control = Default Hotplugging Mode 375-275-125

384/1512

I expected a difference but it didnt make much. Maybe the time used for taking one sample is too extremely fast.

5. Hotplugging Throttle Test (Sample Rate 30)

Throttle threshold = 35

Sampling rate = 30

Hotplugging control = Default Hotplugging Mode 375-275-125

384/1512

Now there is some difference. The feeling is generally smoother. Note that the second screenshot (white car) is taken out of the busy road thats why it has a significant increase of FPS. However the 3rd and 4th core still has offlines after 2-3 seconds having 0% utilization on them. But what I believe is that just 1 or 2 second more they will be needed again or the FPS will drop!

6. Hotplugging Throttle Test (Extreme Sample Rate 100)

Throttle threshold = 35

Sampling rate = 100

Hotplugging control = Default Hotplugging Mode 375-275-125

384/1512

Just for testing. While I am getting annoyed by how the cores still go offline in sample rate 30, I decided to try bullet-proofing the 3rd and 4th cores.

And it did.

Smooth experience plus a reported FPS of 23+

7. Hotplugging Throttle Test (Sample Rate 40) <<<<<<<<<<<<<<<<<<<<<<<<[Used at last]

Throttle threshold = 35

Sampling rate = 40

Hotplugging control = Default Hotplugging Mode 375-275-125

384/1512

I think I am not crazy yet. While this is 4 times franco's default, the driver has to collect 40 samples of low load before it can actually turn off 3rd and 4th cores. But based on the result in the above sample rate 100 test, tuning the sample rate up does prevent the extra cores from going offline in heavy games. While we cannot make it 100 because we care about our battery out-of-gaming.

Cores are constantly at 1026mhz online. Although 3rd and 4th cores do offline, it is rare and I am happy enough with it. The FPS is good too, I feel no stutter.

8. Hotplugging Throttle Test (Hotplugging Control - Lowered Offline a single core)

Sampling rate is back to 10 again.

Throttle threshold = 35

Sampling rate = Default 10

Hotplugging control = Default Hotplugging Mode 375-275-100

384/1512

Not much difference is observed, comparing to Test 3. I think it is because the load was either high like 300 or low as 0%, where the 3rd and 4th cores would go offline after 0% is sampled for 10 times. So there's no difference between 100 and 125 offline a single core threshold.

Additionally, while considering battery conservation during normal usage, returning to 125 would be a good choice.

9. Hotplugging Throttle Test (Hotplugging Control - Lowered Offline a single core even further) [Unexpected Behaviour]

Throttle threshold = 35

Sampling rate = Default 10

Hotplugging control = Default Hotplugging Mode 375-275-85

384/1512

The unexpected thing is, while this should make the cores HARDER to go offline, they went offline easier! even easier to go offline than the above 100. And the gaming experience is totally laggy. Average FPS is 18 that means half of the time it goes below it and we feel significant stutters below 16. Not sure what happened yet, but I do not recommend this low value and I did a reboot after restoring it to 125 to ensure everything is going fine.

10. Hotplugging Throttle Test (Hotplugging Control - Increased Online all cores)

Throttle threshold = 35

Sampling rate = Default 10

Hotplugging control = Default Hotplugging Mode 400/425-275-125

384/1512

Both 400 and 425 are too high. Things go offline frequently, the gaming load is not enough to meet them (while the sampling rate of "onlining cores" is unchanged!). Franco's 375 is the right spot.

So what about daily usage? Sacrificing daily battery juice for gaming performance?

Well - yes, but not that much as you can "calculate" from the increase of sampling_rate.

While the sampling rate is 10, I turned on whatsapp from idle. All cores immediately work and after entering whatsapp, the 3rd and 4th cores became 0% at 384mhz for 2-3 seconds (tested various times) and went offline.

While the sampling rate is 40, did the same procedure, the 3rd and 4th cores stay at 0% at 384mhz for 3 seconds at least, 6 seconds at most, then went offline.

That is what you are going to sacrifice in daily app usage, and I don't think that is as much as the difference in number of sampling rate - 4 times!

Even in live wallpaper, 40 samples are also fast enough for the driver to offline the extra cores.

Finally, lets go back to the reality, with my favorable values. All the above were throttling tests and our phone doesnt throttle all the time...

11. Hotplugging Test (Sample Rate 40) - Non throttling

Throttle threshold = Default 70

Sampling rate = 40

Hotplugging control = Default Hotplugging Mode 375-275-125

384/1512

40FPS outside of the busy road

33+ average FPS inside busy road

This result is better than Test 1 - Everything default. Means the increased sampling rate also helps performance while not throttling.

The extra cores DO offline a bit more frequently than throttling though, but so what, because the first two are allowed to work at 1512 therefore there should be less stress.

12. Hotplugging Test (Sample Rate 40) - Non throttling - Lighter games [Buttery Smooth]

Throttle threshold = Default 70

Sampling rate = 40

Hotplugging control =

Default Hotplugging Mode

375-275-125 (YES I am NOT using dual core mode but its just the load of the games are too low!)

384/1512

NFS MW is already having 50 FPS with only two cores being used. Now you get why I excluded it from my heavy-gaming-test list.

Temple Run 2 Max Graphics

58+ FPS all the time, only two cores are being used.

Anomaly Korea - someone made a post before, suggesting this game to do performance tests as it has heavy graphics which made some stutters

But I don't think so...

Beach Buggy Blitz and Riptide GP - two of the best 3D games

Only two cores are being used, near maximum FPS all the time

Conclusion

Finally, I chose to just increase the sampling time to 40 for maximum gaming performance while maintaining acceptable offline speed for daily apps. The hotplugging controls are not needed to be modified in the current case. Franco could you tell if I am insane to 4x your default sampling rate in order to get a slow-enough speed for the driver to hotplug the cores? Will this explode my phone? :p As a non dev, I look forward to how you think about my conclusion after these tests :D

If it is OK, I do recommend sampling time 40 to anyone who have heavy games installed in their phones. I don't want to list them here but you can actually feel whether they are heavy enough or not. If you need to discover more, head over to the gaming thread in the apps section http://xdaforums.com/showthread.php?t=2056090 . I usually don't care much about battery as long as it doesnt drop straight during idle. If you are interested in helping, please test out whether the high sampling rate would affect non-gaming daily battery juice! :)

Thanks franco and everyone else who spend time to read this and hope you have enjoyed.