Go to file
Mathias Agopian ed8a50c9c5 fix [3361121] hang in glClear() - device unresponsive, OTA fails
Generally we never want to lock a buffer for write access if it is at
the "head" on the surfaceflinger side. The only exception (1) is when
the buffer is not currently in use AND there is at least one queued
buffer -- in which case, SurfaceFlinger will never use said buffer
anymore, because on the next composition around, it will be able to
retire the first queued buffer.

The logic above relies on SurfaceFlinger always retiring
and locking a buffer before composition -- unfortunately this
didn't happen during a screenshot.

This could leave us in a situation where a buffer is locked by the
application for write, and used by SurfaceFlinger for texturing,
causing a hang.

Here, we fix this issue by never assuming the exception (1), it was
intended as an optimization allowing ANativeWindow::lockBuffer() to
return sooner and was justified when most of SF composition was
done in software. The actual buffer locking is now ensured by
gralloc. We could have handled screenshots in a similar way to
a regular composition, but it could have caused glitches on screen,
essentially, taking a screenshot could cause to skip a frame.

Change-Id: I1f226b1ebdf6918439b687c2723955d55b842c55
2011-01-18 15:51:30 -08:00
cmds KeyStore: Update the parameters of generating master keys. 2010-10-01 01:42:55 +08:00
include Merge "integrate videoeditor preview player." into honeycomb 2011-01-17 10:52:23 -08:00
libs fix [3361121] hang in glClear() - device unresponsive, OTA fails 2011-01-18 15:51:30 -08:00
opengl egl: fix GetProcAddress for EGLimage extensions 2011-01-16 18:12:04 -08:00
services/surfaceflinger Add logs when taking a screenshot to help tracking issue 3361121 2011-01-16 17:25:26 -08:00
vpn Revert "Remove the APIs for the old encryption scheme." 2011-01-13 14:15:43 -06:00
MODULE_LICENSE_APACHE2
NOTICE Fix omission in NOTICE file. 2011-01-17 12:50:15 -08:00