Fix dirty calculation for layer updates

 Bug: 15682142

 Defer early return of alpha <= 0 for damage accumulation until
 popTransform() so that layer updates will be performed regardless
 of alpha

Change-Id: Ifb94dd3ed2d96d610e6f2f3071933903016273a5
diff --git a/libs/hwui/DamageAccumulator.cpp b/libs/hwui/DamageAccumulator.cpp
index 77d16ab..8b32c40 100644
--- a/libs/hwui/DamageAccumulator.cpp
+++ b/libs/hwui/DamageAccumulator.cpp
@@ -170,6 +170,9 @@
     }
 
     const RenderProperties& props = frame->renderNode->properties();
+    if (props.getAlpha() <= 0) {
+        return;
+    }
 
     // Perform clipping
     if (props.getClipDamageToBounds() && !frame->pendingDirty.isEmpty()) {
diff --git a/libs/hwui/RenderNode.cpp b/libs/hwui/RenderNode.cpp
index fc51170..05f4edf 100644
--- a/libs/hwui/RenderNode.cpp
+++ b/libs/hwui/RenderNode.cpp
@@ -117,7 +117,7 @@
 }
 
 void RenderNode::damageSelf(TreeInfo& info) {
-    if (isRenderable() && properties().getAlpha() > 0) {
+    if (isRenderable()) {
         if (properties().getClipDamageToBounds()) {
             info.damageAccumulator->dirty(0, 0, properties().getWidth(), properties().getHeight());
         } else {