am f7613743: Merge "Don\'t call hwc set() if there is nothing new to do" into ics-mr0
* commit 'f7613743f29f38cbbaf4ae09996c380845a17daf': Don't call hwc set() if there is nothing new to do
This commit is contained in:
commit
675370ab9a
@ -411,6 +411,11 @@ bool SurfaceFlinger::threadLoop()
|
||||
// post surfaces (if needed)
|
||||
handlePageFlip();
|
||||
|
||||
if (mDirtyRegion.isEmpty()) {
|
||||
// nothing new to do.
|
||||
return true;
|
||||
}
|
||||
|
||||
if (UNLIKELY(mHwWorkListDirty)) {
|
||||
// build the h/w work list
|
||||
handleWorkList();
|
||||
@ -444,6 +449,9 @@ bool SurfaceFlinger::threadLoop()
|
||||
|
||||
void SurfaceFlinger::postFramebuffer()
|
||||
{
|
||||
// this should never happen. we do the flip anyways so we don't
|
||||
// risk to cause a deadlock with hwc
|
||||
LOGW_IF(mSwapRegion.isEmpty(), "mSwapRegion is empty");
|
||||
const DisplayHardware& hw(graphicPlane(0).displayHardware());
|
||||
const nsecs_t now = systemTime();
|
||||
mDebugInSwapBuffers = now;
|
||||
@ -892,7 +900,7 @@ void SurfaceFlinger::setupHardwareComposer(Region& dirtyInOut)
|
||||
// data.
|
||||
//
|
||||
// Also we want to make sure to not clear areas that belong to
|
||||
// layers above that won't redraw (we would just erasing them),
|
||||
// layers above that won't redraw (we would just be erasing them),
|
||||
// that is, we can't erase anything outside the dirty region.
|
||||
|
||||
Region transparent;
|
||||
@ -1687,7 +1695,7 @@ status_t SurfaceFlinger::onTransact(
|
||||
void SurfaceFlinger::repaintEverything() {
|
||||
Mutex::Autolock _l(mStateLock);
|
||||
const DisplayHardware& hw(graphicPlane(0).displayHardware());
|
||||
mDirtyRegion.set(hw.bounds()); // careful that's not thread-safe
|
||||
mDirtyRegion.set(hw.bounds());
|
||||
signalEvent();
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user