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 {