Tuesday 26 February 2013

Tutorials to Improve HTC One X Tegra 3 Game performance in Easiest ways





THE WAY IT MEANT TO BE PLAYED

The main cause of lag and drops on the One X is the CPU Ondemand governor which comes as default, this is a heavily optimized governor to save battery and give performance when needed, sadly HTC didn't provide performance profiles for us and so we will have to do it ourselves when it comes to demanding games

Ondemand governor constantly scaling up and down during games seems to spend more battery life and heat, heavy games need the linked Tegra3 CPU/GPU clocks to be a lot more stable and for this governors need to be optimized for the task, what is even more convenient is that we can tell the governor exactly how much CPU load it needs to trigger for speed using Scripts or SetCPU 3.x which gives us the ability to maximize performance in games, in general these tips actually suit all Tegra 3 devices

if you use the solutions in this guide you will be amazed by your One X Tegra 3 abilities

Seeing is believing! checkout the gameplay videos in here

This guide is split in four parts, GAMING BOOST APP, PERMANENT METHODS, QUICK METHODS - Scripts, MANUAL METHODS and FACTS

GAMING BOOST APP METHOD - This app by wilkyyy, henk2484 and myself, does everything in this guide with a single click, a simple, easy and elegant solution, the best and one solution to rule them all

PERMANENT METHODS - These methods will set everything in this guide, using a single init.d script, the boost will stick on your HOX after reboot

QUICK METHODS - Scripts will help you achieve results with the least amount of effort, this should be enough to achieve this guide's goals, for users who like more control

MANUAL METHODS - Will show you how to do things yourselves and tries to explain it along the way, for more advanced users who like to understand how things work and why the performance is capped by default

FACTS - Tries to reveal everything you need to know about Tegra 3 as well as all the related topics, i strongly recommend to at least to have a look at this part to better understand how your One X functions


--------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------


GAMING BOOST APP METHOD - Stock Jelly Bean ROM - last updated 4/12/2012

This is currently the best method of them all, this app will does everything in the guide for you in one click and unleash you One X to its full gaming potential with one click, you can turn it off once your are done gaming to conserve battery

Requirements:
- ROOT
- [APP] RENOVATE Gaming Boost JellyBean v1.0

This version was optimized for HTC's stock JB OTA and Kernel, check the Stock HTC JB Kernel 3.14.x.24 review

This version is suitable for most HTC phones including the HTC One X+

PowerSaver mode
With HTC powersaver's CPU mode turned off, the device will use up to 1500mhz single and 1400mhz quad core, sadly for some rare quad enabled games like shadowgun this might cause random performance drops when the game calls the single core 1500 step
Enabling HTC powersaver's CPU mode will lock the device to 1300mhz quad core, effectively its a quad lock but slightly slower with less heat and battery consumption
Experiment with your game to find which mode works best along with game boost

Locking the quad
Simply set the CPU clock to 1400 on boot and it will stick, the powersaver mode will switch between 1300 and 1400, both quad modes without the buggy single core 1500 step
Place the attached 99CPU1400.txt script in etc/init.d folder, remove .txt extension and set all permissions, reboot
If this doesn't work or you are using a kernel without init.d support, simply use SetCPU, change the clock to 1400 and set on boot

Aggressive Performance tip
You can go further if you want to force max possible performance, unlike ICS, JB kernel allows the performance governor to use full quad, so you can enable boost ON and then switch to performance governor using your favorite SetCPU app, with powersaver off the device will use up to 1400mhz quad cores and idle around two cores 1200mhz, with powersaver on it will use up to 1300mhz quad cores and idle around two cores 1200mhz, naturally this tip will cause extra heat and battery drain, once you are done disable game boost and you will switch back to stock ondemand governor

That's it! it's all you need! but you can learn more about the other methods and the One X/Tegra 3 performance related issues/information in the rest of this guide


--------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------


GAMING BOOST APP METHOD - Stock ICS ROM - last updated 15/10/2012

This is currently the best method of them all, this app will does everything in the guide for you in one click and unleash you One X to its full gaming potential with one click, you can turn it off once your are done gaming to conserve battery

Requirements:
- ROOT
- [APP] RENOVATE Gaming Boost v2.1

Recommendations:
- DieHard or HardToKill patch
- Custom 2.17 Gaming Kernel, Faux 011 or Franco R21 Currently the best kernels for gaming because of the following features: unlock the GPU to its full 520mhz speed, lock the quad at full speed, latest HTC 2.17 drivers and the latest Nvidia drivers from their NV 3.x repo

warning! due to HTC code, on stock ICS kernels, turning off the screen will reset two vital parameters set by the app so you have to make sure not to turn off the screen between boost and playing a game, the issue is not present on stock JB kernel, Faux or Franco

If you are a Gameloft fan check these extra tips: [FIX] Wild Blood Full Effects v1.0.7 Performance + other GameLoft games - Root

That's it! it's all you need! but you can learn more about the other methods and the One X/Tegra 3 performance related issues/information in the rest of this guide


--------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------


PERMANENT METHODS - last updated 15/10/2012

These two methods will do everything for you and unleash you One X to its full gaming potential for good

How to set the gaming boost mode permanently using init.d scripts for Faux or Franco Kernel
Requirements:
- ROOT
- any ROM with init.d support
- Custom 2.17 Gaming Kernel, Faux 011 or Franco R21 Currently the best kernels for gaming because of the following features: unlock the GPU to its full 520mhz speed, lock the quad at full speed, latest HTC 2.17 drivers and the latest Nvidia drivers from their NV 3.x repo

How to set the gaming boost mode permanently using SetCPU 3.x for any Kernel
Requirements:
- ROOT
- Any Kernel including Stock

Recommendations for both methods:
- DieHard or HardToKill patch

That's it! it's all you need! but you can learn more about the other methods and the One X/Tegra 3 performance related issues/information in the rest of this guide


--------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------


QUICK METHODS - Scripts - last updated 15/10/2012

Use the listed kernel of your choice repacked for your current ROM, use supercharger in order to free more RAM/set proper application priorities and apply the recommended scripts to boost your CPU

Current tested kernels for gaming with their recommended methods, custom kernels are faster than stock in games:

Faux kernel version 011 + Supercharger & DieHard Patch + Optimized Ondemand Scripts

Franco kernel version R21 + Supercharger & DieHard Patch + Optimized Ondemand Scripts

Stock kernel for base 2.17.401.2 + Supercharger & DieHard Patch + Optimized Stock Ondemand Scripts (stock kernel from this base has a broken multicore in interactive governor)

Stock kernel for base 1.29.401.11 + Supercharger & DieHard Patch+ Optimized Interactive Scripts

That's it! it's all you need but you can learn more about the methods and the One X/Tegra 3 performance related issues/information in the rest of this guide


--------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------

MANUAL METHODS - Obsolete

Fixing the severe frame rate dips - Optimized CPU governor - The Way it meant to be played


For base 2.17.401.2 stock kernel and Faux kernels :

- You can use these scripts to simplify the entire process

or do it manually with the following steps:

- Download SetCPU 3.x or System Tuner

- Interactive governor have multi-core trouble on these kernels so leave it with the much improved onDemand

- Go to the governor tab and optimize your onDemand values


For base 1.29.401.11 stock kernel or custom kernels based on 1.28 source:

- You can use these scripts to simplify the entire process

or do it manually with the following steps:

- Set your CPU governor to Interactive using SetCPU 3.x or System Tuner

- Optimize your interactive governor behavior by checking the instructions in here, this is the most important step and will give the best results and completely fix scaling issues

- keep the clocks as they are so not to cause needless heat/consumption, this governor is much more suited for gaming as you start gaming it maintains higher clocks, during normal use i advice to return to onDemand for much better battery consumption and wake up speed, do not run in performance governor otherwise you loose 2 cores

- You can automate this process and set game profiles using SetCpu 3.x, read the instructions in the linked post


This tip is enough for the most part but more memory heavy games like Sonic 4 Episode II and NOVA3/Asphalt7 might need so further memory management tips as described below

----------------------------------------------------------------

Reducing stutter and background processes - SuperCharger Method - Best choice

- You can use Supercharger to optimize your memory management and app priorities permanently

- Install DieHard Supercharger's service.jar patch follow the tutorial on how to use the script

- Using the script set the minfrees, use the most agressive minfrees if you want to optimize for gaming like option 9 but go for little less if you are using SetCPU profiles so not to kill SetCPU background process, you can always change minfrees on the fly, they don't require a reboot

- You can add script manager widgets to switch between your multitasking minfrees values on the fly, using supercharger power-shift scripts

- Play for a while to let the game settle in memory, the more you play the better the performance will get

----------------------------------------------------------------

Reducing stutter and background processes - System Tuner Method - Second best

- If you don't want the complex supercharger method

- You can use System Tuner to quickly set your multitasking minfrees, simply go to the Auto-Kill section and load the most aggressive minfrees, when done gaming you can always restore whatever multitasking values you find best, changing these values happens on the fly and do not require reboot

- Play for a while to let the game settle in memory, the more you play the better the performance will get

this method does not attempt to fix the priorities.

----------------------------------------------------------------

Reducing stutter and background processes - Developer Options Method - Most extreme method and least favored

This is my least favored method since its impractical and the constant reloading of everything might actually cause its own set of trouble but its the only method for non rooted users

- Go to Developer options choose don't keep activities and background process limit to 1, don't set the process limit to non or sometimes games won't load

- Wait for Sense launcher to reload (which means its working since it killing Sense launcher)

- Immediately run your Game

- Play for a while to let the game settle in memory, the more you play the better the performance will get

Some games will not work with this method and fail to boot like MC3

The negative aspects of this trick is that your phone functions are limited during gaming and the battery will drain a bit more on every sense reload, this why you should restore your settings to normal when you are done

----------------------------------------------------------------

Always remember the Following

- Always remember to kill heavy tasks before launching your game, leaving system tuner running in the background probing the CPU might cause stutter

- Remember to restore your Developer options to default, if you want a normal working phone

- Remember to restore the governor to onDemand once you are done to save your battery or rely on SetCPU profiles

- Remember to restore your Minfrees if you want more multitasking, you add script manager widgets to switch minfrees on the fly using the supercharger power-shift scripts

- You can also place an auto sync widget and disable accounts sync during gaming, this helps in reducing the chance of interference with games

- Never game while the phone is charging! unless you want to kill your battery and overheat your device, discharge might happen

- Never lock the minimum clock! unless you want to kill your battery and overheat your device

- If it's On, Disable Force GPU Rendering in Developer options, it might cause issues with some games and apps

Read the following facts to better understand how your One X and Tegra 3 works

--------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------

The Facts

Using tegrastats you can see games like Glowball immediately requests and enables the full speed quad mode

On the other hand Sonic 4 Episode 2 fails to run beyond 2 cores and 640/1000mhz which means its not actually demanding full power, in part it's the stock governor but also it's the app's fault, another example is temple run brave which runs around 800-1000mhz sadly this means a low clocked GPU too since the GPU is coupled to the CPU speed on Tegra3

Tegra3 is a quad core 1.5ghz 40nm SOC and so learn to accept its operational temperatures i.e: 45c Battery and 75c CPU during heavy use

Tegra3 is a variable SMP design i.e: It's meant to go in and out into it's thermal maximum and so we should not OC this SOC

No chipset is a created equal, so depending on the yields of Tegra3 you might end up with a cooler or hotter running chip

There is a reason why iOS have a very limited multitasking and consoles have barely any, multitasking is always at the cost of optimal performance, lots of apps in the background will increase heat, battery drain and affects gaming performance on the One X

GPU
The Geforce ULP GPU included in the One X's Tegra 3 (AP33) runs up to 416mhz by default but the clock is linked to the CPU speed i.e: when the CPU clock ramps down so does the GPU

however AP33's GPU is rated 520mhz and so it can be unlocked to it's full speed using custom kernels like Faux and Franco R21

CPU clocks work in the following modes on the One X:
Single core = max 1.5ghz
4 cores = max 1.4ghz will scale down to 1.2ghz after a specified CPU temperature limit

the 1500mhz single core step is the main reason for lag in games since sometimes the CPU governor mistakenly locks into this step causing heavy lag, the method in this guide attempts to bypass this issue

The available CPU governors, each using the cores differently:

onDemand governor
The stock CPU governor on the One X tweaked for better battery life and temperature, however it often ramps down the CPU clocks during game-play which is the one of the causes of bad frame rate, interestingly it seems to have a faster wakeup speed than Interactive governor.
This is the most stable for phone operation and can use all the quads but its suffer in keeping the high clocks in games.
You can control the ondemand scaling behavior and use it to insure higher clocks check this explanation in this post
On base 2.17.401.2 onDemand governor is a lot more agressive in games but still benefits from optimization to reduce frame rate dips

Interactive
Similar to onDemand but responds to your interaction, as long as your using the device it ramps up to full speed.
You can control the interactive scaling behavior and use it to insure higher clocks check this explanation in this post
This governor is supposed to be the best governor for gaming sadly it's bugged since the 1.29.401.9 kernel, it affects custom kernels based on HTC source including Franco and Faux
It keeps getting stuck in single core mode, so stick to optimized OnDemand


Performance governor
Locks 2 cores to 1400mhz and disable 2 cores for safety, perfect for non mp optimized games like GameLoft's but gives reduced performance in quad optimized apps like Glowball and Shadowgun THD

Powersave and Conservative
The best to save battery life and ofcourse they mean compromised performance
They are bugged and sometimes cause reboots in stock kernel

----------------------------------------------------------------

Scripts
you can use these scripts to simplify the entire process, its also the best method since it contains extra optimization
For custom stock 2.17 gaming kernel
For custom Sense friendly kernels like Faux
For custom Sense friendly kernels like Franco
For stock kernel base 2.17.401.2
For stock kernel base 1.29.401.11 or old custom kernels like Faux003b11 & FrancoR12

Custom kernels
Ever since the 1.29 source interactive no longer uses multicore properly in games so we need to stick to optimized ondemand, Faux Kernel 004b6 added the awesome GPU 520mhz step, all these custom kernels will perform a lot better than stock kernels in games, Faux Kernel 010 integrated the new source from the stock 2.17 kerenl which greatly improved temperatures, you can choose between an OC version and stock clocks.
Current best kernels for gaming are Faux Kernel 011 and Franco R21, if you are wondering which one is the best check post #585 and #589, otherwise you can check out the custom stock 2.17 gaming kernel which seems to run wildblood 1.0.7 with full effects better then most

GameLoft Games
Gameloft games are rarely optimized for Tegra 3 devices, check the following tips
[FIX] Wild Blood Full Effects v1.0.7 Performance + other GameLoft games - Root

Need for Speed Most Wanted
This game ran badly out of box on the One X, unlike the Nexus 7 it failed to detect the proper configuration, check the following fix
Need For Speed Most Wanted v1.0.28 for Android - Tegra 3 performance patch + Multiple effects configuration patch

Performance governor for non optimized games
You can try the performance governor which locks at 2 cores and 1400mhz for games that don't use the quad core

Locking the clocks
For certain games you might might want to lock the performance you can raise the minimum clock to 1.0ghz for such games but always remember this risks more heat and to always restore the minimum clock if you dont want to fry your One X
Instead of locking the clocks simply use the gaming boost app/scripts or the safer dual core performance governor

Automating this process
SetCpu 3.x has profiles per app where you can choose a governor for you game, check this post
You can also try Tasker to simplify much of this process, thanks to AJerman for this tips and instructions in here

Rom Cleaner
If you are on stock based ROMs like ARHD and don't care much about all the Sense bloat, you can use Rom Cleaner to de-bloat your ROM, this will free more RAM for gaming and reduce background noise, some users reported few extra fps in benchmarks

Cyanogenmod 9/10
Alternatively if you want your One X totally optimized for gaming, try AOSP ROMs, many games will run smooth without any tweaking, this probably due to the dramatically less bloated ROM and better default CPU configuration, but of course it all depends how you bloat it yourself, you can still use the above tips

Download SD files battery tip
Games with huge SD files will drain your battery during download and heats up the device sometimes, use the Conservative governor during downloads to save your battery

Supercharger
You can control your multitasking and launcher priority using the powerful supercharger script Patch and tutorial in here for the One X

Filled Under:

0 comments:

Post a Comment