Forums - Adreno-630 crash(IOCTL_KGSL_GPU_COMMAND, IOCTL_KGSL_DEVICE_WAITTIMESTAMP_CTXTID)

1 post / 0 new
Adreno-630 crash(IOCTL_KGSL_GPU_COMMAND, IOCTL_KGSL_DEVICE_WAITTIMESTAMP_CTXTID)
silence394
Join Date: 10 May 18
Posts: 1
Posted: Wed, 2019-02-13 23:13

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 error
02-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 occur
02-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;
}
But if i change lowp to highp, the problem is solved.
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;
}
I can't find the source reason result to the crash. Any suggestion would be appriciate.
 
If any help is needed, just contact me.
  • Up0
  • Down0

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.