Kindle Fire SGX HW recovery

does the issue resolved?

any recent news about the issue?
I’ve met the same issue, and want some help

once in freeze, I’ve got the logcat info below:


logcat log

01-19 10:36:27.898: I/cat(1575): <6>[69576.446197] PVR_K: HWRecoveryResetSGX: SGX Hardware Recovery triggered

01-19 10:36:27.898: I/cat(1575): <6>[69576.446258] PVR_K: SGX debug (1.7.17.4958)

01-19 10:36:27.898: I/cat(1575): <6>[69576.446319] PVR_K: (P0) EUR_CR_CORE_ID:          01140000

01-19 10:36:27.906: I/cat(1575): <6>[69576.446350] PVR_K: (P0) EUR_CR_CORE_REVISION:    00010200

01-19 10:36:27.906: I/cat(1575): <6>[69576.446380] PVR_K: (P0) EUR_CR_EVENT_STATUS:     20000000

01-19 10:36:27.906: I/cat(1575): <6>[69576.446411] PVR_K: (P0) EUR_CR_EVENT_STATUS2:    00000010

01-19 10:36:27.906: I/cat(1575): <6>[69576.446472] PVR_K: (P0) EUR_CR_BIF_CTRL:         00000000

01-19 10:36:27.906: I/cat(1575): <6>[69576.446502] PVR_K: (P0) EUR_CR_BIF_INT_STAT:     0000C002

01-19 10:36:27.906: I/cat(1575): <6>[69576.446533] PVR_K: (P0) EUR_CR_BIF_FAULT:        0D820000

01-19 10:36:27.906: I/cat(1575): <6>[69576.446563] PVR_K: (P0) EUR_CR_BIF_MEM_REQ_STAT: 00000000

01-19 10:36:27.906: I/cat(1575): <6>[69576.446624] PVR_K: (P0) EUR_CR_CLKGATECTL:       000AAA6A

01-19 10:36:27.906: I/cat(1575): <6>[69576.446655] PVR_K: (P0) EUR_CR_PDS_PC_BASE:      002031D8

01-19 10:36:27.906: I/cat(1575): <6>[69576.446685] PVR_K: Flip Command Complete Data 0 for display device 1:

01-19 10:36:27.906: I/cat(1575): <6>[69576.446746] PVR_K:      SRC 0: (Not in use)

01-19 10:36:27.906: I/cat(1575): <6>[69576.446777] PVR_K:      SRC 1: (Not in use)

01-19 10:36:27.906: I/cat(1575): <6>[69576.451416] PVR_K: SGX Host control:

01-19 10:36:27.906: I/cat(1575): <6>[69576.451477] PVR_K:      (HC-0) 0x00000000 0x00000000 0x00000000 0x00000001

01-19 10:36:27.906: I/cat(1575): <6>[69576.451538] PVR_K:      (HC-10) 0x0000004C 0x0000000A 0x0004B000 0x00000003

01-19 10:36:27.906: I/cat(1575): <6>[69576.452697] PVR_K:      (HC-20) 0x00000000 0x00000001 0x00000000 0x00027477

01-19 10:36:27.906: I/cat(1575): <6>[69576.452728] PVR_K:      (HC-30) 0x02FDCF4E 0x05DDD21C 0x00000000 0x00000000

01-19 10:36:27.906: I/cat(1575): <6>[69576.452789] PVR_K:      (HC-40) 0x00000000 0x00000000 0x00000000 0x00000000

01-19 10:36:27.906: I/cat(1575): <6>[69576.452819] PVR_K: SGX TA/3D control:

01-19 10:36:27.906: I/cat(1575): <6>[69576.452850] PVR_K:      (T3C-0) 0x0F003000 0x0F003120 0x0F002000 0x0F05C900

01-19 10:36:27.906: I/cat(1575): <6>[69576.452911] PVR_K:      (T3C-10) 0x00000001 0x00000002 0x00000001 0x0F00AA60

01-19 10:36:27.906: I/cat(1575): <6>[69576.452941] PVR_K:      (T3C-20) 0x00000000 0x00000000 0x00000000 0x00000000

01-19 10:36:27.906: I/cat(1575): <6>[69576.453002] PVR_K:      (T3C-30) 0x00000000 0x00000000 0x00000000 0x00000000

01-19 10:36:27.906: I/cat(1575): <6>[69576.453033] PVR_K:      (T3C-40) 0x00000000 0x00000000 0x00000000 0x00000000

01-19 10:36:27.906: I/cat(1575): <6>[69576.453094] PVR_K:      (T3C-50) 0x0F045C40 0x00000000 0x00000000 0x0F045C40

01-19 10:36:27.906: I/cat(1575): <6>[69576.453125] PVR_K:      (T3C-60) 0x00000000 0x00000000 0x00000000 0x00000000

01-19 10:36:27.906: I/cat(1575): <6>[69576.453155] PVR_K:      (T3C-70) 0x0F045C40 0x00000000 0x00000000 0x00000000

01-19 10:36:27.906: I/cat(1575): <6>[69576.453216] PVR_K:      (T3C-80) 0x00000000 0x0F045EF8 0x0F000000 0xBFD24000

01-19 10:36:27.906: I/cat(1575): <6>[69576.453277] PVR_K:      (T3C-90) 0x0F059200 0x0F045EF8 0x0F096000 0x0F045C40

01-19 10:36:27.906: I/cat(1575): <6>[69576.453308] PVR_K:      (T3C-A0) 0x00000000 0x0F01F420 0x00000000 0x0F045CA0

01-19 10:36:27.906: I/cat(1575): <6>[69576.453369] PVR_K:      (T3C-B0) 0x00120400 0x0010037B 0x00000000 0x00000000

01-19 10:36:27.906: I/cat(1575): <6>[69576.453399] PVR_K:      (T3C-C0) 0x00000002 0x00000000 0x0002D016 0x0002D016

01-19 10:36:27.906: I/cat(1575): <6>[69576.453460] PVR_K:      (T3C-D0) 0x0F004000 0x0F00A420 0x0F00B000 0x0F01FC20

01-19 10:36:27.906: I/cat(1575): <6>[69576.453491] PVR_K:      (T3C-E0) 0x0F01FC20 0x00000000 0x00005491 0x000006E5

01-19 10:36:27.906: I/cat(1575): <6>[69576.453552] PVR_K:      (T3C-F0) 0x00000000 0x00000000 0x00000000 0xA6D3F7B5

01-19 10:36:27.906: I/cat(1575): <6>[69576.453582] PVR_K:      (T3C-100) 0x00000005 0xE6038B8F 0x535F5245 0x31544154

01-19 10:36:27.906: I/cat(1575): <6>[69576.453643] PVR_K: SGX Kernel CCB WO:0xD2 RO:0x88




Hi uyoung.liu,

Can you share a minimal reproduction that reproduces the crash with is for further investigation?

Regards,
Joe



Hi Joe,
Thanks for help.
We’ve spent two weeks+ on this issue, but still can’t fix it.
The driver is /system/vendor/lib/egl/libGLESv2_POWERVR_SGX540_120.so.1.1.17.4403
The Device is KindleFire(6.3.1, Android 2.3), we also have another Android Phone with the the same driver has the same issue.
here is the device detail:
Kindle Fire:
Version 1.7.17.4403 (release) omap_sgx_android
System Version String: SGX revision = 1.2.0
LibFile:
libEGL_POWERVR_SGX540_120.so
libEGL_POWERVR_SGX540_120.so.1.1.17.4403
libGLESv1_CM_POWERVR_SGX540_120.so
libGLESv1_CM_POWERVR_SGX540_120.so.1.1.17.4403
libGLESv2_POWERVR_SGX540_120.so
libGLESv2_POWERVR_SGX540_120.so.1.1.17.4403

below is another two pvr device which works fine:
Fujitsu ArrowsXLTE:
Version 1.7.17.4958 (release) omap_sgx_android
System Version String: SGX revision = 1.2.0
LibFile:
libEGL_POWERVR_SGX540_120.so
libEGL_POWERVR_SGX540_120.so.1.1.17.4958
libGLESv1_CM_POWERVR_SGX540_120.so
libGLESv1_CM_POWERVR_SGX540_120.so.1.1.17.4958
libGLESv2_POWERVR_SGX540_120.so
libGLESv2_POWERVR_SGX540_120.so.1.1.17.4958

Galaxy Player4.2:
Version 1.7.17.4403 (release) omap_sgx_android
System Version String: SGX revision = 1.2.5
LibFile:
libEGL_POWERVR_SGX530_125.so
libGLESv1_CM_POWERVR_SGX530_125.so
libGLESv2_POWERVR_SGX530_125.so

it’s very hard to locate the reason cause the freeze, because:
1. we can’t get any useful error msg(glGeError, logcat, also try PVRTrace, but it won’t work on KindleFire)
2.the program freeze randomly in glDraw Function, it doesn’t freeze in specific draw call.

I will try to provide an apk file if you want.

Thanks

Hi,

I’ve created a new topic for this conversation. For the benefit of anyone else reading, this spawned from a similar topic here.

That’s interesting that the Kindle Fire has the bug, but the Galaxy Player 4.2 doesn’t even though they have come from the same reference driver. It could, of course, be an SGX 540 specific problem that newer drivers have fixed. I’ll discuss the issue with our driver team to see if they know what the cause of the problem may be.

PVRTrace recording will work on any rooted Android device.If it’s failing to record, then your pvrtrace.cfg file may be set incorrectly or the libraries may be installed in an incorrect directory.

An .apk would be great. Please send this to devtech@imgtec.com.

Regards,
Joe



Hi,

I’ve just spotted that the driver version in the Kindle Fire crash log is different from the driver version number that you’ve written in your last post. Were both driver version strings taken from the same Kindle Fire? Were any system updates applied to the Kindle Fire between the crash and the second driver version query you did?

Regards,
Joe



Hi Joe,

Thanks for help

Sorry, I didn’t say it clearly.
the log above comes from Fujitsu ArrowsXLTE(1.7.17.4958),
1.7.17.4958 works fine for most of the time.
but it still die(freeze) once, and this is the log when it die.
Kindle Fire(1.7.17.4403) die(freez) very often. but no error message at all.

I’ve just replace the Kindle Fire’s GL driver(1.7.17.4403) with the driver from ArrowsXLTE(1.7.17.4958),
and the program works fine.
so I think the issue(glDraw freeze) should be fixed in 1.7.17.4958, or may be not totally fixed since I got the log above.

the problem is We don’t know when KindleFire will update it’s GL driver.

would you please check the changes between 1.7.17.4403 and 1.7.17.4958?
if there are not too much change, it should be easy to know the reason for the glDraw freezing issue.

Thanks a lot.

PS: Replace GL driver means:
rm /system/vendor/lib/egl/libEGL_POWERVR_SGX540_120.so
ln -s /system/vendor/lib/egl/libEGL_POWERVR_SGX540_120.so.1.1.17.4958 /system/vendor/lib/egl/libEGL_POWERVR_SGX540_120.so
rm /system/vendor/lib/egl/libGLESv1_CM_POWERVR_SGX540_120.so
ln -s /system/vendor/lib/egl/libGLESv1_CM_POWERVR_SGX540_120.so.1.1.17.4958 /system/vendor/lib/egl/libGLESv1_CM_POWERVR_SGX540_120.so
rm /system/vendor/lib/egl/libGLESv2_POWERVR_SGX540_120.so
ln -s /system/vendor/lib/egl/libGLESv2_POWERVR_SGX540_120.so.1.1.17.4958 /system/vendor/lib/egl/libGLESv2_POWERVR_SGX540_120.so
rm /system/vendor/lib/libIMGegl.so
ln -s /system/vendor/lib/libIMGegl.so.1.1.17.4958 /system/vendor/lib/libIMGegl.so
rm /system/vendor/lib/libglslcompiler.so
ln -s /system/vendor/lib/libglslcompiler.so.1.1.17.4958 /system/vendor/lib/libglslcompiler.so
rm /system/vendor/lib/libpvr2d.so
ln -s /system/vendor/lib/libpvr2d.so.1.1.17.4958 /system/vendor/lib/libpvr2d.so
rm /system/vendor/lib/libpvrANDROID_WSEGL.so
ln -s /system/vendor/lib/libpvrANDROID_WSEGL.so.1.1.17.4958 /system/vendor/lib/libpvrANDROID_WSEGL.so
rm /system/vendor/lib/libusc.so
ln -s /system/vendor/lib/libusc.so.1.1.17.4958 /system/vendor/lib/libusc.so


uyoung.liu

Hi Joe,

Thanks for help.

There is another bug for 1.7.17.4403(Kindle Fire), 1.7.17.4958(ArrowsXLTE) works fine.
while I tried to use glProgramBinaryOES
the program will crash, here is the code and logcat:



C++ Code:
     NNM_TRACE("myglProgramBinaryOES0 ShaderName: %s (%d)n", szShaderName, pProgram);
     myglProgramBinaryOES(pProgram, *((GLenum*)_am_std_shader_buf), (_am_std_shader_buf+sizeof(GLenum)), fsize-sizeof(GLenum));
     NNM_GL_CHECKERROR(pShaderManager);
     glGetProgramiv(pProgram, GL_LINK_STATUS, &Linked);
     NNM_TRACE("myglProgramBinaryOES1 ShaderName: %s (%d)n", szShaderName, Linked);

07-03 10:31:31.054: E/foxLog(3517): myglGetProgramBinaryOES abe01f24, myglProgramBinaryOES: abe01f40
07-03 10:31:31.054: E/foxLog(3517): myglProgramBinaryOES0 ShaderName: B000400020801B6D (70001)
07-03 10:31:31.054: E/foxLog(3517): myglProgramBinaryOES1 ShaderName: B000400020801B6D (1)
07-03 10:31:31.156: I/DEBUG(1301): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
07-03 10:31:31.156: I/DEBUG(1301): Build fingerprint: 'generic/blaze/blaze:2.3.4/GINGERBREAD/6.3.1_user_4107720:user/release-keys'
07-03 10:31:31.156: I/DEBUG(1301): pid: 3517, tid: 3529 >>> com.sega.sonic4ep2 <<<
07-03 10:31:31.156: I/DEBUG(1301): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000084
07-03 10:31:31.156: I/DEBUG(1301): r0 ffffffff r1 00000000 r2 00000000 r3 00000000
07-03 10:31:31.156: I/DEBUG(1301): r4 00000000 r5 0024ab48 r6 00000000 r7 002a1278
07-03 10:31:31.156: I/DEBUG(1301): r8 00000000 r9 00000000 10 00000000 fp 00000000
07-03 10:31:31.156: I/DEBUG(1301): ip 00000000 sp 46c3a5c0 lr 8262bf84 pc 82632fa8 cpsr 60000110
07-03 10:31:31.156: I/DEBUG(1301): d0 53746867694c5f6f d1 6e696e6968732e75
07-03 10:31:31.156: I/DEBUG(1301): d2 bf88182000000072 d3 3feec709dc3a0363
07-03 10:31:31.156: I/DEBUG(1301): d4 3df0100000000000 d5 bfd4eb207661b06e
07-03 10:31:31.156: I/DEBUG(1301): d6 3ff0000000000000 d7 0000000043000000
07-03 10:31:31.156: I/DEBUG(1301): d8 0000000000000000 d9 0000000000000000
07-03 10:31:31.156: I/DEBUG(1301): d10 0000000000000000 d11 0000000000000000
07-03 10:31:31.156: I/DEBUG(1301): d12 0000000000000000 d13 0000000000000000
07-03 10:31:31.156: I/DEBUG(1301): d14 0000000000000000 d15 0000000000000000
07-03 10:31:31.156: I/DEBUG(1301): d16 3ff0000000000000 d17 3ff0000000000000
07-03 10:31:31.156: I/DEBUG(1301): d18 3ff0000000000000 d19 bfa659f1991804da
07-03 10:31:31.156: I/DEBUG(1301): d20 4000000000000000 d21 3f114bb9d8dce7e0
07-03 10:31:31.156: I/DEBUG(1301): d22 bebbac1745c2173a d23 bfd3e3cf7aaa5000
07-03 10:31:31.156: I/DEBUG(1301): d24 3e66376972bea4d0 d25 bff0000000000000
07-03 10:31:31.156: I/DEBUG(1301): d26 3fefc00000000000 d27 bfa659f1991804d9
07-03 10:31:31.156: I/DEBUG(1301): d28 c0029d640ecc360e d29 bfd3e3cfd82f05e6
07-03 10:31:31.156: I/DEBUG(1301): d30 bc636298ebda066f d31 be77612d79800000
07-03 10:31:31.156: I/DEBUG(1301): scr 6000001a
07-03 10:31:31.218: I/DEBUG(1301):          #00 pc 00032fa8 /system/vendor/lib/egl/libGLESv2_POWERVR_SGX540_120.so.1.1.17.4403
07-03 10:31:31.218: I/DEBUG(1301):          #01 lr 8262bf84 /system/vendor/lib/egl/libGLESv2_POWERVR_SGX540_120.so.1.1.17.4403
07-03 10:31:31.218: I/DEBUG(1301): code around pc:
07-03 10:31:31.218: I/DEBUG(1301): 82632f88 e78e1107 e594e080 e08ee086 e08ee003
07-03 10:31:31.218: I/DEBUG(1301): 82632f98 e1ce10b4 1affffd6 e28cc001 e2833078
07-03 10:31:31.218: I/DEBUG(1301): 82632fa8 e5942084 e15c0002 3affffcd e1a00005
07-03 10:31:31.218: I/DEBUG(1301): 82632fb8 e1a01004 eb001551 e3500000 0a00003a
07-03 10:31:31.218: I/DEBUG(1301): 82632fc8 e1a00005 e1a01004 eb0013a6 e3500000
07-03 10:31:31.218: I/DEBUG(1301): code around lr:
07-03 10:31:31.218: I/DEBUG(1301): 8262bf64 e595040c eb001bbf e59731ac e35a0000
07-03 10:31:31.218: I/DEBUG(1301): 8262bf74 e595040c 15931078 05931074 eb001bd1
07-03 10:31:31.218: I/DEBUG(1301): 8262bf84 e3500000 e1a06000 1a000006 e1a00005
07-03 10:31:31.218: I/DEBUG(1301): 8262bf94 e3001505 ebffa8e5 e1a00004 ebff5ba7
07-03 10:31:31.218: I/DEBUG(1301): 8262bfa4 e3a09007 ea000190 e1d031bc e3530000
07-03 10:31:31.218: I/DEBUG(1301): stack:
07-03 10:31:31.218: I/DEBUG(1301):     46c3a580 00000020
07-03 10:31:31.218: I/DEBUG(1301):     46c3a584 002a1e50
07-03 10:31:31.218: I/DEBUG(1301):     46c3a588 00000060
07-03 10:31:31.218: I/DEBUG(1301):     46c3a58c 00000000
07-03 10:31:31.218: I/DEBUG(1301):     46c3a590 00247134
07-03 10:31:31.218: I/DEBUG(1301):     46c3a594 00000000
07-03 10:31:31.218: I/DEBUG(1301):     46c3a598 00000190
07-03 10:31:31.218: I/DEBUG(1301):     46c3a59c 002a1938
07-03 10:31:31.218: I/DEBUG(1301):     46c3a5a0 00000000
07-03 10:31:31.218: I/DEBUG(1301):     46c3a5a4 002a1278
07-03 10:31:31.218: I/DEBUG(1301):     46c3a5a8 00000000
07-03 10:31:31.218: I/DEBUG(1301):     46c3a5ac 00000000
07-03 10:31:31.218: I/DEBUG(1301):     46c3a5b0 00000000
07-03 10:31:31.218: I/DEBUG(1301):     46c3a5b4 afd144e3 /system/lib/libc.so
07-03 10:31:31.218: I/DEBUG(1301):     46c3a5b8 df002777
07-03 10:31:31.218: I/DEBUG(1301):     46c3a5bc e3a070ad
07-03 10:31:31.218: I/DEBUG(1301): #00 46c3a5c0 002a7738
07-03 10:31:31.218: I/DEBUG(1301):     46c3a5c4 002a1938
07-03 10:31:31.218: I/DEBUG(1301):     46c3a5c8 00245cf0
07-03 10:31:31.218: I/DEBUG(1301):     46c3a5cc 00000000
07-03 10:31:31.218: I/DEBUG(1301):     46c3a5d0 002a1278
07-03 10:31:31.218: I/DEBUG(1301):     46c3a5d4 00000000
07-03 10:31:31.218: I/DEBUG(1301):     46c3a5d8 00000000
07-03 10:31:31.218: I/DEBUG(1301):     46c3a5dc 00000000
07-03 10:31:31.218: I/DEBUG(1301):     46c3a5e0 00000000
07-03 10:31:31.218: I/DEBUG(1301):     46c3a5e4 8262bf84 /system/vendor/lib/egl/libGLESv2_POWERVR_SGX540_120.so.1.1.17.4403
07-03 10:31:31.218: I/DEBUG(1301):     46c3a5e8 002a16f0
07-03 10:31:31.218: I/DEBUG(1301):     46c3a5ec 002a1278
07-03 10:31:31.218: I/DEBUG(1301):     46c3a5f0 4777b280
07-03 10:31:31.218: I/DEBUG(1301):     46c3a5f4 8262cfd0 /system/vendor/lib/egl/libGLESv2_POWERVR_SGX540_120.so.1.1.17.4403
07-03 10:31:31.218: I/DEBUG(1301):     46c3a5f8 46c3a61c
07-03 10:31:31.218: I/DEBUG(1301):     46c3a5fc 816c28b8
07-03 10:31:31.218: I/DEBUG(1301):     46c3a600 46c3a610
07-03 10:31:31.218: I/DEBUG(1301):     46c3a604 00000000




maybe 1.7.17.4403(Kindle Fire) just can't use glProgramBinaryOES?


Thanks
uyoung.liu

Hi,

I’ve spoken to our driver team, but they aren’t sure what the cause of the problem is. Have you been able to resolve the issue yet? Can you provide us with a minimal reproduction for this problem?

I’ve ran our OGLES2ShaderBinary training course on our Kindle Fire, and it has been able to retrieve and then reload the shader binary successfully. Can you compare your code against our OGLES2ShaderBinary code? This should help you isolate the cause of the problem.

Thanks,
Joe