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

Issue 2726343004: cc: Optimize decode scheduling for checker-images. (Closed)

Created:
3 years, 9 months ago by Khushal
Modified:
3 years, 8 months ago
Reviewers:
vmpstr
CC:
cc-bugs_chromium.org, chromium-reviews
Target Ref:
refs/heads/master
Project:
chromium
Visibility:
Public.

Description

cc: Optimize decode scheduling for checker-images. The CheckerImageTracker currently schedules image decodes for all checkered images as we schedule raster work for the dependent tiles. Once image decodes have been submitted to the tracker, they can not be cancelled and the order can not be changed. This means that as tile priorities change, the order in which images are decoded may not be aligned with the priority of the tiles which depend on them. Instead use a queue for scheduling decode work in the tracker. Only one outstanding decode is pending with the decode service at a time, and the queue is re-build each time we schedule work for a new set of tiles. This requires plumbing through the checker-imaged tiles in the RasterWorkerQueue since they are now inter-leaved with tiles that actually need to be rasterized. BUG=689184 CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel Review-Url: https://codereview.chromium.org/2726343004 Cr-Commit-Position: refs/heads/master@{#466261} Committed: https://chromium.googlesource.com/chromium/src/+/3e256c223b5c4057b6a9e0556041cdb8ba11c029

Patch Set 1 #

Patch Set 2 : .. #

Total comments: 12

Patch Set 3 : addressed comments #

Total comments: 10

Patch Set 4 : .. #

Total comments: 19

Patch Set 5 : addressed comments #

Patch Set 6 : .. #

Total comments: 48

Patch Set 7 : addressed comments #

Total comments: 1

Patch Set 8 : fixed tile iteration #

Total comments: 3

Patch Set 9 : tested #

Total comments: 29

Patch Set 10 : one more test #

Total comments: 18

Patch Set 11 : addressed comments #

Patch Set 12 : rebase #

Unified diffs Side-by-side diffs Delta from patch set Stats (+731 lines, -193 lines) Patch
M cc/test/fake_layer_tree_host_impl.h View 1 2 3 4 5 6 7 8 9 1 chunk +2 lines, -0 lines 0 comments Download
M cc/test/fake_layer_tree_host_impl_client.h View 1 2 3 4 5 6 7 8 9 1 chunk +11 lines, -1 line 0 comments Download
M cc/test/fake_layer_tree_host_impl_client.cc View 1 2 3 4 5 6 7 8 9 1 chunk +4 lines, -0 lines 0 comments Download
M cc/test/fake_recording_source.h View 1 2 3 4 5 6 7 8 1 chunk +4 lines, -0 lines 0 comments Download
M cc/test/test_layer_tree_host_base.h View 1 2 3 4 5 6 7 8 1 chunk +1 line, -0 lines 0 comments Download
M cc/test/test_layer_tree_host_base.cc View 1 2 3 4 5 6 7 8 1 chunk +12 lines, -0 lines 0 comments Download
M cc/tiles/checker_image_tracker.h View 1 2 3 4 5 6 7 8 3 chunks +17 lines, -20 lines 0 comments Download
M cc/tiles/checker_image_tracker.cc View 1 2 3 4 5 6 7 8 9 3 chunks +48 lines, -44 lines 0 comments Download
M cc/tiles/checker_image_tracker_unittest.cc View 1 2 3 4 5 6 7 8 9 10 10 chunks +103 lines, -90 lines 0 comments Download
M cc/tiles/picture_layer_tiling.h View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +4 lines, -0 lines 0 comments Download
M cc/tiles/picture_layer_tiling.cc View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +35 lines, -1 line 0 comments Download
M cc/tiles/prioritized_tile.h View 1 2 3 4 5 6 7 8 3 chunks +6 lines, -1 line 0 comments Download
M cc/tiles/prioritized_tile.cc View 1 2 3 4 5 6 7 8 1 chunk +5 lines, -2 lines 0 comments Download
M cc/tiles/tile.h View 1 2 3 4 5 6 7 8 9 3 chunks +14 lines, -0 lines 0 comments Download
M cc/tiles/tile_draw_info.h View 1 2 3 4 5 6 7 8 3 chunks +14 lines, -1 line 0 comments Download
M cc/tiles/tile_draw_info.cc View 1 2 3 4 5 6 1 chunk +1 line, -1 line 0 comments Download
M cc/tiles/tile_manager.h View 1 2 3 4 5 6 7 8 9 10 11 5 chunks +26 lines, -5 lines 0 comments Download
M cc/tiles/tile_manager.cc View 1 2 3 4 5 6 7 8 9 10 11 12 chunks +151 lines, -20 lines 0 comments Download
M cc/tiles/tile_manager_unittest.cc View 1 2 3 4 5 6 7 8 9 5 chunks +257 lines, -3 lines 0 comments Download
M cc/tiles/tiling_set_raster_queue_all.h View 1 2 3 4 1 chunk +0 lines, -3 lines 0 comments Download
M cc/tiles/tiling_set_raster_queue_all.cc View 1 2 3 4 5 6 7 8 9 1 chunk +16 lines, -1 line 0 comments Download

Messages

Total messages: 41 (13 generated)
Khushal
+vmpstr. I'm going to add a test for this. In the meanwhile, does this look ...
3 years, 9 months ago (2017-03-06 20:29:45 UTC) #4
Khushal
+vmpstr. I'm going to add a test for this. In the meanwhile, does this look ...
3 years, 9 months ago (2017-03-06 20:29:46 UTC) #5
vmpstr
Do you have a doc that explains what this is trying to do in more ...
3 years, 9 months ago (2017-03-06 20:45:26 UTC) #6
Khushal
On 2017/03/06 20:45:26, vmpstr wrote: > Do you have a doc that explains what this ...
3 years, 9 months ago (2017-03-06 21:40:29 UTC) #7
Khushal
https://codereview.chromium.org/2726343004/diff/20001/cc/tiles/checker_image_tracker.cc File cc/tiles/checker_image_tracker.cc (right): https://codereview.chromium.org/2726343004/diff/20001/cc/tiles/checker_image_tracker.cc#newcode68 cc/tiles/checker_image_tracker.cc:68: void CheckerImageTracker::ResetImageDecodeQueue() { On 2017/03/06 20:45:25, vmpstr wrote: > ...
3 years, 9 months ago (2017-03-07 00:31:09 UTC) #8
vmpstr
https://codereview.chromium.org/2726343004/diff/40001/cc/tiles/checker_image_tracker.cc File cc/tiles/checker_image_tracker.cc (right): https://codereview.chromium.org/2726343004/diff/40001/cc/tiles/checker_image_tracker.cc#newcode78 cc/tiles/checker_image_tracker.cc:78: pending_image_decodes_.insert(pending_image_decode->uniqueID()); I guess my confusion comes from the implementation ...
3 years, 9 months ago (2017-03-07 19:25:08 UTC) #9
Khushal
How does it look now? https://codereview.chromium.org/2726343004/diff/40001/cc/tiles/checker_image_tracker.cc File cc/tiles/checker_image_tracker.cc (right): https://codereview.chromium.org/2726343004/diff/40001/cc/tiles/checker_image_tracker.cc#newcode78 cc/tiles/checker_image_tracker.cc:78: pending_image_decodes_.insert(pending_image_decode->uniqueID()); On 2017/03/07 19:25:08, ...
3 years, 9 months ago (2017-03-13 20:35:08 UTC) #10
Khushal
pingy.
3 years, 9 months ago (2017-03-16 19:03:51 UTC) #11
vmpstr
https://codereview.chromium.org/2726343004/diff/60001/cc/tiles/checker_image_tracker.cc File cc/tiles/checker_image_tracker.cc (right): https://codereview.chromium.org/2726343004/diff/60001/cc/tiles/checker_image_tracker.cc#newcode117 cc/tiles/checker_image_tracker.cc:117: if (outstanding_image_decode_) Leave a comment here explaining that if ...
3 years, 9 months ago (2017-03-17 18:32:14 UTC) #12
Khushal
I had to re-work this quite a bit in order to not add checker-imaged tiles ...
3 years, 9 months ago (2017-03-27 13:57:33 UTC) #14
vmpstr
https://codereview.chromium.org/2726343004/diff/100001/cc/tiles/checker_image_tracker.cc File cc/tiles/checker_image_tracker.cc (left): https://codereview.chromium.org/2726343004/diff/100001/cc/tiles/checker_image_tracker.cc#oldcode118 cc/tiles/checker_image_tracker.cc:118: // If a decode request is pending for this ...
3 years, 8 months ago (2017-03-29 19:11:46 UTC) #15
Khushal
https://codereview.chromium.org/2726343004/diff/100001/cc/tiles/checker_image_tracker.cc File cc/tiles/checker_image_tracker.cc (left): https://codereview.chromium.org/2726343004/diff/100001/cc/tiles/checker_image_tracker.cc#oldcode118 cc/tiles/checker_image_tracker.cc:118: // If a decode request is pending for this ...
3 years, 8 months ago (2017-03-29 22:10:20 UTC) #16
Khushal
https://codereview.chromium.org/2726343004/diff/100001/cc/tiles/checker_image_tracker.cc File cc/tiles/checker_image_tracker.cc (right): https://codereview.chromium.org/2726343004/diff/100001/cc/tiles/checker_image_tracker.cc#newcode136 cc/tiles/checker_image_tracker.cc:136: while (next_image_index_to_decode_ != image_decode_queue_.size()) { On 2017/03/29 22:10:20, Khushal ...
3 years, 8 months ago (2017-03-31 04:31:01 UTC) #17
vmpstr
We discussed this a bit offline, and I think we should move the discussion to ...
3 years, 8 months ago (2017-04-01 00:29:23 UTC) #18
Khushal
I've changed the tile iteration to go only for the Soon bin tiles in the ...
3 years, 8 months ago (2017-04-11 22:41:26 UTC) #19
Khushal
https://codereview.chromium.org/2726343004/diff/140001/cc/tiles/picture_layer_tiling.cc File cc/tiles/picture_layer_tiling.cc (right): https://codereview.chromium.org/2726343004/diff/140001/cc/tiles/picture_layer_tiling.cc#newcode818 cc/tiles/picture_layer_tiling.cc:818: bool PictureLayerTiling::ShouldProcessTileForCheckerImages( This one was to skip tiles on ...
3 years, 8 months ago (2017-04-11 22:45:22 UTC) #20
Khushal
And tested.
3 years, 8 months ago (2017-04-14 22:29:09 UTC) #21
vmpstr
I think tile manager changes could use a refactor, but generally this looks good. https://codereview.chromium.org/2726343004/diff/140001/cc/tiles/tile.h ...
3 years, 8 months ago (2017-04-18 00:20:00 UTC) #22
Khushal
https://codereview.chromium.org/2726343004/diff/160001/cc/tiles/checker_image_tracker.cc File cc/tiles/checker_image_tracker.cc (right): https://codereview.chromium.org/2726343004/diff/160001/cc/tiles/checker_image_tracker.cc#newcode43 cc/tiles/checker_image_tracker.cc:43: DCHECK(image_decode_queue.empty() || enable_checker_imaging_); On 2017/04/18 00:20:00, vmpstr wrote: > ...
3 years, 8 months ago (2017-04-19 06:16:42 UTC) #23
Khushal
ping.
3 years, 8 months ago (2017-04-20 20:15:59 UTC) #24
vmpstr
mostly nits below, so this lgtm. Even though checker imaging isn't enabled yet, this patch ...
3 years, 8 months ago (2017-04-20 20:59:33 UTC) #25
Khushal
https://codereview.chromium.org/2726343004/diff/180001/cc/test/fake_recording_source.h File cc/test/fake_recording_source.h (right): https://codereview.chromium.org/2726343004/diff/180001/cc/test/fake_recording_source.h#newcode67 cc/test/fake_recording_source.h:67: void set_fill_with_nonsolid_color(bool nonsolid) { On 2017/04/20 20:59:32, vmpstr wrote: ...
3 years, 8 months ago (2017-04-20 21:54:22 UTC) #26
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/2726343004/200001
3 years, 8 months ago (2017-04-20 21:55:25 UTC) #29
commit-bot: I haz the power
Try jobs failed on following builders: linux_trusty_blink_rel on master.tryserver.blink (JOB_FAILED, http://build.chromium.org/p/tryserver.blink/builders/linux_trusty_blink_rel/builds/8344) linux_chromium_chromeos_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, ...
3 years, 8 months ago (2017-04-20 22:00:09 UTC) #31
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/2726343004/220001
3 years, 8 months ago (2017-04-20 22:53:14 UTC) #34
commit-bot: I haz the power
Try jobs failed on following builders: win_chromium_compile_dbg_ng on master.tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_compile_dbg_ng/builds/394437) win_chromium_rel_ng on master.tryserver.chromium.win (JOB_FAILED, ...
3 years, 8 months ago (2017-04-20 22:55:50 UTC) #36
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/2726343004/220001
3 years, 8 months ago (2017-04-21 03:46:57 UTC) #38
commit-bot: I haz the power
3 years, 8 months ago (2017-04-21 04:49:21 UTC) #41
Message was sent while issue was closed.
Committed patchset #12 (id:220001) as
https://chromium.googlesource.com/chromium/src/+/3e256c223b5c4057b6a9e0556041...

Powered by Google App Engine
This is Rietveld 408576698