Chromium Code Reviews
        
  DescriptionReland of Skip PaintLayer empty paint phases if it previously painted nothing (patchset #2 id:140001 of https://codereview.chromium.org/1815293002/ )
The original CL was reverted because it caused crbug.com/595839.
The reason of the bug was that we also when we painted the root
background we also traverse descendant layers, which actually painted
nothing and mistakenly marked the descendant layers not having paintings
for descendant backgrounds, float and descendant outlines paint phases,
causing the normal painting to skip painting of the paint phases.
https://codereview.chromium.org/2294313002/ fixed the root background
painting issue, so we can reland this CL now.
Also added under-invalidation checking for the needsPaintPhaseXXX()
flags by forcing painting even if needsPaintPhaseXXX() is false, and
asserting no actual painting occurs.
Original issue's description:
> Revert of Skip PaintLayer empty paint phases if it previously painted nothing (patchset #12 id:220001 of https://codereview.chromium.org/1739893006/ )
>
> Reason for revert:
> BUG=595839
>
> Original issue's description:
> > Skip PaintLayer empty paint phases if it previously painted nothing
> >
> > This avoids later painting of empty phases if the layer is marked to need
> > a paint phase but the phase painted nothing in the following cases:
> > - the object marking the layer needing the paint phase is not visible
> >   (e.g. because it is clipped)
> > - the layer was marked needing the paint phase by some object that
> >   has been deleted or moved to another layer.
> >
> > Instead of directly clearing the needsPaintPhase flags, this CL adds
> > a new set of flags to indicate if the previous paint of the phases painted
> > nothing. This is because invalidations of the needsPaintPhase flags and the
> > new flags need different conditions. The new flags are cleared when scroll
> > offset, interest rect or clipping changes.
> >
> > Cluster telemetry runs show that this will improve non-cached painting
> > by 1.7% and fully-cached painting (with subsequence-caching disabled) by
> > 45%.
> >
> > BUG=574938
> >
> > Committed: https://crrev.com/8ad6e62af5301a7e8dacd12fc1ae7914258b9e7a
> > Cr-Commit-Position: refs/heads/master@{#380841}
>
> TBR=chrishtr@chromium.org
> # Not skipping CQ checks because original CL landed more than 1 days ago.
> BUG=574938
>
> Committed: https://crrev.com/e425e3a8c5204d2d75f34c885c33f077372d1ff8
> Cr-Commit-Position: refs/heads/master@{#382018}
TBR=chrishtr@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=595839
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Committed: https://crrev.com/a6378700ce7244fa1da85321aeb31661cde0ff16
Cr-Commit-Position: refs/heads/master@{#416008}
   
  Patch Set 1 #Patch Set 2 : - #Patch Set 3 : - #Patch Set 4 : Try no foreground phase for PaintLayerPaintingRootBackgroundOnly #Patch Set 5 : Try no foreground phase for PaintLayerPaintingRootBackgroundOnly #Patch Set 6 : - #Patch Set 7 : Some cleanups #Patch Set 8 : Rebase on https://codereview.chromium.org/2294313002/ #Patch Set 9 : - #Depends on Patchset: Messages
    Total messages: 41 (32 generated)
     
  
  
       |