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

Issue 343653004: cc: Don't add new tilings while syncing a tiling. (Closed)

Created:
6 years, 6 months ago by danakj
Modified:
5 years ago
Reviewers:
tonyg, Nico, enne (OOO)
CC:
chromium-reviews, cc-bugs_chromium.org, telemetry+watch_chromium.org, piman, jbedley
Project:
chromium
Visibility:
Public.

Description

cc: Don't add new tilings while syncing a tiling. When a layer adds a tiling, it syncs to its pending/active twin and adds the tiling there. We "cleverly" do an UpdateTilePriorities() then immediately if possible. But now UpdateTilePriorities() does much more than it used to, and also adds new tilings etc, which can cause a sync back to the other twin and re-entrancy and bad things. Instead, split everything that isn't updating tiles priorities off to UpdateTiles() which calls UpdateTilePriorities(), and have UpdateDrawProperties() call that instead. This way syncing only updates priorities, and doesn't do things like adding new tilings or changing what is considered high res. R=enne BUG=386076 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=278604

Patch Set 1 : managetilingsinsync: . #

Patch Set 2 : managetilingsinsync: . #

Patch Set 3 : managetilingsinsync: . #

Total comments: 4

Patch Set 4 : managetilingsinsync: android #

Patch Set 5 : managetilingsinsync: rebase #

Total comments: 2

Patch Set 6 : managetilingsinsync: perftest #

Total comments: 2
Unified diffs Side-by-side diffs Delta from patch set Stats (+278 lines, -332 lines) Patch
M cc/layers/layer_impl.h View 1 2 3 4 1 chunk +1 line, -1 line 0 comments Download
M cc/layers/picture_image_layer_impl.h View 1 chunk +2 lines, -5 lines 0 comments Download
M cc/layers/picture_image_layer_impl.cc View 1 chunk +6 lines, -10 lines 0 comments Download
M cc/layers/picture_image_layer_impl_unittest.cc View 1 2 3 4 5 chunks +26 lines, -35 lines 2 comments Download
M cc/layers/picture_layer_impl.h View 3 chunks +6 lines, -8 lines 0 comments Download
M cc/layers/picture_layer_impl.cc View 1 2 3 4 12 chunks +52 lines, -63 lines 0 comments Download
M cc/layers/picture_layer_impl_unittest.cc View 1 2 40 chunks +157 lines, -167 lines 0 comments Download
M cc/resources/picture_layer_tiling_set.h View 1 chunk +0 lines, -5 lines 0 comments Download
M cc/resources/picture_layer_tiling_set.cc View 1 chunk +0 lines, -13 lines 0 comments Download
M cc/resources/picture_layer_tiling_unittest.cc View 3 chunks +23 lines, -10 lines 0 comments Download
M cc/resources/tile_manager_perftest.cc View 1 2 3 4 5 1 chunk +1 line, -1 line 0 comments Download
M cc/test/fake_picture_layer_impl.h View 1 2 3 4 2 chunks +0 lines, -10 lines 0 comments Download
M cc/trees/layer_tree_impl.cc View 1 chunk +3 lines, -3 lines 0 comments Download
M tools/perf/benchmarks/smoothness.py View 1 2 3 1 chunk +1 line, -1 line 0 comments Download

Messages

Total messages: 21 (1 generated)
danakj
This depends on https://codereview.chromium.org/334953003/ but I could easily roll it into this CL if you ...
6 years, 6 months ago (2014-06-18 22:14:47 UTC) #1
danakj
BTW verified the telemetry pinchzoom tests pass after this CL
6 years, 6 months ago (2014-06-18 22:39:38 UTC) #2
tonyg
https://codereview.chromium.org/343653004/diff/60001/tools/perf/benchmarks/smoothness.py File tools/perf/benchmarks/smoothness.py (left): https://codereview.chromium.org/343653004/diff/60001/tools/perf/benchmarks/smoothness.py#oldcode118 tools/perf/benchmarks/smoothness.py:118: @test.Disabled # crbug.com/384730 I think this is supposed to ...
6 years, 6 months ago (2014-06-19 00:30:01 UTC) #3
danakj
https://codereview.chromium.org/343653004/diff/60001/tools/perf/benchmarks/smoothness.py File tools/perf/benchmarks/smoothness.py (left): https://codereview.chromium.org/343653004/diff/60001/tools/perf/benchmarks/smoothness.py#oldcode118 tools/perf/benchmarks/smoothness.py:118: @test.Disabled # crbug.com/384730 On 2014/06/19 00:30:01, tonyg wrote: > ...
6 years, 6 months ago (2014-06-19 00:55:48 UTC) #4
tonyg
lgtm stamp for telemetry file
6 years, 6 months ago (2014-06-19 00:59:30 UTC) #5
enne (OOO)
https://codereview.chromium.org/343653004/diff/60001/cc/layers/picture_layer_impl.cc File cc/layers/picture_layer_impl.cc (left): https://codereview.chromium.org/343653004/diff/60001/cc/layers/picture_layer_impl.cc#oldcode744 cc/layers/picture_layer_impl.cc:744: DCHECK(!layer_tree_impl()->needs_update_draw_properties()); Why does this go away?
6 years, 6 months ago (2014-06-19 17:38:49 UTC) #6
danakj
https://codereview.chromium.org/343653004/diff/60001/cc/layers/picture_layer_impl.cc File cc/layers/picture_layer_impl.cc (left): https://codereview.chromium.org/343653004/diff/60001/cc/layers/picture_layer_impl.cc#oldcode744 cc/layers/picture_layer_impl.cc:744: DCHECK(!layer_tree_impl()->needs_update_draw_properties()); On 2014/06/19 17:38:49, enne wrote: > Why does ...
6 years, 6 months ago (2014-06-19 17:43:37 UTC) #7
enne (OOO)
Hmm, ok ok. lgtm, thanks!
6 years, 6 months ago (2014-06-19 17:46:42 UTC) #8
danakj
The CQ bit was checked by danakj@chromium.org
6 years, 6 months ago (2014-06-19 17:53:24 UTC) #9
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/danakj@chromium.org/343653004/80001
6 years, 6 months ago (2014-06-19 17:55:29 UTC) #10
danakj
The CQ bit was checked by danakj@chromium.org
6 years, 6 months ago (2014-06-19 19:26:41 UTC) #11
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/danakj@chromium.org/343653004/100001
6 years, 6 months ago (2014-06-19 19:29:08 UTC) #12
alokp
https://codereview.chromium.org/343653004/diff/100001/cc/resources/picture_layer_tiling_set.h File cc/resources/picture_layer_tiling_set.h (left): https://codereview.chromium.org/343653004/diff/100001/cc/resources/picture_layer_tiling_set.h#oldcode57 cc/resources/picture_layer_tiling_set.h:57: void UpdateTilePriorities(WhichTree tree, Dana: I did not understand why ...
6 years, 6 months ago (2014-06-19 19:32:36 UTC) #13
danakj
The CQ bit was checked by danakj@chromium.org
6 years, 6 months ago (2014-06-19 20:07:38 UTC) #14
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/danakj@chromium.org/343653004/120001
6 years, 6 months ago (2014-06-19 20:09:26 UTC) #15
danakj
https://codereview.chromium.org/343653004/diff/100001/cc/resources/picture_layer_tiling_set.h File cc/resources/picture_layer_tiling_set.h (left): https://codereview.chromium.org/343653004/diff/100001/cc/resources/picture_layer_tiling_set.h#oldcode57 cc/resources/picture_layer_tiling_set.h:57: void UpdateTilePriorities(WhichTree tree, On 2014/06/19 19:32:35, Alok Priyadarshi wrote: ...
6 years, 6 months ago (2014-06-19 21:57:21 UTC) #16
alokp
On 2014/06/19 21:57:21, danakj wrote: > https://codereview.chromium.org/343653004/diff/100001/cc/resources/picture_layer_tiling_set.h > File cc/resources/picture_layer_tiling_set.h (left): > > https://codereview.chromium.org/343653004/diff/100001/cc/resources/picture_layer_tiling_set.h#oldcode57 > ...
6 years, 6 months ago (2014-06-19 23:06:53 UTC) #17
commit-bot: I haz the power
Change committed as 278604
6 years, 6 months ago (2014-06-20 05:03:28 UTC) #18
Nico
https://codereview.chromium.org/343653004/diff/120001/cc/layers/picture_image_layer_impl_unittest.cc File cc/layers/picture_image_layer_impl_unittest.cc (right): https://codereview.chromium.org/343653004/diff/120001/cc/layers/picture_image_layer_impl_unittest.cc#newcode131 cc/layers/picture_image_layer_impl_unittest.cc:131: static_cast<TestablePictureImageLayerImpl*>( ubsan points out that this cast is not ...
5 years ago (2015-12-02 17:29:29 UTC) #20
danakj
5 years ago (2015-12-02 23:14:15 UTC) #21
Message was sent while issue was closed.
https://codereview.chromium.org/343653004/diff/120001/cc/layers/picture_image...
File cc/layers/picture_image_layer_impl_unittest.cc (right):

https://codereview.chromium.org/343653004/diff/120001/cc/layers/picture_image...
cc/layers/picture_image_layer_impl_unittest.cc:131:
static_cast<TestablePictureImageLayerImpl*>(
On 2015/12/02 17:29:29, Nico wrote:
> ubsan points out that this cast is not valid:
> 
> [ RUN      ] PictureImageLayerImplTest.IgnoreIdealContentScale
> ../../cc/layers/picture_image_layer_impl_unittest.cc:140:7: runtime error:
> downcast of address 0x2c023a6b3d80 which does not point to an object of type
> 'cc::(anonymous namespace)::TestablePictureImageLayerImpl'
> 0x2c023a6b3d80: note: object is of type 'cc::PictureImageLayerImpl'
>  00 00 00 00  48 a0 d2 05 00 00 00 00  e0 a1 d2 05 00 00 00 00  08 a2 d2 05 00
> 00 00 00  00 00 00 00
>               ^~~~~~~~~~~~~~~~~~~~~~~
>               vptr for 'cc::PictureImageLayerImpl'
> 
> I don't know if that's a recent regression though.
> 
> (
>
https://build.chromium.org/p/chromium.fyi/builders/ClangToTLinuxUBSanVptr%20t...
> )

Thanks. Looks like TestablePictureImageLayerImpl does not override
CreateLayerImpl, so it would be an incorrect (tho currently pretty harmless i
guess..) cast. I can fix.

Powered by Google App Engine
This is Rietveld 408576698