Commit dfd35e9d authored by Xianzhu Wang's avatar Xianzhu Wang Committed by Commit Bot

[CompositeAfterPaint] More accurate compositing reasons in layer tree dump

The CAP compositing algorithm may mark many layers with direct compositing
reasons as kOverlap, but we should try to get the actual reason. This is
just for testing and debugging.

Change-Id: I9a6b707215ed02232ac001a0485987efbca7e2d3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2227261
Auto-Submit: Xianzhu Wang <wangxianzhu@chromium.org>
Commit-Queue: Philip Rogers <pdr@chromium.org>
Reviewed-by: default avatarPhilip Rogers <pdr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#775089}
parent 2dd1b25c
......@@ -1618,9 +1618,6 @@ CompositingReasons PaintArtifactCompositor::GetCompositingReasons(
const PaintArtifact& paint_artifact) const {
DCHECK(layer_debug_info_enabled_);
if (layer.compositing_type == PendingLayer::kOverlap)
return CompositingReason::kOverlap;
if (layer.compositing_type == PendingLayer::kRequiresOwnLayer) {
const auto& first_chunk = layer.FirstPaintChunk(paint_artifact);
if (IsCompositedScrollHitTest(first_chunk))
......@@ -1648,12 +1645,19 @@ CompositingReasons PaintArtifactCompositor::GetCompositingReasons(
&previous_layer->property_tree_state.Transform()) {
reasons |= layer.property_tree_state.Transform()
.DirectCompositingReasonsForDebugging();
if (!layer.property_tree_state.Transform().BackfaceVisibilitySameAsParent())
reasons |= CompositingReason::kBackfaceVisibilityHidden;
}
if (!previous_layer || &layer.property_tree_state.Effect() !=
&previous_layer->property_tree_state.Effect()) {
reasons |= layer.property_tree_state.Effect()
.DirectCompositingReasonsForDebugging();
}
if (reasons == CompositingReason::kNone &&
layer.compositing_type == PendingLayer::kOverlap)
reasons = CompositingReason::kOverlap;
return reasons;
}
......
......@@ -79,8 +79,6 @@ virtual/threaded/fast/events/pinch/scroll-visual-viewport-send-boundary-events.h
paint/invalidation/media-audio-no-spurious-repaints.html [ Failure ]
# Missing compositing reasons
http/tests/devtools/layers/layer-compositing-reasons.js [ Failure ]
# Missing WheelEventHandler
http/tests/devtools/layers/layer-scroll-rects-get.js [ Failure ]
......
Tests layer compositing reasons in Layers Panel
Compositing reason ids for div#transform3d: transform3D
Compositing reason ids for div#transform3d-individual: transform3D
Compositing reason ids for div#backface-visibility: backfaceVisibilityHidden
Compositing reason ids for div#animation: activeTransformAnimation
Compositing reason ids for div#animation-individual: activeTransformAnimation
Compositing reason ids for div#transformWithCompositedDescendants: overlap
Compositing reason ids for div#transformWithCompositedDescendants-individual: overlap
Compositing reason ids for div#opacityWithCompositedDescendants: overflowScrolling,rootScroller
Compositing reason ids for div#reflectionWithCompositedDescendants: overflowScrolling,rootScroller
Compositing reason ids for div#perspective: perspectiveWith3DDescendants
Compositing reason ids for div#preserve3d: preserve3DWith3DDescendants
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment