diff options
Diffstat (limited to 'libs')
-rw-r--r-- | libs/hwui/renderstate/RenderState.cpp | 12 | ||||
-rw-r--r-- | libs/hwui/renderthread/CanvasContext.cpp | 9 |
2 files changed, 14 insertions, 7 deletions
diff --git a/libs/hwui/renderstate/RenderState.cpp b/libs/hwui/renderstate/RenderState.cpp index 3ebd57b..1e39bfa 100644 --- a/libs/hwui/renderstate/RenderState.cpp +++ b/libs/hwui/renderstate/RenderState.cpp @@ -124,9 +124,15 @@ void RenderState::bindFramebuffer(GLuint fbo) { } void RenderState::invokeFunctor(Functor* functor, DrawGlInfo::Mode mode, DrawGlInfo* info) { - interruptForFunctorInvoke(); - (*functor)(mode, info); - resumeFromFunctorInvoke(); + if (mode == DrawGlInfo::kModeProcessNoContext) { + // If there's no context we don't need to interrupt as there's + // no gl state to save/restore + (*functor)(mode, info); + } else { + interruptForFunctorInvoke(); + (*functor)(mode, info); + resumeFromFunctorInvoke(); + } } void RenderState::interruptForFunctorInvoke() { diff --git a/libs/hwui/renderthread/CanvasContext.cpp b/libs/hwui/renderthread/CanvasContext.cpp index e472e93..6dfb6e8 100644 --- a/libs/hwui/renderthread/CanvasContext.cpp +++ b/libs/hwui/renderthread/CanvasContext.cpp @@ -229,10 +229,11 @@ void CanvasContext::draw() { SkRect dirty; mDamageAccumulator.finish(&dirty); - if (dirty.isEmpty() && Properties::skipEmptyFrames) { - mCurrentFrameInfo->addFlag(FrameInfoFlags::SkippedFrame); - return; - } + // TODO: Re-enable after figuring out cause of b/22592975 +// if (dirty.isEmpty() && Properties::skipEmptyFrames) { +// mCurrentFrameInfo->addFlag(FrameInfoFlags::SkippedFrame); +// return; +// } mCurrentFrameInfo->markIssueDrawCommandsStart(); |