[Galaxy S 4 General] nfsmw_gr:
Only for i9505.

Hey guys!

I've been experimenting a lot with my S4 and I figured out why many games lag...

The reason is that my gpu clock drops from max clock I set, to 320mhz once the temperature reaches 68C!

Some may say, this doesn't happen because the gpu doesn't thermal throttle on the S4 like on the HTC One...

Well...I used performance governor which is supposed to keep the gpu clock to the max at all times, and guess what?

When the temperature reached 68C my gpu clock went down to 320mhz even with performance governor!

How is that possible...?

Performance governor can't throttle down!

Thermal throttling is to blame. (or something else, that doesn't care about governors? )

It's not a coincidence this happened at exactly 68C like before.

(If anyone wants to argue with me about this I'd appreciate if he/she doesn't spam my thread for the love of god and pm me.)

Anyway, enough with the prologue..

This was a royal pain in the ass for me because I almost regret selling my silky smooth S3. :(

After tons of random searching and messing with the system of my phone I found the solution!

Here it is!

Sell your S4!

Nah, I'm just joking!

It's a great phone. :)

Here's the real solution:

I set

/sys/devices/platform/kgsl-3d0.0/kgsl/kgsl-3d0/min_pwrlevel

to 0 out of curiosity, which controls the lowest power level, or clock, that the gpu will use.

By default it's set at 4.

Since max was already 0 which means it's the highest value I set min to 0 too, and guess what?

The gpu clock remained at my set max, 504mhz, all the time, even after 68C!

Tried three games I know this problem happened and all three worked at 504mhz!

(for pure information, it was Modern Combat 4, Gangstar, and Asphalt 8)

How can you try it?

I've attached two scripts, one that sets the value to 0 and uses max gpu frequency all the time and one that sets the value to 4 so that the gpu can use the lower clock states again!

For Script Manager Users, free

Use script manager as root to run these widgets and I'd recommend you put two widgets on the home screen!

One for the first script enabling this tweak, and one for the second that disables it.

For Tasker Users, need to pay

If you have tasker you could use it too and set it to run the content of the first script as root at every heavy game and enable the tweak automatically, after that use tasker again to run the content of the second script when you go to your home screen (or anything else you want to set) and disable the tweak automatically!

Beware!I will not responsible if you damage your hardware!

Recommended prerequisites:

- Custom kernel preferably ktoonsez's or ausdim's, but any kernel with undervolt and thermal throttling control support will do.

Increased heat may be produced after doing this, so I recommend you to undervolt at least a little to reduce the overall heat, plus increase the thermal throttling limits too to prevent the cpu throttling down.

I use 85 as start limit and 82 as stop limit but you don't have to use my values.

I just find them safe enough and high enough so that they don't interfere with my games.

Try it and report back, many games are way smoother now, at least for me. :)

I'll be waiting for your results!

Have a nice day guys! :)

P.S. If you need to tune even more your device, take a look at my personal settings found here:

http://xdaforums.com/showpost.php?p=45103847&postcount=1106

The gaming profiles are set at 1242mhz min now, not 1458mhz like before, because the gpu clocks work properly now the cpu doesn't need that much boost to avoid lag.

And the gpu clock I use now is 504mhz instead of the stock 450mhz in the link.

That's it!