add some logs to track a crash in eglCreateImageKHR

Bug: 5111008

Change-Id: I3e7f5b986151e80cbded39e0dec057770da52fc1
This commit is contained in:
Mathias Agopian 2011-08-08 19:35:15 -07:00
parent a13bd05567
commit e47498f8f2

View File

@ -628,16 +628,32 @@ status_t SurfaceTexture::updateTexImage() {
LOGV("SurfaceTexture::updateTexImage"); LOGV("SurfaceTexture::updateTexImage");
Mutex::Autolock lock(mMutex); Mutex::Autolock lock(mMutex);
if (mAbandoned) {
LOGE("calling updateTexImage() on an abandoned SurfaceTexture");
//return NO_INIT;
}
// In asynchronous mode the list is guaranteed to be one buffer // In asynchronous mode the list is guaranteed to be one buffer
// deep, while in synchronous mode we use the oldest buffer. // deep, while in synchronous mode we use the oldest buffer.
if (!mQueue.empty()) { if (!mQueue.empty()) {
Fifo::iterator front(mQueue.begin()); Fifo::iterator front(mQueue.begin());
int buf = *front; int buf = *front;
if (uint32_t(buf) >= NUM_BUFFER_SLOTS) {
LOGE("buffer index out of range (index=%d)", buf);
//return BAD_VALUE;
}
// Update the GL texture object. // Update the GL texture object.
EGLImageKHR image = mSlots[buf].mEglImage; EGLImageKHR image = mSlots[buf].mEglImage;
if (image == EGL_NO_IMAGE_KHR) { if (image == EGL_NO_IMAGE_KHR) {
EGLDisplay dpy = eglGetCurrentDisplay(); EGLDisplay dpy = eglGetCurrentDisplay();
if (mSlots[buf].mGraphicBuffer == 0) {
LOGE("buffer at slot %d is null", buf);
//return BAD_VALUE;
}
image = createImage(dpy, mSlots[buf].mGraphicBuffer); image = createImage(dpy, mSlots[buf].mGraphicBuffer);
mSlots[buf].mEglImage = image; mSlots[buf].mEglImage = image;
mSlots[buf].mEglDisplay = dpy; mSlots[buf].mEglDisplay = dpy;