Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(119)

Issue 2110083004: Partial raster for GPU (Closed)

Created:
4 years, 5 months ago by ericrk
Modified:
4 years, 5 months ago
Reviewers:
enne (OOO)
CC:
cc-bugs_chromium.org, chromium-reviews
Base URL:
https://chromium.googlesource.com/chromium/src.git@partialuma2
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Partial raster for GPU Partial raster allows for significant savings during raster by allowing us to rasterize on top of the previous content, only updating the areas which have changed. In order to leverage this optimization, the resource containing the previous content must be unused and available for writing. Currently, the GPU raster path isn't able to effectively leverage this optimization, as in nearly all cases, the previous content is still in use (being displayed by the browser), and cannot be overwritten with new updates. To allow GPU raster to better leverage partial raster, this causes us to track invalidations to a given resource over multiple frames. This allows us to use a resource from two frames ago in partial raster (as opposed to just the most recent frame). Resources from >1 frame in the past have a much higher likelihood of being unused. While this approach isn't perfect (you can't partial raster on the first change, only subsequent ones) there is virtually no cost to it, which makes it a nice starting point. Other approaches, such as copying in-use resources may be investigated in the future if this technique produces insufficient results compared to Software's Partial Raster numbers. CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Committed: https://crrev.com/5ac42f32e7b4142cd578082424a85a26794cf0ab Cr-Commit-Position: refs/heads/master@{#405379}

Patch Set 1 : hi #

Total comments: 7

Patch Set 2 : feedback #

Total comments: 1

Patch Set 3 : Add missing resource cleanup to unit tests. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+211 lines, -63 lines) Patch
M cc/raster/bitmap_raster_buffer_provider.h View 1 1 chunk +1 line, -1 line 0 comments Download
M cc/raster/bitmap_raster_buffer_provider.cc View 1 1 chunk +1 line, -1 line 0 comments Download
M cc/raster/gpu_raster_buffer_provider.h View 1 1 chunk +1 line, -1 line 0 comments Download
M cc/raster/gpu_raster_buffer_provider.cc View 1 1 chunk +1 line, -1 line 0 comments Download
M cc/raster/one_copy_raster_buffer_provider.h View 1 1 chunk +1 line, -1 line 0 comments Download
M cc/raster/one_copy_raster_buffer_provider.cc View 1 1 chunk +5 lines, -2 lines 0 comments Download
M cc/raster/raster_buffer_provider.h View 1 1 chunk +2 lines, -2 lines 0 comments Download
M cc/raster/zero_copy_raster_buffer_provider.h View 1 1 chunk +1 line, -1 line 0 comments Download
M cc/raster/zero_copy_raster_buffer_provider.cc View 1 1 chunk +2 lines, -1 line 0 comments Download
M cc/resources/resource_pool.h View 3 chunks +22 lines, -3 lines 0 comments Download
M cc/resources/resource_pool.cc View 1 3 chunks +74 lines, -18 lines 0 comments Download
M cc/resources/resource_pool_unittest.cc View 1 2 7 chunks +73 lines, -8 lines 0 comments Download
M cc/test/fake_raster_buffer_provider.h View 1 1 chunk +1 line, -1 line 0 comments Download
M cc/test/fake_raster_buffer_provider.cc View 1 1 chunk +2 lines, -1 line 0 comments Download
M cc/tiles/tile_manager.cc View 1 7 chunks +14 lines, -15 lines 0 comments Download
M cc/tiles/tile_manager_unittest.cc View 3 chunks +10 lines, -6 lines 0 comments Download

Messages

Total messages: 26 (18 generated)
ericrk
https://codereview.chromium.org/2110083004/diff/80001/cc/raster/one_copy_raster_buffer_provider.cc File cc/raster/one_copy_raster_buffer_provider.cc (right): https://codereview.chromium.org/2110083004/diff/80001/cc/raster/one_copy_raster_buffer_provider.cc#newcode157 cc/raster/one_copy_raster_buffer_provider.cc:157: return false; One copy doesn't support partial raster into ...
4 years, 5 months ago (2016-07-11 18:55:30 UTC) #9
enne (OOO)
https://codereview.chromium.org/2110083004/diff/80001/cc/raster/one_copy_raster_buffer_provider.cc File cc/raster/one_copy_raster_buffer_provider.cc (right): https://codereview.chromium.org/2110083004/diff/80001/cc/raster/one_copy_raster_buffer_provider.cc#newcode157 cc/raster/one_copy_raster_buffer_provider.cc:157: return false; On 2016/07/11 at 18:55:29, ericrk wrote: > ...
4 years, 5 months ago (2016-07-11 21:16:26 UTC) #10
ericrk
Thanks for the feedback! updated. https://codereview.chromium.org/2110083004/diff/80001/cc/raster/one_copy_raster_buffer_provider.cc File cc/raster/one_copy_raster_buffer_provider.cc (right): https://codereview.chromium.org/2110083004/diff/80001/cc/raster/one_copy_raster_buffer_provider.cc#newcode157 cc/raster/one_copy_raster_buffer_provider.cc:157: return false; On 2016/07/11 ...
4 years, 5 months ago (2016-07-12 17:31:56 UTC) #13
enne (OOO)
lgtm https://codereview.chromium.org/2110083004/diff/130001/cc/resources/resource_pool.cc File cc/resources/resource_pool.cc (right): https://codereview.chromium.org/2110083004/diff/130001/cc/resources/resource_pool.cc#newcode186 cc/resources/resource_pool.cc:186: // Couldn't find an unused previous resource. If ...
4 years, 5 months ago (2016-07-12 17:42:54 UTC) #14
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2110083004/150001
4 years, 5 months ago (2016-07-13 22:50:34 UTC) #21
commit-bot: I haz the power
Committed patchset #3 (id:150001)
4 years, 5 months ago (2016-07-14 01:07:59 UTC) #23
commit-bot: I haz the power
CQ bit was unchecked.
4 years, 5 months ago (2016-07-14 01:08:21 UTC) #24
commit-bot: I haz the power
4 years, 5 months ago (2016-07-14 01:11:45 UTC) #26
Message was sent while issue was closed.
Patchset 3 (id:??) landed as
https://crrev.com/5ac42f32e7b4142cd578082424a85a26794cf0ab
Cr-Commit-Position: refs/heads/master@{#405379}

Powered by Google App Engine
This is Rietveld 408576698