Forums - Android 5.0.1 and S805

20 posts / 0 new
Last post
Android 5.0.1 and S805
Schtruck
Join Date: 10 Sep 10
Location: Paris
Posts: 11
Posted: Tue, 2015-02-17 05:10

there is a strange bug with new android 5.0.1 and Adreno driver in OpenGl ES 1.x, was working fine on 4.4.2  and previous versions and is working fine on S800 (on my note 3 on android 5.0)

everything is ok in opengl es 2.0 but take a look of what i have with 1.1, can you help me please :

 

 r0 9749e6b4  r1 00000001  r2 00000003  r3 00000002
 r4 9749e6ac  r5 a911b11c  r6 00000083  r7 9749e72c
 r8 930ef4c0  r9 af3458cc  sl 00200002  fp 918f0000
 ip 930ef4cc  sp 9749e68c  lr a9041053  pc a9039386  cpsr 68030030
backtrace:
 #00 pc 00128386  /system/vendor/lib/egl/libGLESv2_adreno.so (A4xFormatUtils::TpSwizzle(EsxFormat const*, TPL1_TPMEMOBJPARAM0REG*)+153)
 #01 pc 0013004f  /system/vendor/lib/egl/libGLESv2_adreno.so (A4xTextureObject::UpdateMemObj(A4xContext*, unsigned int, unsigned int, unsigned int, unsigned int, EsxDimensionType, EsxFormat const*, A4xTextureMemobjFields*, int, EsxSamplerDesc const*)+2270)
 #02 pc 00130765  /system/vendor/lib/egl/libGLESv2_adreno.so (A4xTextureObject::UpdateTexRegs(A4xContext*, EsxSamplerDesc const*)+364)
 #03 pc 0013dc0d  /system/vendor/lib/egl/libGLESv2_adreno.so (A4xContext::ValidateTexSamplers()+600)
 #04 pc 0013c499  /system/vendor/lib/egl/libGLESv2_adreno.so (A4xContext::ValidateState(EsxDrawDescriptor const*)+1232)
 #05 pc 0013c795  /system/vendor/lib/egl/libGLESv2_adreno.so (A4xContext::HwValidateGfxState(EsxDrawDescriptor const*)+4)
 #06 pc 0010933b  /system/vendor/lib/egl/libGLESv2_adreno.so (EsxContext::ValidateGfxState(EsxDrawDescriptor const*)+402)
 #07 pc 0010c5a7  /system/vendor/lib/egl/libGLESv2_adreno.so (EsxContext::DrawElementsInstanced(EsxPrimType, unsigned int, EsxPixType, void const*, unsigned int)+258)
 #08 pc 000b1705  /system/vendor/lib/egl/libGLESv2_adreno.so (EsxContext::GlDrawElements(unsigned int, int, unsigned int, void const*)+48)
 #09 pc 000de42d  /system/vendor/lib/egl/libGLESv2_adreno.so (EsxGlApiParamValidate::GlDrawElements(EsxDispatch*, unsigned int, int, unsigned int, void const*)+52)
 #10 pc 000a9bdd  /system/vendor/lib/egl/libGLESv2_adreno.so (glDrawElements+40)
 #11 pc 00011a21  /system/vendor/lib/egl/libGLESv1_CM_adreno.so (glDrawElements+104)
 
  • Up0
  • Down0
mhfeldma Moderator
Join Date: 29 Nov 12
Posts: 310
Posted: Tue, 2015-02-17 07:49

It's a bit hard to diagnose just from the trace.  Are you able to provide us with a sample apk and instructions so that we can verify on a few builds?  Which device has the 5.0.1 build installed which the app is crashing on?  Also can you provide more of the exact build information (e.g. date) from the Settings/About screen and any Adreno-EGL log statements from the android log?

  • Up0
  • Down0
Schtruck
Join Date: 10 Sep 10
Location: Paris
Posts: 11
Posted: Tue, 2015-02-17 08:20

tested on Nexus 6 last Firmware from google and on Note 4 Qualcomm based, both have the same error and they run both on 5.0.1.

you can get the try version from http://www.fpsece.net, click on purshase button then get the Donate version to download APK.

you need a PS1 iso to run my software, once you copied iso to your device just run my software and once the cover menu appear stay pressed onto Game cover and choose Video then OpenGL high definition.

go back to cover menu then press onto the game cover to run the game. you'll see the first crash which happen onto a  Glclearcolor just before the eglswap. it seems to be related to context, but i'm not sure as it's internal to Adreno opengl2 driver.

I have commented the glclearcolor, and strangely many OpenGL commands run correctly (like Polygons without texture) until it need to draw a texture like in previous log.

If you need help to run my program, contact me.

 

 

  • Up0
  • Down0
mhfeldma Moderator
Join Date: 29 Nov 12
Posts: 310
Posted: Tue, 2015-02-17 16:18

Thanks for the details...Unfortunately I don't think we'll able to proceed with these steps given the legal issues we're bound by.  If there's some way to package up an apk without the iso dependancy, we'll be able take a closer look.

  • Up0
  • Down0
Schtruck
Join Date: 10 Sep 10
Location: Paris
Posts: 11
Posted: Wed, 2015-02-18 00:23

you can load this small homebrew here: http://psxdev.net/homebrew/files/fly_little_bat_v0.5b.zip , no legal problem

Uncompress this zip file then copy the file  fly_little_bat.bin to your device.

Run fpse, as it won't find any known cd it will print you the advanced menu,

First choose SETTINGS then MISC and VIDEO then VIDEO MODE, then select Opengl high definition

go back to main menu and choose load game, and select the bin file. you'll see immediatly the problem.  

 

  • Up0
  • Down0
Schtruck
Join Date: 10 Sep 10
Location: Paris
Posts: 11
Posted: Wed, 2015-02-18 23:29

is it ok all i described?

  • Up0
  • Down0
Schtruck
Join Date: 10 Sep 10
Location: Paris
Posts: 11
Posted: Fri, 2015-02-20 14:59
Any results of your investigations?
  • Up0
  • Down0
mhfeldma Moderator
Join Date: 29 Nov 12
Posts: 310
Posted: Mon, 2015-02-23 12:59

Thanks for providing the updated files.  Given our current workload, It will take us a bit of time to analyze this issue.  Thanks for being patient..

  • Up0
  • Down0
Schtruck
Join Date: 10 Sep 10
Location: Paris
Posts: 11
Posted: Tue, 2015-03-03 02:42

it seems i'm not alone facing such problem, the OpenGL ES 1.x wrapper seems bugged... but there is perhaps a workaround.

Let me know the status of your investigations please.

  • Up0
  • Down0
Schtruck
Join Date: 10 Sep 10
Location: Paris
Posts: 11
Posted: Sat, 2015-03-07 02:18
I have more news about my investigations for you. my application is mainly a native app using more than one native livrary. The main library has two dependencies .one audio library and one opengl library. as you can understand one is to produce sound (opensl) and one is to produce drawing (opengl) My native program is run from the opengl thread. if i don t create other thread from my app. I got the crash reported . But i found if i run from my main library a new thread to run my app and all the opengl code is done in a simple loop from the opengl thread . i mean my own spinlock Code then it works. But slow. So i think the problem of tge crash is related to a limited opengl thread heap or stack size. What your investigations say? Just to inform you that i tested on s400 with lollipop and i don t have this pb. I test on all other cpu and they do work too. It s mainly s801 and s805 on lollipop Thanks
  • Up0
  • Down0
zxcvbad
Join Date: 15 Apr 14
Posts: 20
Posted: Sat, 2015-03-07 07:29

Schtruck, here they always asks for example/sample apk. If you can provide it you'll speed up the process and likely it'll be fixed in newer consumer drivers revisions (no guarantee that consumers will get them as the part of update though. There are some devices that still  uses v14 on Kitkat, and those on lollipop most likely to stay on v84 forever, as the OEMs often doesn't include newer revisions with updates), it can take ages to get fixed without an example apk provided. Like the glbufferrange/glbuffersubdata bugs on adreno drivers which exists for 2 years already and wasn't fixed yet. That happened because no one provided sample apk which hitting those bugs. That's just how it works here

  • Up0
  • Down0
Schtruck
Join Date: 10 Sep 10
Location: Paris
Posts: 11
Posted: Sun, 2015-03-08 06:35

apk can be  downloaded as you can see in my previous posts. all is in Qualcomm support hands.

  • Up0
  • Down0
zxcvbad
Join Date: 15 Apr 14
Posts: 20
Posted: Tue, 2015-03-10 08:07

I know.. But here you get a perfect example of sample apk

  • Up0
  • Down0
mhfeldma Moderator
Join Date: 29 Nov 12
Posts: 310
Posted: Tue, 2015-03-17 08:35

We have duplicated the crash with the provided files and are working with our driver team to better understand the problem.

  • Up0
  • Down0
Schtruck
Join Date: 10 Sep 10
Location: Paris
Posts: 11
Posted: Tue, 2015-03-17 10:32

Good, just remember that this crash does not happen on the Galaxy Note 3 with S800 and Lollipop 5.0, but happen with Note 4 S805 with Android 5.0.2. ANd Nexus 6 with Android 5.0 , 5.0.2 and 5.1.

  • Up0
  • Down0
Schtruck
Join Date: 10 Sep 10
Location: Paris
Posts: 11
Posted: Sun, 2015-06-14 04:40

any news about your investigations? all seems related to the new Qualcomm video driver for lollipop.

 

 

  • Up0
  • Down0
anchor
Join Date: 11 Jun 15
Posts: 3
Posted: Sun, 2015-06-14 16:12

hello, i found a shader compilation crash, and this looks similar to this topic.

it occurs only on adreno 420 & 430 based devices. (snapdragon 805 & 810) - like note4, nexus6, htc one m9, and with android 5.x.

the shader: (it works on every other gpu, and it seems a driver bug)

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

uniform vec4 skinMatRows[75*3];
attribute vec4 joints, weights;
 
 
mat4 getJointMat( const int jointIndex )
{
// Note: This matrix is transposed so vec/mat multiplications need to be done in reversed order
return mat4( skinMatRows[jointIndex * 3],
skinMatRows[jointIndex * 3 + 1],
skinMatRows[jointIndex * 3 + 2],
vec4( 0, 0, 0, 1 ) );
}
 
mat4 calcSkinningMat()
{
return weights.x * getJointMat( int( joints.x ) ) +
  weights.y * getJointMat( int( joints.y ) ) +
  weights.z * getJointMat( int( joints.z ) ) +
  weights.w * getJointMat( int( joints.w ) );
}
 
mat3 getSkinningMatVec( const mat4 skinningMat )
{
return mat3( skinningMat[0].xyz, skinningMat[1].xyz, skinningMat[2].xyz );
}
 
vec4 skinPos( const vec4 pos )
{
return pos * getJointMat( int( joints.x ) ) * weights.x +
  pos * getJointMat( int( joints.y ) ) * weights.y +
  pos * getJointMat( int( joints.z ) ) * weights.z +
  pos * getJointMat( int( joints.w ) ) * weights.w;
}
 
vec4 skinPos( const vec4 pos, const mat4 skinningMat )
{
return pos * skinningMat;
}
 
vec3 skinVec( const vec3 vec, const mat3 skinningMatTSB )
{
return vec * skinningMatTSB;
}
 
------------------------------
 
the crash log:
 
backtrace:
#00 pc 00563150 /system/vendor/lib/libllvm-glnext.so (LLVMIRGen::checkBinaryOperands(Operand, Operand, llvm::OwningPtr<QInstruction>&, llvm::OwningPtr<QInstruction>&, bool&, llvm::BasicBlock*, llvm::BasicBlock*)+283)
#01 pc 00563ba9 /system/vendor/lib/libllvm-glnext.so (LLVMIRGen::generateBinary(Operand, Operand, TOperator, bool)+344)
#02 pc 005472e3 /system/vendor/lib/libllvm-glnext.so (TQCOM_Codegen::TraverseBinaryNode(TIntermBinary*)+586)
#03 pc 0054156b /system/vendor/lib/libllvm-glnext.so (TQCOM_Codegen::TraverseNode(TIntermNode*)+154)
#04 pc 005471b3 /system/vendor/lib/libllvm-glnext.so (TQCOM_Codegen::TraverseBinaryNode(TIntermBinary*)+282)
#05 pc 0054156b /system/vendor/lib/libllvm-glnext.so (TQCOM_Codegen::TraverseNode(TIntermNode*)+154)
#06 pc 005471b3 /system/vendor/lib/libllvm-glnext.so (TQCOM_Codegen::TraverseBinaryNode(TIntermBinary*)+282)
#07 pc 0054156b /system/vendor/lib/libllvm-glnext.so (TQCOM_Codegen::TraverseNode(TIntermNode*)+154)
#08 pc 00542ae9 /system/vendor/lib/libllvm-glnext.so (TQCOM_Codegen::TraverseBranchNode(TIntermBranch*)+32)
#09 pc 0054156b /system/vendor/lib/libllvm-glnext.so (TQCOM_Codegen::TraverseNode(TIntermNode*)+154)
#10 pc 00542d17 /system/vendor/lib/libllvm-glnext.so (TQCOM_Codegen::TraverseSequence(TIntermAggregate*)+90)
#11 pc 0054d309 /system/vendor/lib/libllvm-glnext.so (TQCOM_Codegen::TraverseAggregateNode(TIntermAggregate*)+1016)
#12 pc 0054156b /system/vendor/lib/libllvm-glnext.so (TQCOM_Codegen::TraverseNode(TIntermNode*)+154)
#13 pc 0054ca21 /system/vendor/lib/libllvm-glnext.so (TQCOM_Codegen::TraverseFunction(TIntermAggregate*)+680)
#14 pc 0054d313 /system/vendor/lib/libllvm-glnext.so (TQCOM_Codegen::TraverseAggregateNode(TIntermAggregate*)+1026)
#15 pc 0054156b /system/vendor/lib/libllvm-glnext.so (TQCOM_Codegen::TraverseNode(TIntermNode*)+154)
#16 pc 00542d17 /system/vendor/lib/libllvm-glnext.so (TQCOM_Codegen::TraverseSequence(TIntermAggregate*)+90)
#17 pc 0054d309 /system/vendor/lib/libllvm-glnext.so (TQCOM_Codegen::TraverseAggregateNode(TIntermAggregate*)+1016)
#18 pc 0054156b /system/vendor/lib/libllvm-glnext.so (TQCOM_Codegen::TraverseNode(TIntermNode*)+154)
#19 pc 005442a9 /system/vendor/lib/libllvm-glnext.so (TQCOM_Codegen::compile(TIntermNode*)+16)
#20 pc 0057b747 /system/vendor/lib/libllvm-glnext.so (ShCompile+2030)
#21 pc 0051cea1 /system/vendor/lib/libllvm-glnext.so (LLVMCompiler::parse(QGLC_SRCSHADER*)+1192)
#22 pc 0051fdb9 /system/vendor/lib/libllvm-glnext.so (CompilerContext::CompileToIRShader(QGLC_SRCSHADER*, QGLC_COMPILETOIR_RESULT*)+168)
#23 pc 000fbb9b /system/vendor/lib/egl/libGLESv2_adreno.so (EsxShaderCompiler::CompileShader(EsxContext const, EsxShader const, EsxInfoLog*)+490)
#24 pc 000fa069 /system/vendor/lib/egl/libGLESv2_adreno.so (EsxShader::Compile(EsxContext*)+64)
#25 pc 000b1739 /system/vendor/lib/egl/libGLESv2_adreno.so (EsxContext::GlCompileShader(unsigned int)+48)
#26 pc 000deb8f /system/vendor/lib/egl/libGLESv2_adreno.so (EsxGlApiParamValidate::GlCompileShader(EsxDispatch*, unsigned int)+34)
#27 pc 000aa1c5 /system/vendor/lib/egl/libGLESv2_adreno.so (glCompileShader+40)
 

 

  • Up0
  • Down0
mhfeldma Moderator
Join Date: 29 Nov 12
Posts: 310
Posted: Mon, 2015-06-15 07:38

Schtuck - This crash is still an open issue that we have duplicated and are investigating.  I don't have further update currently.

  • Up0
  • Down0
Schtruck
Join Date: 10 Sep 10
Location: Paris
Posts: 11
Posted: Sat, 2015-08-15 07:50

Mister,

 

No update with this problem? still happen on Android 5.1.1 on all qualcomm platforms now

it could be a stack limit problem i think, as it's Java managed now since ART.

I know JVM Alloc 1mb for each Program Stack, but it's one stack everything, and i suppose Java, C , and OpenGL thread and rendering.

maybe growing this stack could fix this problem.

what do you think?

 

 

  • Up0
  • Down0
vishagpt
Join Date: 24 Oct 16
Posts: 1
Posted: Mon, 2016-10-24 20:32

real racing 3 game is not loading game data and just crashes.

  • Up0
  • Down0
or Register

Opinions expressed in the content posted here are the personal opinions of the original authors, and do not necessarily reflect those of Qualcomm Incorporated or its subsidiaries (“Qualcomm”). The content is provided for informational purposes only and is not meant to be an endorsement or representation by Qualcomm or any other party. This site may also provide links or references to non-Qualcomm sites and resources. Qualcomm makes no representations, warranties, or other commitments whatsoever about any non-Qualcomm sites or third-party resources that may be referenced, accessible from, or linked to this site.