Forums - Adreno200 gsl device open failure

5 posts / 0 new
Last post
Adreno200 gsl device open failure
MeavyDev
Join Date: 1 Oct 13
Posts: 4
Posted: Tue, 2013-10-01 23:49

My Android app works fine on all the Nexus devices including the N7 2013.

However I am getting crash reports on Sony devices with the following log entries:

10-01 20:28:53.884 D/libEGL  (13993): loaded /system/lib/egl/libEGL_adreno200.so
10-01 20:28:53.884 D/libEGL  (13993): loaded /system/lib/egl/libGLESv1_CM_adreno200.so
10-01 20:28:53.884 D/libEGL  (13993): loaded /system/lib/egl/libGLESv2_adreno200.so
10-01 20:28:53.894 E/Adreno200-EGL(13993): <egliInitState:651>: gsl device open failure
10-01 20:28:53.894 W/Adreno200-EGL(13993): <qeglDrvAPI_eglInitialize:261>: EGL_NOT_INITIALIZED
10-01 20:28:53.894 W/libEGL  (13993): eglInitialize(0x1) failed (EGL_NOT_INITIALIZED)
10-01 20:28:53.894 W/Adreno200-EGL(13993): <qeglDrvAPI_eglChooseConfig:578>: EGL_NOT_INITIALIZED
 
Device is showing as:
Sony/SGP321_1274-0506/SGP321:4.2.2/10.3.1.A.0.244/C_93rg:user/release-keys
 
So I think this is a S4 Pro Tablet Z.
 
Any ideas what this error means?
 
Edit: I've now seen the same error from a Samsung I9505 which presumably has the same Qualcomm driver.
 
  • Up0
  • Down0
mhfeldma Moderator
Join Date: 29 Nov 12
Posts: 310
Posted: Mon, 2013-10-07 10:02

Hi...

Can you share sample code for the egl configuration that is failing?

Also what is the build number/date and Android version that is on the S4 Pro Tablet Z.

Also do you have an an apk that you could share that duplicates the problem?

 

thanks,

mark f.

 

 

  • Up0
  • Down0
MeavyDev
Join Date: 1 Oct 13
Posts: 4
Posted: Wed, 2013-11-06 00:17

Ah, sorry, I didn't get any email notifications, and was just about to post again...

I'm now seeing it from a range of devices. All with the Adreno200 driver

This is a sample from the about ten reports from today:

FINGERPRINT
google/occam/mako:4.3/JWR66Y/776638:user/release-keys
HARDWARE
mako
HOST
vpak15.mtv.corp.google.com
ID
JWR66Y
IS_DEBUGGABLE
false
MANUFACTURER
LGE
MODEL
Nexus 4
PRODUCT
occam
loaded /system/lib/egl/libEGL_adreno200.so
11-05 17:33:41.197 D/libEGL  (29202): loaded /system/lib/egl/libGLESv1_CM_adreno200.so
11-05 17:33:41.197 I/Choreographer(29202): Skipped 80 frames!  The application may be doing too much work on its main thread.
11-05 17:33:41.197 D/libEGL  (29202): loaded /system/lib/egl/libGLESv2_adreno200.so
11-05 17:33:41.207 E/Adreno200-EGL(29202): <egliInitState:651>: gsl device open failure
11-05 17:33:41.207 W/Adreno200-EGL(29202): <qeglDrvAPI_eglInitialize:261>: EGL_NOT_INITIALIZED
11-05 17:33:41.207 W/libEGL  (29202): eglInitialize(0x1) failed (EGL_NOT_INITIALIZED)
11-05 17:33:41.207 W/Adreno200-EGL(29202): <qeglDrvAPI_eglChooseConfig:578>: EGL_NOT_INITIALIZED
 
The app is free (well at least to see it start-up) and I think must be some timing related, as I have a N4 and it appears to work fine.
 
I can send sample code segments, but less keen about posting here...
  • Up0
  • Down0
MeavyDev
Join Date: 1 Oct 13
Posts: 4
Posted: Wed, 2013-11-06 00:35

Here is a different device. An Evo:

11-03 14:40:31.889 I/Adreno200-EGL( 9632): <qeglDrvAPI_eglInitialize:269>: EGL 1.4 QUALCOMM build: AU_LINUX_ANDROID_JB_REL_RB4.04.01.02.16.028_msm8960_JB_REL_RB4.2_Merge_release_AU (Merge)
11-03 14:40:31.889 I/Adreno200-EGL( 9632): Build Date: 12/06/12 Thu
11-03 14:40:31.889 I/Adreno200-EGL( 9632): Local Branch: 
11-03 14:40:31.889 I/Adreno200-EGL( 9632): Remote Branch: m/jb_rel_rb4.2
11-03 14:40:31.889 I/Adreno200-EGL( 9632): Local Patches: NONE
11-03 14:40:31.889 I/Adreno200-EGL( 9632): Reconstruct Branch: NOTHING
11-03 14:40:31.899 D/memalloc( 9632): ion: Mapped buffer base:0x54c8f000 size:1351680 offset:0 fd:71
11-03 14:40:31.899 D/memalloc( 9632): ion: Mapped buffer base:0x40002000 size:4096 offset:0 fd:73
11-03 14:40:31.909 W/Adreno200-EGL( 9632): <qeglDrvAPI_eglCreateContext:2299>: EGL_BAD_ALLOC
 
So still an Adreno 200.
 
  • Up0
  • Down0
MeavyDev
Join Date: 1 Oct 13
Posts: 4
Posted: Wed, 2013-11-06 01:20

OK here are the two OpenGL java files, as there isn't anything sensitive there:

package meavydev.ARDrone;
 
import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.opengles.GL10;
 
import android.app.ActivityManager;
import android.content.Context;
import android.content.pm.ConfigurationInfo;
import android.opengl.GLSurfaceView;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
 
 
public class DemoGLSurfaceView extends GLSurfaceView 
{
private DemoRenderer mRenderer = null;
private static final String LOG_TAG = "ARDrone view";
private boolean mInitialised = false;
private Context mContext;
 
public DemoGLSurfaceView(Context context) 
{
        super(context);
        mContext = context;
        setup();
    }
 
public DemoGLSurfaceView(Context context, AttributeSet attrs) 
{
super( context, attrs);
        mContext = context;
setup();
}
 
private void setup()
{
    try
    {
        if (!detectOpenGLES20())
    {
    setEGLContextClientVersion(1);
    setEGLConfigChooser(8, 8, 8, 8, 16, 0);
    setRenderer(new ClearRenderer());
            Log.d(LOG_TAG, "DemoGLSurfaceView - fallback" );
    }
    else
    {
    setEGLContextClientVersion(2);
   
       mRenderer = new DemoRenderer();
                setRenderer(mRenderer);
                mInitialised = true;
            Log.d(LOG_TAG, "DemoGLSurfaceView - setup" );
    }
        }
    catch (Exception e)
    {
        Log.e(LOG_TAG, "DemoGLSurfaceView - failed" );
    }
}
 
    private boolean detectOpenGLES20() 
    {
        ActivityManager am = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);
        ConfigurationInfo info = am.getDeviceConfigurationInfo();
        Log.d(LOG_TAG, "OpenGL version "+info.getGlEsVersion());
        return (info.reqGlEsVersion >= 0x20000);
    }
    
public Boolean initialise( Context context, ARDroneSurface ds) 
{
if (mRenderer != null)
mRenderer.SetDroneSurface(ds);
    Log.d(LOG_TAG, "DemoGLSurfaceView - init" );
 
return mInitialised;
}
 
@Override
public void onPause()
{
    Log.d(LOG_TAG, "DemoGLSurfaceView - onPause" );
    try
    {
    super.onPause();
    }
    catch (Exception e)
    {
   
    }
}
 
@Override
public void onResume()
{
    Log.d(LOG_TAG, "DemoGLSurfaceView - onResume" );
    try
    {
super.onResume();
    }
    catch (Exception e)
    {
   
    }
}
 
private class ClearRenderer implements GLSurfaceView.Renderer 
{
@Override
public void onDrawFrame(GL10 gl)
{
       gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
}
 
@Override
public void onSurfaceChanged(GL10 gl, int width, int height)
{
       gl.glViewport(0, 0, width, height);
}
 
@Override
public void onSurfaceCreated(GL10 gl, EGLConfig config)
{
// TODO Auto-generated method stub
 
}
}  
}
 
 
package meavydev.ARDrone;
 
import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.opengles.GL10;
 
import android.content.Context;
import android.opengl.GLSurfaceView;
import android.opengl.GLU;
import android.util.Log;
 
public class DemoRenderer implements GLSurfaceView.Renderer
{
private static final String LOG_TAG = "ARDrone render";
private ARDroneSurface mDS = null;
private int screen_width = 0, screen_height = 0;
private boolean surfaceChanged = false;
 
public DemoRenderer()
{
}
 
public void SetDroneSurface(ARDroneSurface ds)
{
mDS = ds;
if (surfaceChanged)
{
    mDS.ScreenResize(mDS.getResources(), screen_width, screen_height);
    surfaceChanged = false;
}
}
 
public void onSurfaceCreated(GL10 gl, EGLConfig config)
{
try
{
nativeInit();
} catch (Exception e)
{
Log.e(LOG_TAG, "onSurfaceCreated - failed");
}
}
 
public void onSurfaceChanged(GL10 gl, int w, int h)
{
try
{
screen_width = w;
screen_height = h;
 
// gl.glViewport(0, 0, w, h);
if (mDS != null)
{
mDS.ScreenResize(mDS.getResources(), w, h);
surfaceChanged = false;
}
else
{
surfaceChanged = true;
}
nativeResize(w, h);
} catch (Exception e)
{
Log.e(LOG_TAG, "onSurfaceChanged - failed");
}
}
 
public void onDrawFrame(GL10 gl)
{
try
{
if (mDS != null)
{
nativeRender();
}
} catch (Exception e)
{
Log.e(LOG_TAG, "onDrawFrame - failed");
}
}
 
private static native void nativeInit();
 
private static native void nativeResize(int w, int h);
 
private static native void nativeRender();
}
 
  • 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.