New issue
Advanced search Search tips

Issue 741219 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Aug 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 1
Type: Bug



Sign in to add a comment

Some solid color layers are not detected, leading to wasted memory

Project Member Reported by ericrk@chromium.org, Jul 12 2017

Issue description

In cases where multiple solid color divs are squashed, we can end up with a layer that has two or more solid color fills. Even though this final layer should be solid color, we currently miss these cases, as we analyze a single op only.

We should consider a few more ops, especially when assessing whether a full-layer solid color - planning to use 10, to match DisplayItemList::ShouldBeAnalyzedForSolidColor.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Jul 14 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8efa3b7d60b9aff3f7edffb80c0fd25516b95007

commit 8efa3b7d60b9aff3f7edffb80c0fd25516b95007
Author: Eric Karl <ericrk@chromium.org>
Date: Fri Jul 14 01:00:35 2017

Process up to 10 draw ops for full-layer solid color analysis

Currently, we only process 1 draw op when checking if a layer is solid
color, despite DisplayItemList::ShouldBeAnalyzedForSolidColor having
a cutoff of 10.

This change updates GetColorIfSolidInRect to take the number of ops to
analyze, and causes RecordingSource::DetermineIfSolidColor to use a
value of 10 for full-layer checks.

R=vmpstr
Bug:741219

Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel
Change-Id: Id4b2a72994835d096ed0f4aad24deb663e90d459
Reviewed-on: https://chromium-review.googlesource.com/567554
Commit-Queue: Eric Karl <ericrk@chromium.org>
Reviewed-by: Vladimir Levin <vmpstr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#486567}
[modify] https://crrev.com/8efa3b7d60b9aff3f7edffb80c0fd25516b95007/cc/layers/recording_source.cc
[modify] https://crrev.com/8efa3b7d60b9aff3f7edffb80c0fd25516b95007/cc/paint/display_item_list.cc
[modify] https://crrev.com/8efa3b7d60b9aff3f7edffb80c0fd25516b95007/cc/paint/display_item_list.h
[modify] https://crrev.com/8efa3b7d60b9aff3f7edffb80c0fd25516b95007/cc/paint/solid_color_analyzer.cc
[modify] https://crrev.com/8efa3b7d60b9aff3f7edffb80c0fd25516b95007/cc/paint/solid_color_analyzer.h
[modify] https://crrev.com/8efa3b7d60b9aff3f7edffb80c0fd25516b95007/cc/paint/solid_color_analyzer_unittest.cc

Comment 2 by ericrk@chromium.org, Aug 10 2017

Status: Fixed (was: Started)

Sign in to add a comment