diff options
author | ernstm@chromium.org <ernstm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-30 05:29:22 +0000 |
---|---|---|
committer | ernstm@chromium.org <ernstm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-30 05:29:22 +0000 |
commit | 2bc19e5326705d8f94e927d026cf18d3538ddb45 (patch) | |
tree | 432675b0566c5b6c89fe65eb62cfd6e1f6b52400 /cc/layers | |
parent | 2fad0960a52b84e195f57d5bd73980f6e8fc0546 (diff) | |
download | chromium_src-2bc19e5326705d8f94e927d026cf18d3538ddb45.zip chromium_src-2bc19e5326705d8f94e927d026cf18d3538ddb45.tar.gz chromium_src-2bc19e5326705d8f94e927d026cf18d3538ddb45.tar.bz2 |
cc: Record statistics about approximated content.
Record the total visible content area and the approximated visible content
area. Approximated area is the visible area covered by low-res or missing tiles.
These statistics will be used in a follow-up patch to report the percentage of
pixels that were approximated in smoothness benchmark.
R=vmpstr@chromium.org,enne@chromium.org,
BUG=308652
Review URL: https://codereview.chromium.org/258093005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@267088 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/layers')
-rw-r--r-- | cc/layers/append_quads_data.h | 8 | ||||
-rw-r--r-- | cc/layers/picture_layer_impl.cc | 10 |
2 files changed, 18 insertions, 0 deletions
diff --git a/cc/layers/append_quads_data.h b/cc/layers/append_quads_data.h index 5e19731..7c6768f 100644 --- a/cc/layers/append_quads_data.h +++ b/cc/layers/append_quads_data.h @@ -14,17 +14,25 @@ struct AppendQuadsData { AppendQuadsData() : had_incomplete_tile(false), num_missing_tiles(0), + visible_content_area(0), + approximated_visible_content_area(0), render_pass_id(0, 0) {} explicit AppendQuadsData(RenderPass::Id render_pass_id) : had_incomplete_tile(false), num_missing_tiles(0), + visible_content_area(0), + approximated_visible_content_area(0), render_pass_id(render_pass_id) {} // Set by the layer appending quads. bool had_incomplete_tile; // Set by the layer appending quads. int64 num_missing_tiles; + // Set by the layer appending quads. + int64 visible_content_area; + // Set by the layer appending quads. + int64 approximated_visible_content_area; // Given to the layer appending quads. const RenderPass::Id render_pass_id; }; diff --git a/cc/layers/picture_layer_impl.cc b/cc/layers/picture_layer_impl.cc index 8d08bbc..39af47d 100644 --- a/cc/layers/picture_layer_impl.cc +++ b/cc/layers/picture_layer_impl.cc @@ -238,6 +238,9 @@ void PictureLayerImpl::AppendQuads(QuadSink* quad_sink, if (visible_geometry_rect.IsEmpty()) continue; + append_quads_data->visible_content_area += + visible_geometry_rect.width() * visible_geometry_rect.height(); + if (!*iter || !iter->IsReadyToDraw()) { if (draw_checkerboard_for_missing_tiles()) { scoped_ptr<CheckerboardDrawQuad> quad = CheckerboardDrawQuad::Create(); @@ -258,6 +261,8 @@ void PictureLayerImpl::AppendQuads(QuadSink* quad_sink, append_quads_data->num_missing_tiles++; append_quads_data->had_incomplete_tile = true; + append_quads_data->approximated_visible_content_area += + visible_geometry_rect.width() * visible_geometry_rect.height(); continue; } @@ -323,6 +328,11 @@ void PictureLayerImpl::AppendQuads(QuadSink* quad_sink, DCHECK(draw_quad); quad_sink->Append(draw_quad.Pass()); + if (iter->priority(ACTIVE_TREE).resolution != HIGH_RESOLUTION) { + append_quads_data->approximated_visible_content_area += + visible_geometry_rect.width() * visible_geometry_rect.height(); + } + if (seen_tilings.empty() || seen_tilings.back() != iter.CurrentTiling()) seen_tilings.push_back(iter.CurrentTiling()); } |