The Adreno-GSL log is here:
02-14 11:30:37.581: W/Adreno-GSL(4999): <gsl_ldd_control:541>: ioctl fd 85 code 0x400c0907 (IOCTL_KGSL_DEVICE_WAITTIMESTAMP_CTXTID) failed: errno 71 Protocol error02-14 11:30:37.581: W/Adreno-GSL(4999): <log_gpu_snapshot:450>: panel.gpuSnapshotPath is not set.not generating user snapshot
02-14 11:30:38.021: W/Adreno-GSL(4999): <gsl_ldd_control:541>: ioctl fd 85 code 0xc040094a (IOCTL_KGSL_GPU_COMMAND) failed: errno 35 Resource deadlock would occur02-14 11:30:38.021: W/Adreno-GSL(4999): <log_gpu_snapshot:450>: panel.gpuSnapshotPath is not set.not generating user snapshot
I meet the crash on Samsung Galaxy S9 and Mi Mix 2S with Adreno-630 GPU inside. The crash happens when some specific meshs are used, But I couldn't find the difference betweet the crashed meshs and other meshs. The fragment shader is as follows:
precision mediump float;uniform vec4 blend;uniform sampler2D layer0;varying vec2 otex0;void main(){lowp vec4 fdiffuse = vec4(1, 1, 1, 1);vec4 tex;vec2 uv0 = otex0.xy;tex = texture2D(layer0, uv0);fdiffuse.xyz *= tex.xyz;fdiffuse *= blend;gl_FragData[0] = fdiffuse;}
precision mediump float;uniform vec4 blend;uniform sampler2D layer0;varying vec2 otex0;void main(){highp vec4 fdiffuse = vec4(1, 1, 1, 1);vec4 tex;vec2 uv0 = otex0.xy;tex = texture2D(layer0, uv0);fdiffuse.xyz *= tex.xyz;fdiffuse *= blend;gl_FragData[0] = fdiffuse;}
And if I remove the "uniform vec4 blend", keep lowp for "fdiffuse", the app will not crash.
precision mediump float;uniform sampler2D layer0;varying vec2 otex0;void main(){lowp vec4 fdiffuse = vec4(1, 1, 1, 1);vec4 tex;vec2 uv0 = otex0.xy;tex = texture2D(layer0, uv0);fdiffuse.xyz *= tex.xyz;gl_FragData[0] = fdiffuse;}