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

Issue 2831213004: cc: Reject CompositorFrames to old child surfaces (Closed)

Created:
3 years, 8 months ago by Fady Samuel
Modified:
3 years, 7 months ago
Reviewers:
danakj
CC:
chromium-reviews, kalyank, cc-bugs_chromium.org, sadrul
Target Ref:
refs/heads/master
Project:
chromium
Visibility:
Public.

Description

cc: Reject CompositorFrames to old child surfaces Currently, if a parent is blocked on a child SurfaceID that does not yet have an active CompositorFrame, the child may continue to submit CompositorFrames to the old SurfaceID. This eats up CPU cycles that could be better spent letting the child catch up to the parent's synchronization request. With this CL, when a parent submits a CompositorFrame that is blocked on unresolved dependencies, then existing referenced surfaces with corresponding dependencies (of the same FrameSinkId) will be "closed", preventing further CompositorFrames from being submitted to them. Instead, resources will be immediately returned to the client, and a DidReceiveCompositorFrameAck will be immediately issued. This reduces the latency for a child client to catch up to the parent's request. BUG=672962, 711948 CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel Review-Url: https://codereview.chromium.org/2831213004 Cr-Commit-Position: refs/heads/master@{#469798} Committed: https://chromium.googlesource.com/chromium/src/+/980c8ee750096770976476654d13b5ecf412bee4

Patch Set 1 #

Patch Set 2 : Added a unit test #

Patch Set 3 : Revert unnecessary change #

Patch Set 4 : Fix all tests #

Patch Set 5 : Fix all tests: right diff #

Patch Set 6 : Address Dana's comment #

Total comments: 10

Patch Set 7 : Addressed Dana's comments #

Patch Set 8 : Rebased #

Total comments: 2

Patch Set 9 : Improved comment #

Total comments: 4

Patch Set 10 : Updated comments as per danakj's suggestions #

Unified diffs Side-by-side diffs Delta from patch set Stats (+241 lines, -83 lines) Patch
M cc/output/compositor_frame.cc View 1 2 3 1 chunk +1 line, -0 lines 0 comments Download
M cc/output/compositor_frame_metadata.h View 1 2 3 4 5 6 7 8 9 1 chunk +6 lines, -0 lines 0 comments Download
M cc/surfaces/compositor_frame_sink_support_unittest.cc View 1 2 3 4 5 6 7 38 chunks +187 lines, -82 lines 0 comments Download
M cc/surfaces/surface.h View 1 2 3 4 5 6 7 2 chunks +6 lines, -1 line 0 comments Download
M cc/surfaces/surface.cc View 1 2 3 4 5 6 7 8 9 3 chunks +35 lines, -0 lines 0 comments Download
M cc/surfaces/surface_factory.h View 1 2 3 4 5 6 7 2 chunks +5 lines, -0 lines 0 comments Download
M cc/surfaces/surface_factory.cc View 1 2 3 4 5 6 7 1 chunk +1 line, -0 lines 0 comments Download

Messages

Total messages: 57 (37 generated)
Fady Samuel
PTAL Dana! This is similar to skipping frames in DelegatedFrameHost today. Thanks!
3 years, 7 months ago (2017-05-01 20:35:09 UTC) #4
Fady Samuel
Note that I'm planning an optimization after this. If a surface ID's framesink ID is ...
3 years, 7 months ago (2017-05-01 20:52:41 UTC) #7
danakj
On 2017/05/01 20:35:09, Fady Samuel wrote: > PTAL Dana! This is similar to skipping frames ...
3 years, 7 months ago (2017-05-01 21:33:30 UTC) #10
Fady Samuel
On 2017/05/01 21:33:30, danakj wrote: > On 2017/05/01 20:35:09, Fady Samuel wrote: > > PTAL ...
3 years, 7 months ago (2017-05-01 21:42:01 UTC) #11
danakj
On Mon, May 1, 2017 at 5:42 PM, <fsamuel@chromium.org> wrote: > On 2017/05/01 21:33:30, danakj ...
3 years, 7 months ago (2017-05-01 22:15:35 UTC) #12
Fady Samuel
On 2017/05/01 22:15:35, danakj wrote: > On Mon, May 1, 2017 at 5:42 PM, <mailto:fsamuel@chromium.org> ...
3 years, 7 months ago (2017-05-01 22:28:50 UTC) #13
Fady Samuel
PTAL Dana! I've fixed the unit tests. The problem was most of the tests conflated ...
3 years, 7 months ago (2017-05-01 23:32:28 UTC) #16
danakj
On 2017/05/01 22:28:50, Fady Samuel wrote: > On 2017/05/01 22:15:35, danakj wrote: > > On ...
3 years, 7 months ago (2017-05-02 15:09:31 UTC) #19
Fady Samuel
PTAL Dana! I changed the concept from locking/unlocking surfaces to closing a surface once and ...
3 years, 7 months ago (2017-05-03 00:37:58 UTC) #23
danakj
https://codereview.chromium.org/2831213004/diff/100001/cc/surfaces/compositor_frame_sink_support_unittest.cc File cc/surfaces/compositor_frame_sink_support_unittest.cc (right): https://codereview.chromium.org/2831213004/diff/100001/cc/surfaces/compositor_frame_sink_support_unittest.cc#newcode1355 cc/surfaces/compositor_frame_sink_support_unittest.cc:1355: // This test verifies CompositorFrames to a surface referenced ...
3 years, 7 months ago (2017-05-04 21:39:13 UTC) #28
Fady Samuel
PTAL Dana! https://codereview.chromium.org/2831213004/diff/100001/cc/surfaces/compositor_frame_sink_support_unittest.cc File cc/surfaces/compositor_frame_sink_support_unittest.cc (right): https://codereview.chromium.org/2831213004/diff/100001/cc/surfaces/compositor_frame_sink_support_unittest.cc#newcode1355 cc/surfaces/compositor_frame_sink_support_unittest.cc:1355: // This test verifies CompositorFrames to a ...
3 years, 7 months ago (2017-05-04 22:44:04 UTC) #29
Fady Samuel
PTAL Dana! I've rebased after a few CLs landed.
3 years, 7 months ago (2017-05-05 17:14:47 UTC) #35
danakj
https://codereview.chromium.org/2831213004/diff/140001/cc/surfaces/surface.cc File cc/surfaces/surface.cc (right): https://codereview.chromium.org/2831213004/diff/140001/cc/surfaces/surface.cc#newcode94 cc/surfaces/surface.cc:94: // If this |surface_id| corresponds to a fallback surface ...
3 years, 7 months ago (2017-05-05 18:06:08 UTC) #37
Fady Samuel
I've improved the comment! PTAL Dana! https://codereview.chromium.org/2831213004/diff/140001/cc/surfaces/surface.cc File cc/surfaces/surface.cc (right): https://codereview.chromium.org/2831213004/diff/140001/cc/surfaces/surface.cc#newcode94 cc/surfaces/surface.cc:94: // If this ...
3 years, 7 months ago (2017-05-05 18:55:11 UTC) #40
danakj
LGTM https://codereview.chromium.org/2831213004/diff/160001/cc/surfaces/surface.cc File cc/surfaces/surface.cc (right): https://codereview.chromium.org/2831213004/diff/160001/cc/surfaces/surface.cc#newcode90 cc/surfaces/surface.cc:90: // Note: |activation_dependencies| and |referenced_surfaces| are disjointed This ...
3 years, 7 months ago (2017-05-05 19:51:35 UTC) #43
Fady Samuel
CQ'ing! Thanks Dana! https://codereview.chromium.org/2831213004/diff/160001/cc/surfaces/surface.cc File cc/surfaces/surface.cc (right): https://codereview.chromium.org/2831213004/diff/160001/cc/surfaces/surface.cc#newcode90 cc/surfaces/surface.cc:90: // Note: |activation_dependencies| and |referenced_surfaces| are ...
3 years, 7 months ago (2017-05-05 20:25:02 UTC) #45
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/2831213004/180001
3 years, 7 months ago (2017-05-05 20:26:13 UTC) #48
commit-bot: I haz the power
Try jobs failed on following builders: android_arm64_dbg_recipe on master.tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/android_arm64_dbg_recipe/builds/261971)
3 years, 7 months ago (2017-05-05 21:41:49 UTC) #50
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/2831213004/180001
3 years, 7 months ago (2017-05-05 21:44:17 UTC) #54
commit-bot: I haz the power
3 years, 7 months ago (2017-05-05 23:30:37 UTC) #57
Message was sent while issue was closed.
Committed patchset #10 (id:180001) as
https://chromium.googlesource.com/chromium/src/+/980c8ee750096770976476654d13...

Powered by Google App Engine
This is Rietveld 408576698