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

Issue 11879012: cc: Redraw incomplete frames when new texture uploads finish (Closed)

Created:
7 years, 11 months ago by brianderson
Modified:
7 years, 11 months ago
Reviewers:
nduca, enne (OOO)
CC:
chromium-reviews, cc-bugs_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@decouple_draw3b
Visibility:
Public.

Description

cc: Redraw incomplete frames when new texture uploads finish This patch makes sure that, when the displayed frame has checkerboarding or uses low resolution tiles, we redraw on a vsync when a new visible high-res tile has been uploaded. Checking for completed texture uploads is given it's own scheduler state to centralize control and also to prevent texture uploads from triggering duplicate frames. BUG=169603

Patch Set 1 #

Total comments: 4

Patch Set 2 : Use explicit texture upload check state #

Patch Set 3 : Add trace events and isImplThread DCHECKS #

Total comments: 6

Patch Set 4 : rebase #

Patch Set 5 : rename some method, only check for incomplete frames when impl-side painting #

Total comments: 3

Patch Set 6 : Consistent use of CheckForCompletedTextures. DCHECK(!insideDraw) #

Patch Set 7 : fix [chromium-style] virtual methods with non-empty bodies shouldn't be declared inline #

Unified diffs Side-by-side diffs Delta from patch set Stats (+176 lines, -13 lines) Patch
M cc/layer_tree_host_impl.h View 1 2 3 4 5 3 chunks +5 lines, -1 line 0 comments Download
M cc/layer_tree_host_impl.cc View 1 2 3 4 5 5 chunks +17 lines, -8 lines 0 comments Download
M cc/layer_tree_host_impl_unittest.cc View 1 2 3 4 5 3 chunks +7 lines, -0 lines 0 comments Download
M cc/scheduler.h View 1 2 3 4 5 2 chunks +3 lines, -0 lines 0 comments Download
M cc/scheduler.cc View 1 2 3 4 5 2 chunks +9 lines, -0 lines 0 comments Download
M cc/scheduler_state_machine.h View 1 2 3 4 5 4 chunks +9 lines, -0 lines 0 comments Download
M cc/scheduler_state_machine.cc View 1 2 3 4 5 11 chunks +45 lines, -1 line 0 comments Download
M cc/scheduler_unittest.cc View 1 2 3 4 5 1 chunk +1 line, -0 lines 0 comments Download
M cc/single_thread_proxy.h View 1 2 3 4 5 2 chunks +5 lines, -0 lines 0 comments Download
M cc/single_thread_proxy.cc View 1 2 3 4 5 5 chunks +20 lines, -0 lines 0 comments Download
M cc/test/fake_layer_tree_host_impl_client.h View 1 2 3 4 5 6 2 chunks +3 lines, -0 lines 0 comments Download
M cc/test/fake_layer_tree_host_impl_client.cc View 1 2 3 4 5 6 1 chunk +4 lines, -0 lines 0 comments Download
M cc/test/fake_tile_manager_client.h View 1 1 chunk +1 line, -0 lines 0 comments Download
M cc/thread_proxy.h View 1 2 3 4 5 2 chunks +6 lines, -0 lines 0 comments Download
M cc/thread_proxy.cc View 1 2 3 4 5 6 chunks +33 lines, -0 lines 0 comments Download
M cc/tile_manager.h View 1 2 3 4 5 2 chunks +2 lines, -1 line 0 comments Download
M cc/tile_manager.cc View 1 2 3 4 5 3 chunks +6 lines, -2 lines 0 comments Download

Messages

Total messages: 16 (0 generated)
nduca
https://codereview.chromium.org/11879012/diff/1/cc/tile_manager.cc File cc/tile_manager.cc (right): https://codereview.chromium.org/11879012/diff/1/cc/tile_manager.cc#newcode243 cc/tile_manager.cc:243: visible_highres_tile_was_completed = true; why not just trigger a setNeedsRedraw ...
7 years, 11 months ago (2013-01-12 09:14:02 UTC) #1
brianderson
https://codereview.chromium.org/11879012/diff/1/cc/tile_manager.cc File cc/tile_manager.cc (right): https://codereview.chromium.org/11879012/diff/1/cc/tile_manager.cc#newcode243 cc/tile_manager.cc:243: visible_highres_tile_was_completed = true; On 2013/01/12 09:14:02, nduca wrote: > ...
7 years, 11 months ago (2013-01-12 18:48:06 UTC) #2
nduca
https://codereview.chromium.org/11879012/diff/1/cc/tile_manager.cc File cc/tile_manager.cc (right): https://codereview.chromium.org/11879012/diff/1/cc/tile_manager.cc#newcode243 cc/tile_manager.cc:243: visible_highres_tile_was_completed = true; But look at this function. At ...
7 years, 11 months ago (2013-01-12 22:04:40 UTC) #3
brianderson
https://codereview.chromium.org/11879012/diff/1/cc/tile_manager.cc File cc/tile_manager.cc (right): https://codereview.chromium.org/11879012/diff/1/cc/tile_manager.cc#newcode243 cc/tile_manager.cc:243: visible_highres_tile_was_completed = true; On 2013/01/12 22:04:40, nduca wrote: > ...
7 years, 11 months ago (2013-01-14 18:51:12 UTC) #4
nduca
2 sounds good. 3 seems too painful. THanks for the long explanation, I think maybe ...
7 years, 11 months ago (2013-01-14 20:52:43 UTC) #5
brianderson
ptal
7 years, 11 months ago (2013-01-16 01:49:05 UTC) #6
nduca
Now i'm more confused. I think we may want to discuss this tomorrow? https://codereview.chromium.org/11879012/diff/7012/cc/layer_tree_host_impl.cc File ...
7 years, 11 months ago (2013-01-16 04:09:47 UTC) #7
brianderson
https://codereview.chromium.org/11879012/diff/7012/cc/layer_tree_host_impl.cc File cc/layer_tree_host_impl.cc (right): https://codereview.chromium.org/11879012/diff/7012/cc/layer_tree_host_impl.cc#newcode717 cc/layer_tree_host_impl.cc:717: m_client->setNeedsRedrawOnImplThread(); On 2013/01/16 04:09:47, nduca wrote: > see now ...
7 years, 11 months ago (2013-01-16 20:12:22 UTC) #8
nduca
I like the name you proposed for the client interface. That actually really helps me ...
7 years, 11 months ago (2013-01-16 23:04:32 UTC) #9
nduca
lgtm with enevitable nits https://codereview.chromium.org/11879012/diff/16002/cc/layer_tree_host_impl.cc File cc/layer_tree_host_impl.cc (right): https://codereview.chromium.org/11879012/diff/16002/cc/layer_tree_host_impl.cc#newcode938 cc/layer_tree_host_impl.cc:938: { Please add a member ...
7 years, 11 months ago (2013-01-17 22:05:18 UTC) #10
brianderson
Comments addressed. Going ahead with commit. https://codereview.chromium.org/11879012/diff/16002/cc/layer_tree_host_impl.cc File cc/layer_tree_host_impl.cc (right): https://codereview.chromium.org/11879012/diff/16002/cc/layer_tree_host_impl.cc#newcode938 cc/layer_tree_host_impl.cc:938: { On 2013/01/17 ...
7 years, 11 months ago (2013-01-18 00:08:17 UTC) #11
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/brianderson@chromium.org/11879012/21001
7 years, 11 months ago (2013-01-18 00:10:01 UTC) #12
commit-bot: I haz the power
Failed to trigger a try job on android_clang_dbg HTTP Error 400: Bad Request
7 years, 11 months ago (2013-01-18 00:30:57 UTC) #13
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/brianderson@chromium.org/11879012/26002
7 years, 11 months ago (2013-01-18 00:31:14 UTC) #14
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/brianderson@chromium.org/11879012/26002
7 years, 11 months ago (2013-01-18 02:50:23 UTC) #15
commit-bot: I haz the power
7 years, 11 months ago (2013-01-18 03:15:22 UTC) #16
Couldn't make sense out of svn commit message:
Sending        cc/layer_tree_host_impl.cc
Sending        cc/layer_tree_host_impl.h
Sending        cc/layer_tree_host_impl_unittest.cc
Sending        cc/scheduler.cc
Sending        cc/scheduler.h
Sending        cc/scheduler_state_machine.cc
Sending        cc/scheduler_state_machine.h
Sending        cc/scheduler_unittest.cc
Sending        cc/single_thread_proxy.cc
Sending        cc/single_thread_proxy.h
Sending        cc/test/fake_layer_tree_host_impl_client.cc
Sending        cc/test/fake_layer_tree_host_impl_client.h
Sending        cc/test/fake_tile_manager_client.h
Sending        cc/thread_proxy.cc
Sending        cc/thread_proxy.h
Sending        cc/tile_manager.cc
Sending        cc/tile_manager.h
Transmitting file data .................
Committed revision 177580.

Warning: post-commit hook failed (exit code 2) with output:
/opt/shared_hooks/post-commit.d/10_mailer.py:137: DeprecationWarning: The popen2
module is deprecated.  Use the subprocess module.
  import popen2
Post-commit mail timed out for r177580. Your commit succeeded,
but no mail was sent.

Powered by Google App Engine
This is Rietveld 408576698