Android retrace problems
Stefan Dösinger
stefandoesinger at gmail.com
Wed Dec 30 05:40:26 PST 2015
Hi,
I did some investigations into the issues described in my last mail,
and I have made some progress:
The biggest problem was that traces were read partially due to ABI
incompatibilities. I documented this in
https://github.com/apitrace/apitrace/issues/410.
2015-12-15 11:28 GMT+00:00 Stefan Dösinger <stefandoesinger at gmail.com>:
> The main issue that is blocking me right now: Whenever I am trying to
> run a trace on Android, eglretrace (on the phone / tablet) can't set
> up EGL, with the following lines showing up in logcat:
>
> E/BufferQueueProducer( 522): [SurfaceView] connect(P): already
> connected (cur=1 req=1)
> E/libEGL (11722): eglCreateWindowSurface: native_window_api_connect
> (win=0xb4929408) failed (0xffffffea) (already connected to another
> API?)
> E/libEGL (11722): eglCreateWindowSurface:417 error 3003 (EGL_BAD_ALLOC)
> W/Adreno-EGL(11722): <qeglDrvAPI_eglMakeCurrent:2971>: EGL_BAD_MATCH
> E/libEGL (11722): eglMakeCurrent:792 error 3009 (EGL_BAD_MATCH)
These messages were introduced by the following commit:
commit f1baf3782aa58215623ff5001290539a26392e6a
Author: José Fonseca <jfonseca at vmware.com>
Date: Sat Mar 14 21:44:10 2015 +0000
retrace: Crossport recent egl xlib changes to android.
Untested, but hopefully correct.
Before that commit things didn't work better though. Still no
framebuffer, but the messages are gone. I believe that the commit just
changed the symptoms of a deeper bug.
A trace recorded on Android 4 plays back more or less properly on
Android 4 and Android 5. A trace recorded on Android 5 does not play
on either. The most obvious difference is that the Android 5 trace
creates a Pbuffer for its first context (looks like this ctx is used
for capability detection), while the Android 4 trace uses a window
surface for this purpose. Pbuffers are poorly handled by the
egl-specific retrace code. I'll investigate this further.
> After running the trace egltrace crashes.
This is actually an intended exit, similar to what happens on the
desktop. Some cleanup parts are probably missing, which cause some
complaints from other system components.
More information about the apitrace
mailing list