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

Issue 667053003: cc: Consider visible rect for update tile priority early out. (Closed)

Created:
6 years, 2 months ago by vmpstr
Modified:
6 years, 1 month ago
CC:
chromium-reviews, cc-bugs_chromium.org, mithro, Sami
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Project:
chromium
Visibility:
Public.

Description

cc: Consider visible rect for update tile priority early out. This patch adds a visible rect check for an early out from update tile priorities. The problem is that we can update tile priorities, then update the visible rect in animation, and call update tile priorities again. The second one would normally early out since it's called in the same frame. This ensures the early out doesn't happen in these cases. BUG=423455 R=danakj, brianderson, enne Committed: https://crrev.com/cc0e08bd762154a6e31de5a2e3b2aa5b23af0eae Cr-Commit-Position: refs/heads/master@{#300526}

Patch Set 1 #

Total comments: 1

Patch Set 2 : update #

Patch Set 3 : update #

Unified diffs Side-by-side diffs Delta from patch set Stats (+14 lines, -7 lines) Patch
M cc/layers/picture_layer_impl.cc View 1 2 2 chunks +4 lines, -4 lines 0 comments Download
M cc/resources/picture_layer_tiling.h View 1 2 2 chunks +6 lines, -2 lines 0 comments Download
M cc/resources/picture_layer_tiling.cc View 1 2 3 chunks +4 lines, -1 line 0 comments Download

Messages

Total messages: 13 (2 generated)
vmpstr
This is still a bit of a WIP, but this patch seems to fix the ...
6 years, 2 months ago (2014-10-20 23:32:47 UTC) #1
brianderson
+Tim so he's aware.
6 years, 2 months ago (2014-10-20 23:37:26 UTC) #2
brianderson
lgtm assuming we need this as a quick fix for M38. Otherwise, we should spend ...
6 years, 2 months ago (2014-10-21 00:10:13 UTC) #3
vmpstr
On 2014/10/21 00:10:13, brianderson wrote: > lgtm assuming we need this as a quick fix ...
6 years, 2 months ago (2014-10-21 01:30:39 UTC) #4
Sami
Can we add a test that replicates the bug?
6 years, 2 months ago (2014-10-21 09:52:09 UTC) #5
enne (OOO)
Given that there's a manual repro to test that the fix works, that this is ...
6 years, 2 months ago (2014-10-21 17:12:52 UTC) #6
enne (OOO)
still lgtm
6 years, 2 months ago (2014-10-21 17:37:08 UTC) #7
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/667053003/40001
6 years, 2 months ago (2014-10-21 17:39:56 UTC) #9
commit-bot: I haz the power
Committed patchset #3 (id:40001)
6 years, 2 months ago (2014-10-21 18:31:52 UTC) #10
commit-bot: I haz the power
Patchset 3 (id:??) landed as https://crrev.com/cc0e08bd762154a6e31de5a2e3b2aa5b23af0eae Cr-Commit-Position: refs/heads/master@{#300526}
6 years, 2 months ago (2014-10-21 18:32:32 UTC) #11
mithro-old
6 years, 1 month ago (2014-10-27 13:20:37 UTC) #13
Message was sent while issue was closed.
https://codereview.chromium.org/667053003/diff/1/cc/layers/picture_layer_impl.cc
File cc/layers/picture_layer_impl.cc (left):

https://codereview.chromium.org/667053003/diff/1/cc/layers/picture_layer_impl...
cc/layers/picture_layer_impl.cc:499: base::TimeTicks()).InSecondsF();
Just a FYI, these lines will totally not do what you expect if called at the
wrong time. It's unclear to me when exactly this function is called, so I'm not
sure if that is possible?

When not in the background, the value of CurrentBeginFrameArgs is set in
WillBeginImplFrame and cleared by calling
ResetCurrentBeginFrameArgsForNextFrame.

When in the background this happens in the
LayerTreeHostImplTimeSourceAdapter::OnTimerTick() method.

When outside of the period between Update and Reset calls the
CurrentBeginFrameArgs method just returns Now().

All the above is kind of seriously horrible and really needs to be fixed. To
make matters even more confusing, this value won't match the the last vsync
value as it's overridden to now to preserve monotonicity guarantees caused by
returning Now() at other times! :(

Does the "NeedsUpdateForFrameAtTime" method depend on the frame time being
useful, or does it just need a monotonic increasing value?

Powered by Google App Engine
This is Rietveld 408576698