New issue
Advanced search Search tips

Issue 742483 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Aug 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Feature

Blocking:
issue 740209



Sign in to add a comment

Use half-width GPU tiles for non-viewport-width layers

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

Issue description

With GPU raster, tiles are always viewport-width. When a layer is wider then the viewport (horizontal scrolling), we will end up wasting an entire viewport-width of memory to display the content:

          +-----------+
          |  Viewport |
          |           |
+---------|-+---------|-+
|  Tile 1 | |   Tile 2| |
+---------|-+---------|-+
          |           |
          +-----------+

If we were to halve the tile width in these cases, we would save half a viewport-width of memory:

          +-----------+
          |  Viewport |
          |           |
     +----|-+-----+---|-+
     | T1 | | T2  | T3| |
     +----|-+-----+---|-+
          |           |
          +-----------+

This saves ~25% of the memory needed to display such a layer, and reduces the raster cost.

As the memory savings are valuable, I'm enabling this ASAP on low-end Android. But we should evaluate this on all OSes.

Note to self: Drop priority from 1 > 3 upon landing the low-end Android part.
 

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

Labels: -Pri-1 Pri-2
Owner: xidac...@chromium.org
Status: Assigned (was: Started)
Didn't actually get to this yet, but this is what I had in mind for tile size changes on low-end.

I actually don't know that we need an experiment for this - seems pretty strictly better in terms of memory. Raster cost may increase slightly, but on low-end I'm not too concerned.

I would suggest writing this up without an experiment (just some unit tests), and landing this for low-end. We can later decide whether we want to turn this on generally.
Blocking: 740209
Project Member

Comment 3 by bugdroid1@chromium.org, Aug 16 2017

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

commit 177134823106e782420b7ce5150c2aa137014ee2
Author: Xida Chen <xidachen@chromium.org>
Date: Wed Aug 16 02:35:04 2017

Use half-width GPU tiles on low-end android devices

On low-end android devices where there is only 512MB memory, this CL
makes the tile size to be half_width when the content size is larger
than the screen width. We should see obvious memory savings in that
case.

Bug:  742483 
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel
Change-Id: Ib291bfa077e41363e587a483e25287a1ee0aac37
Reviewed-on: https://chromium-review.googlesource.com/612149
Commit-Queue: Xida Chen <xidachen@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Eric Karl <ericrk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#494673}
[modify] https://crrev.com/177134823106e782420b7ce5150c2aa137014ee2/cc/layers/picture_layer_impl.cc
[modify] https://crrev.com/177134823106e782420b7ce5150c2aa137014ee2/cc/layers/picture_layer_impl_unittest.cc
[modify] https://crrev.com/177134823106e782420b7ce5150c2aa137014ee2/cc/trees/layer_tree_settings.h
[modify] https://crrev.com/177134823106e782420b7ce5150c2aa137014ee2/content/renderer/gpu/render_widget_compositor.cc

Status: Fixed (was: Assigned)
Any idea what the memory impact of this change is?
mariakhomenko@: we should probably wait a little longer until we have enough samples from dev channel.

Comment 7 by ericrk@chromium.org, Aug 21 2017

This really only impacts sites that scroll horizontally, which is a bit limited. Maps PWA was a good example of this, and it should cut down memory when panning around the map, but I don't expect a large impact in general.

Sign in to add a comment