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

Issue 2323123002: Make disable vsync run the renderer independently (Closed)

Created:
4 years, 3 months ago by enne (OOO)
Modified:
4 years, 3 months ago
CC:
cc-bugs_chromium.org, chromium-reviews, danakj+watch_chromium.org, darin-cc_chromium.org, jam, jbauman+watch_chromium.org, kalyank, mlamouri+watch-content_chromium.org, piman+watch_chromium.org, scheduler-bugs_chromium.org, sievers+watch_chromium.org, Ian Vollick
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Make disable vsync run the renderer independently https://codereview.chromium.org/2083423006 removed the creation of begin frame sources inside of cc proxies. When vsync was disabled, the browser would run unthrottled but the renderer would still tick based on the browser. This regressed some perf tests. This patch reverts that situation and reimplements unthrottled renderer begin frame sources in a different way. When the command line parameter is present, the renderer now runs unthrottled by creating a separate unthrottled begin frame source inside of RenderThreadImpl instead of an external one. As some clean up, the property of being throttled is baked into the BeginFrameSource interface itself. This allows for the removal of the throttling scheduler setting (and the already unused use external bfs setting). This should allow for future patches to allow toggling this property. The browser compositor and display compositor continue to be tied together and tick at the same rate. Therefore, with this patch, --disable-gpu-vsync=gpu only applies to the display/browser. --disable-gpu-vsync=beginframe only applies to the renderer. --disable-gpu-vsync on its own will unthrottle both. R=brianderson@chromium.org,sunnyps@chromium.org BUG=643722, 644926 CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel Committed: https://crrev.com/e292bdc26487a681a93fab35767adcbaba5d524e Cr-Commit-Position: refs/heads/master@{#418937}

Patch Set 1 #

Total comments: 7

Patch Set 2 : Fix command line logic #

Patch Set 3 : Rebase #

Patch Set 4 : Fix android compile #

Patch Set 5 : Really fix Android #

Patch Set 6 : Silence uninitialized variable warning #

Patch Set 7 : Remove disabled vsync test #

Patch Set 8 : With additional comment #

Total comments: 2

Patch Set 9 : Comments #

Patch Set 10 : Rebase #

Unified diffs Side-by-side diffs Delta from patch set Stats (+187 lines, -277 lines) Patch
M cc/scheduler/begin_frame_source.h View 4 chunks +9 lines, -1 line 0 comments Download
M cc/scheduler/begin_frame_source.cc View 4 chunks +16 lines, -0 lines 0 comments Download
M cc/scheduler/scheduler.cc View 1 2 3 4 5 6 7 8 9 2 chunks +1 line, -3 lines 0 comments Download
M cc/scheduler/scheduler_settings.h View 1 2 3 4 5 6 7 8 9 1 chunk +0 lines, -1 line 0 comments Download
M cc/scheduler/scheduler_settings.cc View 1 2 3 4 5 6 7 8 9 2 chunks +0 lines, -3 lines 0 comments Download
M cc/scheduler/scheduler_unittest.cc View 1 2 3 4 5 6 7 8 9 81 chunks +115 lines, -218 lines 0 comments Download
M cc/surfaces/surface_manager_unittest.cc View 4 chunks +4 lines, -12 lines 0 comments Download
M cc/test/fake_external_begin_frame_source.h View 1 chunk +1 line, -0 lines 0 comments Download
M cc/test/fake_external_begin_frame_source.cc View 1 chunk +4 lines, -0 lines 0 comments Download
M cc/trees/layer_tree_host_perftest.cc View 1 2 3 4 5 6 7 1 chunk +4 lines, -1 line 0 comments Download
M cc/trees/layer_tree_host_unittest.cc View 1 2 3 4 5 6 7 8 9 2 chunks +0 lines, -13 lines 0 comments Download
M cc/trees/layer_tree_settings.h View 1 2 3 4 5 6 7 8 9 1 chunk +0 lines, -1 line 0 comments Download
M cc/trees/layer_tree_settings.cc View 1 2 3 4 5 6 7 8 9 2 chunks +0 lines, -4 lines 0 comments Download
M content/browser/renderer_host/compositor_impl_android.cc View 1 2 3 4 5 6 7 8 9 1 chunk +1 line, -0 lines 0 comments Download
M content/renderer/gpu/compositor_external_begin_frame_source.h View 1 chunk +1 line, -0 lines 0 comments Download
M content/renderer/gpu/compositor_external_begin_frame_source.cc View 1 chunk +4 lines, -0 lines 0 comments Download
M content/renderer/gpu/render_widget_compositor.cc View 1 2 3 4 5 6 7 8 9 1 chunk +0 lines, -12 lines 0 comments Download
M content/renderer/render_thread_impl.cc View 1 2 3 4 5 6 7 8 9 2 chunks +20 lines, -0 lines 0 comments Download
M ui/compositor/compositor.cc View 1 2 3 4 5 6 7 8 9 1 chunk +4 lines, -6 lines 0 comments Download
M ui/gl/gl_switches.cc View 1 2 3 4 5 6 7 8 1 chunk +3 lines, -2 lines 0 comments Download

Messages

Total messages: 78 (40 generated)
enne (OOO)
https://codereview.chromium.org/2323123002/diff/1/cc/scheduler/scheduler_settings.h File cc/scheduler/scheduler_settings.h (left): https://codereview.chromium.org/2323123002/diff/1/cc/scheduler/scheduler_settings.h#oldcode29 cc/scheduler/scheduler_settings.h:29: bool use_external_begin_frame_source; Unused, so removed this too as I ...
4 years, 3 months ago (2016-09-08 22:19:52 UTC) #2
sunnyps
I only looked at this very briefly but I think I understand the main idea ...
4 years, 3 months ago (2016-09-08 22:31:05 UTC) #3
enne (OOO)
On 2016/09/08 at 22:31:05, sunnyps wrote: > I only looked at this very briefly but ...
4 years, 3 months ago (2016-09-08 22:53:42 UTC) #4
sunnyps
On 2016/09/08 22:53:42, enne wrote: > On 2016/09/08 at 22:31:05, sunnyps wrote: > > I ...
4 years, 3 months ago (2016-09-08 22:57:10 UTC) #5
sunnyps
On 2016/09/08 22:57:10, sunnyps wrote: > On 2016/09/08 22:53:42, enne wrote: > > On 2016/09/08 ...
4 years, 3 months ago (2016-09-08 22:59:13 UTC) #6
enne (OOO)
The other advantage of doing it this way is that the scheduler settings are const. ...
4 years, 3 months ago (2016-09-08 23:04:44 UTC) #7
enne (OOO)
brianderson: have you had a chance to look at this?
4 years, 3 months ago (2016-09-12 17:35:02 UTC) #24
brianderson
I may have missed something but it looks like LayerTreeHostPerfTest, LayerTreeHostTestGpuRasterizationReenabled, LayerTreeHostTestAbortedCommitDoesntStallDisabledVsync used unthrottled sources ...
4 years, 3 months ago (2016-09-12 19:07:38 UTC) #25
enne (OOO)
On 2016/09/12 at 19:07:38, brianderson wrote: > I may have missed something but it looks ...
4 years, 3 months ago (2016-09-12 20:04:38 UTC) #26
brianderson
https://codereview.chromium.org/2323123002/diff/1/cc/trees/layer_tree_host_perftest.cc File cc/trees/layer_tree_host_perftest.cc (left): https://codereview.chromium.org/2323123002/diff/1/cc/trees/layer_tree_host_perftest.cc#oldcode49 cc/trees/layer_tree_host_perftest.cc:49: settings->wait_for_beginframe_interval = false; On 2016/09/12 20:04:38, enne wrote: > ...
4 years, 3 months ago (2016-09-12 21:01:07 UTC) #29
enne (OOO)
On 2016/09/12 at 21:01:07, brianderson wrote: > https://codereview.chromium.org/2323123002/diff/1/cc/trees/layer_tree_host_perftest.cc > File cc/trees/layer_tree_host_perftest.cc (left): > > https://codereview.chromium.org/2323123002/diff/1/cc/trees/layer_tree_host_perftest.cc#oldcode49 ...
4 years, 3 months ago (2016-09-12 21:04:07 UTC) #32
brianderson
On 2016/09/12 21:04:07, enne wrote: > On 2016/09/12 at 21:01:07, brianderson wrote: > > > ...
4 years, 3 months ago (2016-09-12 21:44:37 UTC) #33
enne (OOO)
On 2016/09/12 at 21:44:37, brianderson wrote: > So maybe something like: > // LayerTreeTests give ...
4 years, 3 months ago (2016-09-12 21:50:20 UTC) #34
brianderson
lgtm
4 years, 3 months ago (2016-09-12 21:55:58 UTC) #37
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/2323123002/140001
4 years, 3 months ago (2016-09-12 22:01:39 UTC) #40
commit-bot: I haz the power
Try jobs failed on following builders: chromium_presubmit on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/chromium_presubmit/builds/257875)
4 years, 3 months ago (2016-09-12 22:10:31 UTC) #42
enne (OOO)
danakj: ui/compositor OWNERS sievers: content/ OWNERS
4 years, 3 months ago (2016-09-12 22:13:03 UTC) #44
danakj
https://codereview.chromium.org/2323123002/diff/140001/ui/compositor/compositor.cc File ui/compositor/compositor.cc (right): https://codereview.chromium.org/2323123002/diff/140001/ui/compositor/compositor.cc#newcode113 ui/compositor/compositor.cc:113: if (display_vsync_string != "beginframe") Don't you mean != "gpu"? ...
4 years, 3 months ago (2016-09-12 22:18:00 UTC) #45
danakj
Can you make this comment better? https://cs.chromium.org/chromium/src/ui/gl/gl_switches.cc?rcl=0&l=34 https://codereview.chromium.org/2323123002/diff/140001/ui/compositor/compositor.cc File ui/compositor/compositor.cc (right): https://codereview.chromium.org/2323123002/diff/140001/ui/compositor/compositor.cc#newcode113 ui/compositor/compositor.cc:113: if (display_vsync_string ...
4 years, 3 months ago (2016-09-12 22:24:26 UTC) #46
enne (OOO)
sadrul: ui/ OWNERS On 2016/09/12 at 22:24:26, danakj wrote: > Can you make this comment ...
4 years, 3 months ago (2016-09-12 22:40:24 UTC) #48
sadrul
stamp lgtm
4 years, 3 months ago (2016-09-13 20:45:35 UTC) #49
enne (OOO)
danakj: did you have more thoughts on this?
4 years, 3 months ago (2016-09-13 20:57:22 UTC) #52
danakj
ui LGTM
4 years, 3 months ago (2016-09-13 21:19:02 UTC) #53
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/2323123002/160001
4 years, 3 months ago (2016-09-13 21:21:54 UTC) #57
commit-bot: I haz the power
Try jobs failed on following builders: chromium_presubmit on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/chromium_presubmit/builds/258676)
4 years, 3 months ago (2016-09-13 21:31:03 UTC) #59
enne (OOO)
sievers: ping?
4 years, 3 months ago (2016-09-14 00:28:20 UTC) #60
enne (OOO)
piman: content OWNERS?
4 years, 3 months ago (2016-09-14 20:34:54 UTC) #62
piman
quick questions: 1- when the renderer is not throttled, does it still respect the browser ...
4 years, 3 months ago (2016-09-14 23:49:25 UTC) #63
sunnyps
On 2016/09/14 23:49:25, piman OOO back 2016-09-12 wrote: > quick questions: > 1- when the ...
4 years, 3 months ago (2016-09-14 23:54:57 UTC) #64
enne (OOO)
On 2016/09/14 at 23:49:25, piman wrote: > 2- if perf tests are sensitive to the ...
4 years, 3 months ago (2016-09-15 00:28:28 UTC) #65
piman
lgtm
4 years, 3 months ago (2016-09-15 00:50:42 UTC) #66
piman
On 2016/09/15 00:28:28, enne wrote: > On 2016/09/14 at 23:49:25, piman wrote: > > > ...
4 years, 3 months ago (2016-09-15 00:51:58 UTC) #67
enne (OOO)
On 2016/09/15 at 00:51:58, piman wrote: > On 2016/09/15 00:28:28, enne wrote: > > On ...
4 years, 3 months ago (2016-09-15 17:31:39 UTC) #68
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/2323123002/160001
4 years, 3 months ago (2016-09-15 17:32:22 UTC) #70
commit-bot: I haz the power
Try jobs failed on following builders: ios-device on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-device/builds/69789) ios-simulator on master.tryserver.chromium.mac (JOB_FAILED, ...
4 years, 3 months ago (2016-09-15 17:35:20 UTC) #72
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/2323123002/180001
4 years, 3 months ago (2016-09-15 18:57:09 UTC) #75
commit-bot: I haz the power
Committed patchset #10 (id:180001)
4 years, 3 months ago (2016-09-15 19:57:40 UTC) #76
commit-bot: I haz the power
4 years, 3 months ago (2016-09-15 19:59:25 UTC) #78
Message was sent while issue was closed.
Patchset 10 (id:??) landed as
https://crrev.com/e292bdc26487a681a93fab35767adcbaba5d524e
Cr-Commit-Position: refs/heads/master@{#418937}

Powered by Google App Engine
This is Rietveld 408576698