HTC Flagship 2012 - HTC One X (Endeavor) - Tegra 3 - Mega Information Thread

33,246 posts
Thanks Meter: 27,189
 
By hamdir, Recognized Contributor on 2nd February 2012, 09:42 AM
Post Reply Email Thread
11th July 2012, 11:18 AM |#4941  
hamdir's Avatar
OP Recognized Contributor
Beirut
Thanks Meter: 27,189
 
More
Quote:
Originally Posted by timlambo

Have you tried the latest Faux kernel (think it's 004b5)?

users are complaining about all the 004b kernels but faux is stubborn in keeping the N7 strange interactive governor (dunno if its really like this on the N7 or was just broken in translation)

we all agree 003b11 is best

curiously interactive on 1.29 is really good too

strange situation with these governors why do they keep messing with them just introduce new ones instead

and you reporting heat issues with franco

i think its best to stick with stock until OTA is outed

by the way this works
Code:
echo 0 > /sys/devices/platform/tegra_grhost/enable_3d_scaling
it disable 3d scaling evident by the increased heat, but isn't doing much difference since reducing the up threshold for ondemand keeps the clocks high and hence the GPU and does the same job and no need for needless heat

the GPU actually scales with the voltage used and not the clocks but i still suspect its capped at less than 520mhz
11th July 2012, 11:36 AM |#4942  
hamdir's Avatar
OP Recognized Contributor
Beirut
Thanks Meter: 27,189
 
More
this is what i found so far https://github.com/franciscofranco/O.../tegra3_dvfs.c

i know its a noob work approach, im not a kernel dev

seems it can go up all the way to 600 but as you can see id0 and ide1 are all capped at 416mhz

clocks for speedo id 0
Quote:

CORE_DVFS("3d", 0, 1, KHZ, 1, 234000, 285000, 332000, 380000, 416000, 416000, 416000, 416000),
CORE_DVFS("3d2", 0, 1, KHZ, 1, 234000, 285000, 332000, 380000, 416000, 416000, 416000, 416000),

speedo id 1
Quote:

CORE_DVFS("3d", 1, 1, KHZ, 1, 234000, 285000, 332000, 380000, 416000, 416000, 416000, 416000),
CORE_DVFS("3d2", 1, 1, KHZ, 1, 234000, 285000, 332000, 380000, 416000, 416000, 416000, 416000),

speedo id 2
Quote:

CORE_DVFS("3d", 2, 1, KHZ, 1, 247000, 304000, 361000, 408000, 446000, 484000, 520000, 600000),
CORE_DVFS("3d2", 2, 1, KHZ, 1, 247000, 304000, 361000, 408000, 446000, 484000, 520000, 600000),

speed id 3
Quote:

CORE_DVFS("3d", 3, 1, KHZ, 1, 1, 1, 1, 1, 1, 484000, 484000, 484000),
CORE_DVFS("3d2", 3, 1, KHZ, 1, 1, 1, 1, 1, 1, 484000, 484000, 484000),

11th July 2012, 12:14 PM |#4943  
hamdir's Avatar
OP Recognized Contributor
Beirut
Thanks Meter: 27,189
 
More
Trying to figure our speedo id

https://github.com/franciscofranco/O...egra3_speedo.c
Quote:

/* Maximum speedo levels for each core process corner */
static const u32 core_process_speedos[][CORE_PROCESS_CORNERS_NUM] = {
/* proc_id 0 */
{180}, /* [0]: soc_speedo_id 0: any A01 */

/* T30 family */
{180}, /* [1]: soc_speedo_id 1: AP30 */
{204}, /* [2]: soc_speedo_id 2: T30 */
{192}, /* [3]: soc_speedo_id 2: T30S */

/* Characterization SKUs */
{168}, /* [4]: soc_speedo_id 1: AP30 char */
{192}, /* [5]: soc_speedo_id 2: T30 char */
{184}, /* [6]: soc_speedo_id 2: T30S char */

/* T33 family */
{180}, /* [7]: soc_speedo_id = 1 - AP33 */
{208}, /* [8]: soc_speedo_id = 2 - T33 */
{192}, /* [9]: soc_speedo_id = 2 - T33S */

/* T30 'L' family */
{192}, /* [10]: soc_speedo_id 1: T30L */
{192}, /* [11]: soc_speedo_id 1: T30SL */

/* T30 Automotives */
{185}, /* [12]: soc_speedo_id = 3 - Automotives */
{185}, /* [13]: soc_speedo_id = 3 - Automotives */
};

/* Maximum speedo levels for each CPU process corner */
static const u32 cpu_process_speedos[][CPU_PROCESS_CORNERS_NUM] = {
/* proc_id 0 1 2 3 4*/
{306, 338, 360, 376, UINT_MAX}, /* [0]: cpu_speedo_id 0: any A01 */

/* T30 family */
{304, 336, 359, 375, UINT_MAX}, /* [1]: cpu_speedo_id 1: AP30 */
{336, 336, 359, 375, UINT_MAX}, /* [2]: cpu_speedo_id 2: T30 */
{336, 336, 359, 375, UINT_MAX}, /* [3]: cpu_speedo_id 3: T30S */

/* Characterization SKUs */
{292, 324, 348, 364, UINT_MAX}, /* [4]: cpu_speedo_id 1: AP30char */
{324, 324, 348, 364, UINT_MAX}, /* [5]: cpu_speedo_id 2: T30char */
{324, 324, 348, 364, UINT_MAX}, /* [6]: cpu_speedo_id 3: T30Schar */

/* T33 family */
{305, 337, 359, 376, UINT_MAX}, /* [7]: cpu_speedo_id = 4 - AP33 */
{368, 368, 368, 368, 392}, /* [8]: cpu_speedo_id = 5 - T33 */
{376, 376, 376, 376, 392}, /* [9]: cpu_speedo_id = 6 - T33S */

/* T30 'L' family */
{305, 337, 359, 376, 392}, /* [10]: cpu_speedo_id 7: T30L */
{305, 337, 359, 376, 392}, /* [11]: cpu_speedo_id 8: T30SL */

/* T30 Automotives */
/* threshold_index 12: cpu_speedo_id 9 & 10
* 0,1,2 values correspond to speedo_id 9
* 3,4,5 values correspond to speedo_id 10
*/
{300, 311, 360, 371, 381, 415, 431},
{300, 311, 410, 431}, /* threshold_index 13: cpu_speedo_id = 11 */
};

Quote:
Originally Posted by _motley

Thanks for the info. The GPU stuff is still a work in progress. I played a little tonight actually forcing the clocks to stay where they are supposed to. I was successful, but there was no benefit in tests. We may end up taking it out, but more testing needs to be done.



I'll explain more below. I know you guys are looking for some info! This next comment is not directed at you, but is just a general comment.

Please don't go running to Nvidia saying you have the wrong CPU. We still don't fully understand what is going on and both CPU seem to be performing well @1.8GHz just the same thus far.



Thanks for the info, you always seem to have a lot of good stuff for us. After today, we are not yet sure if marketing and reality are the same, but I can tell you this much.

  • The SoC on some primes is reporting cpu process id "1" while others report cpu process id "2". This means that they are likely different in some way... perhaps there was some sort of manufacturing reason they where they changed something. Might be good, might be better...might not. We just don't know.
  • cpu process id "1" and cpu process id "2" take different paths in the kernel code using different voltage limitations and tables.
  • When you boot up, you can take a look at your dmesg output to find out which one you have. They share the same A03 SKU, Speedo ID 3, Soc Speedo ID and Core Process specs, but the CPU Process differs. I show how to do this a few pages back.

Tegra3: CPU Speedo ID 3, Soc Speedo ID 2
Tegra Revision: A03 SKU: 0x83 CPU Process: 1 Core Process: 0
(likely older primes reporting as AP30)
or

Tegra3: CPU Speedo ID 3, Soc Speedo ID 2
Tegra Revision: A03 SKU: 0x83 CPU Process: 2 Core Process: 0
(likely newer primes reporting generic T30)

This is right from the code (tegra3_speedo.c):

Code:
/* T30 family */
	{304, 336, 359, 375, UINT_MAX}, /* [1]: cpu_speedo_id 1: AP30 */
	{336, 336, 359, 375, UINT_MAX}, /* [2]: cpu_speedo_id 2: T30  */
	{336, 336, 359, 375, UINT_MAX}, /* [3]: cpu_speedo_id 3: T30S */

/* Characterization SKUs */
	{292, 324, 348, 364, UINT_MAX}, /* [4]: cpu_speedo_id 1: AP30char */
	{324, 324, 348, 364, UINT_MAX}, /* [5]: cpu_speedo_id 2: T30char  */
	{324, 324, 348, 364, UINT_MAX}, /* [6]: cpu_speedo_id 3: T30Schar */

/* T33 family */
	{305, 337, 359, 376, UINT_MAX}, /* [7]: cpu_speedo_id = 4 - AP33 */
	{368, 368, 368, 368, 392},	/* [8]: cpu_speedo_id = 5 - T33  */
	{376, 376, 376, 376, 392},	/* [9]: cpu_speedo_id = 6 - T33S */

/* T30 'L' family */
	{305, 337, 359, 376, 392},	/* [10]: cpu_speedo_id 7: T30L  */
	{305, 337, 359, 376, 392},	/* [11]: cpu_speedo_id 8: T30SL */

/* T30 Automotives */
	/* threshold_index 12: cpu_speedo_id 9 & 10
	 * 0,1,2 values correspond to speedo_id  9
	 * 3,4,5 values correspond to speedo_id 10
	 */
	{300, 311, 360, 371, 381, 415, 431},
	{300, 311, 410, 431}, /* threshold_index 13: cpu_speedo_id = 11 */

11th July 2012, 12:37 PM |#4944  
hamdir's Avatar
OP Recognized Contributor
Beirut
Thanks Meter: 27,189
 
More
Confirmed

HTC One X - GPU @ 416mhz

Tegra 3 AP33 IDs
soc_speedo_id 1 : AP33 (out of 0 - 3)
cpu_speedo_id 4 : AP33 (out of 0 - 8)
source

soc_speedo_id 1
CORE_DVFS("cpu_lp", 1, 1, KHZ, 204000, 294000, 342000, 427000, 475000, 500000, 500000, 500000, 500000)
CORE_DVFS("emc", 1, 1, KHZ, 102000, 408000, 408000, 408000, 408000, 667000, 667000, 667000, 667000)
CORE_DVFS("sbus", 1, 1, KHZ, 51000, 205000, 205000, 227000, 227000, 267000, 267000, 267000, 267000)
CORE_DVFS("vi", 1, 1, KHZ, 1, 216000, 267000, 300000, 371000, 409000, 409000, 409000, 409000)
CORE_DVFS("vde", 1, 1, KHZ, 1, 228000, 275000, 332000, 380000, 416000, 416000, 416000, 416000)
CORE_DVFS("mpe", 1, 1, KHZ, 1, 234000, 285000, 332000, 380000, 416000, 416000, 416000, 416000)
CORE_DVFS("2d", 1, 1, KHZ, 1, 267000, 285000, 332000, 380000, 416000, 416000, 416000, 416000)
CORE_DVFS("epp", 1, 1, KHZ, 1, 267000, 285000, 332000, 380000, 416000, 416000, 416000, 416000)
CORE_DVFS("3d", 1, 1, KHZ, 1, 234000, 285000, 332000, 380000, 416000, 416000, 416000, 416000)
CORE_DVFS("3d2", 1, 1, KHZ, 1, 234000, 285000, 332000, 380000, 416000, 416000, 416000, 416000)

CORE_DVFS("se", 1, 1, KHZ, 1, 267000, 285000, 332000, 380000, 416000, 416000, 416000, 416000)
CORE_DVFS("host1x", 1, 1, KHZ, 1, 152000, 188000, 222000, 254000, 267000, 267000, 267000, 267000)
CORE_DVFS("cbus", 1, 1, KHZ, 1, 228000, 275000, 332000, 380000, 416000, 416000, 416000, 416000)
CORE_DVFS("mipi", 1, 1, KHZ, 1, 1, 1, 1, 1, 60000, 60000, 60000, 60000)
CORE_DVFS("nor", 1, 1, KHZ, 1, 115000, 130000, 130000, 133000, 133000, 133000, 133000, 133000)
CORE_DVFS("disp1", 1, 0, KHZ, 1, 155000, 268000, 268000, 268000, 268000, 268000, 268000, 268000)
CORE_DVFS("disp2", 1, 0, KHZ, 1, 155000, 268000, 268000, 268000, 268000, 268000, 268000, 268000)
source

Comparing Tegra 3 series GPU rates
One X - AP33 - soc_speedo_id 1 : AP33
CORE_DVFS("3d", 1, 1, KHZ, 1, 234000, 285000, 332000, 380000, 416000, 416000, 416000, 416000)
CORE_DVFS("3d2", 1, 1, KHZ, 1, 234000, 285000, 332000, 380000, 416000, 416000, 416000, 416000)

Nexus 7 - T30L - soc_speedo_id 1: T30L
CORE_DVFS("3d", 1, 1, KHZ, 1, 234000, 285000, 332000, 380000, 416000, 416000, 416000, 416000)
CORE_DVFS("3d2", 1, 1, KHZ, 1, 234000, 285000, 332000, 380000, 416000, 416000, 416000, 416000)

Transformer Prime - AP30 - soc_speedo_id 1: AP30
CORE_DVFS("3d", 1, 1, KHZ, 1, 234000, 285000, 332000, 380000, 416000, 416000, 416000, 416000)
CORE_DVFS("3d2", 1, 1, KHZ, 1, 234000, 285000, 332000, 380000, 416000, 416000, 416000, 416000)

Transformer Prime - T30 - soc_speedo_id 2: T30
CORE_DVFS("3d", 2, 1, KHZ, 1, 247000, 304000, 361000, 408000, 446000, 484000, 520000, 600000),
CORE_DVFS("3d2", 2, 1, KHZ, 1, 247000, 304000, 361000, 408000, 446000, 484000, 520000, 600000)

Transformer Infinity - T33 - soc_speedo_id 2 : T33
CORE_DVFS("3d", 2, 1, KHZ, 1, 247000, 304000, 361000, 408000, 446000, 484000, 520000, 600000),
CORE_DVFS("3d2", 2, 1, KHZ, 1, 247000, 304000, 361000, 408000, 446000, 484000, 520000, 600000)
11th July 2012, 12:41 PM |#4945  
Senior Member
Thanks Meter: 295
 
More
Quote:
Originally Posted by hamdir

Confirmed

HTC One X - GPU @ 416mhz

so in other words the GPU is running lower than it's supposed to?
11th July 2012, 12:53 PM |#4946  
jonas2295's Avatar
Senior Member
Flag Bavaria
Thanks Meter: 2,735
 
Donate to Me
More
Quote:
Originally Posted by shadehh

so in other words the GPU is running lower than it's supposed to?

lower than its able to do

but higher clock rates are not equal to better performance
11th July 2012, 12:53 PM |#4947  
hamdir's Avatar
OP Recognized Contributor
Beirut
Thanks Meter: 27,189
 
More
moved
11th July 2012, 12:57 PM |#4948  
hamdir's Avatar
OP Recognized Contributor
Beirut
Thanks Meter: 27,189
 
More
Quote:
Originally Posted by jonas2295

lower than its able to do

but higher clock rates are not equal to better performance

520mhz should be stable

and wrong it means higher frame rates, GPU speed always mean higher

T33 on transformer infinity gets 75 on offscreen egpyt due to the higher CPU clocks and voltage (GPU linked to voltage/clocks) it reachs 600

T30 on transformer prime gets 68fps capped by the volage/clocks

AP33 on the one x gets 64fps capped by soc_speedo_id

T30L on the N7 gets 63fps capped by the volage/clocks and soc_speedo_id
11th July 2012, 12:59 PM |#4949  
jonas2295's Avatar
Senior Member
Flag Bavaria
Thanks Meter: 2,735
 
Donate to Me
More
Quote:
Originally Posted by hamdir

it can do 600mhz

520mhz should be stable

and wrong it means higher frame rates, GPU speed always mean higher

damn you beat me knowledge wise all day arghhh :P

you may contact franco or faux with your sources and research?!
11th July 2012, 01:09 PM |#4950  
Senior Member
Thanks Meter: 295
 
More
So the GPU @ 416 mhz is purposely underclocked or is it supposed to be running at 520 mhz? (we're dealing with a bug?)
Post Reply Subscribe to Thread

Tags
htc one x, knowledge base, nvidia tegra 3, one x, performance, sense 4.x

Guest Quick Reply (no urls or BBcode)
Message:
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes